146035553Spatrick// -*- C++ -*- 2*4bdff4beSrobert//===----------------------------------------------------------------------===// 346035553Spatrick// 446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 546035553Spatrick// See https://llvm.org/LICENSE.txt for license information. 646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 746035553Spatrick// 846035553Spatrick//===----------------------------------------------------------------------===// 946035553Spatrick 1046035553Spatrick#ifndef _LIBCPP_EXPERIMENTAL_STRING 1146035553Spatrick#define _LIBCPP_EXPERIMENTAL_STRING 12*4bdff4beSrobert 1346035553Spatrick/* 1446035553Spatrick experimental/string synopsis 1546035553Spatrick 1646035553Spatrick// C++1z 1746035553Spatricknamespace std { 1846035553Spatricknamespace experimental { 1946035553Spatrickinline namespace fundamentals_v1 { 2046035553Spatricknamespace pmr { 2146035553Spatrick 2246035553Spatrick // basic_string using polymorphic allocator in namespace pmr 2346035553Spatrick template <class charT, class traits = char_traits<charT>> 2446035553Spatrick using basic_string = 2546035553Spatrick std::basic_string<charT, traits, polymorphic_allocator<charT>>; 2646035553Spatrick 2746035553Spatrick // basic_string typedef names using polymorphic allocator in namespace 2846035553Spatrick // std::experimental::pmr 2946035553Spatrick typedef basic_string<char> string; 3046035553Spatrick typedef basic_string<char16_t> u16string; 3146035553Spatrick typedef basic_string<char32_t> u32string; 3246035553Spatrick typedef basic_string<wchar_t> wstring; 3346035553Spatrick 3446035553Spatrick} // namespace pmr 3546035553Spatrick} // namespace fundamentals_v1 3646035553Spatrick} // namespace experimental 3746035553Spatrick} // namespace std 3846035553Spatrick 3946035553Spatrick */ 4046035553Spatrick 41*4bdff4beSrobert#include <__assert> // all public C++ headers provide the assertion handler 4246035553Spatrick#include <experimental/__config> 4346035553Spatrick#include <experimental/memory_resource> 44*4bdff4beSrobert#include <string> 4546035553Spatrick 4646035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 4746035553Spatrick# pragma GCC system_header 4846035553Spatrick#endif 4946035553Spatrick 5046035553Spatrick_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR 5146035553Spatrick 52*4bdff4beSrobert#ifndef _LIBCPP_CXX03_LANG 53*4bdff4beSrobert 54*4bdff4beSrobert_LIBCPP_SUPPRESS_DEPRECATED_PUSH 55*4bdff4beSrobert 5646035553Spatricktemplate <class _CharT, class _Traits = char_traits<_CharT>> 5746035553Spatrickusing basic_string = 5846035553Spatrick _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>; 5946035553Spatrick 60*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("string") typedef basic_string<char> string; 61*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("u16string") typedef basic_string<char16_t> u16string; 62*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("u32string") typedef basic_string<char32_t> u32string; 63*4bdff4beSrobert#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS 64*4bdff4beSrobert_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wstring") typedef basic_string<wchar_t> wstring; 65*4bdff4beSrobert#endif 66*4bdff4beSrobert 67*4bdff4beSrobert_LIBCPP_SUPPRESS_DEPRECATED_POP 68*4bdff4beSrobert 69*4bdff4beSrobert#endif // _LIBCPP_CXX03_LANG 7046035553Spatrick 7146035553Spatrick_LIBCPP_END_NAMESPACE_LFTS_PMR 7246035553Spatrick 7346035553Spatrick#endif /* _LIBCPP_EXPERIMENTAL_STRING */ 74