2 // { dg-do compile { target c++11 } }
4 template<typename T> T& declval();
6 template<typename _Sig> class function;
8 template<typename _Res, typename _Arg>
9 struct function<_Res(_Arg)>
11 function() noexcept { }
13 function(const function&) { }
15 template<typename _Functor,
16 typename = decltype(declval<_Functor&>()(declval<_Arg>()))>
17 function(_Functor) { }
19 _Res operator()(_Arg) const;
23 function<void(Foo)> Func;