* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / decltype59.C
blob93208df95cbb577b650458a9856aaf4f3307e31d
1 // PR c++/57543
2 // { dg-do compile { target c++11 } }
4 template< typename > struct X
6   void foo();
7   auto bar() -> decltype( X::foo() );
8 };
10 template< typename > struct Y
12   void foo();
13   template< typename >
14   auto bar() -> decltype( Y::foo() );
17 template< typename > struct Z
19   void foo();
20   template< typename T >
21   auto bar() -> decltype( T::foo() );
24 template< typename > struct K
26   void foo();
27   template< typename T >
28   auto bar() -> decltype( T::foo() );
31 template<>
32 template<>
33 auto K<int>::bar<K<int>>() -> decltype( K<int>::foo() );
35 int main()
37   X<int>().bar();
38   Y<int>().bar<double>();
39   Z<int>().bar<Z<int>>();
40   K<int>().bar<K<int>>();