10e9a01dcSLouis Dionne// define the module for __config outside of the top level 'std' module
20e9a01dcSLouis Dionne// since __config may be included from C headers which may create an
30e9a01dcSLouis Dionne// include cycle.
40e9a01dcSLouis Dionnemodule std_config [system] [extern_c] {
50e9a01dcSLouis Dionne  header "__config"
60e9a01dcSLouis Dionne  export *
70e9a01dcSLouis Dionne}
80e9a01dcSLouis Dionne
90e9a01dcSLouis Dionnemodule std [system] {
100e9a01dcSLouis Dionne  export std_config
110e9a01dcSLouis Dionne  // FIXME: The standard does not require that each of these submodules
120e9a01dcSLouis Dionne  // re-exports its imported modules. We should provide an alternative form of
130e9a01dcSLouis Dionne  // export that issues a warning if a name from the submodule is used, and
140e9a01dcSLouis Dionne  // use that to provide a 'strict mode' for libc++.
150e9a01dcSLouis Dionne
160e9a01dcSLouis Dionne  // Deprecated C-compatibility headers. These can all be included from within
170e9a01dcSLouis Dionne  // an 'extern "C"' context.
180e9a01dcSLouis Dionne  module depr [extern_c] {
190e9a01dcSLouis Dionne    // <assert.h> provided by C library.
200e9a01dcSLouis Dionne    module ctype_h {
210e9a01dcSLouis Dionne      header "ctype.h"
220e9a01dcSLouis Dionne      export *
230e9a01dcSLouis Dionne    }
240e9a01dcSLouis Dionne    module errno_h {
250e9a01dcSLouis Dionne      header "errno.h"
260e9a01dcSLouis Dionne      export *
270e9a01dcSLouis Dionne    }
280e9a01dcSLouis Dionne    module fenv_h {
290e9a01dcSLouis Dionne      header "fenv.h"
300e9a01dcSLouis Dionne      export *
310e9a01dcSLouis Dionne    }
320e9a01dcSLouis Dionne    // <float.h> provided by compiler or C library.
330e9a01dcSLouis Dionne    module inttypes_h {
340e9a01dcSLouis Dionne      header "inttypes.h"
350e9a01dcSLouis Dionne      export stdint_h
360e9a01dcSLouis Dionne      export *
370e9a01dcSLouis Dionne    }
380e9a01dcSLouis Dionne    // <iso646.h> provided by compiler.
390e9a01dcSLouis Dionne    // <limits.h> provided by compiler or C library.
400e9a01dcSLouis Dionne    module locale_h {
410e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_LOCALIZATION@
420e9a01dcSLouis Dionne      header "locale.h"
430e9a01dcSLouis Dionne      export *
440e9a01dcSLouis Dionne    }
450e9a01dcSLouis Dionne    module math_h {
460e9a01dcSLouis Dionne      header "math.h"
470e9a01dcSLouis Dionne      export *
480e9a01dcSLouis Dionne    }
490e9a01dcSLouis Dionne    module setjmp_h {
500e9a01dcSLouis Dionne      header "setjmp.h"
510e9a01dcSLouis Dionne      export *
520e9a01dcSLouis Dionne    }
530e9a01dcSLouis Dionne    module stdatomic_h {
540e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_THREADS@
550e9a01dcSLouis Dionne      requires cplusplus23
560e9a01dcSLouis Dionne      header "stdatomic.h"
570e9a01dcSLouis Dionne      export *
580e9a01dcSLouis Dionne    }
590e9a01dcSLouis Dionne    // FIXME: <stdalign.h> is missing.
600e9a01dcSLouis Dionne    // <signal.h> provided by C library.
610e9a01dcSLouis Dionne    // <stdarg.h> provided by compiler.
62*062aab19SLouis Dionne    module stdbool_h {
63*062aab19SLouis Dionne      // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
64*062aab19SLouis Dionne      textual header "stdbool.h"
65*062aab19SLouis Dionne    }
660e9a01dcSLouis Dionne    module stddef_h {
670e9a01dcSLouis Dionne      // <stddef.h>'s __need_* macros require textual inclusion.
680e9a01dcSLouis Dionne      textual header "stddef.h"
690e9a01dcSLouis Dionne    }
700e9a01dcSLouis Dionne    module stdint_h {
710e9a01dcSLouis Dionne      header "stdint.h"
720e9a01dcSLouis Dionne      export *
730e9a01dcSLouis Dionne      // FIXME: This module only exists on OS X and for some reason the
740e9a01dcSLouis Dionne      // wildcard above doesn't export it.
750e9a01dcSLouis Dionne      export Darwin.C.stdint
760e9a01dcSLouis Dionne    }
770e9a01dcSLouis Dionne    module stdio_h {
780e9a01dcSLouis Dionne      // <stdio.h>'s __need_* macros require textual inclusion.
790e9a01dcSLouis Dionne      textual header "stdio.h"
800e9a01dcSLouis Dionne      export *
810e9a01dcSLouis Dionne      export Darwin.C.stdio
820e9a01dcSLouis Dionne    }
830e9a01dcSLouis Dionne    module stdlib_h {
840e9a01dcSLouis Dionne      // <stdlib.h>'s __need_* macros require textual inclusion.
850e9a01dcSLouis Dionne      textual header "stdlib.h"
860e9a01dcSLouis Dionne      export *
870e9a01dcSLouis Dionne    }
880e9a01dcSLouis Dionne    module string_h {
890e9a01dcSLouis Dionne      header "string.h"
900e9a01dcSLouis Dionne      export *
910e9a01dcSLouis Dionne    }
920e9a01dcSLouis Dionne    module uchar_h {
930e9a01dcSLouis Dionne      header "uchar.h"
940e9a01dcSLouis Dionne      export *
950e9a01dcSLouis Dionne    }
960e9a01dcSLouis Dionne    // <time.h> provided by C library.
970e9a01dcSLouis Dionne    module wchar_h {
980e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
990e9a01dcSLouis Dionne      // <wchar.h>'s __need_* macros require textual inclusion.
1000e9a01dcSLouis Dionne      textual header "wchar.h"
1010e9a01dcSLouis Dionne      export *
1020e9a01dcSLouis Dionne    }
1030e9a01dcSLouis Dionne    module wctype_h {
1040e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
1050e9a01dcSLouis Dionne      header "wctype.h"
1060e9a01dcSLouis Dionne      export *
1070e9a01dcSLouis Dionne    }
1080e9a01dcSLouis Dionne  }
1090e9a01dcSLouis Dionne
1100e9a01dcSLouis Dionne  // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
1110e9a01dcSLouis Dionne  // allow their use in extern "C" contexts.
1120e9a01dcSLouis Dionne  module complex_h {
1130e9a01dcSLouis Dionne    header "complex.h"
1140e9a01dcSLouis Dionne    export ccomplex
1150e9a01dcSLouis Dionne    export *
1160e9a01dcSLouis Dionne  }
1170e9a01dcSLouis Dionne  module tgmath_h {
1180e9a01dcSLouis Dionne    header "tgmath.h"
1190e9a01dcSLouis Dionne    export ccomplex
1200e9a01dcSLouis Dionne    export cmath
1210e9a01dcSLouis Dionne    export *
1220e9a01dcSLouis Dionne  }
1230e9a01dcSLouis Dionne
1240e9a01dcSLouis Dionne  // C compatibility headers.
1250e9a01dcSLouis Dionne  module compat {
1260e9a01dcSLouis Dionne    module cassert {
1270e9a01dcSLouis Dionne      // <cassert>'s use of NDEBUG requires textual inclusion.
1280e9a01dcSLouis Dionne      textual header "cassert"
1290e9a01dcSLouis Dionne    }
1300e9a01dcSLouis Dionne    module ccomplex {
1310e9a01dcSLouis Dionne      header "ccomplex"
1320e9a01dcSLouis Dionne      export complex
1330e9a01dcSLouis Dionne      export *
1340e9a01dcSLouis Dionne    }
1350e9a01dcSLouis Dionne    module cctype {
1360e9a01dcSLouis Dionne      header "cctype"
1370e9a01dcSLouis Dionne      export *
1380e9a01dcSLouis Dionne    }
1390e9a01dcSLouis Dionne    module cerrno {
1400e9a01dcSLouis Dionne      header "cerrno"
1410e9a01dcSLouis Dionne      export *
1420e9a01dcSLouis Dionne    }
1430e9a01dcSLouis Dionne    module cfenv {
1440e9a01dcSLouis Dionne      header "cfenv"
1450e9a01dcSLouis Dionne      export *
1460e9a01dcSLouis Dionne    }
1470e9a01dcSLouis Dionne    module cfloat {
1480e9a01dcSLouis Dionne      header "cfloat"
1490e9a01dcSLouis Dionne      export *
1500e9a01dcSLouis Dionne    }
1510e9a01dcSLouis Dionne    module cinttypes {
1520e9a01dcSLouis Dionne      header "cinttypes"
1530e9a01dcSLouis Dionne      export cstdint
1540e9a01dcSLouis Dionne      export *
1550e9a01dcSLouis Dionne    }
1560e9a01dcSLouis Dionne    module ciso646 {
1570e9a01dcSLouis Dionne      header "ciso646"
1580e9a01dcSLouis Dionne      export *
1590e9a01dcSLouis Dionne    }
1600e9a01dcSLouis Dionne    module climits {
1610e9a01dcSLouis Dionne      header "climits"
1620e9a01dcSLouis Dionne      export *
1630e9a01dcSLouis Dionne    }
1640e9a01dcSLouis Dionne    module clocale {
1650e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_LOCALIZATION@
1660e9a01dcSLouis Dionne      header "clocale"
1670e9a01dcSLouis Dionne      export *
1680e9a01dcSLouis Dionne    }
1690e9a01dcSLouis Dionne    module cmath {
1700e9a01dcSLouis Dionne      header "cmath"
1710e9a01dcSLouis Dionne      export *
1720e9a01dcSLouis Dionne    }
1730e9a01dcSLouis Dionne    module csetjmp {
1740e9a01dcSLouis Dionne      header "csetjmp"
1750e9a01dcSLouis Dionne      export *
1760e9a01dcSLouis Dionne    }
1770e9a01dcSLouis Dionne    module csignal {
1780e9a01dcSLouis Dionne      header "csignal"
1790e9a01dcSLouis Dionne      export *
1800e9a01dcSLouis Dionne    }
1810e9a01dcSLouis Dionne    // FIXME: <cstdalign> is missing.
1820e9a01dcSLouis Dionne    module cstdarg {
1830e9a01dcSLouis Dionne      header "cstdarg"
1840e9a01dcSLouis Dionne      export *
1850e9a01dcSLouis Dionne    }
1860e9a01dcSLouis Dionne    module cstdbool {
1870e9a01dcSLouis Dionne      header "cstdbool"
1880e9a01dcSLouis Dionne      export *
1890e9a01dcSLouis Dionne    }
1900e9a01dcSLouis Dionne    module cstddef {
1910e9a01dcSLouis Dionne      header "cstddef"
1920e9a01dcSLouis Dionne      export *
1930e9a01dcSLouis Dionne    }
1940e9a01dcSLouis Dionne    module cstdint {
1950e9a01dcSLouis Dionne      header "cstdint"
1960e9a01dcSLouis Dionne      export depr.stdint_h
1970e9a01dcSLouis Dionne      export *
1980e9a01dcSLouis Dionne    }
1990e9a01dcSLouis Dionne    module cstdio {
2000e9a01dcSLouis Dionne      header "cstdio"
2010e9a01dcSLouis Dionne      export *
2020e9a01dcSLouis Dionne    }
2030e9a01dcSLouis Dionne    module cstdlib {
2040e9a01dcSLouis Dionne      header "cstdlib"
2050e9a01dcSLouis Dionne      export *
2060e9a01dcSLouis Dionne    }
2070e9a01dcSLouis Dionne    module cstring {
2080e9a01dcSLouis Dionne      header "cstring"
2090e9a01dcSLouis Dionne      export *
2100e9a01dcSLouis Dionne    }
2110e9a01dcSLouis Dionne    module ctgmath {
2120e9a01dcSLouis Dionne      header "ctgmath"
2130e9a01dcSLouis Dionne      export ccomplex
2140e9a01dcSLouis Dionne      export cmath
2150e9a01dcSLouis Dionne      export *
2160e9a01dcSLouis Dionne    }
2170e9a01dcSLouis Dionne    module ctime {
2180e9a01dcSLouis Dionne      header "ctime"
2190e9a01dcSLouis Dionne      export *
2200e9a01dcSLouis Dionne    }
2210e9a01dcSLouis Dionne    module cuchar {
2220e9a01dcSLouis Dionne      header "cuchar"
2230e9a01dcSLouis Dionne      export *
2240e9a01dcSLouis Dionne    }
2250e9a01dcSLouis Dionne    module cwchar {
2260e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
2270e9a01dcSLouis Dionne      header "cwchar"
2280e9a01dcSLouis Dionne      export depr.stdio_h
2290e9a01dcSLouis Dionne      export *
2300e9a01dcSLouis Dionne    }
2310e9a01dcSLouis Dionne    module cwctype {
2320e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
2330e9a01dcSLouis Dionne      header "cwctype"
2340e9a01dcSLouis Dionne      export *
2350e9a01dcSLouis Dionne    }
2360e9a01dcSLouis Dionne  }
2370e9a01dcSLouis Dionne
2380e9a01dcSLouis Dionne  module algorithm {
2390e9a01dcSLouis Dionne    header "algorithm"
2400e9a01dcSLouis Dionne    export initializer_list
2410e9a01dcSLouis Dionne    export *
2420e9a01dcSLouis Dionne
2430e9a01dcSLouis Dionne    module __algorithm {
2440e9a01dcSLouis Dionne      module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
2450e9a01dcSLouis Dionne      module all_of                          { private header "__algorithm/all_of.h" }
2460e9a01dcSLouis Dionne      module any_of                          { private header "__algorithm/any_of.h" }
2470e9a01dcSLouis Dionne      module binary_search                   { private header "__algorithm/binary_search.h" }
2480e9a01dcSLouis Dionne      module clamp                           { private header "__algorithm/clamp.h" }
2490e9a01dcSLouis Dionne      module comp                            { private header "__algorithm/comp.h" }
2500e9a01dcSLouis Dionne      module comp_ref_type                   { private header "__algorithm/comp_ref_type.h" }
2510e9a01dcSLouis Dionne      module copy                            { private header "__algorithm/copy.h" }
2520e9a01dcSLouis Dionne      module copy_backward                   { private header "__algorithm/copy_backward.h" }
2530e9a01dcSLouis Dionne      module copy_if                         { private header "__algorithm/copy_if.h" }
2540e9a01dcSLouis Dionne      module copy_n                          { private header "__algorithm/copy_n.h" }
2550e9a01dcSLouis Dionne      module count                           { private header "__algorithm/count.h" }
2560e9a01dcSLouis Dionne      module count_if                        { private header "__algorithm/count_if.h" }
2570e9a01dcSLouis Dionne      module equal                           { private header "__algorithm/equal.h" }
2580e9a01dcSLouis Dionne      module equal_range                     { private header "__algorithm/equal_range.h" }
2590e9a01dcSLouis Dionne      module fill                            { private header "__algorithm/fill.h" }
2600e9a01dcSLouis Dionne      module fill_n                          { private header "__algorithm/fill_n.h" }
2610e9a01dcSLouis Dionne      module find                            { private header "__algorithm/find.h" }
2620e9a01dcSLouis Dionne      module find_end                        { private header "__algorithm/find_end.h" }
2630e9a01dcSLouis Dionne      module find_first_of                   { private header "__algorithm/find_first_of.h" }
2640e9a01dcSLouis Dionne      module find_if                         { private header "__algorithm/find_if.h" }
2650e9a01dcSLouis Dionne      module find_if_not                     { private header "__algorithm/find_if_not.h" }
2660e9a01dcSLouis Dionne      module for_each                        { private header "__algorithm/for_each.h" }
2670e9a01dcSLouis Dionne      module for_each_n                      { private header "__algorithm/for_each_n.h" }
2680e9a01dcSLouis Dionne      module generate                        { private header "__algorithm/generate.h" }
2690e9a01dcSLouis Dionne      module generate_n                      { private header "__algorithm/generate_n.h" }
2700e9a01dcSLouis Dionne      module half_positive                   { private header "__algorithm/half_positive.h" }
2710e9a01dcSLouis Dionne      module in_found_result                 { private header "__algorithm/in_found_result.h" }
2720e9a01dcSLouis Dionne      module in_fun_result                   { private header "__algorithm/in_fun_result.h" }
2730e9a01dcSLouis Dionne      module in_in_out_result                { private header "__algorithm/in_in_out_result.h" }
2740e9a01dcSLouis Dionne      module in_in_result                    { private header "__algorithm/in_in_result.h" }
2750e9a01dcSLouis Dionne      module in_out_out_result               { private header "__algorithm/in_out_out_result.h" }
2760e9a01dcSLouis Dionne      module in_out_result                   { private header "__algorithm/in_out_result.h" }
2770e9a01dcSLouis Dionne      module includes                        { private header "__algorithm/includes.h" }
2780e9a01dcSLouis Dionne      module inplace_merge                   { private header "__algorithm/inplace_merge.h" }
2790e9a01dcSLouis Dionne      module is_heap                         { private header "__algorithm/is_heap.h" }
2800e9a01dcSLouis Dionne      module is_heap_until                   { private header "__algorithm/is_heap_until.h" }
2810e9a01dcSLouis Dionne      module is_partitioned                  { private header "__algorithm/is_partitioned.h" }
2820e9a01dcSLouis Dionne      module is_permutation                  { private header "__algorithm/is_permutation.h" }
2830e9a01dcSLouis Dionne      module is_sorted                       { private header "__algorithm/is_sorted.h" }
2840e9a01dcSLouis Dionne      module is_sorted_until                 { private header "__algorithm/is_sorted_until.h" }
2850e9a01dcSLouis Dionne      module iter_swap                       { private header "__algorithm/iter_swap.h" }
286988682a3SNikolas Klauser      module iterator_operations             { private header "__algorithm/iterator_operations.h" }
2870e9a01dcSLouis Dionne      module lexicographical_compare         { private header "__algorithm/lexicographical_compare.h" }
2880e9a01dcSLouis Dionne      module lower_bound                     { private header "__algorithm/lower_bound.h" }
2890e9a01dcSLouis Dionne      module make_heap                       { private header "__algorithm/make_heap.h" }
290ff3989e6SKonstantin Varlamov      module make_projected                  { private header "__algorithm/make_projected.h" }
2910e9a01dcSLouis Dionne      module max                             { private header "__algorithm/max.h" }
2920e9a01dcSLouis Dionne      module max_element                     { private header "__algorithm/max_element.h" }
2930e9a01dcSLouis Dionne      module merge                           { private header "__algorithm/merge.h" }
2940e9a01dcSLouis Dionne      module min                             { private header "__algorithm/min.h" }
2950e9a01dcSLouis Dionne      module min_element                     { private header "__algorithm/min_element.h" }
2960e9a01dcSLouis Dionne      module min_max_result                  { private header "__algorithm/min_max_result.h" }
2970e9a01dcSLouis Dionne      module minmax                          { private header "__algorithm/minmax.h" }
2980e9a01dcSLouis Dionne      module minmax_element                  { private header "__algorithm/minmax_element.h" }
2990e9a01dcSLouis Dionne      module mismatch                        { private header "__algorithm/mismatch.h" }
3000e9a01dcSLouis Dionne      module move                            { private header "__algorithm/move.h" }
3010e9a01dcSLouis Dionne      module move_backward                   { private header "__algorithm/move_backward.h" }
3020e9a01dcSLouis Dionne      module next_permutation                { private header "__algorithm/next_permutation.h" }
3030e9a01dcSLouis Dionne      module none_of                         { private header "__algorithm/none_of.h" }
3040e9a01dcSLouis Dionne      module nth_element                     { private header "__algorithm/nth_element.h" }
3050e9a01dcSLouis Dionne      module partial_sort                    { private header "__algorithm/partial_sort.h" }
3060e9a01dcSLouis Dionne      module partial_sort_copy               { private header "__algorithm/partial_sort_copy.h" }
3070e9a01dcSLouis Dionne      module partition                       { private header "__algorithm/partition.h" }
3080e9a01dcSLouis Dionne      module partition_copy                  { private header "__algorithm/partition_copy.h" }
3090e9a01dcSLouis Dionne      module partition_point                 { private header "__algorithm/partition_point.h" }
3100e9a01dcSLouis Dionne      module pop_heap                        { private header "__algorithm/pop_heap.h" }
3110e9a01dcSLouis Dionne      module prev_permutation                { private header "__algorithm/prev_permutation.h" }
3120e9a01dcSLouis Dionne      module push_heap                       { private header "__algorithm/push_heap.h" }
3130e9a01dcSLouis Dionne      module ranges_adjacent_find            { private header "__algorithm/ranges_adjacent_find.h" }
3140e9a01dcSLouis Dionne      module ranges_all_of                   { private header "__algorithm/ranges_all_of.h" }
3150e9a01dcSLouis Dionne      module ranges_any_of                   { private header "__algorithm/ranges_any_of.h" }
3160e9a01dcSLouis Dionne      module ranges_binary_search            { private header "__algorithm/ranges_binary_search.h" }
317f20566daSNikolas Klauser      module ranges_clamp                    { private header "__algorithm/ranges_clamp.h" }
3180e9a01dcSLouis Dionne      module ranges_copy                     { private header "__algorithm/ranges_copy.h" }
3190e9a01dcSLouis Dionne      module ranges_copy_backward            { private header "__algorithm/ranges_copy_backward.h" }
3200e9a01dcSLouis Dionne      module ranges_copy_if                  { private header "__algorithm/ranges_copy_if.h" }
3210e9a01dcSLouis Dionne      module ranges_copy_n                   { private header "__algorithm/ranges_copy_n.h" }
3220e9a01dcSLouis Dionne      module ranges_count                    { private header "__algorithm/ranges_count.h" }
3230e9a01dcSLouis Dionne      module ranges_count_if                 { private header "__algorithm/ranges_count_if.h" }
3240e9a01dcSLouis Dionne      module ranges_equal                    { private header "__algorithm/ranges_equal.h" }
32573ebcabfSKonstantin Varlamov      module ranges_equal_range              { private header "__algorithm/ranges_equal_range.h" }
3260e9a01dcSLouis Dionne      module ranges_fill                     { private header "__algorithm/ranges_fill.h" }
3270e9a01dcSLouis Dionne      module ranges_fill_n                   { private header "__algorithm/ranges_fill_n.h" }
3280e9a01dcSLouis Dionne      module ranges_find                     { private header "__algorithm/ranges_find.h" }
329101d1e9bSNikolas Klauser      module ranges_find_end                 { private header "__algorithm/ranges_find_end.h" }
3300e9a01dcSLouis Dionne      module ranges_find_first_of            { private header "__algorithm/ranges_find_first_of.h" }
3310e9a01dcSLouis Dionne      module ranges_find_if                  { private header "__algorithm/ranges_find_if.h" }
3320e9a01dcSLouis Dionne      module ranges_find_if_not              { private header "__algorithm/ranges_find_if_not.h" }
3330e9a01dcSLouis Dionne      module ranges_for_each                 { private header "__algorithm/ranges_for_each.h" }
3340e9a01dcSLouis Dionne      module ranges_for_each_n               { private header "__algorithm/ranges_for_each_n.h" }
33573ebcabfSKonstantin Varlamov      module ranges_generate                 { private header "__algorithm/ranges_generate.h" }
33673ebcabfSKonstantin Varlamov      module ranges_generate_n               { private header "__algorithm/ranges_generate_n.h" }
33773ebcabfSKonstantin Varlamov      module ranges_includes                 { private header "__algorithm/ranges_includes.h" }
33873ebcabfSKonstantin Varlamov      module ranges_inplace_merge            { private header "__algorithm/ranges_inplace_merge.h" }
33973ebcabfSKonstantin Varlamov      module ranges_is_heap                  { private header "__algorithm/ranges_is_heap.h" }
34073ebcabfSKonstantin Varlamov      module ranges_is_heap_until            { private header "__algorithm/ranges_is_heap_until.h" }
3410e9a01dcSLouis Dionne      module ranges_is_partitioned           { private header "__algorithm/ranges_is_partitioned.h" }
34280f03ecbSNikolas Klauser      module ranges_is_permutation           { private header "__algorithm/ranges_is_permutation.h" }
3430e9a01dcSLouis Dionne      module ranges_is_sorted                { private header "__algorithm/ranges_is_sorted.h" }
3440e9a01dcSLouis Dionne      module ranges_is_sorted_until          { private header "__algorithm/ranges_is_sorted_until.h" }
3458ed702b8SKonstantin Varlamov      module ranges_iterator_concept         { private header "__algorithm/ranges_iterator_concept.h" }
346afd5a4f2SNikolas Klauser      module ranges_lexicographical_compare  { private header "__algorithm/ranges_lexicographical_compare.h" }
3470e9a01dcSLouis Dionne      module ranges_lower_bound              { private header "__algorithm/ranges_lower_bound.h" }
348c945bd0dSKonstantin Varlamov      module ranges_make_heap                { private header "__algorithm/ranges_make_heap.h" }
3490e9a01dcSLouis Dionne      module ranges_max                      { private header "__algorithm/ranges_max.h" }
3500e9a01dcSLouis Dionne      module ranges_max_element              { private header "__algorithm/ranges_max_element.h" }
35125607d14SHui Xie      module ranges_merge                    { private header "__algorithm/ranges_merge.h" }
3520e9a01dcSLouis Dionne      module ranges_min                      { private header "__algorithm/ranges_min.h" }
3530e9a01dcSLouis Dionne      module ranges_min_element              { private header "__algorithm/ranges_min_element.h" }
3540e9a01dcSLouis Dionne      module ranges_minmax                   { private header "__algorithm/ranges_minmax.h" }
3550e9a01dcSLouis Dionne      module ranges_minmax_element           { private header "__algorithm/ranges_minmax_element.h" }
3560e9a01dcSLouis Dionne      module ranges_mismatch                 { private header "__algorithm/ranges_mismatch.h" }
3572c3bbac0SNikolas Klauser      module ranges_move                     { private header "__algorithm/ranges_move.h" }
3582c3bbac0SNikolas Klauser      module ranges_move_backward            { private header "__algorithm/ranges_move_backward.h" }
3591ee16f10SNikolas Klauser      module ranges_next_permutation         { private header "__algorithm/ranges_next_permutation.h" }
3600e9a01dcSLouis Dionne      module ranges_none_of                  { private header "__algorithm/ranges_none_of.h" }
36123c7328bSKonstantin Varlamov      module ranges_nth_element              { private header "__algorithm/ranges_nth_element.h" }
3625dd19adaSvarconst      module ranges_partial_sort             { private header "__algorithm/ranges_partial_sort.h" }
36373ebcabfSKonstantin Varlamov      module ranges_partial_sort_copy        { private header "__algorithm/ranges_partial_sort_copy.h" }
36473ebcabfSKonstantin Varlamov      module ranges_partition                { private header "__algorithm/ranges_partition.h" }
36573ebcabfSKonstantin Varlamov      module ranges_partition_copy           { private header "__algorithm/ranges_partition_copy.h" }
36673ebcabfSKonstantin Varlamov      module ranges_partition_point          { private header "__algorithm/ranges_partition_point.h" }
367c945bd0dSKonstantin Varlamov      module ranges_pop_heap                 { private header "__algorithm/ranges_pop_heap.h" }
3681ee16f10SNikolas Klauser      module ranges_prev_permutation         { private header "__algorithm/ranges_prev_permutation.h" }
369c945bd0dSKonstantin Varlamov      module ranges_push_heap                { private header "__algorithm/ranges_push_heap.h" }
370f8cbe3cdSNikolas Klauser      module ranges_remove                   { private header "__algorithm/ranges_remove.h" }
37173ebcabfSKonstantin Varlamov      module ranges_remove_copy              { private header "__algorithm/ranges_remove_copy.h" }
37273ebcabfSKonstantin Varlamov      module ranges_remove_copy_if           { private header "__algorithm/ranges_remove_copy_if.h" }
373f8cbe3cdSNikolas Klauser      module ranges_remove_if                { private header "__algorithm/ranges_remove_if.h" }
374ff6d5deeSNikolas Klauser      module ranges_replace                  { private header "__algorithm/ranges_replace.h" }
37573ebcabfSKonstantin Varlamov      module ranges_replace_copy             { private header "__algorithm/ranges_replace_copy.h" }
37673ebcabfSKonstantin Varlamov      module ranges_replace_copy_if          { private header "__algorithm/ranges_replace_copy_if.h" }
377ff6d5deeSNikolas Klauser      module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
3780e9a01dcSLouis Dionne      module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
3797d426a39SNikolas Klauser      module ranges_reverse_copy             { private header "__algorithm/ranges_reverse_copy.h" }
38033e5f159SKonstantin Varlamov      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
3817d426a39SNikolas Klauser      module ranges_rotate_copy              { private header "__algorithm/ranges_rotate_copy.h" }
382732cb123SKonstantin Varlamov      module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
383101d1e9bSNikolas Klauser      module ranges_search                   { private header "__algorithm/ranges_search.h" }
384101d1e9bSNikolas Klauser      module ranges_search_n                 { private header "__algorithm/ranges_search_n.h" }
3851cdec6c9SHui Xie      module ranges_set_difference           { private header "__algorithm/ranges_set_difference.h" }
38696b674f2SHui Xie      module ranges_set_intersection         { private header "__algorithm/ranges_set_intersection.h" }
387a5c0638dSHui Xie      module ranges_set_symmetric_difference { private header "__algorithm/ranges_set_symmetric_difference.h" }
38873ebcabfSKonstantin Varlamov      module ranges_set_union                { private header "__algorithm/ranges_set_union.h" }
38973ebcabfSKonstantin Varlamov      module ranges_shuffle                  { private header "__algorithm/ranges_shuffle.h" }
390ff3989e6SKonstantin Varlamov      module ranges_sort                     { private header "__algorithm/ranges_sort.h" }
391c945bd0dSKonstantin Varlamov      module ranges_sort_heap                { private header "__algorithm/ranges_sort_heap.h" }
39273ebcabfSKonstantin Varlamov      module ranges_stable_partition         { private header "__algorithm/ranges_stable_partition.h" }
39394c7b89fSKonstantin Varlamov      module ranges_stable_sort              { private header "__algorithm/ranges_stable_sort.h" }
3940e9a01dcSLouis Dionne      module ranges_swap_ranges              { private header "__algorithm/ranges_swap_ranges.h" }
3950e9a01dcSLouis Dionne      module ranges_transform                { private header "__algorithm/ranges_transform.h" }
396732cb123SKonstantin Varlamov      module uniform_random_bit_generator_adaptor {
397732cb123SKonstantin Varlamov        private header "__algorithm/uniform_random_bit_generator_adaptor.h"
398732cb123SKonstantin Varlamov      }
39973ebcabfSKonstantin Varlamov      module ranges_unique                   { private header "__algorithm/ranges_unique.h" }
40073ebcabfSKonstantin Varlamov      module ranges_unique_copy              { private header "__algorithm/ranges_unique_copy.h" }
4010e9a01dcSLouis Dionne      module ranges_upper_bound              { private header "__algorithm/ranges_upper_bound.h" }
4020e9a01dcSLouis Dionne      module remove                          { private header "__algorithm/remove.h" }
4030e9a01dcSLouis Dionne      module remove_copy                     { private header "__algorithm/remove_copy.h" }
4040e9a01dcSLouis Dionne      module remove_copy_if                  { private header "__algorithm/remove_copy_if.h" }
4050e9a01dcSLouis Dionne      module remove_if                       { private header "__algorithm/remove_if.h" }
4060e9a01dcSLouis Dionne      module replace                         { private header "__algorithm/replace.h" }
4070e9a01dcSLouis Dionne      module replace_copy                    { private header "__algorithm/replace_copy.h" }
4080e9a01dcSLouis Dionne      module replace_copy_if                 { private header "__algorithm/replace_copy_if.h" }
4090e9a01dcSLouis Dionne      module replace_if                      { private header "__algorithm/replace_if.h" }
4100e9a01dcSLouis Dionne      module reverse                         { private header "__algorithm/reverse.h" }
4110e9a01dcSLouis Dionne      module reverse_copy                    { private header "__algorithm/reverse_copy.h" }
4120e9a01dcSLouis Dionne      module rotate                          { private header "__algorithm/rotate.h" }
4130e9a01dcSLouis Dionne      module rotate_copy                     { private header "__algorithm/rotate_copy.h" }
4140e9a01dcSLouis Dionne      module sample                          { private header "__algorithm/sample.h" }
4150e9a01dcSLouis Dionne      module search                          { private header "__algorithm/search.h" }
4160e9a01dcSLouis Dionne      module search_n                        { private header "__algorithm/search_n.h" }
4170e9a01dcSLouis Dionne      module set_difference                  { private header "__algorithm/set_difference.h" }
4180e9a01dcSLouis Dionne      module set_intersection                { private header "__algorithm/set_intersection.h" }
4190e9a01dcSLouis Dionne      module set_symmetric_difference        { private header "__algorithm/set_symmetric_difference.h" }
4200e9a01dcSLouis Dionne      module set_union                       { private header "__algorithm/set_union.h" }
4210e9a01dcSLouis Dionne      module shift_left                      { private header "__algorithm/shift_left.h" }
4220e9a01dcSLouis Dionne      module shift_right                     { private header "__algorithm/shift_right.h" }
4230e9a01dcSLouis Dionne      module shuffle                         { private header "__algorithm/shuffle.h" }
4240e9a01dcSLouis Dionne      module sift_down                       { private header "__algorithm/sift_down.h" }
4250e9a01dcSLouis Dionne      module sort                            { private header "__algorithm/sort.h" }
4260e9a01dcSLouis Dionne      module sort_heap                       { private header "__algorithm/sort_heap.h" }
4270e9a01dcSLouis Dionne      module stable_partition                { private header "__algorithm/stable_partition.h" }
4280e9a01dcSLouis Dionne      module stable_sort                     { private header "__algorithm/stable_sort.h" }
4290e9a01dcSLouis Dionne      module swap_ranges                     { private header "__algorithm/swap_ranges.h" }
4300e9a01dcSLouis Dionne      module transform                       { private header "__algorithm/transform.h" }
4310e9a01dcSLouis Dionne      module unique                          { private header "__algorithm/unique.h" }
4320e9a01dcSLouis Dionne      module unique_copy                     { private header "__algorithm/unique_copy.h" }
4330e9a01dcSLouis Dionne      module unwrap_iter                     { private header "__algorithm/unwrap_iter.h" }
4349e126d6fSNikolas Klauser      module unwrap_range                    { private header "__algorithm/unwrap_range.h" }
4350e9a01dcSLouis Dionne      module upper_bound                     { private header "__algorithm/upper_bound.h" }
4360e9a01dcSLouis Dionne    }
4370e9a01dcSLouis Dionne  }
4380e9a01dcSLouis Dionne  module any {
4390e9a01dcSLouis Dionne    header "any"
4400e9a01dcSLouis Dionne    export *
4410e9a01dcSLouis Dionne  }
4420e9a01dcSLouis Dionne  module array {
4430e9a01dcSLouis Dionne    header "array"
4440e9a01dcSLouis Dionne    export initializer_list
4450e9a01dcSLouis Dionne    export *
4460e9a01dcSLouis Dionne  }
4470e9a01dcSLouis Dionne  module atomic {
4480e9a01dcSLouis Dionne    header "atomic"
4490e9a01dcSLouis Dionne    export *
4500e9a01dcSLouis Dionne  }
4510e9a01dcSLouis Dionne  module barrier {
4520e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
4530e9a01dcSLouis Dionne    header "barrier"
4540e9a01dcSLouis Dionne    export *
4550e9a01dcSLouis Dionne  }
4560e9a01dcSLouis Dionne  module bit {
4570e9a01dcSLouis Dionne    header "bit"
4580e9a01dcSLouis Dionne    export *
4590e9a01dcSLouis Dionne
4600e9a01dcSLouis Dionne    module __bit {
4610e9a01dcSLouis Dionne      module bit_cast { private header "__bit/bit_cast.h" }
4620e9a01dcSLouis Dionne      module byteswap { private header "__bit/byteswap.h" }
4630e9a01dcSLouis Dionne    }
4640e9a01dcSLouis Dionne  }
4650e9a01dcSLouis Dionne  module bitset {
4660e9a01dcSLouis Dionne    header "bitset"
4670e9a01dcSLouis Dionne    export string
4680e9a01dcSLouis Dionne    export iosfwd
4690e9a01dcSLouis Dionne    export *
4700e9a01dcSLouis Dionne  }
4710e9a01dcSLouis Dionne  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
4720e9a01dcSLouis Dionne  module charconv {
4730e9a01dcSLouis Dionne    header "charconv"
4740e9a01dcSLouis Dionne    export *
4750e9a01dcSLouis Dionne
4760e9a01dcSLouis Dionne    module __charconv {
4770e9a01dcSLouis Dionne      module chars_format      { private header "__charconv/chars_format.h" }
4780e9a01dcSLouis Dionne      module from_chars_result { private header "__charconv/from_chars_result.h" }
4790e9a01dcSLouis Dionne      module tables            { private header "__charconv/tables.h" }
4800e9a01dcSLouis Dionne      module to_chars_base_10  { private header "__charconv/to_chars_base_10.h" }
4810e9a01dcSLouis Dionne      module to_chars_result   { private header "__charconv/to_chars_result.h" }
4820e9a01dcSLouis Dionne    }
4830e9a01dcSLouis Dionne
4840e9a01dcSLouis Dionne  }
4850e9a01dcSLouis Dionne  module chrono {
4860e9a01dcSLouis Dionne    header "chrono"
4870e9a01dcSLouis Dionne    export *
4880e9a01dcSLouis Dionne
4890e9a01dcSLouis Dionne    module __chrono {
4900e9a01dcSLouis Dionne      module calendar              { private header "__chrono/calendar.h" }
4910e9a01dcSLouis Dionne      module convert_to_timespec   { private header "__chrono/convert_to_timespec.h" }
4920e9a01dcSLouis Dionne      module day                   { private header "__chrono/day.h" }
4930e9a01dcSLouis Dionne      module duration              { private header "__chrono/duration.h" }
4940e9a01dcSLouis Dionne      module file_clock            { private header "__chrono/file_clock.h" }
4950e9a01dcSLouis Dionne      module hh_mm_ss              { private header "__chrono/hh_mm_ss.h" }
4960e9a01dcSLouis Dionne      module high_resolution_clock {
4970e9a01dcSLouis Dionne        private header "__chrono/high_resolution_clock.h"
4980e9a01dcSLouis Dionne        export steady_clock
4990e9a01dcSLouis Dionne        export system_clock
5000e9a01dcSLouis Dionne      }
5010e9a01dcSLouis Dionne      module literals              { private header "__chrono/literals.h" }
5020e9a01dcSLouis Dionne      module month                 { private header "__chrono/month.h" }
5030e9a01dcSLouis Dionne      module month_weekday         { private header "__chrono/month_weekday.h" }
5040e9a01dcSLouis Dionne      module monthday              { private header "__chrono/monthday.h" }
5050e9a01dcSLouis Dionne      module steady_clock          { private header "__chrono/steady_clock.h" }
5060e9a01dcSLouis Dionne      module system_clock          { private header "__chrono/system_clock.h" }
5070e9a01dcSLouis Dionne      module time_point            { private header "__chrono/time_point.h" }
5080e9a01dcSLouis Dionne      module weekday               { private header "__chrono/weekday.h" }
5090e9a01dcSLouis Dionne      module year                  { private header "__chrono/year.h" }
5100e9a01dcSLouis Dionne      module year_month            { private header "__chrono/year_month.h" }
5110e9a01dcSLouis Dionne      module year_month_day        { private header "__chrono/year_month_day.h" }
5120e9a01dcSLouis Dionne      module year_month_weekday    { private header "__chrono/year_month_weekday.h" }
5130e9a01dcSLouis Dionne    }
5140e9a01dcSLouis Dionne  }
5150e9a01dcSLouis Dionne  module codecvt {
5160e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
5170e9a01dcSLouis Dionne    header "codecvt"
5180e9a01dcSLouis Dionne    export *
5190e9a01dcSLouis Dionne  }
5200e9a01dcSLouis Dionne  module compare {
5210e9a01dcSLouis Dionne    header "compare"
5220e9a01dcSLouis Dionne    export *
5230e9a01dcSLouis Dionne
5240e9a01dcSLouis Dionne    module __compare {
5250e9a01dcSLouis Dionne      module common_comparison_category     { private header "__compare/common_comparison_category.h" }
5260e9a01dcSLouis Dionne      module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
5270e9a01dcSLouis Dionne      module compare_strong_order_fallback  { private header "__compare/compare_strong_order_fallback.h" }
5280e9a01dcSLouis Dionne      module compare_three_way              { private header "__compare/compare_three_way.h" }
5290e9a01dcSLouis Dionne      module compare_three_way_result       { private header "__compare/compare_three_way_result.h" }
5300e9a01dcSLouis Dionne      module compare_weak_order_fallback    { private header "__compare/compare_weak_order_fallback.h" }
5310e9a01dcSLouis Dionne      module is_eq                          { private header "__compare/is_eq.h" }
5320e9a01dcSLouis Dionne      module ordering                       { private header "__compare/ordering.h" }
5330e9a01dcSLouis Dionne      module partial_order                  { private header "__compare/partial_order.h" }
5340e9a01dcSLouis Dionne      module strong_order                   { private header "__compare/strong_order.h" }
5350e9a01dcSLouis Dionne      module synth_three_way                { private header "__compare/synth_three_way.h" }
5360e9a01dcSLouis Dionne      module three_way_comparable           { private header "__compare/three_way_comparable.h" }
5370e9a01dcSLouis Dionne      module weak_order                     { private header "__compare/weak_order.h" }
5380e9a01dcSLouis Dionne    }
5390e9a01dcSLouis Dionne  }
5400e9a01dcSLouis Dionne  module complex {
5410e9a01dcSLouis Dionne    header "complex"
5420e9a01dcSLouis Dionne    export *
5430e9a01dcSLouis Dionne  }
5440e9a01dcSLouis Dionne  module concepts {
5450e9a01dcSLouis Dionne    header "concepts"
5460e9a01dcSLouis Dionne    export *
5470e9a01dcSLouis Dionne
5480e9a01dcSLouis Dionne    module __concepts {
5490e9a01dcSLouis Dionne      module arithmetic                 { private header "__concepts/arithmetic.h" }
5500e9a01dcSLouis Dionne      module assignable                 { private header "__concepts/assignable.h" }
5510e9a01dcSLouis Dionne      module boolean_testable           { private header "__concepts/boolean_testable.h" }
5520e9a01dcSLouis Dionne      module class_or_enum              { private header "__concepts/class_or_enum.h" }
5530e9a01dcSLouis Dionne      module common_reference_with      { private header "__concepts/common_reference_with.h" }
5540e9a01dcSLouis Dionne      module common_with                { private header "__concepts/common_with.h" }
5550e9a01dcSLouis Dionne      module constructible              { private header "__concepts/constructible.h" }
5560e9a01dcSLouis Dionne      module convertible_to             { private header "__concepts/convertible_to.h" }
5570e9a01dcSLouis Dionne      module copyable                   { private header "__concepts/copyable.h" }
5580e9a01dcSLouis Dionne      module derived_from               { private header "__concepts/derived_from.h" }
5590e9a01dcSLouis Dionne      module destructible               { private header "__concepts/destructible.h" }
5600e9a01dcSLouis Dionne      module different_from             { private header "__concepts/different_from.h" }
5610e9a01dcSLouis Dionne      module equality_comparable        { private header "__concepts/equality_comparable.h" }
5620e9a01dcSLouis Dionne      module invocable                  { private header "__concepts/invocable.h" }
5630e9a01dcSLouis Dionne      module movable                    { private header "__concepts/movable.h" }
5640e9a01dcSLouis Dionne      module predicate                  { private header "__concepts/predicate.h" }
5650e9a01dcSLouis Dionne      module regular                    { private header "__concepts/regular.h" }
5660e9a01dcSLouis Dionne      module relation                   { private header "__concepts/relation.h" }
5670e9a01dcSLouis Dionne      module same_as                    { private header "__concepts/same_as.h" }
5680e9a01dcSLouis Dionne      module semiregular                { private header "__concepts/semiregular.h" }
5690e9a01dcSLouis Dionne      module swappable                  { private header "__concepts/swappable.h" }
5700e9a01dcSLouis Dionne      module totally_ordered            { private header "__concepts/totally_ordered.h" }
5710e9a01dcSLouis Dionne    }
5720e9a01dcSLouis Dionne  }
5730e9a01dcSLouis Dionne  module condition_variable {
5740e9a01dcSLouis Dionne    header "condition_variable"
5750e9a01dcSLouis Dionne    export *
5760e9a01dcSLouis Dionne  }
5770e9a01dcSLouis Dionne  module coroutine {
5780e9a01dcSLouis Dionne    requires coroutines
5790e9a01dcSLouis Dionne    header "coroutine"
5800e9a01dcSLouis Dionne    export compare
5810e9a01dcSLouis Dionne    export *
5820e9a01dcSLouis Dionne
5830e9a01dcSLouis Dionne    module __coroutine {
5840e9a01dcSLouis Dionne      module coroutine_handle           { private header "__coroutine/coroutine_handle.h" }
5850e9a01dcSLouis Dionne      module coroutine_traits           { private header "__coroutine/coroutine_traits.h" }
5860e9a01dcSLouis Dionne      module noop_coroutine_handle      { private header "__coroutine/noop_coroutine_handle.h" }
5870e9a01dcSLouis Dionne      module trivial_awaitables         { private header "__coroutine/trivial_awaitables.h" }
5880e9a01dcSLouis Dionne    }
5890e9a01dcSLouis Dionne  }
5900e9a01dcSLouis Dionne  module deque {
5910e9a01dcSLouis Dionne    header "deque"
5920e9a01dcSLouis Dionne    export initializer_list
5930e9a01dcSLouis Dionne    export *
5940e9a01dcSLouis Dionne  }
5950e9a01dcSLouis Dionne  module exception {
5960e9a01dcSLouis Dionne    header "exception"
5970e9a01dcSLouis Dionne    export *
5980e9a01dcSLouis Dionne  }
5990e9a01dcSLouis Dionne  module execution {
6000e9a01dcSLouis Dionne    header "execution"
6010e9a01dcSLouis Dionne    export *
6020e9a01dcSLouis Dionne  }
6030e9a01dcSLouis Dionne  module filesystem {
6040e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_FILESYSTEM@
6050e9a01dcSLouis Dionne    header "filesystem"
6060e9a01dcSLouis Dionne    export *
6070e9a01dcSLouis Dionne
6080e9a01dcSLouis Dionne    module __filesystem {
6090e9a01dcSLouis Dionne      module copy_options                 { private header "__filesystem/copy_options.h" }
6100e9a01dcSLouis Dionne      module directory_entry              { private header "__filesystem/directory_entry.h" }
6110e9a01dcSLouis Dionne      module directory_iterator           { private header "__filesystem/directory_iterator.h" }
6120e9a01dcSLouis Dionne      module directory_options            { private header "__filesystem/directory_options.h" }
6130e9a01dcSLouis Dionne      module file_status                  { private header "__filesystem/file_status.h" }
6140e9a01dcSLouis Dionne      module file_time_type               { private header "__filesystem/file_time_type.h" }
6150e9a01dcSLouis Dionne      module file_type                    { private header "__filesystem/file_type.h" }
6160e9a01dcSLouis Dionne      module filesystem_error             { private header "__filesystem/filesystem_error.h" }
6170e9a01dcSLouis Dionne      module operations                   { private header "__filesystem/operations.h" }
6180e9a01dcSLouis Dionne      module path                         { private header "__filesystem/path.h" }
6190e9a01dcSLouis Dionne      module path_iterator                { private header "__filesystem/path_iterator.h" }
6200e9a01dcSLouis Dionne      module perm_options                 { private header "__filesystem/perm_options.h" }
6210e9a01dcSLouis Dionne      module perms                        { private header "__filesystem/perms.h" }
6220e9a01dcSLouis Dionne      module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
6230e9a01dcSLouis Dionne      module space_info                   { private header "__filesystem/space_info.h" }
6240e9a01dcSLouis Dionne      module u8path                       { private header "__filesystem/u8path.h" }
6250e9a01dcSLouis Dionne    }
6260e9a01dcSLouis Dionne  }
6270e9a01dcSLouis Dionne  module format {
6280e9a01dcSLouis Dionne    header "format"
6290e9a01dcSLouis Dionne    export *
6300e9a01dcSLouis Dionne
6310e9a01dcSLouis Dionne    module __format {
6320e9a01dcSLouis Dionne      module buffer                          { private header "__format/buffer.h" }
6330e9a01dcSLouis Dionne      module concepts                        { private header "__format/concepts.h" }
6340e9a01dcSLouis Dionne      module enable_insertable               { private header "__format/enable_insertable.h" }
635857a78c0SMark de Wever      module extended_grapheme_cluster_table { private header "__format/extended_grapheme_cluster_table.h" }
6360e9a01dcSLouis Dionne      module format_arg                      { private header "__format/format_arg.h" }
6370e9a01dcSLouis Dionne      module format_arg_store                { private header "__format/format_arg_store.h" }
6380e9a01dcSLouis Dionne      module format_args                     { private header "__format/format_args.h" }
6390e9a01dcSLouis Dionne      module format_context {
6400e9a01dcSLouis Dionne        private header "__format/format_context.h"
6410e9a01dcSLouis Dionne        export optional
6420e9a01dcSLouis Dionne        export locale
6430e9a01dcSLouis Dionne      }
6440e9a01dcSLouis Dionne      module format_error                    { private header "__format/format_error.h" }
6450e9a01dcSLouis Dionne      module format_fwd                      { private header "__format/format_fwd.h" }
6460e9a01dcSLouis Dionne      module format_parse_context            { private header "__format/format_parse_context.h" }
6470e9a01dcSLouis Dionne      module format_string                   { private header "__format/format_string.h" }
6480e9a01dcSLouis Dionne      module format_to_n_result              { private header "__format/format_to_n_result.h" }
6490e9a01dcSLouis Dionne      module formatter                       { private header "__format/formatter.h" }
6500e9a01dcSLouis Dionne      module formatter_bool                  { private header "__format/formatter_bool.h" }
6510e9a01dcSLouis Dionne      module formatter_char                  { private header "__format/formatter_char.h" }
6520e9a01dcSLouis Dionne      module formatter_floating_point        { private header "__format/formatter_floating_point.h" }
6530e9a01dcSLouis Dionne      module formatter_integer               { private header "__format/formatter_integer.h" }
6540e9a01dcSLouis Dionne      module formatter_integral              { private header "__format/formatter_integral.h" }
65577ad77c0SMark de Wever      module formatter_output                { private header "__format/formatter_output.h" }
6560e9a01dcSLouis Dionne      module formatter_pointer               { private header "__format/formatter_pointer.h" }
6570e9a01dcSLouis Dionne      module formatter_string                { private header "__format/formatter_string.h" }
6580e9a01dcSLouis Dionne      module parser_std_format_spec          { private header "__format/parser_std_format_spec.h" }
659857a78c0SMark de Wever      module unicode                         { private header "__format/unicode.h" }
6600e9a01dcSLouis Dionne    }
6610e9a01dcSLouis Dionne  }
6620e9a01dcSLouis Dionne  module forward_list {
6630e9a01dcSLouis Dionne    header "forward_list"
6640e9a01dcSLouis Dionne    export initializer_list
6650e9a01dcSLouis Dionne    export *
6660e9a01dcSLouis Dionne  }
6670e9a01dcSLouis Dionne  module fstream {
6680e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
6690e9a01dcSLouis Dionne    header "fstream"
6700e9a01dcSLouis Dionne    export *
6710e9a01dcSLouis Dionne  }
6720e9a01dcSLouis Dionne  module functional {
6730e9a01dcSLouis Dionne    header "functional"
6740e9a01dcSLouis Dionne    export *
6750e9a01dcSLouis Dionne
6760e9a01dcSLouis Dionne    module __functional {
6770e9a01dcSLouis Dionne      module binary_function            { private header "__functional/binary_function.h" }
6780e9a01dcSLouis Dionne      module binary_negate              { private header "__functional/binary_negate.h" }
6790e9a01dcSLouis Dionne      module bind                       { private header "__functional/bind.h" }
6800e9a01dcSLouis Dionne      module bind_back                  { private header "__functional/bind_back.h" }
6810e9a01dcSLouis Dionne      module bind_front                 { private header "__functional/bind_front.h" }
6820e9a01dcSLouis Dionne      module binder1st                  { private header "__functional/binder1st.h" }
6830e9a01dcSLouis Dionne      module binder2nd                  { private header "__functional/binder2nd.h" }
684971e9c80SNikolas Klauser      module boyer_moore_searcher       { private header "__functional/boyer_moore_searcher.h" }
6850e9a01dcSLouis Dionne      module compose                    { private header "__functional/compose.h" }
6860e9a01dcSLouis Dionne      module default_searcher           { private header "__functional/default_searcher.h" }
6870e9a01dcSLouis Dionne      module function                   { private header "__functional/function.h" }
6880e9a01dcSLouis Dionne      module hash                       { private header "__functional/hash.h" }
6890e9a01dcSLouis Dionne      module identity                   { private header "__functional/identity.h" }
6900e9a01dcSLouis Dionne      module invoke                     { private header "__functional/invoke.h" }
6910e9a01dcSLouis Dionne      module is_transparent             { private header "__functional/is_transparent.h" }
6920e9a01dcSLouis Dionne      module mem_fn                     { private header "__functional/mem_fn.h" }
6930e9a01dcSLouis Dionne      module mem_fun_ref                { private header "__functional/mem_fun_ref.h" }
6940e9a01dcSLouis Dionne      module not_fn                     { private header "__functional/not_fn.h" }
6950e9a01dcSLouis Dionne      module operations                 { private header "__functional/operations.h" }
6960e9a01dcSLouis Dionne      module perfect_forward            { private header "__functional/perfect_forward.h" }
6970e9a01dcSLouis Dionne      module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
6980e9a01dcSLouis Dionne      module pointer_to_unary_function  { private header "__functional/pointer_to_unary_function.h" }
6990e9a01dcSLouis Dionne      module ranges_operations          { private header "__functional/ranges_operations.h" }
7000e9a01dcSLouis Dionne      module reference_wrapper          { private header "__functional/reference_wrapper.h" }
7010e9a01dcSLouis Dionne      module unary_function             { private header "__functional/unary_function.h" }
7020e9a01dcSLouis Dionne      module unary_negate               { private header "__functional/unary_negate.h" }
7030e9a01dcSLouis Dionne      module unwrap_ref                 { private header "__functional/unwrap_ref.h" }
7040e9a01dcSLouis Dionne      module weak_result_type           { private header "__functional/weak_result_type.h" }
7050e9a01dcSLouis Dionne    }
7060e9a01dcSLouis Dionne  }
7070e9a01dcSLouis Dionne  module future {
7080e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
7090e9a01dcSLouis Dionne    header "future"
7100e9a01dcSLouis Dionne    export *
7110e9a01dcSLouis Dionne  }
7120e9a01dcSLouis Dionne  module initializer_list {
7130e9a01dcSLouis Dionne    header "initializer_list"
7140e9a01dcSLouis Dionne    export *
7150e9a01dcSLouis Dionne  }
7160e9a01dcSLouis Dionne  module iomanip {
7170e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
7180e9a01dcSLouis Dionne    header "iomanip"
7190e9a01dcSLouis Dionne    export *
7200e9a01dcSLouis Dionne  }
7210e9a01dcSLouis Dionne  module ios {
7220e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
7230e9a01dcSLouis Dionne    header "ios"
7240e9a01dcSLouis Dionne    export iosfwd
7250e9a01dcSLouis Dionne    export *
7260e9a01dcSLouis Dionne
7270e9a01dcSLouis Dionne    module __ios {
7280e9a01dcSLouis Dionne      module fpos { private header "__ios/fpos.h" }
7290e9a01dcSLouis Dionne    }
7300e9a01dcSLouis Dionne  }
7310e9a01dcSLouis Dionne  module iosfwd {
7320e9a01dcSLouis Dionne    header "iosfwd"
7330e9a01dcSLouis Dionne    export *
7340e9a01dcSLouis Dionne  }
7350e9a01dcSLouis Dionne  module iostream {
7360e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
7370e9a01dcSLouis Dionne    header "iostream"
7380e9a01dcSLouis Dionne    export ios
7390e9a01dcSLouis Dionne    export streambuf
7400e9a01dcSLouis Dionne    export istream
7410e9a01dcSLouis Dionne    export ostream
7420e9a01dcSLouis Dionne    export *
7430e9a01dcSLouis Dionne  }
7440e9a01dcSLouis Dionne  module istream {
7450e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
7460e9a01dcSLouis Dionne    header "istream"
7470e9a01dcSLouis Dionne    // FIXME: should re-export ios, streambuf?
7480e9a01dcSLouis Dionne    export *
7490e9a01dcSLouis Dionne  }
7500e9a01dcSLouis Dionne  module iterator {
7510e9a01dcSLouis Dionne    header "iterator"
7520e9a01dcSLouis Dionne    export *
7530e9a01dcSLouis Dionne
7540e9a01dcSLouis Dionne    module __iterator {
7550e9a01dcSLouis Dionne      module access                { private header "__iterator/access.h" }
7560e9a01dcSLouis Dionne      module advance               { private header "__iterator/advance.h" }
7570e9a01dcSLouis Dionne      module back_insert_iterator  { private header "__iterator/back_insert_iterator.h" }
758633d1d0dSLouis Dionne      module bounded_iter          { private header "__iterator/bounded_iter.h" }
7590e9a01dcSLouis Dionne      module common_iterator       { private header "__iterator/common_iterator.h" }
7600e9a01dcSLouis Dionne      module concepts              { private header "__iterator/concepts.h" }
7610e9a01dcSLouis Dionne      module counted_iterator      { private header "__iterator/counted_iterator.h" }
7620e9a01dcSLouis Dionne      module data                  { private header "__iterator/data.h" }
7630e9a01dcSLouis Dionne      module default_sentinel      { private header "__iterator/default_sentinel.h" }
7640e9a01dcSLouis Dionne      module distance              { private header "__iterator/distance.h" }
7650e9a01dcSLouis Dionne      module empty                 { private header "__iterator/empty.h" }
7660e9a01dcSLouis Dionne      module erase_if_container    { private header "__iterator/erase_if_container.h" }
7670e9a01dcSLouis Dionne      module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
7680e9a01dcSLouis Dionne      module incrementable_traits  { private header "__iterator/incrementable_traits.h" }
7690e9a01dcSLouis Dionne      module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
7700e9a01dcSLouis Dionne      module insert_iterator       { private header "__iterator/insert_iterator.h" }
7710e9a01dcSLouis Dionne      module istream_iterator      { private header "__iterator/istream_iterator.h" }
7720e9a01dcSLouis Dionne      module istreambuf_iterator   { private header "__iterator/istreambuf_iterator.h" }
7730e9a01dcSLouis Dionne      module iter_move             { private header "__iterator/iter_move.h" }
7740e9a01dcSLouis Dionne      module iter_swap             { private header "__iterator/iter_swap.h" }
7750e9a01dcSLouis Dionne      module iterator              { private header "__iterator/iterator.h" }
7760e9a01dcSLouis Dionne      module iterator_traits       { private header "__iterator/iterator_traits.h" }
7770e9a01dcSLouis Dionne      module mergeable             { private header "__iterator/mergeable.h" }
7780e9a01dcSLouis Dionne      module move_iterator         { private header "__iterator/move_iterator.h" }
7790e9a01dcSLouis Dionne      module move_sentinel         { private header "__iterator/move_sentinel.h" }
7800e9a01dcSLouis Dionne      module next                  { private header "__iterator/next.h" }
7810e9a01dcSLouis Dionne      module ostream_iterator      { private header "__iterator/ostream_iterator.h" }
7820e9a01dcSLouis Dionne      module ostreambuf_iterator   {
7830e9a01dcSLouis Dionne        private header "__iterator/ostreambuf_iterator.h"
7840e9a01dcSLouis Dionne        export iosfwd
7850e9a01dcSLouis Dionne      }
7860e9a01dcSLouis Dionne      module permutable            { private header "__iterator/permutable.h" }
7870e9a01dcSLouis Dionne      module prev                  { private header "__iterator/prev.h" }
7880e9a01dcSLouis Dionne      module projected             { private header "__iterator/projected.h" }
7890e9a01dcSLouis Dionne      module readable_traits       { private header "__iterator/readable_traits.h" }
7900e9a01dcSLouis Dionne      module reverse_access        { private header "__iterator/reverse_access.h" }
7910e9a01dcSLouis Dionne      module reverse_iterator      { private header "__iterator/reverse_iterator.h" }
7920e9a01dcSLouis Dionne      module size                  { private header "__iterator/size.h" }
7930e9a01dcSLouis Dionne      module sortable              { private header "__iterator/sortable.h" }
7940e9a01dcSLouis Dionne      module unreachable_sentinel  { private header "__iterator/unreachable_sentinel.h" }
7950e9a01dcSLouis Dionne      module wrap_iter             { private header "__iterator/wrap_iter.h" }
7960e9a01dcSLouis Dionne    }
7970e9a01dcSLouis Dionne  }
7980e9a01dcSLouis Dionne  module latch {
7990e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
8000e9a01dcSLouis Dionne    header "latch"
8010e9a01dcSLouis Dionne    export *
8020e9a01dcSLouis Dionne  }
8032aea8af2SNikolas Klauser
8042aea8af2SNikolas Klauser  module __debug_utils {
8052aea8af2SNikolas Klauser    module randomize_range { private header "__debug_utils/randomize_range.h" }
8062aea8af2SNikolas Klauser  }
8072aea8af2SNikolas Klauser
8080e9a01dcSLouis Dionne  module limits {
8090e9a01dcSLouis Dionne    header "limits"
8100e9a01dcSLouis Dionne    export *
8110e9a01dcSLouis Dionne  }
8120e9a01dcSLouis Dionne  module list {
8130e9a01dcSLouis Dionne    header "list"
8140e9a01dcSLouis Dionne    export initializer_list
8150e9a01dcSLouis Dionne    export *
8160e9a01dcSLouis Dionne  }
8170e9a01dcSLouis Dionne  module locale {
8180e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
8190e9a01dcSLouis Dionne    header "locale"
8200e9a01dcSLouis Dionne    export *
8210e9a01dcSLouis Dionne  }
8220e9a01dcSLouis Dionne  module map {
8230e9a01dcSLouis Dionne    header "map"
8240e9a01dcSLouis Dionne    export initializer_list
8250e9a01dcSLouis Dionne    export *
8260e9a01dcSLouis Dionne  }
8270e9a01dcSLouis Dionne  module memory {
8280e9a01dcSLouis Dionne    header "memory"
8290e9a01dcSLouis Dionne    export *
8300e9a01dcSLouis Dionne
8310e9a01dcSLouis Dionne    module __memory {
8320e9a01dcSLouis Dionne      module addressof                       { private header "__memory/addressof.h" }
8330e9a01dcSLouis Dionne      module allocate_at_least               { private header "__memory/allocate_at_least.h" }
8340e9a01dcSLouis Dionne      module allocation_guard                { private header "__memory/allocation_guard.h" }
8350e9a01dcSLouis Dionne      module allocator                       { private header "__memory/allocator.h" }
8360e9a01dcSLouis Dionne      module allocator_arg_t                 { private header "__memory/allocator_arg_t.h" }
8370e9a01dcSLouis Dionne      module allocator_traits                { private header "__memory/allocator_traits.h" }
8380e9a01dcSLouis Dionne      module assume_aligned                  { private header "__memory/assume_aligned.h" }
8390e9a01dcSLouis Dionne      module auto_ptr                        { private header "__memory/auto_ptr.h" }
8400e9a01dcSLouis Dionne      module compressed_pair                 { private header "__memory/compressed_pair.h" }
8410e9a01dcSLouis Dionne      module concepts                        { private header "__memory/concepts.h" }
8420e9a01dcSLouis Dionne      module construct_at                    { private header "__memory/construct_at.h" }
8430e9a01dcSLouis Dionne      module pointer_traits                  { private header "__memory/pointer_traits.h" }
8440e9a01dcSLouis Dionne      module ranges_construct_at             { private header "__memory/ranges_construct_at.h" }
8450e9a01dcSLouis Dionne      module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" }
8460e9a01dcSLouis Dionne      module raw_storage_iterator            { private header "__memory/raw_storage_iterator.h" }
8470e9a01dcSLouis Dionne      module shared_ptr                      { private header "__memory/shared_ptr.h" }
848f4fb72e6SNikolas Klauser      module swap_allocator                  { private header "__memory/swap_allocator.h" }
8490e9a01dcSLouis Dionne      module temporary_buffer                { private header "__memory/temporary_buffer.h" }
8500e9a01dcSLouis Dionne      module uninitialized_algorithms        { private header "__memory/uninitialized_algorithms.h" }
8510e9a01dcSLouis Dionne      module unique_ptr                      { private header "__memory/unique_ptr.h" }
8520e9a01dcSLouis Dionne      module uses_allocator                  { private header "__memory/uses_allocator.h" }
8530e9a01dcSLouis Dionne      module voidify                         { private header "__memory/voidify.h" }
8540e9a01dcSLouis Dionne    }
8550e9a01dcSLouis Dionne  }
8560e9a01dcSLouis Dionne  module mutex {
8570e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
8580e9a01dcSLouis Dionne    header "mutex"
8590e9a01dcSLouis Dionne    export *
8600e9a01dcSLouis Dionne  }
8610e9a01dcSLouis Dionne  module new {
8620e9a01dcSLouis Dionne    header "new"
8630e9a01dcSLouis Dionne    export *
8640e9a01dcSLouis Dionne  }
8650e9a01dcSLouis Dionne  module numbers {
8660e9a01dcSLouis Dionne    header "numbers"
8670e9a01dcSLouis Dionne    export *
8680e9a01dcSLouis Dionne  }
8690e9a01dcSLouis Dionne  module numeric {
8700e9a01dcSLouis Dionne    header "numeric"
8710e9a01dcSLouis Dionne    export *
8720e9a01dcSLouis Dionne
8730e9a01dcSLouis Dionne    module __numeric {
8740e9a01dcSLouis Dionne      module accumulate               { private header "__numeric/accumulate.h" }
8750e9a01dcSLouis Dionne      module adjacent_difference      { private header "__numeric/adjacent_difference.h" }
8760e9a01dcSLouis Dionne      module exclusive_scan           { private header "__numeric/exclusive_scan.h" }
8770e9a01dcSLouis Dionne      module gcd_lcm                  { private header "__numeric/gcd_lcm.h" }
8780e9a01dcSLouis Dionne      module inclusive_scan           { private header "__numeric/inclusive_scan.h" }
8790e9a01dcSLouis Dionne      module inner_product            { private header "__numeric/inner_product.h" }
8800e9a01dcSLouis Dionne      module iota                     { private header "__numeric/iota.h" }
8810e9a01dcSLouis Dionne      module midpoint                 { private header "__numeric/midpoint.h" }
8820e9a01dcSLouis Dionne      module partial_sum              { private header "__numeric/partial_sum.h" }
8830e9a01dcSLouis Dionne      module reduce                   { private header "__numeric/reduce.h" }
8840e9a01dcSLouis Dionne      module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
8850e9a01dcSLouis Dionne      module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
8860e9a01dcSLouis Dionne      module transform_reduce         { private header "__numeric/transform_reduce.h" }
8870e9a01dcSLouis Dionne    }
8880e9a01dcSLouis Dionne  }
8890e9a01dcSLouis Dionne  module optional {
8900e9a01dcSLouis Dionne    header "optional"
8910e9a01dcSLouis Dionne    export *
8920e9a01dcSLouis Dionne  }
8930e9a01dcSLouis Dionne  module ostream {
8940e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
8950e9a01dcSLouis Dionne    header "ostream"
8960e9a01dcSLouis Dionne    // FIXME: should re-export ios, streambuf?
8970e9a01dcSLouis Dionne    export *
8980e9a01dcSLouis Dionne  }
8990e9a01dcSLouis Dionne  module queue {
9000e9a01dcSLouis Dionne    header "queue"
9010e9a01dcSLouis Dionne    export initializer_list
9020e9a01dcSLouis Dionne    export *
9030e9a01dcSLouis Dionne  }
9040e9a01dcSLouis Dionne  module random {
9050e9a01dcSLouis Dionne    header "random"
9060e9a01dcSLouis Dionne    export initializer_list
9070e9a01dcSLouis Dionne    export *
9080e9a01dcSLouis Dionne
9090e9a01dcSLouis Dionne    module __random {
9100e9a01dcSLouis Dionne      module bernoulli_distribution          { private header "__random/bernoulli_distribution.h" }
9110e9a01dcSLouis Dionne      module binomial_distribution           { private header "__random/binomial_distribution.h" }
9120e9a01dcSLouis Dionne      module cauchy_distribution             { private header "__random/cauchy_distribution.h" }
9130e9a01dcSLouis Dionne      module chi_squared_distribution        { private header "__random/chi_squared_distribution.h" }
9140e9a01dcSLouis Dionne      module clamp_to_integral               { private header "__random/clamp_to_integral.h" }
9150e9a01dcSLouis Dionne      module default_random_engine           { private header "__random/default_random_engine.h" }
9160e9a01dcSLouis Dionne      module discard_block_engine            { private header "__random/discard_block_engine.h" }
9170e9a01dcSLouis Dionne      module discrete_distribution           { private header "__random/discrete_distribution.h" }
9180e9a01dcSLouis Dionne      module exponential_distribution        { private header "__random/exponential_distribution.h" }
9190e9a01dcSLouis Dionne      module extreme_value_distribution      { private header "__random/extreme_value_distribution.h" }
9200e9a01dcSLouis Dionne      module fisher_f_distribution           { private header "__random/fisher_f_distribution.h" }
9210e9a01dcSLouis Dionne      module gamma_distribution              { private header "__random/gamma_distribution.h" }
9220e9a01dcSLouis Dionne      module generate_canonical              { private header "__random/generate_canonical.h" }
9230e9a01dcSLouis Dionne      module geometric_distribution          { private header "__random/geometric_distribution.h" }
9240e9a01dcSLouis Dionne      module independent_bits_engine         { private header "__random/independent_bits_engine.h" }
9250e9a01dcSLouis Dionne      module is_seed_sequence                { private header "__random/is_seed_sequence.h" }
9260e9a01dcSLouis Dionne      module is_valid                        { private header "__random/is_valid.h" }
9270e9a01dcSLouis Dionne      module knuth_b                         { private header "__random/knuth_b.h" }
9280e9a01dcSLouis Dionne      module linear_congruential_engine      { private header "__random/linear_congruential_engine.h" }
9290e9a01dcSLouis Dionne      module log2                            { private header "__random/log2.h" }
9300e9a01dcSLouis Dionne      module lognormal_distribution          { private header "__random/lognormal_distribution.h" }
9310e9a01dcSLouis Dionne      module mersenne_twister_engine         { private header "__random/mersenne_twister_engine.h" }
9320e9a01dcSLouis Dionne      module negative_binomial_distribution  { private header "__random/negative_binomial_distribution.h" }
9330e9a01dcSLouis Dionne      module normal_distribution             { private header "__random/normal_distribution.h" }
9340e9a01dcSLouis Dionne      module piecewise_constant_distribution { private header "__random/piecewise_constant_distribution.h" }
9350e9a01dcSLouis Dionne      module piecewise_linear_distribution   { private header "__random/piecewise_linear_distribution.h" }
9360e9a01dcSLouis Dionne      module poisson_distribution            { private header "__random/poisson_distribution.h" }
9370e9a01dcSLouis Dionne      module random_device                   { private header "__random/random_device.h" }
9380e9a01dcSLouis Dionne      module ranlux                          { private header "__random/ranlux.h" }
9390e9a01dcSLouis Dionne      module seed_seq                        { private header "__random/seed_seq.h" }
9400e9a01dcSLouis Dionne      module shuffle_order_engine            { private header "__random/shuffle_order_engine.h" }
9410e9a01dcSLouis Dionne      module student_t_distribution          { private header "__random/student_t_distribution.h" }
9420e9a01dcSLouis Dionne      module subtract_with_carry_engine      { private header "__random/subtract_with_carry_engine.h" }
9430e9a01dcSLouis Dionne      module uniform_int_distribution        { private header "__random/uniform_int_distribution.h" }
9440e9a01dcSLouis Dionne      module uniform_random_bit_generator    { private header "__random/uniform_random_bit_generator.h" }
9450e9a01dcSLouis Dionne      module uniform_real_distribution       { private header "__random/uniform_real_distribution.h" }
9460e9a01dcSLouis Dionne      module weibull_distribution            { private header "__random/weibull_distribution.h" }
9470e9a01dcSLouis Dionne    }
9480e9a01dcSLouis Dionne  }
9490e9a01dcSLouis Dionne  module ranges {
9500e9a01dcSLouis Dionne    header "ranges"
9510e9a01dcSLouis Dionne    export compare
9520e9a01dcSLouis Dionne    export initializer_list
9530e9a01dcSLouis Dionne    export iterator
9540e9a01dcSLouis Dionne    export *
9550e9a01dcSLouis Dionne
9560e9a01dcSLouis Dionne    module __ranges {
9570e9a01dcSLouis Dionne      module access                 { private header "__ranges/access.h" }
9580e9a01dcSLouis Dionne      module all                    {
9590e9a01dcSLouis Dionne        private header "__ranges/all.h"
9600e9a01dcSLouis Dionne        export functional.__functional.compose
9610e9a01dcSLouis Dionne        export functional.__functional.perfect_forward
9620e9a01dcSLouis Dionne      }
9630e9a01dcSLouis Dionne      module common_view            { private header "__ranges/common_view.h" }
9640e9a01dcSLouis Dionne      module concepts               { private header "__ranges/concepts.h" }
9650e9a01dcSLouis Dionne      module copyable_box           { private header "__ranges/copyable_box.h" }
9660e9a01dcSLouis Dionne      module counted                {
9670e9a01dcSLouis Dionne        private header "__ranges/counted.h"
9680e9a01dcSLouis Dionne        export span
9690e9a01dcSLouis Dionne      }
9700e9a01dcSLouis Dionne      module dangling               { private header "__ranges/dangling.h" }
9710e9a01dcSLouis Dionne      module data                   { private header "__ranges/data.h" }
9720e9a01dcSLouis Dionne      module drop_view              { private header "__ranges/drop_view.h" }
9730e9a01dcSLouis Dionne      module empty                  { private header "__ranges/empty.h" }
9740e9a01dcSLouis Dionne      module empty_view             { private header "__ranges/empty_view.h" }
9750e9a01dcSLouis Dionne      module enable_borrowed_range  { private header "__ranges/enable_borrowed_range.h" }
9760e9a01dcSLouis Dionne      module enable_view            { private header "__ranges/enable_view.h" }
9770e9a01dcSLouis Dionne      module filter_view            { private header "__ranges/filter_view.h" }
9780e9a01dcSLouis Dionne      module iota_view              { private header "__ranges/iota_view.h" }
9790e9a01dcSLouis Dionne      module join_view              { private header "__ranges/join_view.h" }
9800e9a01dcSLouis Dionne      module lazy_split_view        { private header "__ranges/lazy_split_view.h" }
9810e9a01dcSLouis Dionne      module non_propagating_cache  { private header "__ranges/non_propagating_cache.h" }
9820e9a01dcSLouis Dionne      module owning_view            { private header "__ranges/owning_view.h" }
9830e9a01dcSLouis Dionne      module range_adaptor          { private header "__ranges/range_adaptor.h" }
9840e9a01dcSLouis Dionne      module rbegin                 { private header "__ranges/rbegin.h" }
9850e9a01dcSLouis Dionne      module ref_view               { private header "__ranges/ref_view.h" }
9860e9a01dcSLouis Dionne      module rend                   { private header "__ranges/rend.h" }
9870e9a01dcSLouis Dionne      module reverse_view           { private header "__ranges/reverse_view.h" }
9880e9a01dcSLouis Dionne      module single_view            { private header "__ranges/single_view.h" }
9890e9a01dcSLouis Dionne      module size                   { private header "__ranges/size.h" }
9900e9a01dcSLouis Dionne      module subrange               { private header "__ranges/subrange.h" }
9910e9a01dcSLouis Dionne      module take_view              { private header "__ranges/take_view.h" }
9920e9a01dcSLouis Dionne      module transform_view         {
9930e9a01dcSLouis Dionne        private header "__ranges/transform_view.h"
9940e9a01dcSLouis Dionne        export functional.__functional.bind_back
9950e9a01dcSLouis Dionne        export functional.__functional.perfect_forward
9960e9a01dcSLouis Dionne      }
9970e9a01dcSLouis Dionne      module view_interface         { private header "__ranges/view_interface.h" }
9980e9a01dcSLouis Dionne      module views                  { private header "__ranges/views.h" }
9990e9a01dcSLouis Dionne      module zip_view               { private header "__ranges/zip_view.h" }
10000e9a01dcSLouis Dionne    }
10010e9a01dcSLouis Dionne  }
10020e9a01dcSLouis Dionne  module ratio {
10030e9a01dcSLouis Dionne    header "ratio"
10040e9a01dcSLouis Dionne    export *
10050e9a01dcSLouis Dionne  }
10060e9a01dcSLouis Dionne  module regex {
10070e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
10080e9a01dcSLouis Dionne    header "regex"
10090e9a01dcSLouis Dionne    export initializer_list
10100e9a01dcSLouis Dionne    export *
10110e9a01dcSLouis Dionne  }
10120e9a01dcSLouis Dionne  module scoped_allocator {
10130e9a01dcSLouis Dionne    header "scoped_allocator"
10140e9a01dcSLouis Dionne    export *
10150e9a01dcSLouis Dionne  }
10160e9a01dcSLouis Dionne  module semaphore {
10170e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
10180e9a01dcSLouis Dionne    header "semaphore"
10190e9a01dcSLouis Dionne    export *
10200e9a01dcSLouis Dionne  }
10210e9a01dcSLouis Dionne  module set {
10220e9a01dcSLouis Dionne    header "set"
10230e9a01dcSLouis Dionne    export initializer_list
10240e9a01dcSLouis Dionne    export *
10250e9a01dcSLouis Dionne  }
10260e9a01dcSLouis Dionne  module shared_mutex {
10270e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
10280e9a01dcSLouis Dionne    header "shared_mutex"
10290e9a01dcSLouis Dionne    export version
10300e9a01dcSLouis Dionne  }
10310e9a01dcSLouis Dionne  module span {
10320e9a01dcSLouis Dionne    header "span"
10330e9a01dcSLouis Dionne    export ranges.__ranges.enable_borrowed_range
10340e9a01dcSLouis Dionne    export version
10350e9a01dcSLouis Dionne    module span_fwd { private header "__fwd/span.h" }
10360e9a01dcSLouis Dionne  }
10370e9a01dcSLouis Dionne  module sstream {
10380e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
10390e9a01dcSLouis Dionne    header "sstream"
10400e9a01dcSLouis Dionne    // FIXME: should re-export istream, ostream, ios, streambuf, string?
10410e9a01dcSLouis Dionne    export *
10420e9a01dcSLouis Dionne  }
10430e9a01dcSLouis Dionne  module stack {
10440e9a01dcSLouis Dionne    header "stack"
10450e9a01dcSLouis Dionne    export initializer_list
10460e9a01dcSLouis Dionne    export *
10470e9a01dcSLouis Dionne  }
10480e9a01dcSLouis Dionne  module stdexcept {
10490e9a01dcSLouis Dionne    header "stdexcept"
10500e9a01dcSLouis Dionne    export *
10510e9a01dcSLouis Dionne  }
10520e9a01dcSLouis Dionne  module streambuf {
10530e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
10540e9a01dcSLouis Dionne    header "streambuf"
10550e9a01dcSLouis Dionne    export *
10560e9a01dcSLouis Dionne  }
10570e9a01dcSLouis Dionne  module string {
10580e9a01dcSLouis Dionne    header "string"
10590e9a01dcSLouis Dionne    export initializer_list
10600e9a01dcSLouis Dionne    export string_view
1061976f3705SNikolas Klauser    module __string {
1062976f3705SNikolas Klauser      module char_traits           { private header "__string/char_traits.h" }
1063976f3705SNikolas Klauser      module extern_template_lists { private header "__string/extern_template_lists.h" }
1064976f3705SNikolas Klauser    }
10650e9a01dcSLouis Dionne    export *
10660e9a01dcSLouis Dionne  }
10670e9a01dcSLouis Dionne  module string_view {
10680e9a01dcSLouis Dionne    header "string_view"
10690e9a01dcSLouis Dionne    export initializer_list
10700e9a01dcSLouis Dionne    export *
10710e9a01dcSLouis Dionne    module string_view_fwd { private header "__fwd/string_view.h" }
10720e9a01dcSLouis Dionne  }
10730e9a01dcSLouis Dionne  module strstream {
10740e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
10750e9a01dcSLouis Dionne    header "strstream"
10760e9a01dcSLouis Dionne    export *
10770e9a01dcSLouis Dionne  }
10780e9a01dcSLouis Dionne  module system_error {
10790e9a01dcSLouis Dionne    header "system_error"
10800e9a01dcSLouis Dionne    export *
10810e9a01dcSLouis Dionne  }
10820e9a01dcSLouis Dionne  module thread {
10830e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_THREADS@
10840e9a01dcSLouis Dionne    header "thread"
10850e9a01dcSLouis Dionne    export *
10860e9a01dcSLouis Dionne
10870e9a01dcSLouis Dionne    module __thread {
10880e9a01dcSLouis Dionne      module poll_with_backoff    { private header "__thread/poll_with_backoff.h" }
10890e9a01dcSLouis Dionne      module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
10900e9a01dcSLouis Dionne    }
10910e9a01dcSLouis Dionne  }
10920e9a01dcSLouis Dionne  module tuple {
10930e9a01dcSLouis Dionne    header "tuple"
10940e9a01dcSLouis Dionne    export *
10950e9a01dcSLouis Dionne  }
10960e9a01dcSLouis Dionne  module type_traits {
10970e9a01dcSLouis Dionne    header "type_traits"
10980e9a01dcSLouis Dionne    export functional.__functional.unwrap_ref
10990e9a01dcSLouis Dionne    export *
11000e9a01dcSLouis Dionne
11010e9a01dcSLouis Dionne    module add_const                          { private header "__type_traits/add_const.h" }
11020e9a01dcSLouis Dionne    module add_cv                             { private header "__type_traits/add_cv.h" }
11030e9a01dcSLouis Dionne    module add_lvalue_reference               { private header "__type_traits/add_lvalue_reference.h" }
11040e9a01dcSLouis Dionne    module add_pointer                        { private header "__type_traits/add_pointer.h" }
11050e9a01dcSLouis Dionne    module add_rvalue_reference               { private header "__type_traits/add_rvalue_reference.h" }
11060e9a01dcSLouis Dionne    module add_volatile                       { private header "__type_traits/add_volatile.h" }
1107b7aa9c4aSNikolas Klauser    module aligned_storage                    { private header "__type_traits/aligned_storage.h" }
1108b7aa9c4aSNikolas Klauser    module aligned_union                      { private header "__type_traits/aligned_union.h" }
11091972d1e8SNikolas Klauser    module alignment_of                       { private header "__type_traits/alignment_of.h" }
11101972d1e8SNikolas Klauser    module apply_cv                           { private header "__type_traits/apply_cv.h" }
1111b7aa9c4aSNikolas Klauser    module common_reference                   { private header "__type_traits/common_reference.h" }
1112b7aa9c4aSNikolas Klauser    module common_type                        { private header "__type_traits/common_type.h" }
11130e9a01dcSLouis Dionne    module conditional                        { private header "__type_traits/conditional.h" }
11140e9a01dcSLouis Dionne    module conjunction                        { private header "__type_traits/conjunction.h" }
1115b7aa9c4aSNikolas Klauser    module copy_cv                            { private header "__type_traits/copy_cv.h" }
1116b7aa9c4aSNikolas Klauser    module copy_cvref                         { private header "__type_traits/copy_cvref.h" }
11170e9a01dcSLouis Dionne    module decay                              { private header "__type_traits/decay.h" }
11180e9a01dcSLouis Dionne    module disjunction                        { private header "__type_traits/disjunction.h" }
11190e9a01dcSLouis Dionne    module enable_if                          { private header "__type_traits/enable_if.h" }
11200e9a01dcSLouis Dionne    module extent                             { private header "__type_traits/extent.h" }
11211972d1e8SNikolas Klauser    module has_unique_object_representation   { private header "__type_traits/has_unique_object_representation.h" }
11221972d1e8SNikolas Klauser    module has_virtual_destructor             { private header "__type_traits/has_virtual_destructor.h" }
11230e9a01dcSLouis Dionne    module integral_constant                  { private header "__type_traits/integral_constant.h" }
11240e9a01dcSLouis Dionne    module is_abstract                        { private header "__type_traits/is_abstract.h" }
11250e9a01dcSLouis Dionne    module is_aggregate                       { private header "__type_traits/is_aggregate.h" }
11260e9a01dcSLouis Dionne    module is_arithmetic                      { private header "__type_traits/is_arithmetic.h" }
11270e9a01dcSLouis Dionne    module is_array                           { private header "__type_traits/is_array.h" }
11281972d1e8SNikolas Klauser    module is_assignable                      { private header "__type_traits/is_assignable.h" }
11290e9a01dcSLouis Dionne    module is_base_of                         { private header "__type_traits/is_base_of.h" }
11300e9a01dcSLouis Dionne    module is_bounded_array                   { private header "__type_traits/is_bounded_array.h" }
11310e9a01dcSLouis Dionne    module is_callable                        { private header "__type_traits/is_callable.h" }
11320e9a01dcSLouis Dionne    module is_class                           { private header "__type_traits/is_class.h" }
11330e9a01dcSLouis Dionne    module is_compound                        { private header "__type_traits/is_compound.h" }
11340e9a01dcSLouis Dionne    module is_const                           { private header "__type_traits/is_const.h" }
11351972d1e8SNikolas Klauser    module is_constant_evaluated              { private header "__type_traits/is_constant_evaluated.h" }
11363abaefe6SNikolas Klauser    module is_constructible                   { private header "__type_traits/is_constructible.h" }
11370e9a01dcSLouis Dionne    module is_convertible                     { private header "__type_traits/is_convertible.h" }
11381972d1e8SNikolas Klauser    module is_copy_assignable                 { private header "__type_traits/is_copy_assignable.h" }
11393abaefe6SNikolas Klauser    module is_copy_constructible              { private header "__type_traits/is_copy_constructible.h" }
11401972d1e8SNikolas Klauser    module is_core_convertible                { private header "__type_traits/is_core_convertible.h" }
11413abaefe6SNikolas Klauser    module is_default_constructible           { private header "__type_traits/is_default_constructible.h" }
11423abaefe6SNikolas Klauser    module is_destructible                    { private header "__type_traits/is_destructible.h" }
11430e9a01dcSLouis Dionne    module is_empty                           { private header "__type_traits/is_empty.h" }
11440e9a01dcSLouis Dionne    module is_enum                            { private header "__type_traits/is_enum.h" }
11450e9a01dcSLouis Dionne    module is_final                           { private header "__type_traits/is_final.h" }
11460e9a01dcSLouis Dionne    module is_floating_point                  { private header "__type_traits/is_floating_point.h" }
11470e9a01dcSLouis Dionne    module is_function                        { private header "__type_traits/is_function.h" }
11480e9a01dcSLouis Dionne    module is_fundamental                     { private header "__type_traits/is_fundamental.h" }
11490e9a01dcSLouis Dionne    module is_integral                        { private header "__type_traits/is_integral.h" }
11501972d1e8SNikolas Klauser    module is_literal_type                    { private header "__type_traits/is_literal_type.h" }
11510e9a01dcSLouis Dionne    module is_member_function_pointer         { private header "__type_traits/is_member_function_pointer.h" }
11520e9a01dcSLouis Dionne    module is_member_object_pointer           { private header "__type_traits/is_member_object_pointer.h" }
11530e9a01dcSLouis Dionne    module is_member_pointer                  { private header "__type_traits/is_member_pointer.h" }
11541972d1e8SNikolas Klauser    module is_move_assignable                 { private header "__type_traits/is_move_assignable.h" }
11553abaefe6SNikolas Klauser    module is_move_constructible              { private header "__type_traits/is_move_constructible.h" }
11563abaefe6SNikolas Klauser    module is_nothrow_assignable              { private header "__type_traits/is_nothrow_assignable.h" }
11573abaefe6SNikolas Klauser    module is_nothrow_constructible           { private header "__type_traits/is_nothrow_constructible.h" }
1158b7aa9c4aSNikolas Klauser    module is_nothrow_convertible             { private header "__type_traits/is_nothrow_convertible.h" }
11593abaefe6SNikolas Klauser    module is_nothrow_copy_assignable         { private header "__type_traits/is_nothrow_copy_assignable.h" }
11603abaefe6SNikolas Klauser    module is_nothrow_copy_constructible      { private header "__type_traits/is_nothrow_copy_constructible.h" }
11613abaefe6SNikolas Klauser    module is_nothrow_default_constructible   { private header "__type_traits/is_nothrow_default_constructible.h" }
11623abaefe6SNikolas Klauser    module is_nothrow_destructible            { private header "__type_traits/is_nothrow_destructible.h" }
11633abaefe6SNikolas Klauser    module is_nothrow_move_assignable         { private header "__type_traits/is_nothrow_move_assignable.h" }
11643abaefe6SNikolas Klauser    module is_nothrow_move_constructible      { private header "__type_traits/is_nothrow_move_constructible.h" }
11650e9a01dcSLouis Dionne    module is_null_pointer                    { private header "__type_traits/is_null_pointer.h" }
11660e9a01dcSLouis Dionne    module is_object                          { private header "__type_traits/is_object.h" }
11671972d1e8SNikolas Klauser    module is_pod                             { private header "__type_traits/is_pod.h" }
11680e9a01dcSLouis Dionne    module is_pointer                         { private header "__type_traits/is_pointer.h" }
11691972d1e8SNikolas Klauser    module is_polymorphic                     { private header "__type_traits/is_polymorphic.h" }
1170b7aa9c4aSNikolas Klauser    module is_primary_template                { private header "__type_traits/is_primary_template.h" }
11710e9a01dcSLouis Dionne    module is_reference                       { private header "__type_traits/is_reference.h" }
11720e9a01dcSLouis Dionne    module is_reference_wrapper               { private header "__type_traits/is_reference_wrapper.h" }
11730e9a01dcSLouis Dionne    module is_referenceable                   { private header "__type_traits/is_referenceable.h" }
11740e9a01dcSLouis Dionne    module is_same                            { private header "__type_traits/is_same.h" }
11750e9a01dcSLouis Dionne    module is_scalar                          { private header "__type_traits/is_scalar.h" }
11761972d1e8SNikolas Klauser    module is_scoped_enum                     { private header "__type_traits/is_scoped_enum.h" }
11770e9a01dcSLouis Dionne    module is_signed                          { private header "__type_traits/is_signed.h" }
1178b7aa9c4aSNikolas Klauser    module is_signed_integer                  { private header "__type_traits/is_signed_integer.h" }
11791972d1e8SNikolas Klauser    module is_standard_layout                 { private header "__type_traits/is_standard_layout.h" }
11801972d1e8SNikolas Klauser    module is_trivial                         { private header "__type_traits/is_trivial.h" }
11813abaefe6SNikolas Klauser    module is_trivially_assignable            { private header "__type_traits/is_trivially_assignable.h" }
11823abaefe6SNikolas Klauser    module is_trivially_constructible         { private header "__type_traits/is_trivially_constructible.h" }
11833abaefe6SNikolas Klauser    module is_trivially_copy_assignable       { private header "__type_traits/is_trivially_copy_assignable.h" }
11843abaefe6SNikolas Klauser    module is_trivially_copy_constructible    { private header "__type_traits/is_trivially_copy_constructible.h" }
11851972d1e8SNikolas Klauser    module is_trivially_copyable              { private header "__type_traits/is_trivially_copyable.h" }
11863abaefe6SNikolas Klauser    module is_trivially_default_constructible { private header "__type_traits/is_trivially_default_constructible.h" }
11873abaefe6SNikolas Klauser    module is_trivially_destructible          { private header "__type_traits/is_trivially_destructible.h" }
11883abaefe6SNikolas Klauser    module is_trivially_move_assignable       { private header "__type_traits/is_trivially_move_assignable.h" }
11893abaefe6SNikolas Klauser    module is_trivially_move_constructible    { private header "__type_traits/is_trivially_move_constructible.h" }
11900e9a01dcSLouis Dionne    module is_unbounded_array                 { private header "__type_traits/is_unbounded_array.h" }
11910e9a01dcSLouis Dionne    module is_union                           { private header "__type_traits/is_union.h" }
11920e9a01dcSLouis Dionne    module is_unsigned                        { private header "__type_traits/is_unsigned.h" }
1193b7aa9c4aSNikolas Klauser    module is_unsigned_integer                { private header "__type_traits/is_unsigned_integer.h" }
1194b7aa9c4aSNikolas Klauser    module is_valid_expansion                 { private header "__type_traits/is_valid_expansion.h" }
11950e9a01dcSLouis Dionne    module is_void                            { private header "__type_traits/is_void.h" }
11960e9a01dcSLouis Dionne    module is_volatile                        { private header "__type_traits/is_volatile.h" }
1197b7aa9c4aSNikolas Klauser    module lazy                               { private header "__type_traits/lazy.h" }
1198b7aa9c4aSNikolas Klauser    module make_32_64_or_128_bit              { private header "__type_traits/make_32_64_or_128_bit.h" }
1199b7aa9c4aSNikolas Klauser    module make_signed                        { private header "__type_traits/make_signed.h" }
1200b7aa9c4aSNikolas Klauser    module make_unsigned                      { private header "__type_traits/make_unsigned.h" }
1201b7aa9c4aSNikolas Klauser    module nat                                { private header "__type_traits/nat.h" }
12023abaefe6SNikolas Klauser    module negation                           { private header "__type_traits/negation.h" }
1203b7aa9c4aSNikolas Klauser    module promote                            { private header "__type_traits/promote.h" }
12040e9a01dcSLouis Dionne    module rank                               { private header "__type_traits/rank.h" }
12050e9a01dcSLouis Dionne    module remove_all_extents                 { private header "__type_traits/remove_all_extents.h" }
12060e9a01dcSLouis Dionne    module remove_const                       { private header "__type_traits/remove_const.h" }
12070e9a01dcSLouis Dionne    module remove_cv                          { private header "__type_traits/remove_cv.h" }
1208b7aa9c4aSNikolas Klauser    module remove_cvref                       { private header "__type_traits/remove_cvref.h" }
12090e9a01dcSLouis Dionne    module remove_extent                      { private header "__type_traits/remove_extent.h" }
12100e9a01dcSLouis Dionne    module remove_pointer                     { private header "__type_traits/remove_pointer.h" }
12110e9a01dcSLouis Dionne    module remove_reference                   { private header "__type_traits/remove_reference.h" }
12120e9a01dcSLouis Dionne    module remove_volatile                    { private header "__type_traits/remove_volatile.h" }
12130e9a01dcSLouis Dionne    module type_identity                      { private header "__type_traits/type_identity.h" }
1214b7aa9c4aSNikolas Klauser    module type_list                          { private header "__type_traits/type_list.h" }
12151972d1e8SNikolas Klauser    module underlying_type                    { private header "__type_traits/underlying_type.h" }
12163abaefe6SNikolas Klauser    module void_t                             { private header "__type_traits/void_t.h" }
12170e9a01dcSLouis Dionne  }
12180e9a01dcSLouis Dionne  module typeindex {
12190e9a01dcSLouis Dionne    header "typeindex"
12200e9a01dcSLouis Dionne    export *
12210e9a01dcSLouis Dionne  }
12220e9a01dcSLouis Dionne  module typeinfo {
12230e9a01dcSLouis Dionne    header "typeinfo"
12240e9a01dcSLouis Dionne    export *
12250e9a01dcSLouis Dionne  }
12260e9a01dcSLouis Dionne  module unordered_map {
12270e9a01dcSLouis Dionne    header "unordered_map"
12280e9a01dcSLouis Dionne    export initializer_list
12290e9a01dcSLouis Dionne    export *
12300e9a01dcSLouis Dionne  }
12310e9a01dcSLouis Dionne  module unordered_set {
12320e9a01dcSLouis Dionne    header "unordered_set"
12330e9a01dcSLouis Dionne    export initializer_list
12340e9a01dcSLouis Dionne    export *
12350e9a01dcSLouis Dionne  }
12360e9a01dcSLouis Dionne  module utility {
12370e9a01dcSLouis Dionne    header "utility"
12380e9a01dcSLouis Dionne    export initializer_list
12390e9a01dcSLouis Dionne    export *
12400e9a01dcSLouis Dionne
12410e9a01dcSLouis Dionne    module __utility {
12420e9a01dcSLouis Dionne      module as_const            { private header "__utility/as_const.h" }
12430e9a01dcSLouis Dionne      module auto_cast           { private header "__utility/auto_cast.h" }
12440e9a01dcSLouis Dionne      module cmp                 { private header "__utility/cmp.h" }
12450e9a01dcSLouis Dionne      module declval             { private header "__utility/declval.h" }
12460e9a01dcSLouis Dionne      module exchange            { private header "__utility/exchange.h" }
12470e9a01dcSLouis Dionne      module forward             { private header "__utility/forward.h" }
12480e9a01dcSLouis Dionne      module in_place            { private header "__utility/in_place.h" }
12490e9a01dcSLouis Dionne      module integer_sequence    { private header "__utility/integer_sequence.h" }
12500e9a01dcSLouis Dionne      module move                { private header "__utility/move.h" }
12510e9a01dcSLouis Dionne      module pair                { private header "__utility/pair.h" }
12520e9a01dcSLouis Dionne      module piecewise_construct { private header "__utility/piecewise_construct.h" }
12530e9a01dcSLouis Dionne      module priority_tag        { private header "__utility/priority_tag.h" }
12540e9a01dcSLouis Dionne      module rel_ops             { private header "__utility/rel_ops.h" }
12550e9a01dcSLouis Dionne      module swap                { private header "__utility/swap.h" }
12560e9a01dcSLouis Dionne      module to_underlying       { private header "__utility/to_underlying.h" }
12570e9a01dcSLouis Dionne      module transaction         { private header "__utility/transaction.h" }
12580e9a01dcSLouis Dionne      module unreachable         { private header "__utility/unreachable.h" }
12590e9a01dcSLouis Dionne    }
12600e9a01dcSLouis Dionne  }
12610e9a01dcSLouis Dionne  module valarray {
12620e9a01dcSLouis Dionne    header "valarray"
12630e9a01dcSLouis Dionne    export initializer_list
12640e9a01dcSLouis Dionne    export *
12650e9a01dcSLouis Dionne  }
12660e9a01dcSLouis Dionne  module variant {
12670e9a01dcSLouis Dionne    header "variant"
12680e9a01dcSLouis Dionne    export *
12690e9a01dcSLouis Dionne
12700e9a01dcSLouis Dionne    module __variant {
12710e9a01dcSLouis Dionne      module monostate { private header "__variant/monostate.h" }
12720e9a01dcSLouis Dionne    }
12730e9a01dcSLouis Dionne  }
12740e9a01dcSLouis Dionne  module vector {
12750e9a01dcSLouis Dionne    header "vector"
12760e9a01dcSLouis Dionne    export initializer_list
12770e9a01dcSLouis Dionne    export *
12780e9a01dcSLouis Dionne  }
12790e9a01dcSLouis Dionne  module version {
12800e9a01dcSLouis Dionne    header "version"
12810e9a01dcSLouis Dionne    export *
12820e9a01dcSLouis Dionne  }
12830e9a01dcSLouis Dionne
12840e9a01dcSLouis Dionne  // FIXME: These should be private.
12850e9a01dcSLouis Dionne  module __assert            {         header "__assert"            export * }
12860e9a01dcSLouis Dionne  module __availability      { private header "__availability"      export * }
12870e9a01dcSLouis Dionne  module __bit_reference     { private header "__bit_reference"     export * }
12880e9a01dcSLouis Dionne  module __bits              { private header "__bits"              export * }
12890e9a01dcSLouis Dionne  module __debug             {         header "__debug"             export * }
12900e9a01dcSLouis Dionne  module __errc              { private header "__errc"              export * }
12910e9a01dcSLouis Dionne  module __hash_table        {         header "__hash_table"        export * }
12920e9a01dcSLouis Dionne  module __locale            {
12930e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
12940e9a01dcSLouis Dionne    private header "__locale" export *
12950e9a01dcSLouis Dionne  }
12960e9a01dcSLouis Dionne  module __mbstate_t         { private header "__mbstate_t.h"       export * }
12970e9a01dcSLouis Dionne  module __mutex_base        { private header "__mutex_base"        export * }
12980e9a01dcSLouis Dionne  module __node_handle       { private header "__node_handle"       export * }
12990e9a01dcSLouis Dionne  module __split_buffer      { private header "__split_buffer"      export * }
13000e9a01dcSLouis Dionne  module __std_stream        {
13010e9a01dcSLouis Dionne    @requires_LIBCXX_ENABLE_LOCALIZATION@
13020e9a01dcSLouis Dionne    private header "__std_stream" export *
13030e9a01dcSLouis Dionne  }
13040e9a01dcSLouis Dionne  module __threading_support {         header "__threading_support" export * }
13050e9a01dcSLouis Dionne  module __tree              {         header "__tree"              export * }
13060e9a01dcSLouis Dionne  module __tuple             { private header "__tuple"             export * }
13070e9a01dcSLouis Dionne  module __undef_macros      {         header "__undef_macros"      export * }
13083a55353fSLouis Dionne  module __verbose_abort     {         header "__verbose_abort"     export * }
13090e9a01dcSLouis Dionne
13100e9a01dcSLouis Dionne  module experimental {
13110e9a01dcSLouis Dionne    requires cplusplus11
13120e9a01dcSLouis Dionne
13130e9a01dcSLouis Dionne    module algorithm {
13140e9a01dcSLouis Dionne      header "experimental/algorithm"
13150e9a01dcSLouis Dionne      export *
13160e9a01dcSLouis Dionne    }
13170e9a01dcSLouis Dionne    module coroutine {
13180e9a01dcSLouis Dionne      requires coroutines
13190e9a01dcSLouis Dionne      header "experimental/coroutine"
13200e9a01dcSLouis Dionne      export *
13210e9a01dcSLouis Dionne    }
13220e9a01dcSLouis Dionne    module deque {
13230e9a01dcSLouis Dionne      header "experimental/deque"
13240e9a01dcSLouis Dionne      export *
13250e9a01dcSLouis Dionne    }
13260e9a01dcSLouis Dionne    module forward_list {
13270e9a01dcSLouis Dionne      header "experimental/forward_list"
13280e9a01dcSLouis Dionne      export *
13290e9a01dcSLouis Dionne    }
13300e9a01dcSLouis Dionne    module functional {
13310e9a01dcSLouis Dionne      header "experimental/functional"
13320e9a01dcSLouis Dionne      export *
13330e9a01dcSLouis Dionne    }
13340e9a01dcSLouis Dionne    module iterator {
13350e9a01dcSLouis Dionne      header "experimental/iterator"
13360e9a01dcSLouis Dionne      export *
13370e9a01dcSLouis Dionne    }
13380e9a01dcSLouis Dionne    module list {
13390e9a01dcSLouis Dionne      header "experimental/list"
13400e9a01dcSLouis Dionne      export *
13410e9a01dcSLouis Dionne    }
13420e9a01dcSLouis Dionne    module map {
13430e9a01dcSLouis Dionne      header "experimental/map"
13440e9a01dcSLouis Dionne      export *
13450e9a01dcSLouis Dionne    }
13460e9a01dcSLouis Dionne    module memory_resource {
13470e9a01dcSLouis Dionne      header "experimental/memory_resource"
13480e9a01dcSLouis Dionne      export *
13490e9a01dcSLouis Dionne    }
13500e9a01dcSLouis Dionne    module propagate_const {
13510e9a01dcSLouis Dionne      header "experimental/propagate_const"
13520e9a01dcSLouis Dionne      export *
13530e9a01dcSLouis Dionne    }
13540e9a01dcSLouis Dionne    module regex {
13550e9a01dcSLouis Dionne      @requires_LIBCXX_ENABLE_LOCALIZATION@
13560e9a01dcSLouis Dionne      header "experimental/regex"
13570e9a01dcSLouis Dionne      export *
13580e9a01dcSLouis Dionne    }
13590e9a01dcSLouis Dionne    module simd {
13600e9a01dcSLouis Dionne      header "experimental/simd"
13610e9a01dcSLouis Dionne      export *
13620e9a01dcSLouis Dionne    }
13630e9a01dcSLouis Dionne    module set {
13640e9a01dcSLouis Dionne      header "experimental/set"
13650e9a01dcSLouis Dionne      export *
13660e9a01dcSLouis Dionne    }
13670e9a01dcSLouis Dionne    module span {
13680e9a01dcSLouis Dionne      header "span"
13690e9a01dcSLouis Dionne      export *
13700e9a01dcSLouis Dionne    }
13710e9a01dcSLouis Dionne    module string {
13720e9a01dcSLouis Dionne      header "experimental/string"
13730e9a01dcSLouis Dionne      export *
13740e9a01dcSLouis Dionne    }
13750e9a01dcSLouis Dionne    module type_traits {
13760e9a01dcSLouis Dionne      header "experimental/type_traits"
13770e9a01dcSLouis Dionne      export *
13780e9a01dcSLouis Dionne    }
13790e9a01dcSLouis Dionne    module unordered_map {
13800e9a01dcSLouis Dionne      header "experimental/unordered_map"
13810e9a01dcSLouis Dionne      export *
13820e9a01dcSLouis Dionne    }
13830e9a01dcSLouis Dionne    module unordered_set {
13840e9a01dcSLouis Dionne      header "experimental/unordered_set"
13850e9a01dcSLouis Dionne      export *
13860e9a01dcSLouis Dionne    }
13870e9a01dcSLouis Dionne    module utility {
13880e9a01dcSLouis Dionne      header "experimental/utility"
13890e9a01dcSLouis Dionne      export *
13900e9a01dcSLouis Dionne    }
13910e9a01dcSLouis Dionne    module vector {
13920e9a01dcSLouis Dionne      header "experimental/vector"
13930e9a01dcSLouis Dionne      export *
13940e9a01dcSLouis Dionne    }
13950e9a01dcSLouis Dionne    // FIXME these should be private
13960e9a01dcSLouis Dionne    module __memory {
13970e9a01dcSLouis Dionne      header "experimental/__memory"
13980e9a01dcSLouis Dionne      export *
13990e9a01dcSLouis Dionne    }
14000e9a01dcSLouis Dionne  } // end experimental
14010e9a01dcSLouis Dionne}
1402