string 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. #ifndef _LIBCPP_EXPERIMENTAL_STRING
  10. #define _LIBCPP_EXPERIMENTAL_STRING
  11. /*
  12. experimental/string synopsis
  13. // C++1z
  14. namespace std {
  15. namespace experimental {
  16. inline namespace fundamentals_v1 {
  17. namespace pmr {
  18. // basic_string using polymorphic allocator in namespace pmr
  19. template <class charT, class traits = char_traits<charT>>
  20. using basic_string =
  21. std::basic_string<charT, traits, polymorphic_allocator<charT>>;
  22. // basic_string typedef names using polymorphic allocator in namespace
  23. // std::experimental::pmr
  24. typedef basic_string<char> string;
  25. typedef basic_string<char16_t> u16string;
  26. typedef basic_string<char32_t> u32string;
  27. typedef basic_string<wchar_t> wstring;
  28. } // namespace pmr
  29. } // namespace fundamentals_v1
  30. } // namespace experimental
  31. } // namespace std
  32. */
  33. #include <__assert> // all public C++ headers provide the assertion handler
  34. #include <experimental/__config>
  35. #include <experimental/memory_resource>
  36. #include <string>
  37. #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
  38. # pragma GCC system_header
  39. #endif
  40. _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
  41. #ifndef _LIBCPP_CXX03_LANG
  42. _LIBCPP_SUPPRESS_DEPRECATED_PUSH
  43. template <class _CharT, class _Traits = char_traits<_CharT>>
  44. using basic_string =
  45. _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;
  46. _LIBCPP_DEPCREATED_MEMORY_RESOURCE("string") typedef basic_string<char> string;
  47. _LIBCPP_DEPCREATED_MEMORY_RESOURCE("u16string") typedef basic_string<char16_t> u16string;
  48. _LIBCPP_DEPCREATED_MEMORY_RESOURCE("u32string") typedef basic_string<char32_t> u32string;
  49. #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
  50. _LIBCPP_DEPCREATED_MEMORY_RESOURCE("wstring") typedef basic_string<wchar_t> wstring;
  51. #endif
  52. _LIBCPP_SUPPRESS_DEPRECATED_POP
  53. #endif // _LIBCPP_CXX03_LANG
  54. _LIBCPP_END_NAMESPACE_LFTS_PMR
  55. #endif /* _LIBCPP_EXPERIMENTAL_STRING */