Fix std::invoke support for reference_wrappers
authorJonathan Wakely <jwakely@redhat.com>
Fri, 11 Dec 2015 21:45:51 +0000 (21:45 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 11 Dec 2015 21:45:51 +0000 (21:45 +0000)
commitf3d7dd52a6e8c379f7f90cb547e2cd186fa07653
tree8333e60d67980807a518e0b427303c908fcb7045
parentb49e35a94a6427541e3beb197426d74ee005b43c
Fix std::invoke support for reference_wrappers

PR libstdc++/59768
* include/std/functional (_Unwrap, __invfwd): Define.
(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
* include/std/type_traits (__result_of_memobj, __result_of_memfun):
Add partial specializations for const reference_wrappers and simplify.
* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
* testsuite/20_util/function_objects/invoke/59768.cc: New.

From-SVN: r231574
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional
libstdc++-v3/include/std/type_traits
libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc [new file with mode: 0644]