Home | History | Annotate | Download | only in include
      1 module std [system] {
      2   // FIXME: The standard does not require that each of these submodules
      3   // re-exports its imported modules. We should provide an alternative form of
      4   // export that issues a warning if a name from the submodule is used, and
      5   // use that to provide a 'strict mode' for libc++.
      6   module algorithm {
      7     header "algorithm"
      8     export initializer_list
      9     export *
     10   }
     11   module array {
     12     header "array"
     13     export initializer_list
     14     export *
     15   }
     16   module atomic {
     17     header "atomic"
     18     export *
     19     requires cplusplus11
     20   }
     21   module bitset {
     22     header "bitset"
     23     export string
     24     export iosfwd
     25     export *
     26   }
     27   // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
     28   module ccomplex {
     29     header "ccomplex"
     30     export complex
     31     export *
     32   }
     33   module cctype {
     34     header "cctype"
     35     export *
     36   }
     37   module cerrno {
     38     header "cerrno"
     39 /*
     40     export_macros    ECONNREFUSED, EIO,          ENODEV,      ENOTEMPTY,       ERANGE,
     41       E2BIG,         ECONNRESET,   EISCONN,      ENOENT,      ENOTRECOVERABLE, EROFS,
     42       EACCES,        EDEADLK,      EISDIR,       ENOEXEC,     ENOTSOCK,        ESPIPE,
     43       EADDRINUSE,    EDESTADDRREQ, ELOOP,        ENOLCK,      ENOTSUP,         ESRCH,
     44       EADDRNOTAVAIL, EDOM,         EMFILE,       ENOLINK,     ENOTTY,          ETIME,
     45       EAFNOSUPPORT,  EEXIST,       EMLINK,       ENOMEM,      ENXIO,           ETIMEDOUT,
     46       EAGAIN,        EFAULT,       EMSGSIZE,     ENOMSG,      EOPNOTSUPP,      ETXTBSY,
     47       EALREADY,      EFBIG,        ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW,       EWOULDBLOCK,
     48       EBADF,         EHOSTUNREACH, ENETDOWN,     ENOSPC,      EOWNERDEAD,      EXDEV,
     49       EBADMSG,       EIDRM,        ENETRESET,    ENOSR,       EPERM,           errno,
     50       EBUSY,         EILSEQ,       ENETUNREACH,  ENOSTR,      EPIPE,
     51       ECANCELED,     EINPROGRESS,  ENFILE,       ENOSYS,      EPROTO,
     52       ECHILD,        EINTR,        ENOBUFS,      ENOTCONN,    EPROTONOSUPPORT,
     53       ECONNABORTED,  EINVAL,       ENODATA,      ENOTDIR,     EPROTOTYPE
     54 */
     55     export *
     56   }
     57   module cfenv {
     58     header "cfenv"
     59 /*
     60     export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
     61                   FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
     62                   FE_DFL_ENV
     63 */
     64     export *
     65   }
     66   module cfloat {
     67     header "cfloat"
     68 /*
     69     export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
     70                   FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
     71                   FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
     72                   FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
     73                   DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
     74                   DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
     75                   DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
     76                   LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
     77                   LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
     78                   LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
     79 */
     80     export *
     81   }
     82   module chrono {
     83     header "chrono"
     84     export *
     85   }
     86   module cinttypes {
     87     header "cinttypes"
     88     export cstdint
     89 /*
     90     export_macros
     91       PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
     92       PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
     93       PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
     94       PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
     95       PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
     96       PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
     97       SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
     98       SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
     99       SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
    100       SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
    101       SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
    102       SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
    103 */
    104     export *
    105   }
    106   module ciso646 {
    107     header "ciso646"
    108     export *
    109   }
    110   module climits {
    111     header "climits"
    112 /*
    113     export_macros CHAR_BIT,  CHAR_MIN,  CHAR_MAX,
    114                   SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
    115                   SHRT_MIN,  SHRT_MAX,  USHRT_MAX,
    116                   INT_MIN,   INT_MAX,   UINT_MAX,
    117                   LONG_MIN,  LONG_MAX,  ULONG_MAX,
    118                   LLONG_MIN, LLONG_MAX, ULLONG_MAX,
    119                   MB_LEN_MAX
    120 */
    121     export *
    122   }
    123   module clocale {
    124     header "clocale"
    125 /*
    126     export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
    127 */
    128     export *
    129   }
    130   module cmath {
    131     header "cmath"
    132 /*
    133     export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
    134                   FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
    135                   HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
    136                   MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
    137 */
    138     export *
    139   }
    140   module codecvt {
    141     header "codecvt"
    142     export *
    143   }
    144   module complex {
    145     header "complex"
    146     export *
    147   }
    148   module condition_variable {
    149     header "condition_variable"
    150     export *
    151   }
    152   module csetjmp {
    153     header "csetjmp"
    154 /*
    155     export_macros setjmp
    156 */
    157     export *
    158   }
    159   module csignal {
    160     header "csignal"
    161 /*
    162     export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
    163                   SIG_DFL, SIG_IGN, SIG_ERR
    164 */
    165     export *
    166   }
    167   module cstdarg {
    168     header "cstdarg"
    169 /*
    170     export_macros va_arg, va_start, va_end, va_copy
    171 */
    172     export *
    173   }
    174   module cstdbool {
    175     header "cstdbool"
    176 /*
    177     export_macros __bool_true_false_are_defined
    178 */
    179     export *
    180   }
    181   module cstddef {
    182     header "cstddef"
    183 /*
    184     export_macros NULL, offsetof
    185 */
    186     export *
    187   }
    188   module cstdint {
    189     header "cstdint"
    190 /*
    191     export_macros
    192       INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
    193       INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
    194       INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
    195       INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
    196       INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
    197       INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
    198       INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
    199       PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
    200       SIZE_MAX
    201 */
    202     export *
    203   }
    204   module cstdio {
    205     header "cstdio"
    206 /*
    207     export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
    208                   SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
    209                   stdin, stdout, stderr
    210 */
    211     export *
    212   }
    213   module cstdlib {
    214     header "cstdlib"
    215 /*
    216     export_macros RAND_MAX
    217 */
    218     export *
    219   }
    220   module cstring {
    221     header "cstring"
    222 /*
    223     export_macros NULL
    224 */
    225     export *
    226   }
    227   module ctgmath {
    228     header "ctgmath"
    229     export ccomplex
    230     export cmath
    231     export *
    232   }
    233   module ctime {
    234     header "ctime"
    235 /*
    236     export_macros NULL, CLOCKS_PER_SEC
    237 */
    238     export *
    239   }
    240   module cwchar {
    241     header "cwchar"
    242 /*
    243     export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
    244 */
    245     export *
    246   }
    247   module cwctype {
    248     header "cwctype"
    249 /*
    250     export_macros WEOF
    251 */
    252     export *
    253   }
    254   module deque {
    255     header "deque"
    256     export initializer_list
    257     export *
    258   }
    259   module exception {
    260     header "exception"
    261     export *
    262   }
    263   module forward_list {
    264     header "forward_list"
    265     export initializer_list
    266     export *
    267   }
    268   module fstream {
    269     header "fstream"
    270     export *
    271   }
    272   module functional {
    273     header "functional"
    274     export *
    275   }
    276   module future {
    277     header "future"
    278     export *
    279   }
    280   module initializer_list {
    281     header "initializer_list"
    282     export *
    283   }
    284   module iomanip {
    285     header "iomanip"
    286     export *
    287   }
    288   module ios {
    289     header "ios"
    290     export iosfwd
    291     export *
    292   }
    293   module iosfwd {
    294     header "iosfwd"
    295     export *
    296   }
    297   module iostream {
    298     header "iostream"
    299     export ios
    300     export streambuf
    301     export istream
    302     export ostream
    303     export *
    304   }
    305   module istream {
    306     header "istream"
    307     // FIXME: should re-export ios, streambuf?
    308     export *
    309   }
    310   module iterator {
    311     header "iterator"
    312     export *
    313   }
    314   module limits {
    315     header "limits"
    316     export *
    317   }
    318   module list {
    319     header "list"
    320     export initializer_list
    321     export *
    322   }
    323   module locale {
    324     header "locale"
    325     export *
    326   }
    327   module map {
    328     header "map"
    329     export initializer_list
    330     export *
    331   }
    332   module memory {
    333     header "memory"
    334     export *
    335   }
    336   module mutex {
    337     header "mutex"
    338     export *
    339   }
    340   module new {
    341     header "new"
    342     export *
    343   }
    344   module numeric {
    345     header "numeric"
    346     export *
    347   }
    348   module ostream {
    349     header "ostream"
    350     // FIXME: should re-export ios, streambuf?
    351     export *
    352   }
    353   module queue {
    354     header "queue"
    355     export initializer_list
    356     export *
    357   }
    358   module random {
    359     header "random"
    360     export initializer_list
    361     export *
    362   }
    363   module ratio {
    364     header "ratio"
    365     export *
    366   }
    367   module regex {
    368     header "regex"
    369     export initializer_list
    370     export *
    371   }
    372   module scoped_allocator {
    373     header "scoped_allocator"
    374     export *
    375   }
    376   module set {
    377     header "set"
    378     export initializer_list
    379     export *
    380   }
    381   module sstream {
    382     header "sstream"
    383     // FIXME: should re-export istream, ostream, ios, streambuf, string?
    384     export *
    385   }
    386   module stack {
    387     header "stack"
    388     export initializer_list
    389     export *
    390   }
    391   module stdexcept {
    392     header "stdexcept"
    393     export *
    394   }
    395   module streambuf {
    396     header "streambuf"
    397     export *
    398   }
    399   module string {
    400     header "string"
    401     export initializer_list
    402     export *
    403   }
    404   module strstream {
    405     header "strstream"
    406     requires !cplusplus11
    407   }
    408   module system_error {
    409     header "system_error"
    410     export *
    411   }
    412   module thread {
    413     header "thread"
    414     export *
    415   }
    416   module tuple {
    417     header "tuple"
    418     export *
    419   }
    420   module type_traits {
    421     header "type_traits"
    422     export *
    423   }
    424   module typeindex {
    425     header "typeindex"
    426     export *
    427   }
    428   module typeinfo {
    429     header "typeinfo"
    430     export *
    431   }
    432   module unordered_map {
    433     header "unordered_map"
    434     export initializer_list
    435     export *
    436   }
    437   module unordered_set {
    438     header "unordered_set"
    439     export initializer_list
    440     export *
    441   }
    442   module utility {
    443     header "utility"
    444     export initializer_list
    445     export *
    446   }
    447   module valarray {
    448     header "valarray"
    449     export initializer_list
    450     export *
    451   }
    452   module vector {
    453     header "vector"
    454     export initializer_list
    455     export *
    456   }
    457 
    458   // FIXME: These should be private.
    459   module __bit_reference { header "__bit_reference" export * }
    460   module __config { header "__config" export * }
    461   module __debug { header "__debug" export * }
    462   module __functional_base { header "__functional_base" export * }
    463   module __hash_table { header "__hash_table" export * }
    464   module __locale { header "__locale" export * }
    465   module __mutex_base { header "__mutex_base" export * }
    466   module __split_buffer { header "__split_buffer" export * }
    467   module __sso_allocator { header "__sso_allocator" export * }
    468   module __std_stream { header "__std_stream" export * }
    469   module __tree { header "__tree" export * }
    470   module __tuple { header "__tuple" export * }
    471   module __undef_min_max { header "__undef_min_max" export * }
    472   module __undef___deallocate { header "__undef___deallocate" export * }
    473 }
    474