2016-12-08 14:37:41 +08:00
|
|
|
// define the module for __config outside of the top level 'std' module
|
|
|
|
// since __config may be included from C headers which may create an
|
|
|
|
// include cycle.
|
|
|
|
module std_config [system] [extern_c] {
|
|
|
|
header "__config"
|
|
|
|
}
|
|
|
|
|
2014-05-21 08:33:49 +08:00
|
|
|
module std [system] {
|
2016-12-08 14:37:41 +08:00
|
|
|
export std_config
|
2014-05-21 08:33:49 +08:00
|
|
|
// FIXME: The standard does not require that each of these submodules
|
|
|
|
// re-exports its imported modules. We should provide an alternative form of
|
|
|
|
// export that issues a warning if a name from the submodule is used, and
|
|
|
|
// use that to provide a 'strict mode' for libc++.
|
2016-10-21 11:14:27 +08:00
|
|
|
|
|
|
|
// Deprecated C-compatibility headers. These can all be included from within
|
|
|
|
// an 'extern "C"' context.
|
|
|
|
module depr [extern_c] {
|
|
|
|
// <assert.h> provided by C library.
|
|
|
|
module ctype_h {
|
|
|
|
header "ctype.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module errno_h {
|
|
|
|
header "errno.h"
|
|
|
|
export *
|
|
|
|
}
|
2019-02-12 07:47:19 +08:00
|
|
|
module fenv_h {
|
|
|
|
header "fenv.h"
|
|
|
|
export *
|
|
|
|
}
|
2016-10-21 11:14:27 +08:00
|
|
|
// <float.h> provided by compiler or C library.
|
|
|
|
module inttypes_h {
|
|
|
|
header "inttypes.h"
|
|
|
|
export stdint_h
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// <iso646.h> provided by compiler.
|
|
|
|
// <limits.h> provided by compiler or C library.
|
2016-11-19 09:14:15 +08:00
|
|
|
module locale_h {
|
|
|
|
header "locale.h"
|
|
|
|
export *
|
|
|
|
}
|
2016-10-21 11:14:27 +08:00
|
|
|
module math_h {
|
|
|
|
header "math.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module setjmp_h {
|
|
|
|
header "setjmp.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// FIXME: <stdalign.h> is missing.
|
|
|
|
// <signal.h> provided by C library.
|
|
|
|
// <stdarg.h> provided by compiler.
|
2016-12-06 17:48:32 +08:00
|
|
|
// <stdbool.h> provided by compiler.
|
2016-10-21 11:14:27 +08:00
|
|
|
module stddef_h {
|
|
|
|
// <stddef.h>'s __need_* macros require textual inclusion.
|
|
|
|
textual header "stddef.h"
|
|
|
|
}
|
2016-11-23 04:05:19 +08:00
|
|
|
module stdint_h {
|
|
|
|
header "stdint.h"
|
|
|
|
export *
|
|
|
|
// FIXME: This module only exists on OS X and for some reason the
|
|
|
|
// wildcard above doesn't export it.
|
|
|
|
export Darwin.C.stdint
|
|
|
|
}
|
2016-10-21 11:14:27 +08:00
|
|
|
module stdio_h {
|
|
|
|
// <stdio.h>'s __need_* macros require textual inclusion.
|
|
|
|
textual header "stdio.h"
|
|
|
|
export *
|
2016-12-06 15:40:46 +08:00
|
|
|
export Darwin.C.stdio
|
2016-10-21 11:14:27 +08:00
|
|
|
}
|
|
|
|
module stdlib_h {
|
|
|
|
// <stdlib.h>'s __need_* macros require textual inclusion.
|
|
|
|
textual header "stdlib.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module string_h {
|
|
|
|
header "string.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// FIXME: <uchar.h> is missing.
|
|
|
|
// <time.h> provided by C library.
|
|
|
|
module wchar_h {
|
|
|
|
// <wchar.h>'s __need_* macros require textual inclusion.
|
|
|
|
textual header "wchar.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module wctype_h {
|
|
|
|
header "wctype.h"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// <complex.h> and <tgmath.h> are not C headers in any real sense, do not
|
|
|
|
// allow their use in extern "C" contexts.
|
|
|
|
module complex_h {
|
|
|
|
header "complex.h"
|
|
|
|
export ccomplex
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module tgmath_h {
|
|
|
|
header "tgmath.h"
|
|
|
|
export ccomplex
|
|
|
|
export cmath
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
|
|
|
|
// C compatibility headers.
|
|
|
|
module compat {
|
|
|
|
module cassert {
|
|
|
|
// <cassert>'s use of NDEBUG requires textual inclusion.
|
|
|
|
textual header "cassert"
|
|
|
|
}
|
|
|
|
module ccomplex {
|
|
|
|
header "ccomplex"
|
|
|
|
export complex
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cctype {
|
|
|
|
header "cctype"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cerrno {
|
|
|
|
header "cerrno"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cfenv {
|
|
|
|
header "cfenv"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cfloat {
|
|
|
|
header "cfloat"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cinttypes {
|
|
|
|
header "cinttypes"
|
|
|
|
export cstdint
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module ciso646 {
|
|
|
|
header "ciso646"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module climits {
|
|
|
|
header "climits"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module clocale {
|
|
|
|
header "clocale"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cmath {
|
|
|
|
header "cmath"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module csetjmp {
|
|
|
|
header "csetjmp"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module csignal {
|
|
|
|
header "csignal"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// FIXME: <cstdalign> is missing.
|
|
|
|
module cstdarg {
|
|
|
|
header "cstdarg"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstdbool {
|
|
|
|
header "cstdbool"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstddef {
|
|
|
|
header "cstddef"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstdint {
|
|
|
|
header "cstdint"
|
2016-11-23 04:05:19 +08:00
|
|
|
export depr.stdint_h
|
2016-10-21 11:14:27 +08:00
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstdio {
|
|
|
|
header "cstdio"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstdlib {
|
|
|
|
header "cstdlib"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cstring {
|
|
|
|
header "cstring"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module ctgmath {
|
|
|
|
header "ctgmath"
|
|
|
|
export ccomplex
|
|
|
|
export cmath
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module ctime {
|
|
|
|
header "ctime"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// FIXME: <cuchar> is missing.
|
|
|
|
module cwchar {
|
|
|
|
header "cwchar"
|
2016-12-06 15:40:46 +08:00
|
|
|
export depr.stdio_h
|
2016-10-21 11:14:27 +08:00
|
|
|
export *
|
|
|
|
}
|
|
|
|
module cwctype {
|
|
|
|
header "cwctype"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-05-21 08:33:49 +08:00
|
|
|
module algorithm {
|
|
|
|
header "algorithm"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
2021-06-17 23:30:11 +08:00
|
|
|
|
|
|
|
module __algorithm {
|
|
|
|
module adjacent_find { header "__algorithm/adjacent_find.h" }
|
|
|
|
module all_of { header "__algorithm/all_of.h" }
|
|
|
|
module any_of { header "__algorithm/any_of.h" }
|
|
|
|
module binary_search { header "__algorithm/binary_search.h" }
|
|
|
|
module clamp { header "__algorithm/clamp.h" }
|
|
|
|
module comp { header "__algorithm/comp.h" }
|
|
|
|
module comp_ref_type { header "__algorithm/comp_ref_type.h" }
|
|
|
|
module copy { header "__algorithm/copy.h" }
|
|
|
|
module copy_backward { header "__algorithm/copy_backward.h" }
|
|
|
|
module copy_if { header "__algorithm/copy_if.h" }
|
|
|
|
module copy_n { header "__algorithm/copy_n.h" }
|
|
|
|
module count { header "__algorithm/count.h" }
|
|
|
|
module count_if { header "__algorithm/count_if.h" }
|
|
|
|
module equal { header "__algorithm/equal.h" }
|
|
|
|
module equal_range { header "__algorithm/equal_range.h" }
|
|
|
|
module fill { header "__algorithm/fill.h" }
|
2021-07-05 21:25:15 +08:00
|
|
|
module fill_n { header "__algorithm/fill_n.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
module find { header "__algorithm/find.h" }
|
|
|
|
module find_end { header "__algorithm/find_end.h" }
|
|
|
|
module find_first_of { header "__algorithm/find_first_of.h" }
|
|
|
|
module find_if { header "__algorithm/find_if.h" }
|
|
|
|
module find_if_not { header "__algorithm/find_if_not.h" }
|
|
|
|
module for_each { header "__algorithm/for_each.h" }
|
|
|
|
module for_each_n { header "__algorithm/for_each_n.h" }
|
|
|
|
module generate { header "__algorithm/generate.h" }
|
2021-07-05 21:25:15 +08:00
|
|
|
module generate_n { header "__algorithm/generate_n.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
module half_positive { header "__algorithm/half_positive.h" }
|
|
|
|
module includes { header "__algorithm/includes.h" }
|
|
|
|
module inplace_merge { header "__algorithm/inplace_merge.h" }
|
|
|
|
module is_heap { header "__algorithm/is_heap.h" }
|
|
|
|
module is_heap_until { header "__algorithm/is_heap_until.h" }
|
|
|
|
module is_partitioned { header "__algorithm/is_partitioned.h" }
|
|
|
|
module is_permutation { header "__algorithm/is_permutation.h" }
|
|
|
|
module is_sorted { header "__algorithm/is_sorted.h" }
|
|
|
|
module is_sorted_until { header "__algorithm/is_sorted_until.h" }
|
|
|
|
module lexicographical_compare { header "__algorithm/lexicographical_compare.h" }
|
|
|
|
module lower_bound { header "__algorithm/lower_bound.h" }
|
|
|
|
module make_heap { header "__algorithm/make_heap.h" }
|
|
|
|
module max { header "__algorithm/max.h" }
|
|
|
|
module max_element { header "__algorithm/max_element.h" }
|
|
|
|
module merge { header "__algorithm/merge.h" }
|
|
|
|
module min { header "__algorithm/min.h" }
|
|
|
|
module min_element { header "__algorithm/min_element.h" }
|
|
|
|
module minmax { header "__algorithm/minmax.h" }
|
|
|
|
module minmax_element { header "__algorithm/minmax_element.h" }
|
|
|
|
module mismatch { header "__algorithm/mismatch.h" }
|
|
|
|
module move { header "__algorithm/move.h" }
|
|
|
|
module move_backward { header "__algorithm/move_backward.h" }
|
|
|
|
module next_permutation { header "__algorithm/next_permutation.h" }
|
|
|
|
module none_of { header "__algorithm/none_of.h" }
|
|
|
|
module nth_element { header "__algorithm/nth_element.h" }
|
|
|
|
module partial_sort { header "__algorithm/partial_sort.h" }
|
|
|
|
module partial_sort_copy { header "__algorithm/partial_sort_copy.h" }
|
|
|
|
module partition { header "__algorithm/partition.h" }
|
|
|
|
module partition_copy { header "__algorithm/partition_copy.h" }
|
|
|
|
module partition_point { header "__algorithm/partition_point.h" }
|
|
|
|
module pop_heap { header "__algorithm/pop_heap.h" }
|
|
|
|
module prev_permutation { header "__algorithm/prev_permutation.h" }
|
|
|
|
module push_heap { header "__algorithm/push_heap.h" }
|
|
|
|
module remove { header "__algorithm/remove.h" }
|
|
|
|
module remove_copy { header "__algorithm/remove_copy.h" }
|
|
|
|
module remove_copy_if { header "__algorithm/remove_copy_if.h" }
|
|
|
|
module remove_if { header "__algorithm/remove_if.h" }
|
|
|
|
module replace { header "__algorithm/replace.h" }
|
|
|
|
module replace_copy { header "__algorithm/replace_copy.h" }
|
|
|
|
module replace_copy_if { header "__algorithm/replace_copy_if.h" }
|
|
|
|
module replace_if { header "__algorithm/replace_if.h" }
|
|
|
|
module reverse { header "__algorithm/reverse.h" }
|
2021-07-05 21:25:15 +08:00
|
|
|
module reverse_copy { header "__algorithm/reverse_copy.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
module rotate { header "__algorithm/rotate.h" }
|
2021-07-05 21:25:15 +08:00
|
|
|
module rotate_copy { header "__algorithm/rotate_copy.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
module sample { header "__algorithm/sample.h" }
|
|
|
|
module search { header "__algorithm/search.h" }
|
|
|
|
module search_n { header "__algorithm/search_n.h" }
|
|
|
|
module set_difference { header "__algorithm/set_difference.h" }
|
|
|
|
module set_intersection { header "__algorithm/set_intersection.h" }
|
|
|
|
module set_symmetric_difference { header "__algorithm/set_symmetric_difference.h" }
|
|
|
|
module set_union { header "__algorithm/set_union.h" }
|
|
|
|
module shift_left { header "__algorithm/shift_left.h" }
|
|
|
|
module shift_right { header "__algorithm/shift_right.h" }
|
|
|
|
module shuffle { header "__algorithm/shuffle.h" }
|
|
|
|
module sift_down { header "__algorithm/sift_down.h" }
|
|
|
|
module sort { header "__algorithm/sort.h" }
|
|
|
|
module sort_heap { header "__algorithm/sort_heap.h" }
|
|
|
|
module stable_partition { header "__algorithm/stable_partition.h" }
|
|
|
|
module stable_sort { header "__algorithm/stable_sort.h" }
|
|
|
|
module transform { header "__algorithm/transform.h" }
|
|
|
|
module unique { header "__algorithm/unique.h" }
|
2021-07-05 21:25:15 +08:00
|
|
|
module unique_copy { header "__algorithm/unique_copy.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
module unwrap_iter { header "__algorithm/unwrap_iter.h" }
|
|
|
|
module upper_bound { header "__algorithm/upper_bound.h" }
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
2016-12-06 07:33:19 +08:00
|
|
|
module any {
|
|
|
|
header "any"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module array {
|
|
|
|
header "array"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module atomic {
|
|
|
|
header "atomic"
|
|
|
|
export *
|
|
|
|
}
|
2020-02-18 22:58:34 +08:00
|
|
|
module barrier {
|
2020-02-25 03:20:54 +08:00
|
|
|
requires cplusplus14
|
2020-02-18 22:58:34 +08:00
|
|
|
header "barrier"
|
|
|
|
export *
|
|
|
|
}
|
2018-08-18 00:07:48 +08:00
|
|
|
module bit {
|
|
|
|
header "bit"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module bitset {
|
|
|
|
header "bitset"
|
|
|
|
export string
|
|
|
|
export iosfwd
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// No submodule for cassert. It fundamentally needs repeated, textual inclusion.
|
2018-08-01 10:38:30 +08:00
|
|
|
module charconv {
|
|
|
|
header "charconv"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module chrono {
|
|
|
|
header "chrono"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module codecvt {
|
|
|
|
header "codecvt"
|
|
|
|
export *
|
|
|
|
}
|
2018-04-07 05:37:23 +08:00
|
|
|
module compare {
|
|
|
|
header "compare"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module complex {
|
|
|
|
header "complex"
|
|
|
|
export *
|
|
|
|
}
|
2020-04-09 06:00:13 +08:00
|
|
|
module concepts {
|
|
|
|
header "concepts"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module condition_variable {
|
|
|
|
header "condition_variable"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module deque {
|
|
|
|
header "deque"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module exception {
|
|
|
|
header "exception"
|
|
|
|
export *
|
|
|
|
}
|
2019-08-06 02:29:14 +08:00
|
|
|
module execution {
|
|
|
|
header "execution"
|
|
|
|
export *
|
|
|
|
}
|
Implement <filesystem>
This patch implements the <filesystem> header and uses that
to provide <experimental/filesystem>.
Unlike other standard headers, the symbols needed for <filesystem>
have not yet been placed in libc++.so. Instead they live in the
new libc++fs.a library. Users of filesystem are required to link this
library. (Also note that libc++experimental no longer contains the
definition of <experimental/filesystem>, which now requires linking libc++fs).
The reason for keeping <filesystem> out of the dylib for now is that
it's still somewhat experimental, and the possibility of requiring an
ABI breaking change is very real. In the future the symbols will likely
be moved into the dylib, or the dylib will be made to link libc++fs automagically).
Note that moving the symbols out of libc++experimental may break user builds
until they update to -lc++fs. This should be OK, because the experimental
library provides no stability guarantees. However, I plan on looking into
ways we can force libc++experimental to automagically link libc++fs.
In order to use a single implementation and set of tests for <filesystem>, it
has been placed in a special `__fs` namespace. This namespace is inline in
C++17 onward, but not before that. As such implementation is available
in C++11 onward, but no filesystem namespace is present "directly", and
as such name conflicts shouldn't occur in C++11 or C++14.
llvm-svn: 338093
2018-07-27 11:07:09 +08:00
|
|
|
module filesystem {
|
|
|
|
header "filesystem"
|
|
|
|
export *
|
|
|
|
}
|
2020-11-27 02:12:18 +08:00
|
|
|
module format {
|
|
|
|
header "format"
|
|
|
|
export *
|
2021-06-12 14:13:44 +08:00
|
|
|
|
|
|
|
module __format {
|
|
|
|
module format_error { header "__format/format_error.h" }
|
|
|
|
module format_parse_context { header "__format/format_parse_context.h" }
|
|
|
|
}
|
2020-11-27 02:12:18 +08:00
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module forward_list {
|
|
|
|
header "forward_list"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module fstream {
|
|
|
|
header "fstream"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module functional {
|
|
|
|
header "functional"
|
|
|
|
export *
|
2021-07-01 21:25:35 +08:00
|
|
|
|
2021-06-17 23:30:11 +08:00
|
|
|
module __functional {
|
2021-07-01 21:25:35 +08:00
|
|
|
module binary_function { header "__functional/binary_function.h" }
|
|
|
|
module binary_negate { header "__functional/binary_negate.h" }
|
|
|
|
module bind { header "__functional/bind.h" }
|
|
|
|
module bind_front { header "__functional/bind_front.h" }
|
|
|
|
module binder1st { header "__functional/binder1st.h" }
|
|
|
|
module binder2nd { header "__functional/binder2nd.h" }
|
|
|
|
module default_searcher { header "__functional/default_searcher.h" }
|
|
|
|
module function { header "__functional/function.h" }
|
|
|
|
module hash { header "__functional/hash.h" }
|
|
|
|
module identity { header "__functional/identity.h" }
|
|
|
|
module invoke { header "__functional/invoke.h" }
|
|
|
|
module mem_fn { header "__functional/mem_fn.h" }
|
|
|
|
module mem_fun_ref { header "__functional/mem_fun_ref.h" }
|
|
|
|
module not_fn { header "__functional/not_fn.h" }
|
|
|
|
module operations { header "__functional/operations.h" }
|
|
|
|
module perfect_forward { header "__functional/perfect_forward.h" }
|
|
|
|
module pointer_to_binary_function { header "__functional/pointer_to_binary_function.h" }
|
|
|
|
module pointer_to_unary_function { header "__functional/pointer_to_unary_function.h" }
|
|
|
|
module ranges_operations { header "__functional/ranges_operations.h" }
|
|
|
|
module reference_wrapper { header "__functional/reference_wrapper.h" }
|
|
|
|
module unary_function { header "__functional/unary_function.h" }
|
|
|
|
module unary_negate { header "__functional/unary_negate.h" }
|
|
|
|
module unwrap_ref { header "__functional/unwrap_ref.h" }
|
|
|
|
module weak_result_type { header "__functional/weak_result_type.h" }
|
2021-06-17 23:30:11 +08:00
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
|
|
|
module future {
|
|
|
|
header "future"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module initializer_list {
|
|
|
|
header "initializer_list"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module iomanip {
|
|
|
|
header "iomanip"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module ios {
|
|
|
|
header "ios"
|
|
|
|
export iosfwd
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module iosfwd {
|
|
|
|
header "iosfwd"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module iostream {
|
|
|
|
header "iostream"
|
|
|
|
export ios
|
|
|
|
export streambuf
|
|
|
|
export istream
|
|
|
|
export ostream
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module istream {
|
|
|
|
header "istream"
|
|
|
|
// FIXME: should re-export ios, streambuf?
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module iterator {
|
|
|
|
header "iterator"
|
|
|
|
export *
|
2021-06-12 14:13:44 +08:00
|
|
|
|
|
|
|
module __iterator {
|
2021-06-11 21:55:11 +08:00
|
|
|
module advance { header "__iterator/advance.h" }
|
|
|
|
module back_insert_iterator { header "__iterator/back_insert_iterator.h" }
|
|
|
|
module concepts { header "__iterator/concepts.h" }
|
|
|
|
module default_sentinel { header "__iterator/default_sentinel.h" }
|
|
|
|
module front_insert_iterator { header "__iterator/front_insert_iterator.h" }
|
|
|
|
module incrementable_traits { header "__iterator/incrementable_traits.h" }
|
|
|
|
module insert_iterator { header "__iterator/insert_iterator.h" }
|
|
|
|
module istream_iterator { header "__iterator/istream_iterator.h" }
|
|
|
|
module istreambuf_iterator { header "__iterator/istreambuf_iterator.h" }
|
|
|
|
module iter_move { header "__iterator/iter_move.h" }
|
|
|
|
module iter_swap { header "__iterator/iter_swap.h" }
|
|
|
|
module iterator { header "__iterator/iterator.h" }
|
|
|
|
module iterator_traits { header "__iterator/iterator_traits.h" }
|
|
|
|
module move_iterator { header "__iterator/move_iterator.h" }
|
|
|
|
module next { header "__iterator/next.h" }
|
|
|
|
module ostream_iterator { header "__iterator/ostream_iterator.h" }
|
|
|
|
module ostreambuf_iterator { header "__iterator/ostreambuf_iterator.h" }
|
|
|
|
module prev { header "__iterator/prev.h" }
|
|
|
|
module projected { header "__iterator/projected.h" }
|
|
|
|
module readable_traits { header "__iterator/readable_traits.h" }
|
|
|
|
module reverse_iterator { header "__iterator/reverse_iterator.h" }
|
|
|
|
module wrap_iter { header "__iterator/wrap_iter.h" }
|
2021-06-12 14:13:44 +08:00
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
2020-02-18 22:58:34 +08:00
|
|
|
module latch {
|
2020-02-25 03:20:54 +08:00
|
|
|
requires cplusplus14
|
2020-02-18 22:58:34 +08:00
|
|
|
header "latch"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module limits {
|
|
|
|
header "limits"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module list {
|
|
|
|
header "list"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module locale {
|
|
|
|
header "locale"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module map {
|
|
|
|
header "map"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module memory {
|
|
|
|
header "memory"
|
|
|
|
export *
|
2021-06-12 14:13:44 +08:00
|
|
|
|
|
|
|
module __memory {
|
|
|
|
module addressof { header "__memory/addressof.h" }
|
|
|
|
module allocation_guard { header "__memory/allocation_guard.h" }
|
|
|
|
module allocator_traits { header "__memory/allocator_traits.h" }
|
2021-07-01 21:25:35 +08:00
|
|
|
module allocator_arg_t { header "__memory/allocator_arg_t.h" }
|
2021-06-12 14:13:44 +08:00
|
|
|
module allocator { header "__memory/allocator.h" }
|
|
|
|
module auto_ptr { header "__memory/auto_ptr.h" }
|
|
|
|
module compressed_pair { header "__memory/compressed_pair.h" }
|
|
|
|
module construct_at { header "__memory/construct_at.h" }
|
|
|
|
module pointer_safety { header "__memory/pointer_safety.h" }
|
|
|
|
module pointer_traits { header "__memory/pointer_traits.h" }
|
|
|
|
module raw_storage_iterator { header "__memory/raw_storage_iterator.h" }
|
|
|
|
module shared_ptr { header "__memory/shared_ptr.h" }
|
|
|
|
module temporary_buffer { header "__memory/temporary_buffer.h" }
|
|
|
|
module uninitialized_algorithms { header "__memory/uninitialized_algorithms.h" }
|
|
|
|
module unique_ptr { header "__memory/unique_ptr.h" }
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
|
|
|
module mutex {
|
|
|
|
header "mutex"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module new {
|
|
|
|
header "new"
|
|
|
|
export *
|
|
|
|
}
|
2020-06-19 15:13:33 +08:00
|
|
|
module numbers {
|
|
|
|
header "numbers"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module numeric {
|
|
|
|
header "numeric"
|
|
|
|
export *
|
|
|
|
}
|
2016-12-06 07:33:19 +08:00
|
|
|
module optional {
|
|
|
|
header "optional"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module ostream {
|
|
|
|
header "ostream"
|
|
|
|
// FIXME: should re-export ios, streambuf?
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module queue {
|
|
|
|
header "queue"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module random {
|
|
|
|
header "random"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
2021-06-17 23:30:11 +08:00
|
|
|
|
|
|
|
module __random {
|
|
|
|
module uniform_int_distribution { header "__random/uniform_int_distribution.h" }
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
2020-11-25 01:08:02 +08:00
|
|
|
module ranges {
|
|
|
|
header "ranges"
|
2021-04-11 13:08:32 +08:00
|
|
|
export compare
|
|
|
|
export initializer_list
|
|
|
|
export iterator
|
2020-11-25 01:08:02 +08:00
|
|
|
export *
|
2021-06-12 14:13:44 +08:00
|
|
|
|
|
|
|
module __ranges {
|
2021-06-17 03:12:51 +08:00
|
|
|
module access { header "__ranges/access.h" }
|
2021-06-23 01:47:32 +08:00
|
|
|
module all { header "__ranges/all.h" }
|
2021-06-17 03:12:51 +08:00
|
|
|
module concepts { header "__ranges/concepts.h" }
|
|
|
|
module data { header "__ranges/data.h" }
|
|
|
|
module empty { header "__ranges/empty.h" }
|
|
|
|
module empty_view { header "__ranges/empty_view.h" }
|
|
|
|
module enable_borrowed_range { header "__ranges/enable_borrowed_range.h" }
|
|
|
|
module enable_view { header "__ranges/enable_view.h" }
|
|
|
|
module ref_view { header "__ranges/ref_view.h" }
|
|
|
|
module size { header "__ranges/size.h" }
|
|
|
|
module subrange { header "__ranges/subrange.h" }
|
|
|
|
module view_interface { header "__ranges/view_interface.h" }
|
2021-06-12 14:13:44 +08:00
|
|
|
}
|
2020-11-25 01:08:02 +08:00
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module ratio {
|
|
|
|
header "ratio"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module regex {
|
|
|
|
header "regex"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module scoped_allocator {
|
|
|
|
header "scoped_allocator"
|
|
|
|
export *
|
|
|
|
}
|
2020-02-18 22:58:34 +08:00
|
|
|
module semaphore {
|
2020-02-25 03:20:54 +08:00
|
|
|
requires cplusplus14
|
2020-02-18 22:58:34 +08:00
|
|
|
header "semaphore"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module set {
|
|
|
|
header "set"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module sstream {
|
|
|
|
header "sstream"
|
|
|
|
// FIXME: should re-export istream, ostream, ios, streambuf, string?
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module stack {
|
|
|
|
header "stack"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module stdexcept {
|
|
|
|
header "stdexcept"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module streambuf {
|
|
|
|
header "streambuf"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module string {
|
|
|
|
header "string"
|
|
|
|
export initializer_list
|
2016-12-06 07:53:23 +08:00
|
|
|
export string_view
|
|
|
|
export __string
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module string_view {
|
|
|
|
header "string_view"
|
|
|
|
export initializer_list
|
|
|
|
export __string
|
2014-05-21 08:33:49 +08:00
|
|
|
export *
|
|
|
|
}
|
|
|
|
module strstream {
|
|
|
|
header "strstream"
|
2016-12-06 07:16:07 +08:00
|
|
|
export *
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
|
|
|
module system_error {
|
|
|
|
header "system_error"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module thread {
|
|
|
|
header "thread"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module tuple {
|
|
|
|
header "tuple"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module type_traits {
|
|
|
|
header "type_traits"
|
2021-06-10 07:10:17 +08:00
|
|
|
export functional.__functional.unwrap_ref
|
2014-05-21 08:33:49 +08:00
|
|
|
export *
|
|
|
|
}
|
|
|
|
module typeindex {
|
|
|
|
header "typeindex"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module typeinfo {
|
|
|
|
header "typeinfo"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module unordered_map {
|
|
|
|
header "unordered_map"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module unordered_set {
|
|
|
|
header "unordered_set"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module utility {
|
|
|
|
header "utility"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
2021-06-12 14:13:44 +08:00
|
|
|
|
|
|
|
module __utility {
|
2021-06-10 07:10:17 +08:00
|
|
|
module __decay_copy { header "__utility/__decay_copy.h" }
|
|
|
|
module as_const { header "__utility/as_const.h" }
|
|
|
|
module cmp { header "__utility/cmp.h" }
|
|
|
|
module declval { header "__utility/declval.h" }
|
|
|
|
module exchange { header "__utility/exchange.h" }
|
|
|
|
module forward { header "__utility/forward.h" }
|
|
|
|
module in_place { header "__utility/in_place.h" }
|
|
|
|
module integer_sequence { header "__utility/integer_sequence.h" }
|
|
|
|
module move { header "__utility/move.h" }
|
|
|
|
module pair { header "__utility/pair.h" }
|
|
|
|
module piecewise_construct { header "__utility/piecewise_construct.h" }
|
|
|
|
module rel_ops { header "__utility/rel_ops.h" }
|
|
|
|
module swap { header "__utility/swap.h" }
|
|
|
|
module to_underlying { header "__utility/to_underlying.h" }
|
2021-06-12 14:13:44 +08:00
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|
|
|
|
module valarray {
|
|
|
|
header "valarray"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
2016-12-06 07:33:19 +08:00
|
|
|
module variant {
|
|
|
|
header "variant"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
module vector {
|
|
|
|
header "vector"
|
|
|
|
export initializer_list
|
|
|
|
export *
|
|
|
|
}
|
2018-04-04 12:21:54 +08:00
|
|
|
module version {
|
|
|
|
header "version"
|
|
|
|
export *
|
|
|
|
}
|
2014-05-21 08:33:49 +08:00
|
|
|
|
2021-06-12 14:13:44 +08:00
|
|
|
// __config not modularised due to a bug in Clang
|
|
|
|
// __functional(_03)?_base not modularised since it's designed for textual inclusion
|
|
|
|
// libcpp_version not modularised since it's just a version number
|
2014-05-21 08:33:49 +08:00
|
|
|
// FIXME: These should be private.
|
2021-06-12 14:13:44 +08:00
|
|
|
module __availability { header "__availability" export * }
|
|
|
|
module __bit_reference { header "__bit_reference" export * }
|
|
|
|
module __bits { header "__bits" export * }
|
|
|
|
module __debug { header "__debug" export * }
|
|
|
|
module __errc { header "__errc" export * }
|
|
|
|
module __function_like { header "__function_like.h" export * }
|
|
|
|
module __hash_table { header "__hash_table" export * }
|
|
|
|
module __locale { header "__locale" export * }
|
|
|
|
module __mutex_base { header "__mutex_base" export * }
|
|
|
|
module __node_handle { header "__node_handle" export * }
|
|
|
|
module __nullptr { header "__nullptr" export * }
|
|
|
|
module __split_buffer { header "__split_buffer" export * }
|
|
|
|
module __std_stream { header "__std_stream" export * }
|
|
|
|
module __string { header "__string" export * }
|
2021-06-08 02:29:03 +08:00
|
|
|
module __threading_support { header "__threading_support" export * }
|
2021-06-12 14:13:44 +08:00
|
|
|
module __tree { header "__tree" export * }
|
|
|
|
module __tuple { header "__tuple" export * }
|
|
|
|
module __undef_macros { header "__undef_macros" export * }
|
2016-12-06 07:55:34 +08:00
|
|
|
|
|
|
|
module experimental {
|
2016-12-06 09:34:24 +08:00
|
|
|
requires cplusplus11
|
|
|
|
|
2016-12-06 07:55:34 +08:00
|
|
|
module algorithm {
|
|
|
|
header "experimental/algorithm"
|
|
|
|
export *
|
|
|
|
}
|
2017-05-26 07:39:29 +08:00
|
|
|
module coroutine {
|
2017-05-30 07:17:28 +08:00
|
|
|
requires coroutines
|
2017-05-26 07:39:29 +08:00
|
|
|
header "experimental/coroutine"
|
|
|
|
export *
|
|
|
|
}
|
2016-12-06 07:55:34 +08:00
|
|
|
module deque {
|
|
|
|
header "experimental/deque"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module filesystem {
|
|
|
|
header "experimental/filesystem"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module forward_list {
|
|
|
|
header "experimental/forward_list"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module functional {
|
|
|
|
header "experimental/functional"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module iterator {
|
|
|
|
header "experimental/iterator"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module list {
|
|
|
|
header "experimental/list"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module map {
|
|
|
|
header "experimental/map"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module memory_resource {
|
|
|
|
header "experimental/memory_resource"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module propagate_const {
|
|
|
|
header "experimental/propagate_const"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module regex {
|
|
|
|
header "experimental/regex"
|
|
|
|
export *
|
|
|
|
}
|
2018-04-24 05:54:06 +08:00
|
|
|
module simd {
|
|
|
|
header "experimental/simd"
|
|
|
|
export *
|
|
|
|
}
|
2016-12-06 07:55:34 +08:00
|
|
|
module set {
|
|
|
|
header "experimental/set"
|
|
|
|
export *
|
|
|
|
}
|
2018-07-24 11:01:02 +08:00
|
|
|
module span {
|
|
|
|
header "span"
|
|
|
|
export *
|
|
|
|
}
|
2016-12-06 07:55:34 +08:00
|
|
|
module string {
|
|
|
|
header "experimental/string"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module type_traits {
|
|
|
|
header "experimental/type_traits"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module unordered_map {
|
|
|
|
header "experimental/unordered_map"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module unordered_set {
|
|
|
|
header "experimental/unordered_set"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module utility {
|
|
|
|
header "experimental/utility"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
module vector {
|
|
|
|
header "experimental/vector"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
// FIXME these should be private
|
|
|
|
module __memory {
|
|
|
|
header "experimental/__memory"
|
|
|
|
export *
|
|
|
|
}
|
|
|
|
} // end experimental
|
2014-05-21 08:33:49 +08:00
|
|
|
}
|