Define __type_identity_t alias and use for string_view
authorJonathan Wakely <jwakely@redhat.com>
Fri, 12 Jul 2019 11:43:22 +0000 (12:43 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 12 Jul 2019 11:43:22 +0000 (12:43 +0100)
commit0d67cd380d37f2a28156d3430b9964a5df67a101
tree0a3e3e4fa755a9d99125516c9b8dc0887c6e9004
parent804e2d0631d11d036be3452f00a294c434f3570a
Define __type_identity_t alias and use for string_view

This defines the equivalent of C++2a's std::type_identity_t alias but
for use in C++11 and later. This can be used to replace __detail::__idt
in the string_view headers, which previously used common_type_t because
the one argument specialization of common_type_t was simply the identity
transform (which is no longer true).

* include/experimental/string_view (__detail::__idt): Remove.
(operator==, operator!=, operator<, operator>, operator<=, operator>=):
Use __type_identity_t instead of __detail::__idt;
* include/std/string_view (__detail::__idt): Remove.
(operator==, operator!=, operator<, operator>, operator<=, operator>=):
Use __type_identity_t instead of __detail::__idt;
* include/std/type_traits (__type_identity_t): New alias template.

From-SVN: r273442
libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/string_view
libstdc++-v3/include/std/string_view
libstdc++-v3/include/std/type_traits