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
244 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
265 module condition_variable {
266 header "condition_variable"
271 export initializer_list
282 module forward_list {
283 header "forward_list"
284 export initializer_list
299 module initializer_list {
300 header "initializer_list"
326 // FIXME: should re-export ios, streambuf?
339 export initializer_list
348 export initializer_list
373 // FIXME: should re-export ios, streambuf?
378 export initializer_list
383 export initializer_list
392 export initializer_list
395 module scoped_allocator {
396 header "scoped_allocator"
401 export initializer_list
406 // FIXME: should re-export istream, ostream, ios, streambuf, string?
411 export initializer_list
424 export initializer_list
431 export initializer_list
439 module system_error {
440 header "system_error"
463 module unordered_map {
464 header "unordered_map"
465 export initializer_list
468 module unordered_set {
469 header "unordered_set"
470 export initializer_list
475 export initializer_list
480 export initializer_list
489 export initializer_list
497 // FIXME: These should be private.
498 module __bit_reference { header "__bit_reference" export * }
499 module __debug { header "__debug" export * }
500 module __errc { header "__errc" export * }
501 module __functional_base { header "__functional_base" export * }
502 module __hash_table { header "__hash_table" export * }
503 module __locale { header "__locale" export * }
504 module __mutex_base { header "__mutex_base" export * }
505 module __split_buffer { header "__split_buffer" export * }
506 module __sso_allocator { header "__sso_allocator" export * }
507 module __std_stream { header "__std_stream" export * }
508 module __string { header "__string" export * }
509 module __tree { header "__tree" export * }
510 module __tuple { header "__tuple" export * }
511 module __undef_macros { header "__undef_macros" export * }
512 module __node_handle { header "__node_handle" export * }
514 module experimental {
518 header "experimental/algorithm"
523 header "experimental/coroutine"
527 header "experimental/deque"
531 header "experimental/filesystem"
534 module forward_list {
535 header "experimental/forward_list"
539 header "experimental/functional"
543 header "experimental/iterator"
547 header "experimental/list"
551 header "experimental/map"
554 module memory_resource {
555 header "experimental/memory_resource"
558 module propagate_const {
559 header "experimental/propagate_const"
563 header "experimental/regex"
567 header "experimental/simd"
571 header "experimental/set"
579 header "experimental/string"
583 header "experimental/type_traits"
586 module unordered_map {
587 header "experimental/unordered_map"
590 module unordered_set {
591 header "experimental/unordered_set"
595 header "experimental/utility"
599 header "experimental/vector"
602 // FIXME these should be private
604 header "experimental/__memory"
607 } // end experimental