2 // { dg-require-effective-target c++11 }
10 template<class Ret, class C, class Arg>
11 static Arg test(Ret (C::*)(Arg));
13 typedef decltype(test(&T::template foo<>)) type;
16 template<class T, class>
17 struct dependent { typedef T type; };
22 template<class Ignore = void>
23 auto foo(int i) -> decltype(declval<
24 typename dependent<T&, Ignore>::type
28 struct derived : base<derived>
30 friend struct base<derived>;
37 foo_argument<derived>::type var = 0;