15f757f3fSDimitry Andric// -*- C++ -*- 25f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 35f757f3fSDimitry Andric// 45f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 55f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 65f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 75f757f3fSDimitry Andric// 85f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 95f757f3fSDimitry Andric 105f757f3fSDimitry Andric// WARNING, this entire header is generated by 115f757f3fSDimitry Andric// utils/generate_libcxx_cppm_in.py 125f757f3fSDimitry Andric// DO NOT MODIFY! 135f757f3fSDimitry Andric 145f757f3fSDimitry Andricmodule; 155f757f3fSDimitry Andric 165f757f3fSDimitry Andric#include <__config> 175f757f3fSDimitry Andric 185f757f3fSDimitry Andric// The headers of Table 24: C++ library headers [tab:headers.cpp] 195f757f3fSDimitry Andric// and the headers of Table 25: C++ headers for C library facilities [tab:headers.cpp.c] 205f757f3fSDimitry Andric#include <algorithm> 215f757f3fSDimitry Andric#include <any> 225f757f3fSDimitry Andric#include <array> 235f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER) 245f757f3fSDimitry Andric# include <atomic> 255f757f3fSDimitry Andric#endif 265f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 275f757f3fSDimitry Andric# include <barrier> 285f757f3fSDimitry Andric#endif 295f757f3fSDimitry Andric#include <bit> 305f757f3fSDimitry Andric#include <bitset> 315f757f3fSDimitry Andric#include <cassert> 325f757f3fSDimitry Andric#include <cctype> 335f757f3fSDimitry Andric#include <cerrno> 345f757f3fSDimitry Andric#include <cfenv> 355f757f3fSDimitry Andric#include <cfloat> 365f757f3fSDimitry Andric#include <charconv> 375f757f3fSDimitry Andric#include <chrono> 385f757f3fSDimitry Andric#include <cinttypes> 395f757f3fSDimitry Andric#include <climits> 405f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 415f757f3fSDimitry Andric# include <clocale> 425f757f3fSDimitry Andric#endif 435f757f3fSDimitry Andric#include <cmath> 445f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 455f757f3fSDimitry Andric# include <codecvt> 465f757f3fSDimitry Andric#endif 475f757f3fSDimitry Andric#include <compare> 485f757f3fSDimitry Andric#include <complex> 495f757f3fSDimitry Andric#include <concepts> 505f757f3fSDimitry Andric#include <condition_variable> 515f757f3fSDimitry Andric#include <coroutine> 525f757f3fSDimitry Andric#include <csetjmp> 535f757f3fSDimitry Andric#include <csignal> 545f757f3fSDimitry Andric#include <cstdarg> 555f757f3fSDimitry Andric#include <cstddef> 565f757f3fSDimitry Andric#include <cstdint> 575f757f3fSDimitry Andric#include <cstdio> 585f757f3fSDimitry Andric#include <cstdlib> 595f757f3fSDimitry Andric#include <cstring> 605f757f3fSDimitry Andric#include <ctime> 615f757f3fSDimitry Andric#include <cuchar> 625f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) 635f757f3fSDimitry Andric# include <cwchar> 645f757f3fSDimitry Andric#endif 655f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) 665f757f3fSDimitry Andric# include <cwctype> 675f757f3fSDimitry Andric#endif 685f757f3fSDimitry Andric#include <deque> 695f757f3fSDimitry Andric#include <exception> 705f757f3fSDimitry Andric#include <execution> 715f757f3fSDimitry Andric#include <expected> 725f757f3fSDimitry Andric#include <filesystem> 735f757f3fSDimitry Andric#include <format> 745f757f3fSDimitry Andric#include <forward_list> 755f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 765f757f3fSDimitry Andric# include <fstream> 775f757f3fSDimitry Andric#endif 785f757f3fSDimitry Andric#include <functional> 795f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 805f757f3fSDimitry Andric# include <future> 815f757f3fSDimitry Andric#endif 825f757f3fSDimitry Andric#include <initializer_list> 835f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 845f757f3fSDimitry Andric# include <iomanip> 855f757f3fSDimitry Andric#endif 865f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 875f757f3fSDimitry Andric# include <ios> 885f757f3fSDimitry Andric#endif 895f757f3fSDimitry Andric#include <iosfwd> 905f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 915f757f3fSDimitry Andric# include <iostream> 925f757f3fSDimitry Andric#endif 935f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 945f757f3fSDimitry Andric# include <istream> 955f757f3fSDimitry Andric#endif 965f757f3fSDimitry Andric#include <iterator> 975f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 985f757f3fSDimitry Andric# include <latch> 995f757f3fSDimitry Andric#endif 1005f757f3fSDimitry Andric#include <limits> 1015f757f3fSDimitry Andric#include <list> 1025f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1035f757f3fSDimitry Andric# include <locale> 1045f757f3fSDimitry Andric#endif 1055f757f3fSDimitry Andric#include <map> 1065f757f3fSDimitry Andric#include <mdspan> 1075f757f3fSDimitry Andric#include <memory> 1085f757f3fSDimitry Andric#include <memory_resource> 1095f757f3fSDimitry Andric#include <mutex> 1105f757f3fSDimitry Andric#include <new> 1115f757f3fSDimitry Andric#include <numbers> 1125f757f3fSDimitry Andric#include <numeric> 1135f757f3fSDimitry Andric#include <optional> 1145f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1155f757f3fSDimitry Andric# include <ostream> 1165f757f3fSDimitry Andric#endif 1175f757f3fSDimitry Andric#include <print> 1185f757f3fSDimitry Andric#include <queue> 1195f757f3fSDimitry Andric#include <random> 1205f757f3fSDimitry Andric#include <ranges> 1215f757f3fSDimitry Andric#include <ratio> 1225f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1235f757f3fSDimitry Andric# include <regex> 1245f757f3fSDimitry Andric#endif 1255f757f3fSDimitry Andric#include <scoped_allocator> 1265f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 1275f757f3fSDimitry Andric# include <semaphore> 1285f757f3fSDimitry Andric#endif 1295f757f3fSDimitry Andric#include <set> 1305f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 1315f757f3fSDimitry Andric# include <shared_mutex> 1325f757f3fSDimitry Andric#endif 1335f757f3fSDimitry Andric#include <source_location> 1345f757f3fSDimitry Andric#include <span> 1355f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1365f757f3fSDimitry Andric# include <sstream> 1375f757f3fSDimitry Andric#endif 1385f757f3fSDimitry Andric#include <stack> 1395f757f3fSDimitry Andric#include <stdexcept> 1405f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 1415f757f3fSDimitry Andric# include <stop_token> 1425f757f3fSDimitry Andric#endif 1435f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1445f757f3fSDimitry Andric# include <streambuf> 1455f757f3fSDimitry Andric#endif 1465f757f3fSDimitry Andric#include <string> 1475f757f3fSDimitry Andric#include <string_view> 1485f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1495f757f3fSDimitry Andric# include <strstream> 1505f757f3fSDimitry Andric#endif 1515f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) 1525f757f3fSDimitry Andric# include <syncstream> 1535f757f3fSDimitry Andric#endif 1545f757f3fSDimitry Andric#include <system_error> 1555f757f3fSDimitry Andric#if !defined(_LIBCPP_HAS_NO_THREADS) 1565f757f3fSDimitry Andric# include <thread> 1575f757f3fSDimitry Andric#endif 1585f757f3fSDimitry Andric#include <tuple> 1595f757f3fSDimitry Andric#include <type_traits> 1605f757f3fSDimitry Andric#include <typeindex> 1615f757f3fSDimitry Andric#include <typeinfo> 1625f757f3fSDimitry Andric#include <unordered_map> 1635f757f3fSDimitry Andric#include <unordered_set> 1645f757f3fSDimitry Andric#include <utility> 1655f757f3fSDimitry Andric#include <valarray> 1665f757f3fSDimitry Andric#include <variant> 1675f757f3fSDimitry Andric#include <vector> 1685f757f3fSDimitry Andric#include <version> 1695f757f3fSDimitry Andric 1705f757f3fSDimitry Andric// *** Headers not yet available *** 171*0fca6ea1SDimitry Andric// 172*0fca6ea1SDimitry Andric// This validation is mainly to catch when a new header is added but adding the 173*0fca6ea1SDimitry Andric// corresponding .inc file is forgotten. However, the check based on __has_include 174*0fca6ea1SDimitry Andric// alone doesn't work on Windows because the Windows SDK is on the include path, 175*0fca6ea1SDimitry Andric// and that means the MSVC STL headers can be found as well, tricking __has_include 176*0fca6ea1SDimitry Andric// into thinking that libc++ provides the header. 177*0fca6ea1SDimitry Andric// 178*0fca6ea1SDimitry Andric#ifndef _WIN32 1795f757f3fSDimitry Andric# if __has_include(<debugging>) 1805f757f3fSDimitry Andric# error "please update the header information for <debugging> in headers_not_available in utils/libcxx/header_information.py" 1815f757f3fSDimitry Andric# endif // __has_include(<debugging>) 1825f757f3fSDimitry Andric# if __has_include(<flat_map>) 1835f757f3fSDimitry Andric# error "please update the header information for <flat_map> in headers_not_available in utils/libcxx/header_information.py" 1845f757f3fSDimitry Andric# endif // __has_include(<flat_map>) 1855f757f3fSDimitry Andric# if __has_include(<flat_set>) 1865f757f3fSDimitry Andric# error "please update the header information for <flat_set> in headers_not_available in utils/libcxx/header_information.py" 1875f757f3fSDimitry Andric# endif // __has_include(<flat_set>) 1885f757f3fSDimitry Andric# if __has_include(<generator>) 1895f757f3fSDimitry Andric# error "please update the header information for <generator> in headers_not_available in utils/libcxx/header_information.py" 1905f757f3fSDimitry Andric# endif // __has_include(<generator>) 1915f757f3fSDimitry Andric# if __has_include(<hazard_pointer>) 1925f757f3fSDimitry Andric# error "please update the header information for <hazard_pointer> in headers_not_available in utils/libcxx/header_information.py" 1935f757f3fSDimitry Andric# endif // __has_include(<hazard_pointer>) 194*0fca6ea1SDimitry Andric# if __has_include(<inplace_vector>) 195*0fca6ea1SDimitry Andric# error "please update the header information for <inplace_vector> in headers_not_available in utils/libcxx/header_information.py" 196*0fca6ea1SDimitry Andric# endif // __has_include(<inplace_vector>) 1975f757f3fSDimitry Andric# if __has_include(<linalg>) 1985f757f3fSDimitry Andric# error "please update the header information for <linalg> in headers_not_available in utils/libcxx/header_information.py" 1995f757f3fSDimitry Andric# endif // __has_include(<linalg>) 2005f757f3fSDimitry Andric# if __has_include(<rcu>) 2015f757f3fSDimitry Andric# error "please update the header information for <rcu> in headers_not_available in utils/libcxx/header_information.py" 2025f757f3fSDimitry Andric# endif // __has_include(<rcu>) 2035f757f3fSDimitry Andric# if __has_include(<spanstream>) 2045f757f3fSDimitry Andric# error "please update the header information for <spanstream> in headers_not_available in utils/libcxx/header_information.py" 2055f757f3fSDimitry Andric# endif // __has_include(<spanstream>) 2065f757f3fSDimitry Andric# if __has_include(<stacktrace>) 2075f757f3fSDimitry Andric# error "please update the header information for <stacktrace> in headers_not_available in utils/libcxx/header_information.py" 2085f757f3fSDimitry Andric# endif // __has_include(<stacktrace>) 2095f757f3fSDimitry Andric# if __has_include(<stdfloat>) 2105f757f3fSDimitry Andric# error "please update the header information for <stdfloat> in headers_not_available in utils/libcxx/header_information.py" 2115f757f3fSDimitry Andric# endif // __has_include(<stdfloat>) 2125f757f3fSDimitry Andric# if __has_include(<text_encoding>) 2135f757f3fSDimitry Andric# error "please update the header information for <text_encoding> in headers_not_available in utils/libcxx/header_information.py" 2145f757f3fSDimitry Andric# endif // __has_include(<text_encoding>) 215*0fca6ea1SDimitry Andric#endif // _WIN32 2165f757f3fSDimitry Andric 2175f757f3fSDimitry Andricexport module std; 2185f757f3fSDimitry Andric 2197a6dacacSDimitry Andric 2205f757f3fSDimitry Andric@LIBCXX_MODULE_STD_INCLUDE_SOURCES@ 221