| // { dg-do compile } |
| // { dg-options "-std=c++0x" } |
| |
| // Test overload preference char*/int |
| |
| template <typename T, typename U> struct tType_equal; |
| template <typename T> struct tType_equal<T, T> { typedef void type; }; |
| |
| template <typename T, typename U> |
| inline typename tType_equal<T, U>::type |
| type_equal(U) { } |
| |
| char* f( char* ); |
| int f( int ); |
| long int f( long int ); |
| |
| void test_f() |
| { |
| // Overloading cases |
| // |
| type_equal<char*>(f(nullptr)); |
| type_equal<int>(f(0)); |
| decltype(nullptr) mynull = 0; |
| type_equal<char*>(f(mynull)); |
| } |