2 // { dg-do compile { target c++11 } }
4 template< typename > struct X
7 auto bar() -> decltype( X::foo() );
10 template< typename > struct Y
14 auto bar() -> decltype( Y::foo() );
17 template< typename > struct Z
20 template< typename T >
21 auto bar() -> decltype( T::foo() );
24 template< typename > struct K
27 template< typename T >
28 auto bar() -> decltype( T::foo() );
33 auto K<int>::bar<K<int>>() -> decltype( K<int>::foo() );
38 Y<int>().bar<double>();
39 Z<int>().bar<Z<int>>();
40 K<int>().bar<K<int>>();