// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

{
    "Version": "1.0",
    "BuildAsHeaderUnits": [
        // "__msvc_all_public_headers.hpp", // for testing, not production
        "__msvc_int128.hpp",
        "__msvc_system_error_abi.hpp",
        "__msvc_tzdb.hpp",
        "__msvc_xlocinfo_types.hpp",
        "algorithm",
        "any",
        "array",
        "atomic",
        "barrier",
        "bit",
        "bitset",
        // "cassert", // design is permanently incompatible with header units
        // "ccomplex", // removed in C++20
        "cctype",
        "cerrno",
        "cfenv",
        "cfloat",
        "charconv",
        "chrono",
        "cinttypes",
        // "ciso646", // removed in C++20
        "climits",
        "clocale",
        "cmath",
        "codecvt",
        "compare",
        "complex",
        "concepts",
        "condition_variable",
        "coroutine",
        "csetjmp",
        "csignal",
        // "cstdalign", // removed in C++20
        "cstdarg",
        // "cstdbool", // removed in C++20
        "cstddef",
        "cstdint",
        "cstdio",
        "cstdlib",
        "cstring",
        // "ctgmath", // removed in C++20
        "ctime",
        "cuchar",
        "cwchar",
        "cwctype",
        "deque",
        "exception",
        "execution",
        "filesystem",
        "format",
        "forward_list",
        "fstream",
        "functional",
        "future",
        // "hash_map", // non-Standard, will be removed soon
        // "hash_set", // non-Standard, will be removed soon
        "initializer_list",
        "iomanip",
        "ios",
        "iosfwd",
        "iostream",
        "iso646.h",
        "istream",
        "iterator",
        "latch",
        "limits",
        "list",
        "locale",
        "map",
        "memory",
        "memory_resource",
        "mutex",
        "new",
        "numbers",
        "numeric",
        "optional",
        "ostream",
        "queue",
        "random",
        "ranges",
        "ratio",
        "regex",
        "scoped_allocator",
        "semaphore",
        "set",
        "shared_mutex",
        "source_location",
        "span",
        "spanstream",
        "sstream",
        "stack",
        "stdatomic.h",
        "stdexcept",
        "stop_token",
        "streambuf",
        "string",
        "string_view",
        "strstream",
        "syncstream",
        "system_error",
        "thread",
        "tuple",
        "type_traits",
        "typeindex",
        "typeinfo",
        "unordered_map",
        "unordered_set",
        // "use_ansi.h", // internal header, incompatible with being a separate header unit
        "utility",
        "valarray",
        "variant",
        "vector",
        // "version", // importable, but provides feature-test macros only, which can control header inclusion
        "xatomic.h",
        "xatomic_wait.h",
        "xbit_ops.h",
        "xcall_once.h",
        "xcharconv.h",
        "xcharconv_ryu.h",
        "xcharconv_ryu_tables.h",
        "xerrc.h",
        "xfacet",
        "xfilesystem_abi.h",
        "xhash",
        "xiosbase",
        // "xkeycheck.h", // internal header, provides no machinery, scans for macroized keywords only
        "xlocale",
        "xlocbuf",
        "xlocinfo",
        "xlocmes",
        "xlocmon",
        "xlocnum",
        "xloctime",
        "xmemory",
        "xnode_handle.h",
        "xpolymorphic_allocator.h",
        "xsmf_control.h",
        "xstddef",
        "xstring",
        "xthreads.h",
        "xtimec.h",
        "xtr1common",
        "xtree",
        "xutility",
        "ymath.h"
        // "yvals.h", // internal header, provides macros that control header inclusion
        // "yvals_core.h" // internal header, provides macros that control header inclusion
    ]
}
