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