Home | History | Annotate | Download | only in char.traits.specializations.char32_t
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <string>
     11 
     12 // template<> struct char_traits<char32_t>
     13 
     14 // typedef char32_t       char_type;
     15 // typedef uint_least32_t int_type;
     16 // typedef streamoff      off_type;
     17 // typedef u32streampos   pos_type;
     18 // typedef mbstate_t      state_type;
     19 
     20 #include <string>
     21 #include <type_traits>
     22 #include <cstdint>
     23 
     24 int main()
     25 {
     26 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
     27     static_assert((std::is_same<std::char_traits<char32_t>::char_type, char32_t>::value), "");
     28     static_assert((std::is_same<std::char_traits<char32_t>::int_type, std::uint_least32_t>::value), "");
     29     static_assert((std::is_same<std::char_traits<char32_t>::off_type, std::streamoff>::value), "");
     30     static_assert((std::is_same<std::char_traits<char32_t>::pos_type, std::u32streampos>::value), "");
     31     static_assert((std::is_same<std::char_traits<char32_t>::state_type, std::mbstate_t>::value), "");
     32 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
     33 }
     34