https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69005
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Tue Jan 12 14:55:00 2016 New Revision: 232274 URL: https://gcc.gnu.org/viewcvs?rev=232274&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: branches/gcc-5-branch/libstdc++-v3/testsuite/20_util/function/69222.cc Modified: branches/gcc-5-branch/libstdc++-v3/ChangeLog branches/gcc-5-branch/libstdc++-v3/include/std/functional