xref: /llvm-project/libcxx/modules/std.cppm.in (revision c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c)
14d4c70c9SMark de Wever// -*- C++ -*-
24d4c70c9SMark de Wever//===----------------------------------------------------------------------===//
34d4c70c9SMark de Wever//
44d4c70c9SMark de Wever// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
54d4c70c9SMark de Wever// See https://llvm.org/LICENSE.txt for license information.
64d4c70c9SMark de Wever// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
74d4c70c9SMark de Wever//
84d4c70c9SMark de Wever//===----------------------------------------------------------------------===//
94d4c70c9SMark de Wever
1041161aebSMark de Wever// WARNING, this entire header is generated by
11600462a2SMark de Wever// utils/generate_libcxx_cppm_in.py
1241161aebSMark de Wever// DO NOT MODIFY!
1341161aebSMark de Wever
144d4c70c9SMark de Wevermodule;
154d4c70c9SMark de Wever
164d4c70c9SMark de Wever#include <__config>
174d4c70c9SMark de Wever
184d4c70c9SMark de Wever// The headers of Table 24: C++ library headers [tab:headers.cpp]
194d4c70c9SMark de Wever// and the headers of Table 25: C++ headers for C library facilities [tab:headers.cpp.c]
204d4c70c9SMark de Wever#include <algorithm>
214d4c70c9SMark de Wever#include <any>
224d4c70c9SMark de Wever#include <array>
23ba87515fSNikolas Klauser#if _LIBCPP_HAS_ATOMIC_HEADER
244d4c70c9SMark de Wever#  include <atomic>
2541161aebSMark de Wever#endif
264d4c70c9SMark de Wever#include <barrier>
274d4c70c9SMark de Wever#include <bit>
284d4c70c9SMark de Wever#include <bitset>
294d4c70c9SMark de Wever#include <cassert>
304d4c70c9SMark de Wever#include <cctype>
314d4c70c9SMark de Wever#include <cerrno>
324d4c70c9SMark de Wever#include <cfenv>
334d4c70c9SMark de Wever#include <cfloat>
344d4c70c9SMark de Wever#include <charconv>
354d4c70c9SMark de Wever#include <chrono>
364d4c70c9SMark de Wever#include <cinttypes>
374d4c70c9SMark de Wever#include <climits>
38*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
3941161aebSMark de Wever#  include <clocale>
4041161aebSMark de Wever#endif
414d4c70c9SMark de Wever#include <cmath>
42*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
4341161aebSMark de Wever#  include <codecvt>
4441161aebSMark de Wever#endif
454d4c70c9SMark de Wever#include <compare>
464d4c70c9SMark de Wever#include <complex>
474d4c70c9SMark de Wever#include <concepts>
484d4c70c9SMark de Wever#include <condition_variable>
494d4c70c9SMark de Wever#include <coroutine>
504d4c70c9SMark de Wever#include <csetjmp>
514d4c70c9SMark de Wever#include <csignal>
524d4c70c9SMark de Wever#include <cstdarg>
534d4c70c9SMark de Wever#include <cstddef>
544d4c70c9SMark de Wever#include <cstdint>
554d4c70c9SMark de Wever#include <cstdio>
564d4c70c9SMark de Wever#include <cstdlib>
574d4c70c9SMark de Wever#include <cstring>
584d4c70c9SMark de Wever#include <ctime>
594d4c70c9SMark de Wever#include <cuchar>
6041161aebSMark de Wever#include <cwchar>
6141161aebSMark de Wever#include <cwctype>
624d4c70c9SMark de Wever#include <deque>
634d4c70c9SMark de Wever#include <exception>
644d4c70c9SMark de Wever#include <execution>
654d4c70c9SMark de Wever#include <expected>
664d4c70c9SMark de Wever#include <filesystem>
670be1883cSHui#include <flat_map>
684d4c70c9SMark de Wever#include <format>
694d4c70c9SMark de Wever#include <forward_list>
70*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
7141161aebSMark de Wever#  include <fstream>
7241161aebSMark de Wever#endif
734d4c70c9SMark de Wever#include <functional>
744d4c70c9SMark de Wever#include <future>
754d4c70c9SMark de Wever#include <initializer_list>
76*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
7741161aebSMark de Wever#  include <iomanip>
7841161aebSMark de Wever#endif
79*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
8041161aebSMark de Wever#  include <ios>
8141161aebSMark de Wever#endif
824d4c70c9SMark de Wever#include <iosfwd>
83*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
8441161aebSMark de Wever#  include <iostream>
8541161aebSMark de Wever#endif
86*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
8741161aebSMark de Wever#  include <istream>
8841161aebSMark de Wever#endif
894d4c70c9SMark de Wever#include <iterator>
904d4c70c9SMark de Wever#include <latch>
914d4c70c9SMark de Wever#include <limits>
924d4c70c9SMark de Wever#include <list>
93*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
9441161aebSMark de Wever#  include <locale>
9541161aebSMark de Wever#endif
964d4c70c9SMark de Wever#include <map>
974d4c70c9SMark de Wever#include <mdspan>
984d4c70c9SMark de Wever#include <memory>
994d4c70c9SMark de Wever#include <memory_resource>
1004d4c70c9SMark de Wever#include <mutex>
1014d4c70c9SMark de Wever#include <new>
1024d4c70c9SMark de Wever#include <numbers>
1034d4c70c9SMark de Wever#include <numeric>
1044d4c70c9SMark de Wever#include <optional>
105*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
10641161aebSMark de Wever#  include <ostream>
10741161aebSMark de Wever#endif
1084d4c70c9SMark de Wever#include <print>
1094d4c70c9SMark de Wever#include <queue>
1104d4c70c9SMark de Wever#include <random>
1114d4c70c9SMark de Wever#include <ranges>
1124d4c70c9SMark de Wever#include <ratio>
113*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
11441161aebSMark de Wever#  include <regex>
11541161aebSMark de Wever#endif
1164d4c70c9SMark de Wever#include <scoped_allocator>
1174d4c70c9SMark de Wever#include <semaphore>
1184d4c70c9SMark de Wever#include <set>
1194d4c70c9SMark de Wever#include <shared_mutex>
1204d4c70c9SMark de Wever#include <source_location>
1214d4c70c9SMark de Wever#include <span>
122*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
12341161aebSMark de Wever#  include <sstream>
12441161aebSMark de Wever#endif
1254d4c70c9SMark de Wever#include <stack>
1264d4c70c9SMark de Wever#include <stdexcept>
1274d4c70c9SMark de Wever#include <stop_token>
128*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
12941161aebSMark de Wever#  include <streambuf>
13041161aebSMark de Wever#endif
1314d4c70c9SMark de Wever#include <string>
1324d4c70c9SMark de Wever#include <string_view>
133*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
13441161aebSMark de Wever#  include <strstream>
13541161aebSMark de Wever#endif
136*c6f3b7bcSNikolas Klauser#if _LIBCPP_HAS_LOCALIZATION
1377cc72a0aSMark de Wever#  include <syncstream>
1387cc72a0aSMark de Wever#endif
1394d4c70c9SMark de Wever#include <system_error>
1404d4c70c9SMark de Wever#include <thread>
1414d4c70c9SMark de Wever#include <tuple>
1424d4c70c9SMark de Wever#include <type_traits>
1434d4c70c9SMark de Wever#include <typeindex>
1444d4c70c9SMark de Wever#include <typeinfo>
1454d4c70c9SMark de Wever#include <unordered_map>
1464d4c70c9SMark de Wever#include <unordered_set>
1474d4c70c9SMark de Wever#include <utility>
1484d4c70c9SMark de Wever#include <valarray>
1494d4c70c9SMark de Wever#include <variant>
1504d4c70c9SMark de Wever#include <vector>
1514d4c70c9SMark de Wever#include <version>
1524d4c70c9SMark de Wever
1534d4c70c9SMark de Wever// *** Headers not yet available ***
1544bf9fa5fSMark de Wever//
155f66f44ebSMark de Wever// This validation is mainly to catch when a new header is added but adding the
156f66f44ebSMark de Wever// corresponding .inc file is forgotten. However, the check based on __has_include
157f66f44ebSMark de Wever// alone doesn't work on Windows because the Windows SDK is on the include path,
158f66f44ebSMark de Wever// and that means the MSVC STL headers can be found as well, tricking __has_include
159f66f44ebSMark de Wever// into thinking that libc++ provides the header.
1604bf9fa5fSMark de Wever//
1614bf9fa5fSMark de Wever#ifndef _WIN32
162f49ccca8SMark de Wever#  if __has_include(<debugging>)
163600462a2SMark de Wever#    error "please update the header information for <debugging> in headers_not_available in utils/libcxx/header_information.py"
164f49ccca8SMark de Wever#  endif // __has_include(<debugging>)
1654d4c70c9SMark de Wever#  if __has_include(<flat_set>)
166600462a2SMark de Wever#    error "please update the header information for <flat_set> in headers_not_available in utils/libcxx/header_information.py"
1674d4c70c9SMark de Wever#  endif // __has_include(<flat_set>)
16841161aebSMark de Wever#  if __has_include(<generator>)
169600462a2SMark de Wever#    error "please update the header information for <generator> in headers_not_available in utils/libcxx/header_information.py"
17041161aebSMark de Wever#  endif // __has_include(<generator>)
17141161aebSMark de Wever#  if __has_include(<hazard_pointer>)
172600462a2SMark de Wever#    error "please update the header information for <hazard_pointer> in headers_not_available in utils/libcxx/header_information.py"
17341161aebSMark de Wever#  endif // __has_include(<hazard_pointer>)
1742dadf8d7SMark de Wever#  if __has_include(<inplace_vector>)
1752dadf8d7SMark de Wever#    error "please update the header information for <inplace_vector> in headers_not_available in utils/libcxx/header_information.py"
1762dadf8d7SMark de Wever#  endif // __has_include(<inplace_vector>)
177f49ccca8SMark de Wever#  if __has_include(<linalg>)
178600462a2SMark de Wever#    error "please update the header information for <linalg> in headers_not_available in utils/libcxx/header_information.py"
179f49ccca8SMark de Wever#  endif // __has_include(<linalg>)
1804d4c70c9SMark de Wever#  if __has_include(<rcu>)
181600462a2SMark de Wever#    error "please update the header information for <rcu> in headers_not_available in utils/libcxx/header_information.py"
1824d4c70c9SMark de Wever#  endif // __has_include(<rcu>)
1834d4c70c9SMark de Wever#  if __has_include(<spanstream>)
184600462a2SMark de Wever#    error "please update the header information for <spanstream> in headers_not_available in utils/libcxx/header_information.py"
1854d4c70c9SMark de Wever#  endif // __has_include(<spanstream>)
1864d4c70c9SMark de Wever#  if __has_include(<stacktrace>)
187600462a2SMark de Wever#    error "please update the header information for <stacktrace> in headers_not_available in utils/libcxx/header_information.py"
1884d4c70c9SMark de Wever#  endif // __has_include(<stacktrace>)
1894d4c70c9SMark de Wever#  if __has_include(<stdfloat>)
190600462a2SMark de Wever#    error "please update the header information for <stdfloat> in headers_not_available in utils/libcxx/header_information.py"
1914d4c70c9SMark de Wever#  endif // __has_include(<stdfloat>)
1924d4c70c9SMark de Wever#  if __has_include(<text_encoding>)
193600462a2SMark de Wever#    error "please update the header information for <text_encoding> in headers_not_available in utils/libcxx/header_information.py"
1944d4c70c9SMark de Wever#  endif // __has_include(<text_encoding>)
1954bf9fa5fSMark de Wever#endif // _WIN32
1964d4c70c9SMark de Wever
1974d4c70c9SMark de Weverexport module std;
1984d4c70c9SMark de Wever
19904757337SMark de Wever
2004d4c70c9SMark de Wever@LIBCXX_MODULE_STD_INCLUDE_SOURCES@
201