2 // { dg-do compile { target c++11 } }
4 template<typename T> T declval();
10 void operator()(tuple, int);
13 typedef void (*F2)(tuple, int);
15 template<typename F, typename T>
19 typename R = decltype( F()(declval<T&>(), A()) )>
23 typename R = decltype( F()(declval<volatile T&>(), A()) )>
29 Bind<F1, tuple>().f(0); // OK
30 Bind<F2, tuple>().f(0); // ERROR, should be OK