diff options
Diffstat (limited to 'libcxx/modules/std/string.cppm')
| -rw-r--r-- | libcxx/modules/std/string.cppm | 85 | 
1 files changed, 85 insertions, 0 deletions
diff --git a/libcxx/modules/std/string.cppm b/libcxx/modules/std/string.cppm new file mode 100644 index 000000000000..9696d58c7a16 --- /dev/null +++ b/libcxx/modules/std/string.cppm @@ -0,0 +1,85 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +module; +#include <string> + +export module std:string; +export namespace std { +  // [char.traits], character traits +  using std::char_traits; + +  // [basic.string], basic_string +  using std::basic_string; + +  using std::operator+; +  using std::operator==; +  using std::operator<=>; + +  // [string.special], swap +  using std::swap; + +  // [string.io], inserters and extractors +  using std::operator>>; +  using std::operator<<; +  using std::getline; + +  // [string.erasure], erasure +  using std::erase; +  using std::erase_if; + +  // basic_string typedef-names +  using std::string; +  using std::u16string; +  using std::u32string; +  using std::u8string; +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +  using std::wstring; +#endif + +  // [string.conversions], numeric conversions +  using std::stod; +  using std::stof; +  using std::stoi; +  using std::stol; +  using std::stold; +  using std::stoll; +  using std::stoul; +  using std::stoull; +  using std::to_string; +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +  using std::to_wstring; +#endif + +  namespace pmr { +    using std::pmr::basic_string; +    using std::pmr::string; +    using std::pmr::u16string; +    using std::pmr::u32string; +    using std::pmr::u8string; +#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS +    using std::pmr::wstring; +#endif +  } // namespace pmr + +  // [basic.string.hash], hash support +  using std::hash; + +  // TODO MODULES is this a bug? +#if 1 +  using std::operator""s; +#else +  inline namespace literals { +    inline namespace string_literals { +      // [basic.string.literals], suffix for basic_string literals +      using std::literals::string_literals::operator""s; +    } // namespace string_literals +  }   // namespace literals +#endif +} // namespace std  | 
