Define std::remove_cvref and std::remove_cvref_t for C++2a
authorJonathan Wakely <jwakely@redhat.com>
Thu, 3 May 2018 12:40:10 +0000 (13:40 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 3 May 2018 12:40:10 +0000 (13:40 +0100)
commit6791489ee5214b0181aa22adc250cbbde1897a5c
tree71732d1991fd72acfd2525d9c0867410fa7182c2
parent31aac34486dca5948d39570ca5b9930307d52ad8
Define std::remove_cvref and std::remove_cvref_t for C++2a

Also define __remove_cvref_t for internal use before C++2a.

* include/std/any (any_cast): Use __remove_cvref_t.
* include/std/tuple (__make_tuple): Likewise.
* include/std/type_traits (__remove_cvref_t): Define.
(__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
[__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
* include/std/variant (__erased_hash): Use __remove_cvref_t.

From-SVN: r259887
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/any
libstdc++-v3/include/std/tuple
libstdc++-v3/include/std/type_traits
libstdc++-v3/include/std/variant