Add std::__is_byte<std::byte> specialization
authorJonathan Wakely <jwakely@redhat.com>
Wed, 27 Jun 2018 10:30:52 +0000 (11:30 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 27 Jun 2018 10:30:52 +0000 (11:30 +0100)
* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
(__is_byte<byte>): Define specialization for std::byte.

From-SVN: r262182

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/cpp_type_traits.h

index 0db12be6f8bc0c3dbba185ea4d2e6a3ca8e314d0..97a8076576c24c07469e3721eece89517f9737c2 100644 (file)
@@ -1,5 +1,8 @@
 2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
 
+       * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
+       (__is_byte<byte>): Define specialization for std::byte.
+
        PR libstdc++/86138
        * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
        Declare explicit instantiations of COW empty reps and I/O functions.
index ed6de4696c753ed849ef2808250609923970496a..960d469f412653617998abdf6ddd57379d19a959 100644 (file)
@@ -391,6 +391,17 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
       typedef __true_type __type;
     };
 
+#if __cplusplus >= 201703L
+  enum class byte : unsigned char;
+
+  template<>
+    struct __is_byte<byte>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+#endif // C++17
+
   //
   // Move iterator type
   //