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
10// WARNING, this entire header is generated by
11// utils/generate_libcxx_cppm_in.py
12// DO NOT MODIFY!
13
14module;
15
16#include <__config>
17
18// The headers of Table 24: C++ library headers [tab:headers.cpp]
19// and the headers of Table 25: C++ headers for C library facilities [tab:headers.cpp.c]
20#include <algorithm>
21#include <any>
22#include <array>
23#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
24#  include <atomic>
25#endif
26#if !defined(_LIBCPP_HAS_NO_THREADS)
27#  include <barrier>
28#endif
29#include <bit>
30#include <bitset>
31#include <cassert>
32#include <cctype>
33#include <cerrno>
34#include <cfenv>
35#include <cfloat>
36#include <charconv>
37#include <chrono>
38#include <cinttypes>
39#include <climits>
40#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
41#  include <clocale>
42#endif
43#include <cmath>
44#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
45#  include <codecvt>
46#endif
47#include <compare>
48#include <complex>
49#include <concepts>
50#include <condition_variable>
51#include <coroutine>
52#include <csetjmp>
53#include <csignal>
54#include <cstdarg>
55#include <cstddef>
56#include <cstdint>
57#include <cstdio>
58#include <cstdlib>
59#include <cstring>
60#include <ctime>
61#include <cuchar>
62#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
63#  include <cwchar>
64#endif
65#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
66#  include <cwctype>
67#endif
68#include <deque>
69#include <exception>
70#include <execution>
71#include <expected>
72#include <filesystem>
73#include <format>
74#include <forward_list>
75#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
76#  include <fstream>
77#endif
78#include <functional>
79#if !defined(_LIBCPP_HAS_NO_THREADS)
80#  include <future>
81#endif
82#include <initializer_list>
83#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
84#  include <iomanip>
85#endif
86#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
87#  include <ios>
88#endif
89#include <iosfwd>
90#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
91#  include <iostream>
92#endif
93#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
94#  include <istream>
95#endif
96#include <iterator>
97#if !defined(_LIBCPP_HAS_NO_THREADS)
98#  include <latch>
99#endif
100#include <limits>
101#include <list>
102#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
103#  include <locale>
104#endif
105#include <map>
106#include <mdspan>
107#include <memory>
108#include <memory_resource>
109#include <mutex>
110#include <new>
111#include <numbers>
112#include <numeric>
113#include <optional>
114#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
115#  include <ostream>
116#endif
117#include <print>
118#include <queue>
119#include <random>
120#include <ranges>
121#include <ratio>
122#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
123#  include <regex>
124#endif
125#include <scoped_allocator>
126#if !defined(_LIBCPP_HAS_NO_THREADS)
127#  include <semaphore>
128#endif
129#include <set>
130#if !defined(_LIBCPP_HAS_NO_THREADS)
131#  include <shared_mutex>
132#endif
133#include <source_location>
134#include <span>
135#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
136#  include <sstream>
137#endif
138#include <stack>
139#include <stdexcept>
140#if !defined(_LIBCPP_HAS_NO_THREADS)
141#  include <stop_token>
142#endif
143#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
144#  include <streambuf>
145#endif
146#include <string>
147#include <string_view>
148#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
149#  include <strstream>
150#endif
151#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
152#  include <syncstream>
153#endif
154#include <system_error>
155#if !defined(_LIBCPP_HAS_NO_THREADS)
156#  include <thread>
157#endif
158#include <tuple>
159#include <type_traits>
160#include <typeindex>
161#include <typeinfo>
162#include <unordered_map>
163#include <unordered_set>
164#include <utility>
165#include <valarray>
166#include <variant>
167#include <vector>
168#include <version>
169
170// *** Headers not yet available ***
171//
172// This validation is mainly to catch when a new header is added but adding the
173// corresponding .inc file is forgotten. However, the check based on __has_include
174// alone doesn't work on Windows because the Windows SDK is on the include path,
175// and that means the MSVC STL headers can be found as well, tricking __has_include
176// into thinking that libc++ provides the header.
177//
178#ifndef _WIN32
179#  if __has_include(<debugging>)
180#    error "please update the header information for <debugging> in headers_not_available in utils/libcxx/header_information.py"
181#  endif // __has_include(<debugging>)
182#  if __has_include(<flat_map>)
183#    error "please update the header information for <flat_map> in headers_not_available in utils/libcxx/header_information.py"
184#  endif // __has_include(<flat_map>)
185#  if __has_include(<flat_set>)
186#    error "please update the header information for <flat_set> in headers_not_available in utils/libcxx/header_information.py"
187#  endif // __has_include(<flat_set>)
188#  if __has_include(<generator>)
189#    error "please update the header information for <generator> in headers_not_available in utils/libcxx/header_information.py"
190#  endif // __has_include(<generator>)
191#  if __has_include(<hazard_pointer>)
192#    error "please update the header information for <hazard_pointer> in headers_not_available in utils/libcxx/header_information.py"
193#  endif // __has_include(<hazard_pointer>)
194#  if __has_include(<linalg>)
195#    error "please update the header information for <linalg> in headers_not_available in utils/libcxx/header_information.py"
196#  endif // __has_include(<linalg>)
197#  if __has_include(<rcu>)
198#    error "please update the header information for <rcu> in headers_not_available in utils/libcxx/header_information.py"
199#  endif // __has_include(<rcu>)
200#  if __has_include(<spanstream>)
201#    error "please update the header information for <spanstream> in headers_not_available in utils/libcxx/header_information.py"
202#  endif // __has_include(<spanstream>)
203#  if __has_include(<stacktrace>)
204#    error "please update the header information for <stacktrace> in headers_not_available in utils/libcxx/header_information.py"
205#  endif // __has_include(<stacktrace>)
206#  if __has_include(<stdfloat>)
207#    error "please update the header information for <stdfloat> in headers_not_available in utils/libcxx/header_information.py"
208#  endif // __has_include(<stdfloat>)
209#  if __has_include(<text_encoding>)
210#    error "please update the header information for <text_encoding> in headers_not_available in utils/libcxx/header_information.py"
211#  endif // __has_include(<text_encoding>)
212#endif // _WIN32
213
214export module std;
215
216
217#include "std/algorithm.inc"
218#include "std/any.inc"
219#include "std/array.inc"
220#include "std/atomic.inc"
221#include "std/barrier.inc"
222#include "std/bit.inc"
223#include "std/bitset.inc"
224#include "std/cassert.inc"
225#include "std/cctype.inc"
226#include "std/cerrno.inc"
227#include "std/cfenv.inc"
228#include "std/cfloat.inc"
229#include "std/charconv.inc"
230#include "std/chrono.inc"
231#include "std/cinttypes.inc"
232#include "std/climits.inc"
233#include "std/clocale.inc"
234#include "std/cmath.inc"
235#include "std/codecvt.inc"
236#include "std/compare.inc"
237#include "std/complex.inc"
238#include "std/concepts.inc"
239#include "std/condition_variable.inc"
240#include "std/coroutine.inc"
241#include "std/csetjmp.inc"
242#include "std/csignal.inc"
243#include "std/cstdarg.inc"
244#include "std/cstddef.inc"
245#include "std/cstdint.inc"
246#include "std/cstdio.inc"
247#include "std/cstdlib.inc"
248#include "std/cstring.inc"
249#include "std/ctime.inc"
250#include "std/cuchar.inc"
251#include "std/cwchar.inc"
252#include "std/cwctype.inc"
253#include "std/deque.inc"
254#include "std/exception.inc"
255#include "std/execution.inc"
256#include "std/expected.inc"
257#include "std/filesystem.inc"
258#include "std/flat_map.inc"
259#include "std/flat_set.inc"
260#include "std/format.inc"
261#include "std/forward_list.inc"
262#include "std/fstream.inc"
263#include "std/functional.inc"
264#include "std/future.inc"
265#include "std/generator.inc"
266#include "std/hazard_pointer.inc"
267#include "std/initializer_list.inc"
268#include "std/iomanip.inc"
269#include "std/ios.inc"
270#include "std/iosfwd.inc"
271#include "std/iostream.inc"
272#include "std/istream.inc"
273#include "std/iterator.inc"
274#include "std/latch.inc"
275#include "std/limits.inc"
276#include "std/list.inc"
277#include "std/locale.inc"
278#include "std/map.inc"
279#include "std/mdspan.inc"
280#include "std/memory.inc"
281#include "std/memory_resource.inc"
282#include "std/mutex.inc"
283#include "std/new.inc"
284#include "std/numbers.inc"
285#include "std/numeric.inc"
286#include "std/optional.inc"
287#include "std/ostream.inc"
288#include "std/print.inc"
289#include "std/queue.inc"
290#include "std/random.inc"
291#include "std/ranges.inc"
292#include "std/ratio.inc"
293#include "std/rcu.inc"
294#include "std/regex.inc"
295#include "std/scoped_allocator.inc"
296#include "std/semaphore.inc"
297#include "std/set.inc"
298#include "std/shared_mutex.inc"
299#include "std/source_location.inc"
300#include "std/span.inc"
301#include "std/spanstream.inc"
302#include "std/sstream.inc"
303#include "std/stack.inc"
304#include "std/stacktrace.inc"
305#include "std/stdexcept.inc"
306#include "std/stdfloat.inc"
307#include "std/stop_token.inc"
308#include "std/streambuf.inc"
309#include "std/string.inc"
310#include "std/string_view.inc"
311#include "std/strstream.inc"
312#include "std/syncstream.inc"
313#include "std/system_error.inc"
314#include "std/text_encoding.inc"
315#include "std/thread.inc"
316#include "std/tuple.inc"
317#include "std/type_traits.inc"
318#include "std/typeindex.inc"
319#include "std/typeinfo.inc"
320#include "std/unordered_map.inc"
321#include "std/unordered_set.inc"
322#include "std/utility.inc"
323#include "std/valarray.inc"
324#include "std/variant.inc"
325#include "std/vector.inc"
326#include "std/version.inc"
327
328