1 // define the module for __config outside of the top level 'std' module
2 // since __config may be included from C headers which may create an
4 module std_config [system] [extern_c] {
10 // FIXME: The standard does not require that each of these submodules
11 // re-exports its imported modules. We should provide an alternative form of
12 // export that issues a warning if a name from the submodule is used, and
13 // use that to provide a 'strict mode' for libc++.
15 // Deprecated C-compatibility headers. These can all be included from within
16 // an 'extern "C"' context.
17 module depr [extern_c] {
18 // <assert.h> provided by C library.
31 // <float.h> provided by compiler or C library.
37 // <iso646.h> provided by compiler.
38 // <limits.h> provided by compiler or C library.
51 // FIXME: <stdalign.h> is missing.
52 // <signal.h> provided by C library.
53 // <stdarg.h> provided by compiler.
54 // <stdbool.h> provided by compiler.
56 // <stddef.h>'s __need_* macros require textual inclusion.
57 textual header "stddef.h"
62 // FIXME: This module only exists on OS X and for some reason the
63 // wildcard above doesn't export it.
64 export Darwin.C.stdint
67 // <stdio.h>'s __need_* macros require textual inclusion.
68 textual header "stdio.h"
73 // <stdlib.h>'s __need_* macros require textual inclusion.
74 textual header "stdlib.h"
81 // FIXME: <uchar.h> is missing.
82 // <time.h> provided by C library.
84 // <wchar.h>'s __need_* macros require textual inclusion.
85 textual header "wchar.h"
94 // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
95 // allow their use in extern "C" contexts.
108 // C compatibility headers.
111 // <cassert>'s use of NDEBUG requires textual inclusion.
112 textual header "cassert"
164 // FIXME: <cstdalign> is missing.
204 // FIXME: <cuchar> is missing.
218 export initializer_list
227 export initializer_list
249 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
274 module condition_variable {
275 header "condition_variable"
280 export initializer_list
295 module forward_list {
296 header "forward_list"
297 export initializer_list
312 module initializer_list {
313 header "initializer_list"
339 // FIXME: should re-export ios, streambuf?
357 export initializer_list
366 export initializer_list
395 // FIXME: should re-export ios, streambuf?
400 export initializer_list
405 export initializer_list
414 export initializer_list
417 module scoped_allocator {
418 header "scoped_allocator"
428 export initializer_list
433 // FIXME: should re-export istream, ostream, ios, streambuf, string?
438 export initializer_list
451 export initializer_list
458 export initializer_list
466 module system_error {
467 header "system_error"
490 module unordered_map {
491 header "unordered_map"
492 export initializer_list
495 module unordered_set {
496 header "unordered_set"
497 export initializer_list
502 export initializer_list
507 export initializer_list
516 export initializer_list
524 // FIXME: These should be private.
525 module __bit_reference { header "__bit_reference" export * }
526 module __debug { header "__debug" export * }
527 module __errc { header "__errc" export * }
528 module __functional_base { header "__functional_base" export * }
529 module __hash_table { header "__hash_table" export * }
530 module __locale { header "__locale" export * }
531 module __mutex_base { header "__mutex_base" export * }
532 module __split_buffer { header "__split_buffer" export * }
533 module __sso_allocator { header "__sso_allocator" export * }
534 module __std_stream { header "__std_stream" export * }
535 module __string { header "__string" export * }
536 module __tree { header "__tree" export * }
537 module __tuple { header "__tuple" export * }
538 module __undef_macros { header "__undef_macros" export * }
539 module __node_handle { header "__node_handle" export * }
541 module experimental {
545 header "experimental/algorithm"
550 header "experimental/coroutine"
554 header "experimental/deque"
558 header "experimental/filesystem"
561 module forward_list {
562 header "experimental/forward_list"
566 header "experimental/functional"
570 header "experimental/iterator"
574 header "experimental/list"
578 header "experimental/map"
581 module memory_resource {
582 header "experimental/memory_resource"
585 module propagate_const {
586 header "experimental/propagate_const"
590 header "experimental/regex"
594 header "experimental/simd"
598 header "experimental/set"
606 header "experimental/string"
610 header "experimental/type_traits"
613 module unordered_map {
614 header "experimental/unordered_map"
617 module unordered_set {
618 header "experimental/unordered_set"
622 header "experimental/utility"
626 header "experimental/vector"
629 // FIXME these should be private
631 header "experimental/__memory"
634 } // end experimental