1522a7f95SEric Fiselier// -*- C++ -*- 2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===// 3522a7f95SEric Fiselier// 457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information. 657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7522a7f95SEric Fiselier// 8522a7f95SEric Fiselier//===----------------------------------------------------------------------===// 9522a7f95SEric Fiselier 10522a7f95SEric Fiselier#ifndef _LIBCPP_EXPERIMENTAL_STRING 11522a7f95SEric Fiselier#define _LIBCPP_EXPERIMENTAL_STRING 12*385cc25aSLouis Dionne 13522a7f95SEric Fiselier/* 14522a7f95SEric Fiselier experimental/string synopsis 15522a7f95SEric Fiselier 16522a7f95SEric Fiselier// C++1z 17522a7f95SEric Fiseliernamespace std { 18522a7f95SEric Fiseliernamespace experimental { 19522a7f95SEric Fiselierinline namespace fundamentals_v1 { 20522a7f95SEric Fiseliernamespace pmr { 21522a7f95SEric Fiselier 22522a7f95SEric Fiselier // basic_string using polymorphic allocator in namespace pmr 23522a7f95SEric Fiselier template <class charT, class traits = char_traits<charT>> 24522a7f95SEric Fiselier using basic_string = 25522a7f95SEric Fiselier std::basic_string<charT, traits, polymorphic_allocator<charT>>; 26522a7f95SEric Fiselier 27522a7f95SEric Fiselier // basic_string typedef names using polymorphic allocator in namespace 28522a7f95SEric Fiselier // std::experimental::pmr 29522a7f95SEric Fiselier typedef basic_string<char> string; 30522a7f95SEric Fiselier typedef basic_string<char16_t> u16string; 31522a7f95SEric Fiselier typedef basic_string<char32_t> u32string; 32522a7f95SEric Fiselier typedef basic_string<wchar_t> wstring; 33522a7f95SEric Fiselier 34522a7f95SEric Fiselier} // namespace pmr 35522a7f95SEric Fiselier} // namespace fundamentals_v1 36522a7f95SEric Fiselier} // namespace experimental 37522a7f95SEric Fiselier} // namespace std 38522a7f95SEric Fiselier 39522a7f95SEric Fiselier */ 40522a7f95SEric Fiselier 41*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler 42522a7f95SEric Fiselier#include <experimental/__config> 43522a7f95SEric Fiselier#include <experimental/memory_resource> 444d81a46fSArthur O'Dwyer#include <string> 45522a7f95SEric Fiselier 46522a7f95SEric Fiselier#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 47522a7f95SEric Fiselier# pragma GCC system_header 48522a7f95SEric Fiselier#endif 49522a7f95SEric Fiselier 50522a7f95SEric Fiselier_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR 51522a7f95SEric Fiselier 52522a7f95SEric Fiseliertemplate <class _CharT, class _Traits = char_traits<_CharT>> 53522a7f95SEric Fiselierusing basic_string = 54522a7f95SEric Fiselier _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>; 55522a7f95SEric Fiselier 56522a7f95SEric Fiseliertypedef basic_string<char> string; 57522a7f95SEric Fiseliertypedef basic_string<char16_t> u16string; 58522a7f95SEric Fiseliertypedef basic_string<char32_t> u32string; 59f4c1258dSLouis Dionne#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS 60522a7f95SEric Fiseliertypedef basic_string<wchar_t> wstring; 61f4c1258dSLouis Dionne#endif 62522a7f95SEric Fiselier 63522a7f95SEric Fiselier_LIBCPP_END_NAMESPACE_LFTS_PMR 64522a7f95SEric Fiselier 65522a7f95SEric Fiselier#endif /* _LIBCPP_EXPERIMENTAL_STRING */ 66