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-04 02:26:03 +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 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" }
|
|
|
|
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" }
|
|
|
|
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 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 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 partition { header "__algorithm/partition.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 replace { header "__algorithm/replace.h" }
|
|
|
|
module reverse { header "__algorithm/reverse.h" }
|
|
|
|
module rotate { header "__algorithm/rotate.h" }
|
|
|
|
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 { header "__algorithm/shift.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 uniform_int_distribution { header "__algorithm/uniform_int_distribution.h" }
|
|
|
|
module unique { header "__algorithm/unique.h" }
|
|
|
|
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 {
|
2021-06-03 03:46:20 +08:00
|
|
|
requires cplusplus20
|
2018-04-07 05:37:23 +08:00
|
|
|
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 {
|
2021-06-03 03:46:20 +08:00
|
|
|
requires cplusplus20
|
2020-04-09 06:00:13 +08:00
|
|
|
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 {
|
2021-06-03 03:46:20 +08:00
|
|
|
requires cplusplus20
|
2020-11-27 02:12:18 +08:00
|
|
|
header "format"
|
|
|
|
export *
|
2021-06-03 03:46:20 +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-06-04 02:26:03 +08:00
|
|
|
module __functional {
|
|
|
|
module search { header "__functional/search.h" }
|
|
|
|
}
|
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-03 03:46:20 +08:00
|
|
|
|
|
|
|
module __iterator {
|
|
|
|
module advance { header "__iterator/advance.h" }
|
|
|
|
module concepts { header "__iterator/concepts.h" }
|
|
|
|
module default_sentinel { header "__iterator/default_sentinel.h" }
|
|
|
|
module incrementable_traits { header "__iterator/incrementable_traits.h" }
|
|
|
|
module indirect_concepts { header "__iterator/indirect_concepts.h" }
|
|
|
|
module iter_move { header "__iterator/iter_move.h" }
|
|
|
|
module iterator_traits { header "__iterator/iterator_traits.h" }
|
|
|
|
module next { header "__iterator/next.h" }
|
|
|
|
module prev { header "__iterator/prev.h" }
|
|
|
|
module projected { header "__iterator/projected.h" }
|
|
|
|
module readable_traits { header "__iterator/readable_traits.h" }
|
|
|
|
}
|
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-03 03:46:20 +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" }
|
|
|
|
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 *
|
|
|
|
}
|
2020-11-25 01:08:02 +08:00
|
|
|
module ranges {
|
2021-06-03 03:46:20 +08:00
|
|
|
requires cplusplus20
|
2020-11-25 01:08:02 +08:00
|
|
|
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-03 03:46:20 +08:00
|
|
|
|
|
|
|
module __ranges {
|
|
|
|
module access { header "__ranges/access.h" }
|
|
|
|
module concepts { header "__ranges/concepts.h" }
|
|
|
|
module data { header "__ranges/data.h" }
|
|
|
|
module empty { header "__ranges/empty.h" }
|
|
|
|
module enabled_borrowed_range { header "__ranges/enabled_borrowed_range.h" }
|
|
|
|
module size { header "__ranges/size.h" }
|
|
|
|
module view_interface { header "__ranges/view_interface.h" }
|
|
|
|
module view { header "__ranges/view.h" }
|
|
|
|
}
|
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"
|
|
|
|
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-03 03:46:20 +08:00
|
|
|
|
|
|
|
module __utility {
|
|
|
|
module to_underlying {
|
|
|
|
header "__utility/to_underlying.h"
|
|
|
|
}
|
|
|
|
}
|
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
|
|
|
|
|
|
|
// FIXME: These should be private.
|
2021-06-03 03:46:20 +08:00
|
|
|
module __availability { header "__availability" export * }
|
|
|
|
module __bit_reference { header "__bit_reference" export * }
|
|
|
|
module __bits { header "__bits" export * }
|
|
|
|
module __config { header "__config" export * }
|
|
|
|
module __debug { header "__debug" export * }
|
|
|
|
module __errc { header "__errc" export * }
|
|
|
|
module __function_like { header "__function_like.h" export * }
|
|
|
|
module __functional_base { header "__functional_base" export * }
|
|
|
|
// TODO: modularise __functional_(base_)?03
|
|
|
|
module __hash_table { header "__hash_table" export * }
|
|
|
|
// libcpp_version not modularised since it's just a version number
|
|
|
|
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 * }
|
|
|
|
module __threading_support { header "__threading_support" export * }
|
|
|
|
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
|
|
|
}
|