1 // -*- C++ -*- 2 //===--------------------------- string ----------------------------------===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is dual licensed under the MIT and the University of Illinois Open 7 // Source Licenses. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef _LIBCPP_EXPERIMENTAL_STRING 12 #define _LIBCPP_EXPERIMENTAL_STRING 13 /* 14 experimental/string synopsis 15 16 // C++1z 17 namespace std { 18 namespace experimental { 19 inline namespace fundamentals_v1 { 20 namespace pmr { 21 22 // basic_string using polymorphic allocator in namespace pmr 23 template <class charT, class traits = char_traits<charT>> 24 using basic_string = 25 std::basic_string<charT, traits, polymorphic_allocator<charT>>; 26 27 // basic_string typedef names using polymorphic allocator in namespace 28 // std::experimental::pmr 29 typedef basic_string<char> string; 30 typedef basic_string<char16_t> u16string; 31 typedef basic_string<char32_t> u32string; 32 typedef basic_string<wchar_t> wstring; 33 34 } // namespace pmr 35 } // namespace fundamentals_v1 36 } // namespace experimental 37 } // namespace std 38 39 */ 40 41 #include <experimental/__config> 42 #include <string> 43 #include <experimental/memory_resource> 44 45 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 46 #pragma GCC system_header 47 #endif 48 49 _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR 50 51 template <class _CharT, class _Traits = char_traits<_CharT>> 52 using basic_string = 53 _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>; 54 55 typedef basic_string<char> string; 56 typedef basic_string<char16_t> u16string; 57 typedef basic_string<char32_t> u32string; 58 typedef basic_string<wchar_t> wstring; 59 60 _LIBCPP_END_NAMESPACE_LFTS_PMR 61 62 #endif /* _LIBCPP_EXPERIMENTAL_STRING */ 63