xref: /openbsd-src/gnu/llvm/libcxx/include/experimental/string (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
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