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