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
16namespace std {
17namespace experimental {
18inline namespace fundamentals_v1 {
19namespace 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
50template <class _CharT, class _Traits = char_traits<_CharT>>
51using basic_string =
52    _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;
53
54typedef basic_string<char> string;
55typedef basic_string<char16_t> u16string;
56typedef basic_string<char32_t> u32string;
57typedef basic_string<wchar_t> wstring;
58
59_LIBCPP_END_NAMESPACE_LFTS_PMR
60
61#endif /* _LIBCPP_EXPERIMENTAL_STRING */
62