Define std::remove_cvref and std::remove_cvref_t for C++2a
commiteb259a42d857e535d8145bf92cc1b6f783844be1
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 May 2018 12:40:10 +0000 (3 12:40 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 May 2018 12:40:10 +0000 (3 12:40 +0000)
tree71732d1991fd72acfd2525d9c0867410fa7182c2
parent1019ee831513e43a1bfa595ef8a2fb7cf753a779
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@259887 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/any
libstdc++-v3/include/std/tuple
libstdc++-v3/include/std/type_traits
libstdc++-v3/include/std/variant