1 // PR c++/40595 2 // { dg-do compile { target c++11 } } 3 4 template<int N> 5 struct S 6 { 7 typedef int type; 8 }; 9 10 template<typename T> 11 struct Get 12 { 13 static T get(); 14 }; 15 16 template<typename F> 17 struct B 18 { 19 template<typename ... Args> 20 typename S<sizeof( Get<F>::get() (Get<Args>::get() ...) )>::type 21 f(Args&& ... a); 22 }; 23 24 struct X 25 { 26 bool operator()(int) const; 27 }; 28 main()29int main() 30 { 31 B<X> b; 32 b.f(1); 33 } 34