1aed8d94eSDimitry Andric// define the module for __config outside of the top level 'std' module 2aed8d94eSDimitry Andric// since __config may be included from C headers which may create an 3aed8d94eSDimitry Andric// include cycle. 4aed8d94eSDimitry Andricmodule std_config [system] [extern_c] { 5aed8d94eSDimitry Andric header "__config" 6aed8d94eSDimitry Andric} 7aed8d94eSDimitry Andric 8d72607e9SDimitry Andricmodule std [system] { 9aed8d94eSDimitry Andric export std_config 10d72607e9SDimitry Andric // FIXME: The standard does not require that each of these submodules 11d72607e9SDimitry Andric // re-exports its imported modules. We should provide an alternative form of 12d72607e9SDimitry Andric // export that issues a warning if a name from the submodule is used, and 13d72607e9SDimitry Andric // use that to provide a 'strict mode' for libc++. 14aed8d94eSDimitry Andric 15aed8d94eSDimitry Andric // Deprecated C-compatibility headers. These can all be included from within 16aed8d94eSDimitry Andric // an 'extern "C"' context. 17aed8d94eSDimitry Andric module depr [extern_c] { 18aed8d94eSDimitry Andric // <assert.h> provided by C library. 19aed8d94eSDimitry Andric module ctype_h { 20aed8d94eSDimitry Andric header "ctype.h" 21d72607e9SDimitry Andric export * 22d72607e9SDimitry Andric } 23aed8d94eSDimitry Andric module errno_h { 24aed8d94eSDimitry Andric header "errno.h" 25d72607e9SDimitry Andric export * 26d72607e9SDimitry Andric } 27aed8d94eSDimitry Andric // <fenv.h> provided by C library. 28aed8d94eSDimitry Andric // <float.h> provided by compiler or C library. 29aed8d94eSDimitry Andric module inttypes_h { 30aed8d94eSDimitry Andric header "inttypes.h" 31aed8d94eSDimitry Andric export stdint_h 32d72607e9SDimitry Andric export * 33d72607e9SDimitry Andric } 34aed8d94eSDimitry Andric // <iso646.h> provided by compiler. 35aed8d94eSDimitry Andric // <limits.h> provided by compiler or C library. 36aed8d94eSDimitry Andric module locale_h { 37aed8d94eSDimitry Andric header "locale.h" 38aed8d94eSDimitry Andric export * 39aed8d94eSDimitry Andric } 40aed8d94eSDimitry Andric module math_h { 41aed8d94eSDimitry Andric header "math.h" 42aed8d94eSDimitry Andric export * 43aed8d94eSDimitry Andric } 44aed8d94eSDimitry Andric module setjmp_h { 45aed8d94eSDimitry Andric header "setjmp.h" 46aed8d94eSDimitry Andric export * 47aed8d94eSDimitry Andric } 48aed8d94eSDimitry Andric // FIXME: <stdalign.h> is missing. 49aed8d94eSDimitry Andric // <signal.h> provided by C library. 50aed8d94eSDimitry Andric // <stdarg.h> provided by compiler. 51aed8d94eSDimitry Andric // <stdbool.h> provided by compiler. 52aed8d94eSDimitry Andric module stddef_h { 53aed8d94eSDimitry Andric // <stddef.h>'s __need_* macros require textual inclusion. 54aed8d94eSDimitry Andric textual header "stddef.h" 55aed8d94eSDimitry Andric } 56aed8d94eSDimitry Andric module stdint_h { 57aed8d94eSDimitry Andric header "stdint.h" 58aed8d94eSDimitry Andric export * 59aed8d94eSDimitry Andric // FIXME: This module only exists on OS X and for some reason the 60aed8d94eSDimitry Andric // wildcard above doesn't export it. 61aed8d94eSDimitry Andric export Darwin.C.stdint 62aed8d94eSDimitry Andric } 63aed8d94eSDimitry Andric module stdio_h { 64aed8d94eSDimitry Andric // <stdio.h>'s __need_* macros require textual inclusion. 65aed8d94eSDimitry Andric textual header "stdio.h" 66aed8d94eSDimitry Andric export * 67aed8d94eSDimitry Andric export Darwin.C.stdio 68aed8d94eSDimitry Andric } 69aed8d94eSDimitry Andric module stdlib_h { 70aed8d94eSDimitry Andric // <stdlib.h>'s __need_* macros require textual inclusion. 71aed8d94eSDimitry Andric textual header "stdlib.h" 72aed8d94eSDimitry Andric export * 73aed8d94eSDimitry Andric } 74aed8d94eSDimitry Andric module string_h { 75aed8d94eSDimitry Andric header "string.h" 76aed8d94eSDimitry Andric export * 77aed8d94eSDimitry Andric } 78aed8d94eSDimitry Andric // FIXME: <uchar.h> is missing. 79aed8d94eSDimitry Andric // <time.h> provided by C library. 80aed8d94eSDimitry Andric module wchar_h { 81aed8d94eSDimitry Andric // <wchar.h>'s __need_* macros require textual inclusion. 82aed8d94eSDimitry Andric textual header "wchar.h" 83aed8d94eSDimitry Andric export * 84aed8d94eSDimitry Andric } 85aed8d94eSDimitry Andric module wctype_h { 86aed8d94eSDimitry Andric header "wctype.h" 87aed8d94eSDimitry Andric export * 88aed8d94eSDimitry Andric } 89aed8d94eSDimitry Andric } 90aed8d94eSDimitry Andric 91aed8d94eSDimitry Andric // <complex.h> and <tgmath.h> are not C headers in any real sense, do not 92aed8d94eSDimitry Andric // allow their use in extern "C" contexts. 93aed8d94eSDimitry Andric module complex_h { 94aed8d94eSDimitry Andric header "complex.h" 95aed8d94eSDimitry Andric export ccomplex 96aed8d94eSDimitry Andric export * 97aed8d94eSDimitry Andric } 98aed8d94eSDimitry Andric module tgmath_h { 99aed8d94eSDimitry Andric header "tgmath.h" 100aed8d94eSDimitry Andric export ccomplex 101aed8d94eSDimitry Andric export cmath 102aed8d94eSDimitry Andric export * 103aed8d94eSDimitry Andric } 104aed8d94eSDimitry Andric 105aed8d94eSDimitry Andric // C compatibility headers. 106aed8d94eSDimitry Andric module compat { 107aed8d94eSDimitry Andric module cassert { 108aed8d94eSDimitry Andric // <cassert>'s use of NDEBUG requires textual inclusion. 109aed8d94eSDimitry Andric textual header "cassert" 110aed8d94eSDimitry Andric } 111d72607e9SDimitry Andric module ccomplex { 112d72607e9SDimitry Andric header "ccomplex" 113d72607e9SDimitry Andric export complex 114d72607e9SDimitry Andric export * 115d72607e9SDimitry Andric } 116d72607e9SDimitry Andric module cctype { 117d72607e9SDimitry Andric header "cctype" 118d72607e9SDimitry Andric export * 119d72607e9SDimitry Andric } 120d72607e9SDimitry Andric module cerrno { 121d72607e9SDimitry Andric header "cerrno" 122d72607e9SDimitry Andric export * 123d72607e9SDimitry Andric } 124d72607e9SDimitry Andric module cfenv { 125d72607e9SDimitry Andric header "cfenv" 126d72607e9SDimitry Andric export * 127d72607e9SDimitry Andric } 128d72607e9SDimitry Andric module cfloat { 129d72607e9SDimitry Andric header "cfloat" 130d72607e9SDimitry Andric export * 131d72607e9SDimitry Andric } 132d72607e9SDimitry Andric module cinttypes { 133d72607e9SDimitry Andric header "cinttypes" 134d72607e9SDimitry Andric export cstdint 135d72607e9SDimitry Andric export * 136d72607e9SDimitry Andric } 137d72607e9SDimitry Andric module ciso646 { 138d72607e9SDimitry Andric header "ciso646" 139d72607e9SDimitry Andric export * 140d72607e9SDimitry Andric } 141d72607e9SDimitry Andric module climits { 142d72607e9SDimitry Andric header "climits" 143d72607e9SDimitry Andric export * 144d72607e9SDimitry Andric } 145d72607e9SDimitry Andric module clocale { 146d72607e9SDimitry Andric header "clocale" 147d72607e9SDimitry Andric export * 148d72607e9SDimitry Andric } 149d72607e9SDimitry Andric module cmath { 150d72607e9SDimitry Andric header "cmath" 151aed8d94eSDimitry Andric export * 152aed8d94eSDimitry Andric } 153aed8d94eSDimitry Andric module csetjmp { 154aed8d94eSDimitry Andric header "csetjmp" 155aed8d94eSDimitry Andric export * 156aed8d94eSDimitry Andric } 157aed8d94eSDimitry Andric module csignal { 158aed8d94eSDimitry Andric header "csignal" 159aed8d94eSDimitry Andric export * 160aed8d94eSDimitry Andric } 161aed8d94eSDimitry Andric // FIXME: <cstdalign> is missing. 162aed8d94eSDimitry Andric module cstdarg { 163aed8d94eSDimitry Andric header "cstdarg" 164aed8d94eSDimitry Andric export * 165aed8d94eSDimitry Andric } 166aed8d94eSDimitry Andric module cstdbool { 167aed8d94eSDimitry Andric header "cstdbool" 168aed8d94eSDimitry Andric export * 169aed8d94eSDimitry Andric } 170aed8d94eSDimitry Andric module cstddef { 171aed8d94eSDimitry Andric header "cstddef" 172aed8d94eSDimitry Andric export * 173aed8d94eSDimitry Andric } 174aed8d94eSDimitry Andric module cstdint { 175aed8d94eSDimitry Andric header "cstdint" 176aed8d94eSDimitry Andric export depr.stdint_h 177aed8d94eSDimitry Andric export * 178aed8d94eSDimitry Andric } 179aed8d94eSDimitry Andric module cstdio { 180aed8d94eSDimitry Andric header "cstdio" 181aed8d94eSDimitry Andric export * 182aed8d94eSDimitry Andric } 183aed8d94eSDimitry Andric module cstdlib { 184aed8d94eSDimitry Andric header "cstdlib" 185aed8d94eSDimitry Andric export * 186aed8d94eSDimitry Andric } 187aed8d94eSDimitry Andric module cstring { 188aed8d94eSDimitry Andric header "cstring" 189aed8d94eSDimitry Andric export * 190aed8d94eSDimitry Andric } 191aed8d94eSDimitry Andric module ctgmath { 192aed8d94eSDimitry Andric header "ctgmath" 193aed8d94eSDimitry Andric export ccomplex 194aed8d94eSDimitry Andric export cmath 195aed8d94eSDimitry Andric export * 196aed8d94eSDimitry Andric } 197aed8d94eSDimitry Andric module ctime { 198aed8d94eSDimitry Andric header "ctime" 199aed8d94eSDimitry Andric export * 200aed8d94eSDimitry Andric } 201aed8d94eSDimitry Andric // FIXME: <cuchar> is missing. 202aed8d94eSDimitry Andric module cwchar { 203aed8d94eSDimitry Andric header "cwchar" 204aed8d94eSDimitry Andric export depr.stdio_h 205aed8d94eSDimitry Andric export * 206aed8d94eSDimitry Andric } 207aed8d94eSDimitry Andric module cwctype { 208aed8d94eSDimitry Andric header "cwctype" 209aed8d94eSDimitry Andric export * 210aed8d94eSDimitry Andric } 211aed8d94eSDimitry Andric } 212aed8d94eSDimitry Andric 213aed8d94eSDimitry Andric module algorithm { 214aed8d94eSDimitry Andric header "algorithm" 215aed8d94eSDimitry Andric export initializer_list 216aed8d94eSDimitry Andric export * 217aed8d94eSDimitry Andric } 218aed8d94eSDimitry Andric module any { 219aed8d94eSDimitry Andric header "any" 220aed8d94eSDimitry Andric export * 221aed8d94eSDimitry Andric } 222aed8d94eSDimitry Andric module array { 223aed8d94eSDimitry Andric header "array" 224aed8d94eSDimitry Andric export initializer_list 225aed8d94eSDimitry Andric export * 226aed8d94eSDimitry Andric } 227aed8d94eSDimitry Andric module atomic { 228aed8d94eSDimitry Andric header "atomic" 229aed8d94eSDimitry Andric export * 230aed8d94eSDimitry Andric } 231*b5893f02SDimitry Andric module bit { 232*b5893f02SDimitry Andric header "bit" 233*b5893f02SDimitry Andric export * 234*b5893f02SDimitry Andric } 235aed8d94eSDimitry Andric module bitset { 236aed8d94eSDimitry Andric header "bitset" 237aed8d94eSDimitry Andric export string 238aed8d94eSDimitry Andric export iosfwd 239aed8d94eSDimitry Andric export * 240aed8d94eSDimitry Andric } 241aed8d94eSDimitry Andric // No submodule for cassert. It fundamentally needs repeated, textual inclusion. 2424ba319b5SDimitry Andric module charconv { 2434ba319b5SDimitry Andric header "charconv" 2444ba319b5SDimitry Andric export * 2454ba319b5SDimitry Andric } 246aed8d94eSDimitry Andric module chrono { 247aed8d94eSDimitry Andric header "chrono" 248d72607e9SDimitry Andric export * 249d72607e9SDimitry Andric } 250d72607e9SDimitry Andric module codecvt { 251d72607e9SDimitry Andric header "codecvt" 252d72607e9SDimitry Andric export * 253d72607e9SDimitry Andric } 2544ba319b5SDimitry Andric module compare { 2554ba319b5SDimitry Andric header "compare" 2564ba319b5SDimitry Andric export * 2574ba319b5SDimitry Andric } 258d72607e9SDimitry Andric module complex { 259d72607e9SDimitry Andric header "complex" 260d72607e9SDimitry Andric export * 261d72607e9SDimitry Andric } 262d72607e9SDimitry Andric module condition_variable { 263d72607e9SDimitry Andric header "condition_variable" 264d72607e9SDimitry Andric export * 265d72607e9SDimitry Andric } 266d72607e9SDimitry Andric module deque { 267d72607e9SDimitry Andric header "deque" 268d72607e9SDimitry Andric export initializer_list 269d72607e9SDimitry Andric export * 270d72607e9SDimitry Andric } 271d72607e9SDimitry Andric module exception { 272d72607e9SDimitry Andric header "exception" 273d72607e9SDimitry Andric export * 274d72607e9SDimitry Andric } 2754ba319b5SDimitry Andric module filesystem { 2764ba319b5SDimitry Andric header "filesystem" 2774ba319b5SDimitry Andric export * 2784ba319b5SDimitry Andric } 279d72607e9SDimitry Andric module forward_list { 280d72607e9SDimitry Andric header "forward_list" 281d72607e9SDimitry Andric export initializer_list 282d72607e9SDimitry Andric export * 283d72607e9SDimitry Andric } 284d72607e9SDimitry Andric module fstream { 285d72607e9SDimitry Andric header "fstream" 286d72607e9SDimitry Andric export * 287d72607e9SDimitry Andric } 288d72607e9SDimitry Andric module functional { 289d72607e9SDimitry Andric header "functional" 290d72607e9SDimitry Andric export * 291d72607e9SDimitry Andric } 292d72607e9SDimitry Andric module future { 293d72607e9SDimitry Andric header "future" 294d72607e9SDimitry Andric export * 295d72607e9SDimitry Andric } 296d72607e9SDimitry Andric module initializer_list { 297d72607e9SDimitry Andric header "initializer_list" 298d72607e9SDimitry Andric export * 299d72607e9SDimitry Andric } 300d72607e9SDimitry Andric module iomanip { 301d72607e9SDimitry Andric header "iomanip" 302d72607e9SDimitry Andric export * 303d72607e9SDimitry Andric } 304d72607e9SDimitry Andric module ios { 305d72607e9SDimitry Andric header "ios" 306d72607e9SDimitry Andric export iosfwd 307d72607e9SDimitry Andric export * 308d72607e9SDimitry Andric } 309d72607e9SDimitry Andric module iosfwd { 310d72607e9SDimitry Andric header "iosfwd" 311d72607e9SDimitry Andric export * 312d72607e9SDimitry Andric } 313d72607e9SDimitry Andric module iostream { 314d72607e9SDimitry Andric header "iostream" 315d72607e9SDimitry Andric export ios 316d72607e9SDimitry Andric export streambuf 317d72607e9SDimitry Andric export istream 318d72607e9SDimitry Andric export ostream 319d72607e9SDimitry Andric export * 320d72607e9SDimitry Andric } 321d72607e9SDimitry Andric module istream { 322d72607e9SDimitry Andric header "istream" 323d72607e9SDimitry Andric // FIXME: should re-export ios, streambuf? 324d72607e9SDimitry Andric export * 325d72607e9SDimitry Andric } 326d72607e9SDimitry Andric module iterator { 327d72607e9SDimitry Andric header "iterator" 328d72607e9SDimitry Andric export * 329d72607e9SDimitry Andric } 330d72607e9SDimitry Andric module limits { 331d72607e9SDimitry Andric header "limits" 332d72607e9SDimitry Andric export * 333d72607e9SDimitry Andric } 334d72607e9SDimitry Andric module list { 335d72607e9SDimitry Andric header "list" 336d72607e9SDimitry Andric export initializer_list 337d72607e9SDimitry Andric export * 338d72607e9SDimitry Andric } 339d72607e9SDimitry Andric module locale { 340d72607e9SDimitry Andric header "locale" 341d72607e9SDimitry Andric export * 342d72607e9SDimitry Andric } 343d72607e9SDimitry Andric module map { 344d72607e9SDimitry Andric header "map" 345d72607e9SDimitry Andric export initializer_list 346d72607e9SDimitry Andric export * 347d72607e9SDimitry Andric } 348d72607e9SDimitry Andric module memory { 349d72607e9SDimitry Andric header "memory" 350d72607e9SDimitry Andric export * 351d72607e9SDimitry Andric } 352d72607e9SDimitry Andric module mutex { 353d72607e9SDimitry Andric header "mutex" 354d72607e9SDimitry Andric export * 355d72607e9SDimitry Andric } 356d72607e9SDimitry Andric module new { 357d72607e9SDimitry Andric header "new" 358d72607e9SDimitry Andric export * 359d72607e9SDimitry Andric } 360d72607e9SDimitry Andric module numeric { 361d72607e9SDimitry Andric header "numeric" 362d72607e9SDimitry Andric export * 363d72607e9SDimitry Andric } 364aed8d94eSDimitry Andric module optional { 365aed8d94eSDimitry Andric header "optional" 366aed8d94eSDimitry Andric export * 367aed8d94eSDimitry Andric } 368d72607e9SDimitry Andric module ostream { 369d72607e9SDimitry Andric header "ostream" 370d72607e9SDimitry Andric // FIXME: should re-export ios, streambuf? 371d72607e9SDimitry Andric export * 372d72607e9SDimitry Andric } 373d72607e9SDimitry Andric module queue { 374d72607e9SDimitry Andric header "queue" 375d72607e9SDimitry Andric export initializer_list 376d72607e9SDimitry Andric export * 377d72607e9SDimitry Andric } 378d72607e9SDimitry Andric module random { 379d72607e9SDimitry Andric header "random" 380d72607e9SDimitry Andric export initializer_list 381d72607e9SDimitry Andric export * 382d72607e9SDimitry Andric } 383d72607e9SDimitry Andric module ratio { 384d72607e9SDimitry Andric header "ratio" 385d72607e9SDimitry Andric export * 386d72607e9SDimitry Andric } 387d72607e9SDimitry Andric module regex { 388d72607e9SDimitry Andric header "regex" 389d72607e9SDimitry Andric export initializer_list 390d72607e9SDimitry Andric export * 391d72607e9SDimitry Andric } 392d72607e9SDimitry Andric module scoped_allocator { 393d72607e9SDimitry Andric header "scoped_allocator" 394d72607e9SDimitry Andric export * 395d72607e9SDimitry Andric } 396d72607e9SDimitry Andric module set { 397d72607e9SDimitry Andric header "set" 398d72607e9SDimitry Andric export initializer_list 399d72607e9SDimitry Andric export * 400d72607e9SDimitry Andric } 401d72607e9SDimitry Andric module sstream { 402d72607e9SDimitry Andric header "sstream" 403d72607e9SDimitry Andric // FIXME: should re-export istream, ostream, ios, streambuf, string? 404d72607e9SDimitry Andric export * 405d72607e9SDimitry Andric } 406d72607e9SDimitry Andric module stack { 407d72607e9SDimitry Andric header "stack" 408d72607e9SDimitry Andric export initializer_list 409d72607e9SDimitry Andric export * 410d72607e9SDimitry Andric } 411d72607e9SDimitry Andric module stdexcept { 412d72607e9SDimitry Andric header "stdexcept" 413d72607e9SDimitry Andric export * 414d72607e9SDimitry Andric } 415d72607e9SDimitry Andric module streambuf { 416d72607e9SDimitry Andric header "streambuf" 417d72607e9SDimitry Andric export * 418d72607e9SDimitry Andric } 419d72607e9SDimitry Andric module string { 420d72607e9SDimitry Andric header "string" 421d72607e9SDimitry Andric export initializer_list 422aed8d94eSDimitry Andric export string_view 423aed8d94eSDimitry Andric export __string 424aed8d94eSDimitry Andric export * 425aed8d94eSDimitry Andric } 426aed8d94eSDimitry Andric module string_view { 427aed8d94eSDimitry Andric header "string_view" 428aed8d94eSDimitry Andric export initializer_list 429aed8d94eSDimitry Andric export __string 430d72607e9SDimitry Andric export * 431d72607e9SDimitry Andric } 432d72607e9SDimitry Andric module strstream { 433d72607e9SDimitry Andric header "strstream" 434aed8d94eSDimitry Andric export * 435d72607e9SDimitry Andric } 436d72607e9SDimitry Andric module system_error { 437d72607e9SDimitry Andric header "system_error" 438d72607e9SDimitry Andric export * 439d72607e9SDimitry Andric } 440d72607e9SDimitry Andric module thread { 441d72607e9SDimitry Andric header "thread" 442d72607e9SDimitry Andric export * 443d72607e9SDimitry Andric } 444d72607e9SDimitry Andric module tuple { 445d72607e9SDimitry Andric header "tuple" 446d72607e9SDimitry Andric export * 447d72607e9SDimitry Andric } 448d72607e9SDimitry Andric module type_traits { 449d72607e9SDimitry Andric header "type_traits" 450d72607e9SDimitry Andric export * 451d72607e9SDimitry Andric } 452d72607e9SDimitry Andric module typeindex { 453d72607e9SDimitry Andric header "typeindex" 454d72607e9SDimitry Andric export * 455d72607e9SDimitry Andric } 456d72607e9SDimitry Andric module typeinfo { 457d72607e9SDimitry Andric header "typeinfo" 458d72607e9SDimitry Andric export * 459d72607e9SDimitry Andric } 460d72607e9SDimitry Andric module unordered_map { 461d72607e9SDimitry Andric header "unordered_map" 462d72607e9SDimitry Andric export initializer_list 463d72607e9SDimitry Andric export * 464d72607e9SDimitry Andric } 465d72607e9SDimitry Andric module unordered_set { 466d72607e9SDimitry Andric header "unordered_set" 467d72607e9SDimitry Andric export initializer_list 468d72607e9SDimitry Andric export * 469d72607e9SDimitry Andric } 470d72607e9SDimitry Andric module utility { 471d72607e9SDimitry Andric header "utility" 472d72607e9SDimitry Andric export initializer_list 473d72607e9SDimitry Andric export * 474d72607e9SDimitry Andric } 475d72607e9SDimitry Andric module valarray { 476d72607e9SDimitry Andric header "valarray" 477d72607e9SDimitry Andric export initializer_list 478d72607e9SDimitry Andric export * 479d72607e9SDimitry Andric } 480aed8d94eSDimitry Andric module variant { 481aed8d94eSDimitry Andric header "variant" 482aed8d94eSDimitry Andric export * 483aed8d94eSDimitry Andric } 484d72607e9SDimitry Andric module vector { 485d72607e9SDimitry Andric header "vector" 486d72607e9SDimitry Andric export initializer_list 487d72607e9SDimitry Andric export * 488d72607e9SDimitry Andric } 4894ba319b5SDimitry Andric module version { 4904ba319b5SDimitry Andric header "version" 4914ba319b5SDimitry Andric export * 4924ba319b5SDimitry Andric } 493d72607e9SDimitry Andric 494d72607e9SDimitry Andric // FIXME: These should be private. 495d72607e9SDimitry Andric module __bit_reference { header "__bit_reference" export * } 496d72607e9SDimitry Andric module __debug { header "__debug" export * } 4974ba319b5SDimitry Andric module __errc { header "__errc" export * } 498d72607e9SDimitry Andric module __functional_base { header "__functional_base" export * } 499d72607e9SDimitry Andric module __hash_table { header "__hash_table" export * } 500d72607e9SDimitry Andric module __locale { header "__locale" export * } 501d72607e9SDimitry Andric module __mutex_base { header "__mutex_base" export * } 502d72607e9SDimitry Andric module __split_buffer { header "__split_buffer" export * } 503d72607e9SDimitry Andric module __sso_allocator { header "__sso_allocator" export * } 504d72607e9SDimitry Andric module __std_stream { header "__std_stream" export * } 505aed8d94eSDimitry Andric module __string { header "__string" export * } 506d72607e9SDimitry Andric module __tree { header "__tree" export * } 507d72607e9SDimitry Andric module __tuple { header "__tuple" export * } 508f9448bf3SDimitry Andric module __undef_macros { header "__undef_macros" export * } 5094ba319b5SDimitry Andric module __node_handle { header "__node_handle" export * } 510aed8d94eSDimitry Andric 511aed8d94eSDimitry Andric module experimental { 512aed8d94eSDimitry Andric requires cplusplus11 513aed8d94eSDimitry Andric 514aed8d94eSDimitry Andric module algorithm { 515aed8d94eSDimitry Andric header "experimental/algorithm" 516aed8d94eSDimitry Andric export * 517aed8d94eSDimitry Andric } 518302affcbSDimitry Andric module coroutine { 51989cb50c9SDimitry Andric requires coroutines 520302affcbSDimitry Andric header "experimental/coroutine" 521302affcbSDimitry Andric export * 522302affcbSDimitry Andric } 523aed8d94eSDimitry Andric module deque { 524aed8d94eSDimitry Andric header "experimental/deque" 525aed8d94eSDimitry Andric export * 526aed8d94eSDimitry Andric } 527aed8d94eSDimitry Andric module filesystem { 528aed8d94eSDimitry Andric header "experimental/filesystem" 529aed8d94eSDimitry Andric export * 530aed8d94eSDimitry Andric } 531aed8d94eSDimitry Andric module forward_list { 532aed8d94eSDimitry Andric header "experimental/forward_list" 533aed8d94eSDimitry Andric export * 534aed8d94eSDimitry Andric } 535aed8d94eSDimitry Andric module functional { 536aed8d94eSDimitry Andric header "experimental/functional" 537aed8d94eSDimitry Andric export * 538aed8d94eSDimitry Andric } 539aed8d94eSDimitry Andric module iterator { 540aed8d94eSDimitry Andric header "experimental/iterator" 541aed8d94eSDimitry Andric export * 542aed8d94eSDimitry Andric } 543aed8d94eSDimitry Andric module list { 544aed8d94eSDimitry Andric header "experimental/list" 545aed8d94eSDimitry Andric export * 546aed8d94eSDimitry Andric } 547aed8d94eSDimitry Andric module map { 548aed8d94eSDimitry Andric header "experimental/map" 549aed8d94eSDimitry Andric export * 550aed8d94eSDimitry Andric } 551aed8d94eSDimitry Andric module memory_resource { 552aed8d94eSDimitry Andric header "experimental/memory_resource" 553aed8d94eSDimitry Andric export * 554aed8d94eSDimitry Andric } 555aed8d94eSDimitry Andric module propagate_const { 556aed8d94eSDimitry Andric header "experimental/propagate_const" 557aed8d94eSDimitry Andric export * 558aed8d94eSDimitry Andric } 559aed8d94eSDimitry Andric module regex { 560aed8d94eSDimitry Andric header "experimental/regex" 561aed8d94eSDimitry Andric export * 562aed8d94eSDimitry Andric } 5634ba319b5SDimitry Andric module simd { 5644ba319b5SDimitry Andric header "experimental/simd" 5654ba319b5SDimitry Andric export * 5664ba319b5SDimitry Andric } 567aed8d94eSDimitry Andric module set { 568aed8d94eSDimitry Andric header "experimental/set" 569aed8d94eSDimitry Andric export * 570aed8d94eSDimitry Andric } 5714ba319b5SDimitry Andric module span { 5724ba319b5SDimitry Andric header "span" 5734ba319b5SDimitry Andric export * 5744ba319b5SDimitry Andric } 575aed8d94eSDimitry Andric module string { 576aed8d94eSDimitry Andric header "experimental/string" 577aed8d94eSDimitry Andric export * 578aed8d94eSDimitry Andric } 579aed8d94eSDimitry Andric module type_traits { 580aed8d94eSDimitry Andric header "experimental/type_traits" 581aed8d94eSDimitry Andric export * 582aed8d94eSDimitry Andric } 583aed8d94eSDimitry Andric module unordered_map { 584aed8d94eSDimitry Andric header "experimental/unordered_map" 585aed8d94eSDimitry Andric export * 586aed8d94eSDimitry Andric } 587aed8d94eSDimitry Andric module unordered_set { 588aed8d94eSDimitry Andric header "experimental/unordered_set" 589aed8d94eSDimitry Andric export * 590aed8d94eSDimitry Andric } 591aed8d94eSDimitry Andric module utility { 592aed8d94eSDimitry Andric header "experimental/utility" 593aed8d94eSDimitry Andric export * 594aed8d94eSDimitry Andric } 595aed8d94eSDimitry Andric module vector { 596aed8d94eSDimitry Andric header "experimental/vector" 597aed8d94eSDimitry Andric export * 598aed8d94eSDimitry Andric } 599aed8d94eSDimitry Andric // FIXME these should be private 600aed8d94eSDimitry Andric module __memory { 601aed8d94eSDimitry Andric header "experimental/__memory" 602aed8d94eSDimitry Andric export * 603aed8d94eSDimitry Andric } 604aed8d94eSDimitry Andric } // end experimental 605d72607e9SDimitry Andric} 606