Prevent recursive instantiation in std::function
authorJonathan Wakely <jwakely@redhat.com>
Tue, 12 Jan 2016 14:54:33 +0000 (14:54 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 12 Jan 2016 14:54:33 +0000 (14:54 +0000)
commit1c3c7c414570020cfb7b510f908fc20995ab2da0
treec7a791ee1bf6a87f06582f10e061a632ec28dcf5
parent3c4e91c903a599641e3adf08b6f2646d778c4cf3
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.

From-SVN: r232273
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional
libstdc++-v3/testsuite/20_util/function/69222.cc [new file with mode: 0644]