https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69005
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Tue Jan 12 14:54:33 2016 New Revision: 232273 URL: https://gcc.gnu.org/viewcvs?rev=232273&root=gcc&view=rev Log: Prevent recursive instantiation in std::function PR libstdc++/69005 PR libstdc++/69222 * include/std/functional (function::_Invoke): Remove, use result_of. (function::_Callable): Replace alias template with class template and use partial specialization instead of _NotSelf alias template. (function(_Functor)): Add "not self" constraint so that _Callable is not used while type is incomplete. * testsuite/20_util/function/69222.cc: New. Added: trunk/libstdc++-v3/testsuite/20_util/function/69222.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/std/functional