1 // -*- C++ -*- 2 //===--------------------------- string ----------------------------------===// 3 // 4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5 // See https://llvm.org/LICENSE.txt for license information. 6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef _LIBCPP_EXPERIMENTAL_STRING 11 #define _LIBCPP_EXPERIMENTAL_STRING 12 /* 13 experimental/string synopsis 14 15 // C++1z 16 namespace std { 17 namespace experimental { 18 inline namespace fundamentals_v1 { 19 namespace pmr { 20 21 // basic_string using polymorphic allocator in namespace pmr 22 template <class charT, class traits = char_traits<charT>> 23 using basic_string = 24 std::basic_string<charT, traits, polymorphic_allocator<charT>>; 25 26 // basic_string typedef names using polymorphic allocator in namespace 27 // std::experimental::pmr 28 typedef basic_string<char> string; 29 typedef basic_string<char16_t> u16string; 30 typedef basic_string<char32_t> u32string; 31 typedef basic_string<wchar_t> wstring; 32 33 } // namespace pmr 34 } // namespace fundamentals_v1 35 } // namespace experimental 36 } // namespace std 37 38 */ 39 40 #include <experimental/__config> 41 #include <string> 42 #include <experimental/memory_resource> 43 44 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 45 #pragma GCC system_header 46 #endif 47 48 _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR 49 50 template <class _CharT, class _Traits = char_traits<_CharT>> 51 using basic_string = 52 _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>; 53 54 typedef basic_string<char> string; 55 typedef basic_string<char16_t> u16string; 56 typedef basic_string<char32_t> u32string; 57 typedef basic_string<wchar_t> wstring; 58 59 _LIBCPP_END_NAMESPACE_LFTS_PMR 60 61 #endif /* _LIBCPP_EXPERIMENTAL_STRING */ 62