// -*- 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
//
//===----------------------------------------------------------------------===//

// WARNING, this entire header is generated by
// utils/generate_std_clang_module_header.py
// DO NOT MODIFY!

// This header should not be directly included, it's exclusively to import all
// of the libc++ public clang modules for the `std` clang module to export. In
// other words, it's to facilitate `@import std;` in Objective-C++ and `import std`
// in Swift to expose all of the libc++ interfaces. This is generally not
// recommended, however there are some clients that need to import all of libc++
// without knowing what "all" is.
#if !__building_module(std)
#  error "Do not include this header directly, include individual headers instead"
#endif

#include <__cxx03/__config>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#  pragma GCC system_header
#endif

#include <__cxx03/algorithm>
#include <__cxx03/any>
#include <__cxx03/array>
#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
#  include <__cxx03/atomic>
#endif
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/barrier>
#endif
#include <__cxx03/bit>
#include <__cxx03/bitset>
#include <__cxx03/cassert>
#include <__cxx03/ccomplex>
#include <__cxx03/cctype>
#include <__cxx03/cerrno>
#include <__cxx03/cfenv>
#include <__cxx03/cfloat>
#include <__cxx03/charconv>
#include <__cxx03/chrono>
#include <__cxx03/cinttypes>
#include <__cxx03/ciso646>
#include <__cxx03/climits>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/clocale>
#endif
#include <__cxx03/cmath>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/codecvt>
#endif
#include <__cxx03/compare>
#include <__cxx03/complex.h>
#include <__cxx03/complex>
#include <__cxx03/concepts>
#include <__cxx03/condition_variable>
#include <__cxx03/coroutine>
#include <__cxx03/csetjmp>
#include <__cxx03/csignal>
#include <__cxx03/cstdarg>
#include <__cxx03/cstdbool>
#include <__cxx03/cstddef>
#include <__cxx03/cstdint>
#include <__cxx03/cstdio>
#include <__cxx03/cstdlib>
#include <__cxx03/cstring>
#include <__cxx03/ctgmath>
#include <__cxx03/ctime>
#include <__cxx03/ctype.h>
#include <__cxx03/cuchar>
#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
#  include <__cxx03/cwchar>
#endif
#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
#  include <__cxx03/cwctype>
#endif
#include <__cxx03/deque>
#include <__cxx03/errno.h>
#include <__cxx03/exception>
#include <__cxx03/execution>
#include <__cxx03/expected>
#include <__cxx03/experimental/iterator>
#include <__cxx03/experimental/memory>
#include <__cxx03/experimental/propagate_const>
#include <__cxx03/experimental/simd>
#include <__cxx03/experimental/type_traits>
#include <__cxx03/experimental/utility>
#include <__cxx03/fenv.h>
#include <__cxx03/filesystem>
#include <__cxx03/float.h>
#include <__cxx03/format>
#include <__cxx03/forward_list>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/fstream>
#endif
#include <__cxx03/functional>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/future>
#endif
#include <__cxx03/initializer_list>
#include <__cxx03/inttypes.h>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/iomanip>
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/ios>
#endif
#include <__cxx03/iosfwd>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/iostream>
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/istream>
#endif
#include <__cxx03/iterator>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/latch>
#endif
#include <__cxx03/limits>
#include <__cxx03/list>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/locale.h>
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/locale>
#endif
#include <__cxx03/map>
#include <__cxx03/math.h>
#include <__cxx03/mdspan>
#include <__cxx03/memory>
#include <__cxx03/memory_resource>
#include <__cxx03/mutex>
#include <__cxx03/new>
#include <__cxx03/numbers>
#include <__cxx03/numeric>
#include <__cxx03/optional>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/ostream>
#endif
#include <__cxx03/print>
#include <__cxx03/queue>
#include <__cxx03/random>
#include <__cxx03/ranges>
#include <__cxx03/ratio>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/regex>
#endif
#include <__cxx03/scoped_allocator>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/semaphore>
#endif
#include <__cxx03/set>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/shared_mutex>
#endif
#include <__cxx03/source_location>
#include <__cxx03/span>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/sstream>
#endif
#include <__cxx03/stack>
#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
#  include <__cxx03/stdatomic.h>
#endif
#include <__cxx03/stdbool.h>
#include <__cxx03/stddef.h>
#include <__cxx03/stdexcept>
#include <__cxx03/stdint.h>
#include <__cxx03/stdio.h>
#include <__cxx03/stdlib.h>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/stop_token>
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/streambuf>
#endif
#include <__cxx03/string.h>
#include <__cxx03/string>
#include <__cxx03/string_view>
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/strstream>
#endif
#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
#  include <__cxx03/syncstream>
#endif
#include <__cxx03/system_error>
#include <__cxx03/tgmath.h>
#if !defined(_LIBCPP_HAS_NO_THREADS)
#  include <__cxx03/thread>
#endif
#include <__cxx03/tuple>
#include <__cxx03/type_traits>
#include <__cxx03/typeindex>
#include <__cxx03/typeinfo>
#include <__cxx03/uchar.h>
#include <__cxx03/unordered_map>
#include <__cxx03/unordered_set>
#include <__cxx03/utility>
#include <__cxx03/valarray>
#include <__cxx03/variant>
#include <__cxx03/vector>
#include <__cxx03/version>
#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
#  include <__cxx03/wchar.h>
#endif
#if !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
#  include <__cxx03/wctype.h>
#endif
