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