1 // PR c++/42266 2 // { dg-do compile { target c++11 } } 3 4 template<typename... _Elements> 5 class tuple; 6 7 template<typename _Arg> 8 class _Mu; 9 10 template<typename _Signature> 11 struct _Bind; 12 13 template<typename _Functor, typename... _Bound_args> 14 class _Bind<_Functor(_Bound_args...)> 15 { 16 template<typename... _Args, typename 17 = decltype(_Functor()(_Mu<_Bound_args>()(_Bound_args(), 18 tuple<_Args...>())...) )> __call()19 void __call() { } 20 }; 21 22 template<typename _Functor, typename _Arg> 23 _Bind<_Functor(_Arg)> bind(_Functor,_Arg)24 bind(_Functor, _Arg) { return _Bind<_Functor(_Arg)>(); } 25 26 struct State 27 { readyState28 bool ready() { return true; } 29 fState30 void f() 31 { 32 bind(&State::ready, this); 33 } 34 }; 35 36