xref: /openbsd-src/gnu/llvm/libcxx/include/experimental/string (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
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/*
14    experimental/string synopsis
15
16// C++1z
17namespace std {
18namespace experimental {
19inline namespace fundamentals_v1 {
20namespace pmr {
21
22  // basic_string using polymorphic allocator in namespace pmr
23  template <class charT, class traits = char_traits<charT>>
24   using basic_string =
25     std::basic_string<charT, traits, polymorphic_allocator<charT>>;
26
27  // basic_string typedef names using polymorphic allocator in namespace
28  // std::experimental::pmr
29  typedef basic_string<char> string;
30  typedef basic_string<char16_t> u16string;
31  typedef basic_string<char32_t> u32string;
32  typedef basic_string<wchar_t> wstring;
33
34} // namespace pmr
35} // namespace fundamentals_v1
36} // namespace experimental
37} // namespace std
38
39 */
40
41#include <__assert> // all public C++ headers provide the assertion handler
42#include <experimental/__config>
43#include <experimental/memory_resource>
44#include <string>
45
46#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
47#  pragma GCC system_header
48#endif
49
50_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
51
52#ifndef _LIBCPP_CXX03_LANG
53
54_LIBCPP_SUPPRESS_DEPRECATED_PUSH
55
56template <class _CharT, class _Traits = char_traits<_CharT>>
57using basic_string =
58    _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;
59
60_LIBCPP_DEPCREATED_MEMORY_RESOURCE("string") typedef basic_string<char> string;
61_LIBCPP_DEPCREATED_MEMORY_RESOURCE("u16string") typedef basic_string<char16_t> u16string;
62_LIBCPP_DEPCREATED_MEMORY_RESOURCE("u32string") typedef basic_string<char32_t> u32string;
63#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
64_LIBCPP_DEPCREATED_MEMORY_RESOURCE("wstring") typedef basic_string<wchar_t> wstring;
65#endif
66
67_LIBCPP_SUPPRESS_DEPRECATED_POP
68
69#endif // _LIBCPP_CXX03_LANG
70
71_LIBCPP_END_NAMESPACE_LFTS_PMR
72
73#endif /* _LIBCPP_EXPERIMENTAL_STRING */
74