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.
27 // <fenv.h> provided by C library.
28 // <float.h> provided by compiler or C library.
34 // <iso646.h> provided by compiler.
35 // <limits.h> provided by compiler or C library.
48 // FIXME: <stdalign.h> is missing.
49 // <signal.h> provided by C library.
50 // <stdarg.h> provided by compiler.
51 // <stdbool.h> provided by compiler.
53 // <stddef.h>'s __need_* macros require textual inclusion.
54 textual header "stddef.h"
59 // FIXME: This module only exists on OS X and for some reason the
60 // wildcard above doesn't export it.
61 export Darwin.C.stdint
64 // <stdio.h>'s __need_* macros require textual inclusion.
65 textual header "stdio.h"
70 // <stdlib.h>'s __need_* macros require textual inclusion.
71 textual header "stdlib.h"
78 // FIXME: <uchar.h> is missing.
79 // <time.h> provided by C library.
81 // <wchar.h>'s __need_* macros require textual inclusion.
82 textual header "wchar.h"
91 // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
92 // allow their use in extern "C" contexts.
105 // C compatibility headers.
108 // <cassert>'s use of NDEBUG requires textual inclusion.
109 textual header "cassert"
161 // FIXME: <cstdalign> is missing.
201 // FIXME: <cuchar> is missing.
215 export initializer_list
224 export initializer_list
237 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
250 module condition_variable {
251 header "condition_variable"
256 export initializer_list
263 module forward_list {
264 header "forward_list"
265 export initializer_list
280 module initializer_list {
281 header "initializer_list"
307 // FIXME: should re-export ios, streambuf?
320 export initializer_list
329 export initializer_list
354 // FIXME: should re-export ios, streambuf?
359 export initializer_list
364 export initializer_list
373 export initializer_list
376 module scoped_allocator {
377 header "scoped_allocator"
382 export initializer_list
387 // FIXME: should re-export istream, ostream, ios, streambuf, string?
392 export initializer_list
405 export initializer_list
412 export initializer_list
420 module system_error {
421 header "system_error"
444 module unordered_map {
445 header "unordered_map"
446 export initializer_list
449 module unordered_set {
450 header "unordered_set"
451 export initializer_list
456 export initializer_list
461 export initializer_list
470 export initializer_list
474 // FIXME: These should be private.
475 module __bit_reference { header "__bit_reference" export * }
476 module __debug { header "__debug" export * }
477 module __functional_base { header "__functional_base" export * }
478 module __hash_table { header "__hash_table" export * }
479 module __locale { header "__locale" export * }
480 module __mutex_base { header "__mutex_base" export * }
481 module __split_buffer { header "__split_buffer" export * }
482 module __sso_allocator { header "__sso_allocator" export * }
483 module __std_stream { header "__std_stream" export * }
484 module __string { header "__string" export * }
485 module __tree { header "__tree" export * }
486 module __tuple { header "__tuple" export * }
487 module __undef_min_max { header "__undef_min_max" export * }
488 module __undef___deallocate { header "__undef___deallocate" export * }
490 module experimental {
494 header "experimental/algorithm"
498 header "experimental/any"
502 header "experimental/chrono"
506 header "experimental/deque"
510 header "experimental/dynarray"
514 header "experimental/filesystem"
517 module forward_list {
518 header "experimental/forward_list"
522 header "experimental/functional"
526 header "experimental/iterator"
530 header "experimental/list"
534 header "experimental/map"
537 module memory_resource {
538 header "experimental/memory_resource"
542 header "experimental/numeric"
546 header "experimental/optional"
549 module propagate_const {
550 header "experimental/propagate_const"
554 header "experimental/ratio"
558 header "experimental/regex"
562 header "experimental/set"
566 header "experimental/string"
570 header "experimental/string_view"
573 module system_error {
574 header "experimental/system_error"
578 header "experimental/tuple"
582 header "experimental/type_traits"
585 module unordered_map {
586 header "experimental/unordered_map"
589 module unordered_set {
590 header "experimental/unordered_set"
594 header "experimental/utility"
598 header "experimental/vector"
601 // FIXME these should be private
603 header "experimental/__memory"
606 } // end experimental