979 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			979 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
// 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"
 | 
						|
}
 | 
						|
 | 
						|
module std [system] {
 | 
						|
  export std_config
 | 
						|
  // 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++.
 | 
						|
 | 
						|
  // 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 *
 | 
						|
    }
 | 
						|
    module fenv_h {
 | 
						|
      header "fenv.h"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    // <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.
 | 
						|
    module locale_h {
 | 
						|
      header "locale.h"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    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.
 | 
						|
    // <stdbool.h> provided by compiler.
 | 
						|
    module stddef_h {
 | 
						|
      // <stddef.h>'s __need_* macros require textual inclusion.
 | 
						|
      textual header "stddef.h"
 | 
						|
    }
 | 
						|
    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
 | 
						|
    }
 | 
						|
    module stdio_h {
 | 
						|
      // <stdio.h>'s __need_* macros require textual inclusion.
 | 
						|
      textual header "stdio.h"
 | 
						|
      export *
 | 
						|
      export Darwin.C.stdio
 | 
						|
    }
 | 
						|
    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"
 | 
						|
      export depr.stdint_h
 | 
						|
      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"
 | 
						|
      export depr.stdio_h
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    module cwctype {
 | 
						|
      header "cwctype"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  module algorithm {
 | 
						|
    header "algorithm"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
 | 
						|
    module __algorithm {
 | 
						|
      module adjacent_find            { private header "__algorithm/adjacent_find.h" }
 | 
						|
      module all_of                   { private header "__algorithm/all_of.h" }
 | 
						|
      module any_of                   { private header "__algorithm/any_of.h" }
 | 
						|
      module binary_search            { private header "__algorithm/binary_search.h" }
 | 
						|
      module clamp                    { private header "__algorithm/clamp.h" }
 | 
						|
      module comp                     { private header "__algorithm/comp.h" }
 | 
						|
      module comp_ref_type            { private header "__algorithm/comp_ref_type.h" }
 | 
						|
      module copy                     { private header "__algorithm/copy.h" }
 | 
						|
      module copy_backward            { private header "__algorithm/copy_backward.h" }
 | 
						|
      module copy_if                  { private header "__algorithm/copy_if.h" }
 | 
						|
      module copy_n                   { private header "__algorithm/copy_n.h" }
 | 
						|
      module count                    { private header "__algorithm/count.h" }
 | 
						|
      module count_if                 { private header "__algorithm/count_if.h" }
 | 
						|
      module equal                    { private header "__algorithm/equal.h" }
 | 
						|
      module equal_range              { private header "__algorithm/equal_range.h" }
 | 
						|
      module fill                     { private header "__algorithm/fill.h" }
 | 
						|
      module fill_n                   { private header "__algorithm/fill_n.h" }
 | 
						|
      module find                     { private header "__algorithm/find.h" }
 | 
						|
      module find_end                 { private header "__algorithm/find_end.h" }
 | 
						|
      module find_first_of            { private header "__algorithm/find_first_of.h" }
 | 
						|
      module find_if                  { private header "__algorithm/find_if.h" }
 | 
						|
      module find_if_not              { private header "__algorithm/find_if_not.h" }
 | 
						|
      module for_each                 { private header "__algorithm/for_each.h" }
 | 
						|
      module for_each_n               { private header "__algorithm/for_each_n.h" }
 | 
						|
      module generate                 { private header "__algorithm/generate.h" }
 | 
						|
      module generate_n               { private header "__algorithm/generate_n.h" }
 | 
						|
      module half_positive            { private header "__algorithm/half_positive.h" }
 | 
						|
      module includes                 { private header "__algorithm/includes.h" }
 | 
						|
      module inplace_merge            { private header "__algorithm/inplace_merge.h" }
 | 
						|
      module is_heap                  { private header "__algorithm/is_heap.h" }
 | 
						|
      module is_heap_until            { private header "__algorithm/is_heap_until.h" }
 | 
						|
      module is_partitioned           { private header "__algorithm/is_partitioned.h" }
 | 
						|
      module is_permutation           { private header "__algorithm/is_permutation.h" }
 | 
						|
      module is_sorted                { private header "__algorithm/is_sorted.h" }
 | 
						|
      module is_sorted_until          { private header "__algorithm/is_sorted_until.h" }
 | 
						|
      module iter_swap                { private header "__algorithm/iter_swap.h" }
 | 
						|
      module lexicographical_compare  { private header "__algorithm/lexicographical_compare.h" }
 | 
						|
      module lower_bound              { private header "__algorithm/lower_bound.h" }
 | 
						|
      module make_heap                { private header "__algorithm/make_heap.h" }
 | 
						|
      module max                      { private header "__algorithm/max.h" }
 | 
						|
      module max_element              { private header "__algorithm/max_element.h" }
 | 
						|
      module merge                    { private header "__algorithm/merge.h" }
 | 
						|
      module min                      { private header "__algorithm/min.h" }
 | 
						|
      module min_element              { private header "__algorithm/min_element.h" }
 | 
						|
      module minmax                   { private header "__algorithm/minmax.h" }
 | 
						|
      module minmax_element           { private header "__algorithm/minmax_element.h" }
 | 
						|
      module mismatch                 { private header "__algorithm/mismatch.h" }
 | 
						|
      module move                     { private header "__algorithm/move.h" }
 | 
						|
      module move_backward            { private header "__algorithm/move_backward.h" }
 | 
						|
      module next_permutation         { private header "__algorithm/next_permutation.h" }
 | 
						|
      module none_of                  { private header "__algorithm/none_of.h" }
 | 
						|
      module nth_element              { private header "__algorithm/nth_element.h" }
 | 
						|
      module partial_sort             { private header "__algorithm/partial_sort.h" }
 | 
						|
      module partial_sort_copy        { private header "__algorithm/partial_sort_copy.h" }
 | 
						|
      module partition                { private header "__algorithm/partition.h" }
 | 
						|
      module partition_copy           { private header "__algorithm/partition_copy.h" }
 | 
						|
      module partition_point          { private header "__algorithm/partition_point.h" }
 | 
						|
      module pop_heap                 { private header "__algorithm/pop_heap.h" }
 | 
						|
      module prev_permutation         { private header "__algorithm/prev_permutation.h" }
 | 
						|
      module push_heap                { private header "__algorithm/push_heap.h" }
 | 
						|
      module remove                   { private header "__algorithm/remove.h" }
 | 
						|
      module remove_copy              { private header "__algorithm/remove_copy.h" }
 | 
						|
      module remove_copy_if           { private header "__algorithm/remove_copy_if.h" }
 | 
						|
      module remove_if                { private header "__algorithm/remove_if.h" }
 | 
						|
      module replace                  { private header "__algorithm/replace.h" }
 | 
						|
      module replace_copy             { private header "__algorithm/replace_copy.h" }
 | 
						|
      module replace_copy_if          { private header "__algorithm/replace_copy_if.h" }
 | 
						|
      module replace_if               { private header "__algorithm/replace_if.h" }
 | 
						|
      module reverse                  { private header "__algorithm/reverse.h" }
 | 
						|
      module reverse_copy             { private header "__algorithm/reverse_copy.h" }
 | 
						|
      module rotate                   { private header "__algorithm/rotate.h" }
 | 
						|
      module rotate_copy              { private header "__algorithm/rotate_copy.h" }
 | 
						|
      module sample                   { private header "__algorithm/sample.h" }
 | 
						|
      module search                   { private header "__algorithm/search.h" }
 | 
						|
      module search_n                 { private header "__algorithm/search_n.h" }
 | 
						|
      module set_difference           { private header "__algorithm/set_difference.h" }
 | 
						|
      module set_intersection         { private header "__algorithm/set_intersection.h" }
 | 
						|
      module set_symmetric_difference { private header "__algorithm/set_symmetric_difference.h" }
 | 
						|
      module set_union                { private header "__algorithm/set_union.h" }
 | 
						|
      module shift_left               { private header "__algorithm/shift_left.h" }
 | 
						|
      module shift_right              { private header "__algorithm/shift_right.h" }
 | 
						|
      module shuffle                  { private header "__algorithm/shuffle.h" }
 | 
						|
      module sift_down                { private header "__algorithm/sift_down.h" }
 | 
						|
      module sort                     { private header "__algorithm/sort.h" }
 | 
						|
      module sort_heap                { private header "__algorithm/sort_heap.h" }
 | 
						|
      module stable_partition         { private header "__algorithm/stable_partition.h" }
 | 
						|
      module stable_sort              { private header "__algorithm/stable_sort.h" }
 | 
						|
      module swap_ranges              { private header "__algorithm/swap_ranges.h" }
 | 
						|
      module transform                { private header "__algorithm/transform.h" }
 | 
						|
      module unique                   { private header "__algorithm/unique.h" }
 | 
						|
      module unique_copy              { private header "__algorithm/unique_copy.h" }
 | 
						|
      module unwrap_iter              { private header "__algorithm/unwrap_iter.h" }
 | 
						|
      module upper_bound              { private header "__algorithm/upper_bound.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module any {
 | 
						|
    header "any"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module array {
 | 
						|
    header "array"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module atomic {
 | 
						|
    header "atomic"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module barrier {
 | 
						|
    requires cplusplus14
 | 
						|
    header "barrier"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module bit {
 | 
						|
    header "bit"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __bit {
 | 
						|
      module bit_cast { private header "__bit/bit_cast.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module bitset {
 | 
						|
    header "bitset"
 | 
						|
    export string
 | 
						|
    export iosfwd
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
 | 
						|
  module charconv {
 | 
						|
    header "charconv"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __charconv {
 | 
						|
      module chars_format      { private header "__charconv/chars_format.h"      }
 | 
						|
      module from_chars_result { private header "__charconv/from_chars_result.h" }
 | 
						|
      module to_chars_result   { private header "__charconv/to_chars_result.h"   }
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
  module chrono {
 | 
						|
    header "chrono"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module codecvt {
 | 
						|
    header "codecvt"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module compare {
 | 
						|
    header "compare"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __compare {
 | 
						|
      module common_comparison_category { private header "__compare/common_comparison_category.h" }
 | 
						|
      module compare_three_way          { private header "__compare/compare_three_way.h"          }
 | 
						|
      module compare_three_way_result   { private header "__compare/compare_three_way_result.h"   }
 | 
						|
      module is_eq                      { private header "__compare/is_eq.h"                      }
 | 
						|
      module ordering                   { private header "__compare/ordering.h"                   }
 | 
						|
      module synth_three_way            { private header "__compare/synth_three_way.h"            }
 | 
						|
      module three_way_comparable       { private header "__compare/three_way_comparable.h"       }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module complex {
 | 
						|
    header "complex"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module concepts {
 | 
						|
    header "concepts"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __concepts {
 | 
						|
      module arithmetic                 { private header "__concepts/arithmetic.h"                }
 | 
						|
      module assignable                 { private header "__concepts/assignable.h"                }
 | 
						|
      module boolean_testable           { private header "__concepts/boolean_testable.h"          }
 | 
						|
      module class_or_enum              { private header "__concepts/class_or_enum.h"             }
 | 
						|
      module common_reference_with      { private header "__concepts/common_reference_with.h"     }
 | 
						|
      module common_with                { private header "__concepts/common_with.h"               }
 | 
						|
      module constructible              { private header "__concepts/constructible.h"             }
 | 
						|
      module convertible_to             { private header "__concepts/convertible_to.h"            }
 | 
						|
      module copyable                   { private header "__concepts/copyable.h"                  }
 | 
						|
      module derived_from               { private header "__concepts/derived_from.h"              }
 | 
						|
      module destructible               { private header "__concepts/destructible.h"              }
 | 
						|
      module different_from             { private header "__concepts/different_from.h"            }
 | 
						|
      module equality_comparable        { private header "__concepts/equality_comparable.h"       }
 | 
						|
      module invocable                  { private header "__concepts/invocable.h"                 }
 | 
						|
      module movable                    { private header "__concepts/movable.h"                   }
 | 
						|
      module predicate                  { private header "__concepts/predicate.h"                 }
 | 
						|
      module regular                    { private header "__concepts/regular.h"                   }
 | 
						|
      module relation                   { private header "__concepts/relation.h"                  }
 | 
						|
      module same_as                    { private header "__concepts/same_as.h"                   }
 | 
						|
      module semiregular                { private header "__concepts/semiregular.h"               }
 | 
						|
      module swappable                  { private header "__concepts/swappable.h"                 }
 | 
						|
      module totally_ordered            { private header "__concepts/totally_ordered.h"           }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module condition_variable {
 | 
						|
    header "condition_variable"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module deque {
 | 
						|
    header "deque"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module exception {
 | 
						|
    header "exception"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module execution {
 | 
						|
    header "execution"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module filesystem {
 | 
						|
    header "filesystem"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module format {
 | 
						|
    header "format"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __format {
 | 
						|
      module format_arg             { private header "__format/format_arg.h"           }
 | 
						|
      module format_args            { private header "__format/format_args.h"          }
 | 
						|
      module format_context {
 | 
						|
        private header "__format/format_context.h"
 | 
						|
        export optional
 | 
						|
        export locale
 | 
						|
      }
 | 
						|
      module format_error           { private header "__format/format_error.h"           }
 | 
						|
      module format_fwd             { private header "__format/format_fwd.h"             }
 | 
						|
      module format_parse_context   { private header "__format/format_parse_context.h"   }
 | 
						|
      module format_string          { private header "__format/format_string.h"          }
 | 
						|
      module formatter              { private header "__format/formatter.h"              }
 | 
						|
      module formatter_bool         { private header "__format/formatter_bool.h"         }
 | 
						|
      module formatter_char         { private header "__format/formatter_char.h"         }
 | 
						|
      module formatter_integer      { private header "__format/formatter_integer.h"      }
 | 
						|
      module formatter_integral     { private header "__format/formatter_integral.h"     }
 | 
						|
      module formatter_string       { private header "__format/formatter_string.h"       }
 | 
						|
      module parser_std_format_spec { private header "__format/parser_std_format_spec.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module forward_list {
 | 
						|
    header "forward_list"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module fstream {
 | 
						|
    header "fstream"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module functional {
 | 
						|
    header "functional"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __functional {
 | 
						|
      module binary_function            { private header "__functional/binary_function.h" }
 | 
						|
      module binary_negate              { private header "__functional/binary_negate.h" }
 | 
						|
      module bind                       { private header "__functional/bind.h" }
 | 
						|
      module bind_back                  { private header "__functional/bind_back.h" }
 | 
						|
      module bind_front                 { private header "__functional/bind_front.h" }
 | 
						|
      module binder1st                  { private header "__functional/binder1st.h" }
 | 
						|
      module binder2nd                  { private header "__functional/binder2nd.h" }
 | 
						|
      module compose                    { private header "__functional/compose.h" }
 | 
						|
      module default_searcher           { private header "__functional/default_searcher.h" }
 | 
						|
      module function                   { private header "__functional/function.h" }
 | 
						|
      module hash                       { private header "__functional/hash.h" }
 | 
						|
      module identity                   { private header "__functional/identity.h" }
 | 
						|
      module invoke                     { private header "__functional/invoke.h" }
 | 
						|
      module is_transparent             { private header "__functional/is_transparent.h" }
 | 
						|
      module mem_fn                     { private header "__functional/mem_fn.h"  }
 | 
						|
      module mem_fun_ref                { private header "__functional/mem_fun_ref.h"  }
 | 
						|
      module not_fn                     { private header "__functional/not_fn.h" }
 | 
						|
      module operations                 { private header "__functional/operations.h" }
 | 
						|
      module perfect_forward            { private header "__functional/perfect_forward.h" }
 | 
						|
      module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
 | 
						|
      module pointer_to_unary_function  { private header "__functional/pointer_to_unary_function.h" }
 | 
						|
      module ranges_operations          { private header "__functional/ranges_operations.h" }
 | 
						|
      module reference_wrapper          { private header "__functional/reference_wrapper.h" }
 | 
						|
      module unary_function             { private header "__functional/unary_function.h" }
 | 
						|
      module unary_negate               { private header "__functional/unary_negate.h" }
 | 
						|
      module unwrap_ref                 { private header "__functional/unwrap_ref.h" }
 | 
						|
      module weak_result_type           { private header "__functional/weak_result_type.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  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 *
 | 
						|
 | 
						|
    module __iterator {
 | 
						|
      module access                { private header "__iterator/access.h" }
 | 
						|
      module advance               {
 | 
						|
        private header "__iterator/advance.h"
 | 
						|
        export __function_like
 | 
						|
      }
 | 
						|
      module back_insert_iterator  { private header "__iterator/back_insert_iterator.h" }
 | 
						|
      module common_iterator       { private header "__iterator/common_iterator.h" }
 | 
						|
      module concepts              { private header "__iterator/concepts.h" }
 | 
						|
      module counted_iterator      { private header "__iterator/counted_iterator.h" }
 | 
						|
      module data                  { private header "__iterator/data.h" }
 | 
						|
      module default_sentinel      { private header "__iterator/default_sentinel.h" }
 | 
						|
      module distance              { private header "__iterator/distance.h" }
 | 
						|
      module empty                 { private header "__iterator/empty.h" }
 | 
						|
      module erase_if_container    { private header "__iterator/erase_if_container.h" }
 | 
						|
      module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
 | 
						|
      module incrementable_traits  { private header "__iterator/incrementable_traits.h" }
 | 
						|
      module insert_iterator       { private header "__iterator/insert_iterator.h" }
 | 
						|
      module istream_iterator      { private header "__iterator/istream_iterator.h" }
 | 
						|
      module istreambuf_iterator   { private header "__iterator/istreambuf_iterator.h" }
 | 
						|
      module iter_move             { private header "__iterator/iter_move.h" }
 | 
						|
      module iter_swap             { private header "__iterator/iter_swap.h" }
 | 
						|
      module iterator              { private header "__iterator/iterator.h" }
 | 
						|
      module iterator_traits       { private header "__iterator/iterator_traits.h" }
 | 
						|
      module move_iterator         { private header "__iterator/move_iterator.h" }
 | 
						|
      module next                  {
 | 
						|
        private header "__iterator/next.h"
 | 
						|
        export __function_like
 | 
						|
      }
 | 
						|
      module ostream_iterator      { private header "__iterator/ostream_iterator.h" }
 | 
						|
      module ostreambuf_iterator   { private header "__iterator/ostreambuf_iterator.h" }
 | 
						|
      module prev                  {
 | 
						|
        private header "__iterator/prev.h"
 | 
						|
        export __function_like
 | 
						|
      }
 | 
						|
      module projected             { private header "__iterator/projected.h" }
 | 
						|
      module readable_traits       { private header "__iterator/readable_traits.h" }
 | 
						|
      module reverse_access        { private header "__iterator/reverse_access.h" }
 | 
						|
      module reverse_iterator      { private header "__iterator/reverse_iterator.h" }
 | 
						|
      module size                  { private header "__iterator/size.h" }
 | 
						|
      module unreachable_sentinel  { private header "__iterator/unreachable_sentinel.h" }
 | 
						|
      module wrap_iter             { private header "__iterator/wrap_iter.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module latch {
 | 
						|
    requires cplusplus14
 | 
						|
    header "latch"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  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 *
 | 
						|
 | 
						|
    module __memory {
 | 
						|
      module addressof                { private header "__memory/addressof.h"                }
 | 
						|
      module allocation_guard         { private header "__memory/allocation_guard.h"         }
 | 
						|
      module allocator                { private header "__memory/allocator.h"                }
 | 
						|
      module allocator_arg_t          { private header "__memory/allocator_arg_t.h"          }
 | 
						|
      module allocator_traits         { private header "__memory/allocator_traits.h"         }
 | 
						|
      module auto_ptr                 { private header "__memory/auto_ptr.h"                 }
 | 
						|
      module compressed_pair          { private header "__memory/compressed_pair.h"          }
 | 
						|
      module construct_at             { private header "__memory/construct_at.h"             }
 | 
						|
      module pointer_safety           { private header "__memory/pointer_safety.h"           }
 | 
						|
      module pointer_traits           { private header "__memory/pointer_traits.h"           }
 | 
						|
      module raw_storage_iterator     { private header "__memory/raw_storage_iterator.h"     }
 | 
						|
      module shared_ptr               { private header "__memory/shared_ptr.h"               }
 | 
						|
      module temporary_buffer         { private header "__memory/temporary_buffer.h"         }
 | 
						|
      module uninitialized_algorithms { private header "__memory/uninitialized_algorithms.h" }
 | 
						|
      module unique_ptr               { private header "__memory/unique_ptr.h"               }
 | 
						|
      module uses_allocator           { private header "__memory/uses_allocator.h"           }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module mutex {
 | 
						|
    header "mutex"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module new {
 | 
						|
    header "new"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module numbers {
 | 
						|
    header "numbers"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module numeric {
 | 
						|
    header "numeric"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module optional {
 | 
						|
    header "optional"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  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 *
 | 
						|
 | 
						|
    module __random {
 | 
						|
      module uniform_int_distribution { private header "__random/uniform_int_distribution.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module ranges {
 | 
						|
    header "ranges"
 | 
						|
    export compare
 | 
						|
    export initializer_list
 | 
						|
    export iterator
 | 
						|
    export *
 | 
						|
 | 
						|
    module __ranges {
 | 
						|
      module access                 { private header "__ranges/access.h"                }
 | 
						|
      module all                    {
 | 
						|
        private header "__ranges/all.h"
 | 
						|
        export functional.__functional.compose
 | 
						|
        export functional.__functional.perfect_forward
 | 
						|
      }
 | 
						|
      module common_view            { private header "__ranges/common_view.h"           }
 | 
						|
      module concepts               { private header "__ranges/concepts.h"              }
 | 
						|
      module copyable_box           { private header "__ranges/copyable_box.h"          }
 | 
						|
      module counted                { private header "__ranges/counted.h"               }
 | 
						|
      module dangling               { private header "__ranges/dangling.h"              }
 | 
						|
      module data                   { private header "__ranges/data.h"                  }
 | 
						|
      module drop_view              { private header "__ranges/drop_view.h"             }
 | 
						|
      module empty                  { private header "__ranges/empty.h"                 }
 | 
						|
      module empty_view             { private header "__ranges/empty_view.h"            }
 | 
						|
      module enable_borrowed_range  { private header "__ranges/enable_borrowed_range.h" }
 | 
						|
      module enable_view            { private header "__ranges/enable_view.h"           }
 | 
						|
      module iota_view              { private header "__ranges/iota_view.h"             }
 | 
						|
      module join_view              { private header "__ranges/join_view.h"             }
 | 
						|
      module non_propagating_cache  { private header "__ranges/non_propagating_cache.h" }
 | 
						|
      module range_adaptor          { private header "__ranges/range_adaptor.h"         }
 | 
						|
      module ref_view               { private header "__ranges/ref_view.h"              }
 | 
						|
      module reverse_view           { private header "__ranges/reverse_view.h"          }
 | 
						|
      module size                   { private header "__ranges/size.h"                  }
 | 
						|
      module single_view            { private header "__ranges/single_view.h"           }
 | 
						|
      module subrange               { private header "__ranges/subrange.h"              }
 | 
						|
      module take_view              { private header "__ranges/take_view.h"             }
 | 
						|
      module transform_view         {
 | 
						|
        private header "__ranges/transform_view.h"
 | 
						|
        export functional.__functional.bind_back
 | 
						|
        export functional.__functional.perfect_forward
 | 
						|
      }
 | 
						|
      module view_interface         { private header "__ranges/view_interface.h"        }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module ratio {
 | 
						|
    header "ratio"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module regex {
 | 
						|
    header "regex"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module scoped_allocator {
 | 
						|
    header "scoped_allocator"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module semaphore {
 | 
						|
    requires cplusplus14
 | 
						|
    header "semaphore"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module set {
 | 
						|
    header "set"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module shared_mutex {
 | 
						|
    header "shared_mutex"
 | 
						|
    export version
 | 
						|
  }
 | 
						|
  module span {
 | 
						|
    header "span"
 | 
						|
    export ranges.__ranges.enable_borrowed_range
 | 
						|
    export version
 | 
						|
  }
 | 
						|
  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
 | 
						|
    export string_view
 | 
						|
    export __string
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module string_view {
 | 
						|
    header "string_view"
 | 
						|
    export initializer_list
 | 
						|
    export __string
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module strstream {
 | 
						|
    header "strstream"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module system_error {
 | 
						|
    header "system_error"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module thread {
 | 
						|
    header "thread"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module tuple {
 | 
						|
    header "tuple"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module type_traits {
 | 
						|
    header "type_traits"
 | 
						|
    export functional.__functional.unwrap_ref
 | 
						|
    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 *
 | 
						|
 | 
						|
    module __utility {
 | 
						|
      module as_const            { private header "__utility/as_const.h"            }
 | 
						|
      module cmp                 { private header "__utility/cmp.h"                 }
 | 
						|
      module decay_copy          { private header "__utility/decay_copy.h"          }
 | 
						|
      module declval             { private header "__utility/declval.h"             }
 | 
						|
      module exchange            { private header "__utility/exchange.h"            }
 | 
						|
      module forward             { private header "__utility/forward.h"             }
 | 
						|
      module in_place            { private header "__utility/in_place.h"            }
 | 
						|
      module integer_sequence    { private header "__utility/integer_sequence.h"    }
 | 
						|
      module move                { private header "__utility/move.h"                }
 | 
						|
      module pair                { private header "__utility/pair.h"                }
 | 
						|
      module piecewise_construct { private header "__utility/piecewise_construct.h" }
 | 
						|
      module rel_ops             { private header "__utility/rel_ops.h"             }
 | 
						|
      module swap                { private header "__utility/swap.h"                }
 | 
						|
      module to_underlying       { private header "__utility/to_underlying.h"       }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module valarray {
 | 
						|
    header "valarray"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module variant {
 | 
						|
    header "variant"
 | 
						|
    export *
 | 
						|
 | 
						|
    module __variant {
 | 
						|
      module monostate { private header "__variant/monostate.h" }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  module vector {
 | 
						|
    header "vector"
 | 
						|
    export initializer_list
 | 
						|
    export *
 | 
						|
  }
 | 
						|
  module version {
 | 
						|
    header "version"
 | 
						|
    export *
 | 
						|
  }
 | 
						|
 | 
						|
  // __config not modularised due to a bug in Clang
 | 
						|
  // FIXME: These should be private.
 | 
						|
  module __availability      { private header "__availability"      export * }
 | 
						|
  module __bit_reference     { private header "__bit_reference"     export * }
 | 
						|
  module __bits              { private header "__bits"              export * }
 | 
						|
  module __debug             { header "__debug"             export * }
 | 
						|
  module __errc              { private header "__errc"              export * }
 | 
						|
  module __function_like     { private header "__function_like.h"   export * }
 | 
						|
  module __hash_table        { header "__hash_table"        export * }
 | 
						|
  module __locale            { private header "__locale"            export * }
 | 
						|
  module __mbstate           { private header "__mbstate_t.h"       export * }
 | 
						|
  module __mutex_base        { private header "__mutex_base"        export * }
 | 
						|
  module __node_handle       { private header "__node_handle"       export * }
 | 
						|
  module __nullptr           { header "__nullptr"           export * }
 | 
						|
  module __split_buffer      { private header "__split_buffer"      export * }
 | 
						|
  module __std_stream        { private header "__std_stream"        export * }
 | 
						|
  module __string            { private header "__string"            export * }
 | 
						|
  module __threading_support { header "__threading_support" export * }
 | 
						|
  module __tree              { header "__tree"              export * }
 | 
						|
  module __tuple             { private header "__tuple"             export * }
 | 
						|
  module __undef_macros      { header "__undef_macros"      export * }
 | 
						|
 | 
						|
  module experimental {
 | 
						|
    requires cplusplus11
 | 
						|
 | 
						|
    module algorithm {
 | 
						|
      header "experimental/algorithm"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
     module coroutine {
 | 
						|
      requires coroutines
 | 
						|
      header "experimental/coroutine"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    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 *
 | 
						|
    }
 | 
						|
    module simd {
 | 
						|
      header "experimental/simd"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    module set {
 | 
						|
      header "experimental/set"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    module span {
 | 
						|
      header "span"
 | 
						|
      export *
 | 
						|
    }
 | 
						|
    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
 | 
						|
}
 |