module.modulemap 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103
  1. // define the module for __config outside of the top level 'std' module
  2. // since __config may be included from C headers which may create an
  3. // include cycle.
  4. module std_config [system] [extern_c] {
  5. header "__config"
  6. header "__config_site"
  7. export *
  8. }
  9. module std [system] {
  10. export std_config
  11. // FIXME: The standard does not require that each of these submodules
  12. // re-exports its imported modules. We should provide an alternative form of
  13. // export that issues a warning if a name from the submodule is used, and
  14. // use that to provide a 'strict mode' for libc++.
  15. // Deprecated C-compatibility headers. These can all be included from within
  16. // an 'extern "C"' context.
  17. module depr [extern_c] {
  18. // <assert.h> provided by C library.
  19. module ctype_h {
  20. header "ctype.h"
  21. export *
  22. }
  23. module errno_h {
  24. header "errno.h"
  25. export *
  26. }
  27. module fenv_h {
  28. header "fenv.h"
  29. export *
  30. }
  31. // <float.h> provided by compiler or C library.
  32. module inttypes_h {
  33. header "inttypes.h"
  34. export stdint_h
  35. export *
  36. }
  37. // <iso646.h> provided by compiler.
  38. // <limits.h> provided by compiler or C library.
  39. module locale_h {
  40. header "locale.h"
  41. export *
  42. }
  43. module math_h {
  44. header "math.h"
  45. export *
  46. }
  47. module setjmp_h {
  48. header "setjmp.h"
  49. export *
  50. }
  51. // FIXME: <stdalign.h> is missing.
  52. // <signal.h> provided by C library.
  53. // <stdarg.h> provided by compiler.
  54. // <stdbool.h> provided by compiler.
  55. module stddef_h {
  56. // <stddef.h>'s __need_* macros require textual inclusion.
  57. textual header "stddef.h"
  58. }
  59. module stdint_h {
  60. header "stdint.h"
  61. export *
  62. // FIXME: This module only exists on OS X and for some reason the
  63. // wildcard above doesn't export it.
  64. export Darwin.C.stdint
  65. }
  66. module stdio_h {
  67. // <stdio.h>'s __need_* macros require textual inclusion.
  68. textual header "stdio.h"
  69. export *
  70. export Darwin.C.stdio
  71. }
  72. module stdlib_h {
  73. // <stdlib.h>'s __need_* macros require textual inclusion.
  74. textual header "stdlib.h"
  75. export *
  76. }
  77. module string_h {
  78. header "string.h"
  79. export *
  80. }
  81. // FIXME: <uchar.h> is missing.
  82. // <time.h> provided by C library.
  83. module wchar_h {
  84. // <wchar.h>'s __need_* macros require textual inclusion.
  85. textual header "wchar.h"
  86. export *
  87. }
  88. module wctype_h {
  89. header "wctype.h"
  90. export *
  91. }
  92. }
  93. // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
  94. // allow their use in extern "C" contexts.
  95. module complex_h {
  96. header "complex.h"
  97. export ccomplex
  98. export *
  99. }
  100. module tgmath_h {
  101. header "tgmath.h"
  102. export ccomplex
  103. export cmath
  104. export *
  105. }
  106. // C compatibility headers.
  107. module compat {
  108. module cassert {
  109. // <cassert>'s use of NDEBUG requires textual inclusion.
  110. textual header "cassert"
  111. }
  112. module ccomplex {
  113. header "ccomplex"
  114. export complex
  115. export *
  116. }
  117. module cctype {
  118. header "cctype"
  119. export *
  120. }
  121. module cerrno {
  122. header "cerrno"
  123. export *
  124. }
  125. module cfenv {
  126. header "cfenv"
  127. export *
  128. }
  129. module cfloat {
  130. header "cfloat"
  131. export *
  132. }
  133. module cinttypes {
  134. header "cinttypes"
  135. export cstdint
  136. export *
  137. }
  138. module ciso646 {
  139. header "ciso646"
  140. export *
  141. }
  142. module climits {
  143. header "climits"
  144. export *
  145. }
  146. module clocale {
  147. header "clocale"
  148. export *
  149. }
  150. module cmath {
  151. header "cmath"
  152. export *
  153. }
  154. module csetjmp {
  155. header "csetjmp"
  156. export *
  157. }
  158. module csignal {
  159. header "csignal"
  160. export *
  161. }
  162. // FIXME: <cstdalign> is missing.
  163. module cstdarg {
  164. header "cstdarg"
  165. export *
  166. }
  167. module cstdbool {
  168. header "cstdbool"
  169. export *
  170. }
  171. module cstddef {
  172. header "cstddef"
  173. export *
  174. }
  175. module cstdint {
  176. header "cstdint"
  177. export depr.stdint_h
  178. export *
  179. }
  180. module cstdio {
  181. header "cstdio"
  182. export *
  183. }
  184. module cstdlib {
  185. header "cstdlib"
  186. export *
  187. }
  188. module cstring {
  189. header "cstring"
  190. export *
  191. }
  192. module ctgmath {
  193. header "ctgmath"
  194. export ccomplex
  195. export cmath
  196. export *
  197. }
  198. module ctime {
  199. header "ctime"
  200. export *
  201. }
  202. // FIXME: <cuchar> is missing.
  203. module cwchar {
  204. header "cwchar"
  205. export depr.stdio_h
  206. export *
  207. }
  208. module cwctype {
  209. header "cwctype"
  210. export *
  211. }
  212. }
  213. module algorithm {
  214. header "algorithm"
  215. export initializer_list
  216. export *
  217. module __algorithm {
  218. module adjacent_find { private header "__algorithm/adjacent_find.h" }
  219. module all_of { private header "__algorithm/all_of.h" }
  220. module any_of { private header "__algorithm/any_of.h" }
  221. module binary_search { private header "__algorithm/binary_search.h" }
  222. module clamp { private header "__algorithm/clamp.h" }
  223. module comp { private header "__algorithm/comp.h" }
  224. module comp_ref_type { private header "__algorithm/comp_ref_type.h" }
  225. module copy { private header "__algorithm/copy.h" }
  226. module copy_backward { private header "__algorithm/copy_backward.h" }
  227. module copy_if { private header "__algorithm/copy_if.h" }
  228. module copy_n { private header "__algorithm/copy_n.h" }
  229. module count { private header "__algorithm/count.h" }
  230. module count_if { private header "__algorithm/count_if.h" }
  231. module equal { private header "__algorithm/equal.h" }
  232. module equal_range { private header "__algorithm/equal_range.h" }
  233. module fill { private header "__algorithm/fill.h" }
  234. module fill_n { private header "__algorithm/fill_n.h" }
  235. module find { private header "__algorithm/find.h" }
  236. module find_end { private header "__algorithm/find_end.h" }
  237. module find_first_of { private header "__algorithm/find_first_of.h" }
  238. module find_if { private header "__algorithm/find_if.h" }
  239. module find_if_not { private header "__algorithm/find_if_not.h" }
  240. module for_each { private header "__algorithm/for_each.h" }
  241. module for_each_n { private header "__algorithm/for_each_n.h" }
  242. module generate { private header "__algorithm/generate.h" }
  243. module generate_n { private header "__algorithm/generate_n.h" }
  244. module half_positive { private header "__algorithm/half_positive.h" }
  245. module in_fun_result { private header "__algorithm/in_fun_result.h" }
  246. module in_in_out_result { private header "__algorithm/in_in_out_result.h" }
  247. module in_in_result { private header "__algorithm/in_in_result.h" }
  248. module in_out_out_result { private header "__algorithm/in_out_out_result.h" }
  249. module in_out_result { private header "__algorithm/in_out_result.h" }
  250. module includes { private header "__algorithm/includes.h" }
  251. module inplace_merge { private header "__algorithm/inplace_merge.h" }
  252. module is_heap { private header "__algorithm/is_heap.h" }
  253. module is_heap_until { private header "__algorithm/is_heap_until.h" }
  254. module is_partitioned { private header "__algorithm/is_partitioned.h" }
  255. module is_permutation { private header "__algorithm/is_permutation.h" }
  256. module is_sorted { private header "__algorithm/is_sorted.h" }
  257. module is_sorted_until { private header "__algorithm/is_sorted_until.h" }
  258. module iter_swap { private header "__algorithm/iter_swap.h" }
  259. module lexicographical_compare { private header "__algorithm/lexicographical_compare.h" }
  260. module lower_bound { private header "__algorithm/lower_bound.h" }
  261. module make_heap { private header "__algorithm/make_heap.h" }
  262. module max { private header "__algorithm/max.h" }
  263. module max_element { private header "__algorithm/max_element.h" }
  264. module merge { private header "__algorithm/merge.h" }
  265. module min { private header "__algorithm/min.h" }
  266. module min_element { private header "__algorithm/min_element.h" }
  267. module minmax { private header "__algorithm/minmax.h" }
  268. module minmax_element { private header "__algorithm/minmax_element.h" }
  269. module mismatch { private header "__algorithm/mismatch.h" }
  270. module move { private header "__algorithm/move.h" }
  271. module move_backward { private header "__algorithm/move_backward.h" }
  272. module next_permutation { private header "__algorithm/next_permutation.h" }
  273. module none_of { private header "__algorithm/none_of.h" }
  274. module nth_element { private header "__algorithm/nth_element.h" }
  275. module partial_sort { private header "__algorithm/partial_sort.h" }
  276. module partial_sort_copy { private header "__algorithm/partial_sort_copy.h" }
  277. module partition { private header "__algorithm/partition.h" }
  278. module partition_copy { private header "__algorithm/partition_copy.h" }
  279. module partition_point { private header "__algorithm/partition_point.h" }
  280. module pop_heap { private header "__algorithm/pop_heap.h" }
  281. module prev_permutation { private header "__algorithm/prev_permutation.h" }
  282. module push_heap { private header "__algorithm/push_heap.h" }
  283. module ranges_min_element { private header "__algorithm/ranges_min_element.h" }
  284. module ranges_swap_ranges { private header "__algorithm/ranges_swap_ranges.h" }
  285. module remove { private header "__algorithm/remove.h" }
  286. module remove_copy { private header "__algorithm/remove_copy.h" }
  287. module remove_copy_if { private header "__algorithm/remove_copy_if.h" }
  288. module remove_if { private header "__algorithm/remove_if.h" }
  289. module replace { private header "__algorithm/replace.h" }
  290. module replace_copy { private header "__algorithm/replace_copy.h" }
  291. module replace_copy_if { private header "__algorithm/replace_copy_if.h" }
  292. module replace_if { private header "__algorithm/replace_if.h" }
  293. module reverse { private header "__algorithm/reverse.h" }
  294. module reverse_copy { private header "__algorithm/reverse_copy.h" }
  295. module rotate { private header "__algorithm/rotate.h" }
  296. module rotate_copy { private header "__algorithm/rotate_copy.h" }
  297. module sample { private header "__algorithm/sample.h" }
  298. module search { private header "__algorithm/search.h" }
  299. module search_n { private header "__algorithm/search_n.h" }
  300. module set_difference { private header "__algorithm/set_difference.h" }
  301. module set_intersection { private header "__algorithm/set_intersection.h" }
  302. module set_symmetric_difference { private header "__algorithm/set_symmetric_difference.h" }
  303. module set_union { private header "__algorithm/set_union.h" }
  304. module shift_left { private header "__algorithm/shift_left.h" }
  305. module shift_right { private header "__algorithm/shift_right.h" }
  306. module shuffle { private header "__algorithm/shuffle.h" }
  307. module sift_down { private header "__algorithm/sift_down.h" }
  308. module sort { private header "__algorithm/sort.h" }
  309. module sort_heap { private header "__algorithm/sort_heap.h" }
  310. module stable_partition { private header "__algorithm/stable_partition.h" }
  311. module stable_sort { private header "__algorithm/stable_sort.h" }
  312. module swap_ranges { private header "__algorithm/swap_ranges.h" }
  313. module transform { private header "__algorithm/transform.h" }
  314. module unique { private header "__algorithm/unique.h" }
  315. module unique_copy { private header "__algorithm/unique_copy.h" }
  316. module unwrap_iter { private header "__algorithm/unwrap_iter.h" }
  317. module upper_bound { private header "__algorithm/upper_bound.h" }
  318. }
  319. }
  320. module any {
  321. header "any"
  322. export *
  323. }
  324. module array {
  325. header "array"
  326. export initializer_list
  327. export *
  328. }
  329. module atomic {
  330. header "atomic"
  331. export *
  332. }
  333. module barrier {
  334. requires cplusplus14
  335. header "barrier"
  336. export *
  337. }
  338. module bit {
  339. header "bit"
  340. export *
  341. module __bit {
  342. module bit_cast { private header "__bit/bit_cast.h" }
  343. module byteswap { private header "__bit/byteswap.h" }
  344. }
  345. }
  346. module bitset {
  347. header "bitset"
  348. export string
  349. export iosfwd
  350. export *
  351. }
  352. // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
  353. module charconv {
  354. header "charconv"
  355. export *
  356. module __charconv {
  357. module chars_format { private header "__charconv/chars_format.h" }
  358. module from_chars_result { private header "__charconv/from_chars_result.h" }
  359. module to_chars_result { private header "__charconv/to_chars_result.h" }
  360. }
  361. }
  362. module chrono {
  363. header "chrono"
  364. export *
  365. module __chrono {
  366. module calendar { private header "__chrono/calendar.h" }
  367. module convert_to_timespec { private header "__chrono/convert_to_timespec.h" }
  368. module duration { private header "__chrono/duration.h" }
  369. module file_clock { private header "__chrono/file_clock.h" }
  370. module high_resolution_clock { private header "__chrono/high_resolution_clock.h" }
  371. module steady_clock { private header "__chrono/steady_clock.h" }
  372. module system_clock { private header "__chrono/system_clock.h" }
  373. module time_point { private header "__chrono/time_point.h" }
  374. }
  375. }
  376. module codecvt {
  377. header "codecvt"
  378. export *
  379. }
  380. module compare {
  381. header "compare"
  382. export *
  383. module __compare {
  384. module common_comparison_category { private header "__compare/common_comparison_category.h" }
  385. module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
  386. module compare_strong_order_fallback { private header "__compare/compare_strong_order_fallback.h" }
  387. module compare_three_way { private header "__compare/compare_three_way.h" }
  388. module compare_three_way_result { private header "__compare/compare_three_way_result.h" }
  389. module compare_weak_order_fallback { private header "__compare/compare_weak_order_fallback.h" }
  390. module is_eq { private header "__compare/is_eq.h" }
  391. module ordering { private header "__compare/ordering.h" }
  392. module partial_order { private header "__compare/partial_order.h" }
  393. module strong_order { private header "__compare/strong_order.h" }
  394. module synth_three_way { private header "__compare/synth_three_way.h" }
  395. module three_way_comparable { private header "__compare/three_way_comparable.h" }
  396. module weak_order { private header "__compare/weak_order.h" }
  397. }
  398. }
  399. module complex {
  400. header "complex"
  401. export *
  402. }
  403. module concepts {
  404. header "concepts"
  405. export *
  406. module __concepts {
  407. module arithmetic { private header "__concepts/arithmetic.h" }
  408. module assignable { private header "__concepts/assignable.h" }
  409. module boolean_testable { private header "__concepts/boolean_testable.h" }
  410. module class_or_enum { private header "__concepts/class_or_enum.h" }
  411. module common_reference_with { private header "__concepts/common_reference_with.h" }
  412. module common_with { private header "__concepts/common_with.h" }
  413. module constructible { private header "__concepts/constructible.h" }
  414. module convertible_to { private header "__concepts/convertible_to.h" }
  415. module copyable { private header "__concepts/copyable.h" }
  416. module derived_from { private header "__concepts/derived_from.h" }
  417. module destructible { private header "__concepts/destructible.h" }
  418. module different_from { private header "__concepts/different_from.h" }
  419. module equality_comparable { private header "__concepts/equality_comparable.h" }
  420. module invocable { private header "__concepts/invocable.h" }
  421. module movable { private header "__concepts/movable.h" }
  422. module predicate { private header "__concepts/predicate.h" }
  423. module regular { private header "__concepts/regular.h" }
  424. module relation { private header "__concepts/relation.h" }
  425. module same_as { private header "__concepts/same_as.h" }
  426. module semiregular { private header "__concepts/semiregular.h" }
  427. module swappable { private header "__concepts/swappable.h" }
  428. module totally_ordered { private header "__concepts/totally_ordered.h" }
  429. }
  430. }
  431. module condition_variable {
  432. header "condition_variable"
  433. export *
  434. }
  435. module coroutine {
  436. requires coroutines
  437. header "coroutine"
  438. export compare
  439. export *
  440. module __coroutine {
  441. module coroutine_handle { private header "__coroutine/coroutine_handle.h" }
  442. module coroutine_traits { private header "__coroutine/coroutine_traits.h" }
  443. module noop_coroutine_handle { private header "__coroutine/noop_coroutine_handle.h" }
  444. module trivial_awaitables { private header "__coroutine/trivial_awaitables.h" }
  445. }
  446. }
  447. module deque {
  448. header "deque"
  449. export initializer_list
  450. export *
  451. }
  452. module exception {
  453. header "exception"
  454. export *
  455. }
  456. module execution {
  457. header "execution"
  458. export *
  459. }
  460. module filesystem {
  461. header "filesystem"
  462. export *
  463. module __filesystem {
  464. module copy_options { private header "__filesystem/copy_options.h" }
  465. module directory_entry { private header "__filesystem/directory_entry.h" }
  466. module directory_iterator { private header "__filesystem/directory_iterator.h" }
  467. module directory_options { private header "__filesystem/directory_options.h" }
  468. module file_status { private header "__filesystem/file_status.h" }
  469. module file_time_type { private header "__filesystem/file_time_type.h" }
  470. module file_type { private header "__filesystem/file_type.h" }
  471. module filesystem_error { private header "__filesystem/filesystem_error.h" }
  472. module operations { private header "__filesystem/operations.h" }
  473. module path { private header "__filesystem/path.h" }
  474. module path_iterator { private header "__filesystem/path_iterator.h" }
  475. module perm_options { private header "__filesystem/perm_options.h" }
  476. module perms { private header "__filesystem/perms.h" }
  477. module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
  478. module space_info { private header "__filesystem/space_info.h" }
  479. module u8path { private header "__filesystem/u8path.h" }
  480. }
  481. }
  482. module format {
  483. header "format"
  484. export *
  485. module __format {
  486. module format_arg { private header "__format/format_arg.h" }
  487. module format_args { private header "__format/format_args.h" }
  488. module format_context {
  489. private header "__format/format_context.h"
  490. export optional
  491. export locale
  492. }
  493. module format_error { private header "__format/format_error.h" }
  494. module format_fwd { private header "__format/format_fwd.h" }
  495. module format_parse_context { private header "__format/format_parse_context.h" }
  496. module format_string { private header "__format/format_string.h" }
  497. module format_to_n_result { private header "__format/format_to_n_result.h" }
  498. module formatter { private header "__format/formatter.h" }
  499. module formatter_bool { private header "__format/formatter_bool.h" }
  500. module formatter_char { private header "__format/formatter_char.h" }
  501. module formatter_floating_point { private header "__format/formatter_floating_point.h" }
  502. module formatter_integer { private header "__format/formatter_integer.h" }
  503. module formatter_integral { private header "__format/formatter_integral.h" }
  504. module formatter_pointer { private header "__format/formatter_pointer.h" }
  505. module formatter_string { private header "__format/formatter_string.h" }
  506. module parser_std_format_spec { private header "__format/parser_std_format_spec.h" }
  507. }
  508. }
  509. module forward_list {
  510. header "forward_list"
  511. export initializer_list
  512. export *
  513. }
  514. module fstream {
  515. header "fstream"
  516. export *
  517. }
  518. module functional {
  519. header "functional"
  520. export *
  521. module __functional {
  522. module binary_function { private header "__functional/binary_function.h" }
  523. module binary_negate { private header "__functional/binary_negate.h" }
  524. module bind { private header "__functional/bind.h" }
  525. module bind_back { private header "__functional/bind_back.h" }
  526. module bind_front { private header "__functional/bind_front.h" }
  527. module binder1st { private header "__functional/binder1st.h" }
  528. module binder2nd { private header "__functional/binder2nd.h" }
  529. module compose { private header "__functional/compose.h" }
  530. module default_searcher { private header "__functional/default_searcher.h" }
  531. module function { private header "__functional/function.h" }
  532. module hash { private header "__functional/hash.h" }
  533. module identity { private header "__functional/identity.h" }
  534. module invoke { private header "__functional/invoke.h" }
  535. module is_transparent { private header "__functional/is_transparent.h" }
  536. module mem_fn { private header "__functional/mem_fn.h" }
  537. module mem_fun_ref { private header "__functional/mem_fun_ref.h" }
  538. module not_fn { private header "__functional/not_fn.h" }
  539. module operations { private header "__functional/operations.h" }
  540. module perfect_forward { private header "__functional/perfect_forward.h" }
  541. module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
  542. module pointer_to_unary_function { private header "__functional/pointer_to_unary_function.h" }
  543. module ranges_operations { private header "__functional/ranges_operations.h" }
  544. module reference_wrapper { private header "__functional/reference_wrapper.h" }
  545. module unary_function { private header "__functional/unary_function.h" }
  546. module unary_negate { private header "__functional/unary_negate.h" }
  547. module unwrap_ref { private header "__functional/unwrap_ref.h" }
  548. module weak_result_type { private header "__functional/weak_result_type.h" }
  549. }
  550. }
  551. module future {
  552. header "future"
  553. export *
  554. }
  555. module initializer_list {
  556. header "initializer_list"
  557. export *
  558. }
  559. module iomanip {
  560. header "iomanip"
  561. export *
  562. }
  563. module ios {
  564. header "ios"
  565. export iosfwd
  566. export *
  567. module __ios {
  568. module fpos { private header "__ios/fpos.h" }
  569. }
  570. }
  571. module iosfwd {
  572. header "iosfwd"
  573. export *
  574. }
  575. module iostream {
  576. header "iostream"
  577. export ios
  578. export streambuf
  579. export istream
  580. export ostream
  581. export *
  582. }
  583. module istream {
  584. header "istream"
  585. // FIXME: should re-export ios, streambuf?
  586. export *
  587. }
  588. module iterator {
  589. header "iterator"
  590. export *
  591. module __iterator {
  592. module access { private header "__iterator/access.h" }
  593. module advance { private header "__iterator/advance.h" }
  594. module back_insert_iterator { private header "__iterator/back_insert_iterator.h" }
  595. module common_iterator { private header "__iterator/common_iterator.h" }
  596. module concepts { private header "__iterator/concepts.h" }
  597. module counted_iterator { private header "__iterator/counted_iterator.h" }
  598. module data { private header "__iterator/data.h" }
  599. module default_sentinel { private header "__iterator/default_sentinel.h" }
  600. module distance { private header "__iterator/distance.h" }
  601. module empty { private header "__iterator/empty.h" }
  602. module erase_if_container { private header "__iterator/erase_if_container.h" }
  603. module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
  604. module incrementable_traits { private header "__iterator/incrementable_traits.h" }
  605. module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
  606. module insert_iterator { private header "__iterator/insert_iterator.h" }
  607. module istream_iterator { private header "__iterator/istream_iterator.h" }
  608. module istreambuf_iterator { private header "__iterator/istreambuf_iterator.h" }
  609. module iter_move { private header "__iterator/iter_move.h" }
  610. module iter_swap { private header "__iterator/iter_swap.h" }
  611. module iterator { private header "__iterator/iterator.h" }
  612. module iterator_traits { private header "__iterator/iterator_traits.h" }
  613. module mergeable { private header "__iterator/mergeable.h" }
  614. module move_iterator { private header "__iterator/move_iterator.h" }
  615. module next { private header "__iterator/next.h" }
  616. module ostream_iterator { private header "__iterator/ostream_iterator.h" }
  617. module ostreambuf_iterator { private header "__iterator/ostreambuf_iterator.h" }
  618. module permutable { private header "__iterator/permutable.h" }
  619. module prev { private header "__iterator/prev.h" }
  620. module projected { private header "__iterator/projected.h" }
  621. module readable_traits { private header "__iterator/readable_traits.h" }
  622. module reverse_access { private header "__iterator/reverse_access.h" }
  623. module reverse_iterator { private header "__iterator/reverse_iterator.h" }
  624. module size { private header "__iterator/size.h" }
  625. module sortable { private header "__iterator/sortable.h" }
  626. module unreachable_sentinel { private header "__iterator/unreachable_sentinel.h" }
  627. module wrap_iter { private header "__iterator/wrap_iter.h" }
  628. }
  629. }
  630. module latch {
  631. requires cplusplus14
  632. header "latch"
  633. export *
  634. }
  635. module limits {
  636. header "limits"
  637. export *
  638. }
  639. module list {
  640. header "list"
  641. export initializer_list
  642. export *
  643. }
  644. module locale {
  645. header "locale"
  646. export *
  647. }
  648. module map {
  649. header "map"
  650. export initializer_list
  651. export *
  652. }
  653. module memory {
  654. header "memory"
  655. export *
  656. module __memory {
  657. module addressof { private header "__memory/addressof.h" }
  658. module allocation_guard { private header "__memory/allocation_guard.h" }
  659. module allocator { private header "__memory/allocator.h" }
  660. module allocator_arg_t { private header "__memory/allocator_arg_t.h" }
  661. module allocator_traits { private header "__memory/allocator_traits.h" }
  662. module auto_ptr { private header "__memory/auto_ptr.h" }
  663. module compressed_pair { private header "__memory/compressed_pair.h" }
  664. module concepts { private header "__memory/concepts.h" }
  665. module construct_at { private header "__memory/construct_at.h" }
  666. module pointer_traits { private header "__memory/pointer_traits.h" }
  667. module ranges_construct_at { private header "__memory/ranges_construct_at.h" }
  668. module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" }
  669. module raw_storage_iterator { private header "__memory/raw_storage_iterator.h" }
  670. module shared_ptr { private header "__memory/shared_ptr.h" }
  671. module temporary_buffer { private header "__memory/temporary_buffer.h" }
  672. module uninitialized_algorithms { private header "__memory/uninitialized_algorithms.h" }
  673. module unique_ptr { private header "__memory/unique_ptr.h" }
  674. module uses_allocator { private header "__memory/uses_allocator.h" }
  675. module voidify { private header "__memory/voidify.h" }
  676. }
  677. }
  678. module mutex {
  679. header "mutex"
  680. export *
  681. }
  682. module new {
  683. header "new"
  684. export *
  685. }
  686. module numbers {
  687. header "numbers"
  688. export *
  689. }
  690. module numeric {
  691. header "numeric"
  692. export *
  693. module __numeric {
  694. module accumulate { private header "__numeric/accumulate.h" }
  695. module adjacent_difference { private header "__numeric/adjacent_difference.h" }
  696. module exclusive_scan { private header "__numeric/exclusive_scan.h" }
  697. module gcd_lcm { private header "__numeric/gcd_lcm.h" }
  698. module inclusive_scan { private header "__numeric/inclusive_scan.h" }
  699. module inner_product { private header "__numeric/inner_product.h" }
  700. module iota { private header "__numeric/iota.h" }
  701. module midpoint { private header "__numeric/midpoint.h" }
  702. module partial_sum { private header "__numeric/partial_sum.h" }
  703. module reduce { private header "__numeric/reduce.h" }
  704. module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
  705. module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
  706. module transform_reduce { private header "__numeric/transform_reduce.h" }
  707. }
  708. }
  709. module optional {
  710. header "optional"
  711. export *
  712. }
  713. module ostream {
  714. header "ostream"
  715. // FIXME: should re-export ios, streambuf?
  716. export *
  717. }
  718. module queue {
  719. header "queue"
  720. export initializer_list
  721. export *
  722. }
  723. module random {
  724. header "random"
  725. export initializer_list
  726. export *
  727. module __random {
  728. module bernoulli_distribution { private header "__random/bernoulli_distribution.h" }
  729. module binomial_distribution { private header "__random/binomial_distribution.h" }
  730. module cauchy_distribution { private header "__random/cauchy_distribution.h" }
  731. module chi_squared_distribution { private header "__random/chi_squared_distribution.h" }
  732. module clamp_to_integral { private header "__random/clamp_to_integral.h" }
  733. module default_random_engine { private header "__random/default_random_engine.h" }
  734. module discard_block_engine { private header "__random/discard_block_engine.h" }
  735. module discrete_distribution { private header "__random/discrete_distribution.h" }
  736. module exponential_distribution { private header "__random/exponential_distribution.h" }
  737. module extreme_value_distribution { private header "__random/extreme_value_distribution.h" }
  738. module fisher_f_distribution { private header "__random/fisher_f_distribution.h" }
  739. module gamma_distribution { private header "__random/gamma_distribution.h" }
  740. module generate_canonical { private header "__random/generate_canonical.h" }
  741. module geometric_distribution { private header "__random/geometric_distribution.h" }
  742. module independent_bits_engine { private header "__random/independent_bits_engine.h" }
  743. module is_seed_sequence { private header "__random/is_seed_sequence.h" }
  744. module knuth_b { private header "__random/knuth_b.h" }
  745. module linear_congruential_engine { private header "__random/linear_congruential_engine.h" }
  746. module log2 { private header "__random/log2.h" }
  747. module lognormal_distribution { private header "__random/lognormal_distribution.h" }
  748. module mersenne_twister_engine { private header "__random/mersenne_twister_engine.h" }
  749. module negative_binomial_distribution { private header "__random/negative_binomial_distribution.h" }
  750. module normal_distribution { private header "__random/normal_distribution.h" }
  751. module piecewise_constant_distribution { private header "__random/piecewise_constant_distribution.h" }
  752. module piecewise_linear_distribution { private header "__random/piecewise_linear_distribution.h" }
  753. module poisson_distribution { private header "__random/poisson_distribution.h" }
  754. module random_device { private header "__random/random_device.h" }
  755. module ranlux { private header "__random/ranlux.h" }
  756. module seed_seq { private header "__random/seed_seq.h" }
  757. module shuffle_order_engine { private header "__random/shuffle_order_engine.h" }
  758. module student_t_distribution { private header "__random/student_t_distribution.h" }
  759. module subtract_with_carry_engine { private header "__random/subtract_with_carry_engine.h" }
  760. module uniform_int_distribution { private header "__random/uniform_int_distribution.h" }
  761. module uniform_random_bit_generator { private header "__random/uniform_random_bit_generator.h" }
  762. module uniform_real_distribution { private header "__random/uniform_real_distribution.h" }
  763. module weibull_distribution { private header "__random/weibull_distribution.h" }
  764. }
  765. }
  766. module ranges {
  767. header "ranges"
  768. export compare
  769. export initializer_list
  770. export iterator
  771. export *
  772. module __ranges {
  773. module access { private header "__ranges/access.h" }
  774. module all {
  775. private header "__ranges/all.h"
  776. export functional.__functional.compose
  777. export functional.__functional.perfect_forward
  778. }
  779. module common_view { private header "__ranges/common_view.h" }
  780. module concepts { private header "__ranges/concepts.h" }
  781. module copyable_box { private header "__ranges/copyable_box.h" }
  782. module counted {
  783. private header "__ranges/counted.h"
  784. export span
  785. }
  786. module dangling { private header "__ranges/dangling.h" }
  787. module data { private header "__ranges/data.h" }
  788. module drop_view { private header "__ranges/drop_view.h" }
  789. module empty { private header "__ranges/empty.h" }
  790. module empty_view { private header "__ranges/empty_view.h" }
  791. module enable_borrowed_range { private header "__ranges/enable_borrowed_range.h" }
  792. module enable_view { private header "__ranges/enable_view.h" }
  793. module iota_view { private header "__ranges/iota_view.h" }
  794. module join_view { private header "__ranges/join_view.h" }
  795. module non_propagating_cache { private header "__ranges/non_propagating_cache.h" }
  796. module owning_view { private header "__ranges/owning_view.h" }
  797. module range_adaptor { private header "__ranges/range_adaptor.h" }
  798. module rbegin { private header "__ranges/rbegin.h" }
  799. module ref_view { private header "__ranges/ref_view.h" }
  800. module rend { private header "__ranges/rend.h" }
  801. module reverse_view { private header "__ranges/reverse_view.h" }
  802. module single_view { private header "__ranges/single_view.h" }
  803. module size { private header "__ranges/size.h" }
  804. module subrange { private header "__ranges/subrange.h" }
  805. module take_view { private header "__ranges/take_view.h" }
  806. module transform_view {
  807. private header "__ranges/transform_view.h"
  808. export functional.__functional.bind_back
  809. export functional.__functional.perfect_forward
  810. }
  811. module view_interface { private header "__ranges/view_interface.h" }
  812. module views { private header "__ranges/views.h" }
  813. }
  814. }
  815. module ratio {
  816. header "ratio"
  817. export *
  818. }
  819. module regex {
  820. header "regex"
  821. export initializer_list
  822. export *
  823. }
  824. module scoped_allocator {
  825. header "scoped_allocator"
  826. export *
  827. }
  828. module semaphore {
  829. requires cplusplus14
  830. header "semaphore"
  831. export *
  832. }
  833. module set {
  834. header "set"
  835. export initializer_list
  836. export *
  837. }
  838. module shared_mutex {
  839. header "shared_mutex"
  840. export version
  841. }
  842. module span {
  843. header "span"
  844. export ranges.__ranges.enable_borrowed_range
  845. export version
  846. }
  847. module sstream {
  848. header "sstream"
  849. // FIXME: should re-export istream, ostream, ios, streambuf, string?
  850. export *
  851. }
  852. module stack {
  853. header "stack"
  854. export initializer_list
  855. export *
  856. }
  857. module stdexcept {
  858. header "stdexcept"
  859. export *
  860. }
  861. module streambuf {
  862. header "streambuf"
  863. export *
  864. }
  865. module string {
  866. header "string"
  867. export initializer_list
  868. export string_view
  869. export __string
  870. export *
  871. }
  872. module string_view {
  873. header "string_view"
  874. export initializer_list
  875. export __string
  876. export *
  877. }
  878. module strstream {
  879. header "strstream"
  880. export *
  881. }
  882. module system_error {
  883. header "system_error"
  884. export *
  885. }
  886. module thread {
  887. header "thread"
  888. export *
  889. module __thread {
  890. module poll_with_backoff { private header "__thread/poll_with_backoff.h" }
  891. module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
  892. }
  893. }
  894. module tuple {
  895. header "tuple"
  896. export *
  897. }
  898. module type_traits {
  899. header "type_traits"
  900. export functional.__functional.unwrap_ref
  901. export *
  902. }
  903. module typeindex {
  904. header "typeindex"
  905. export *
  906. }
  907. module typeinfo {
  908. header "typeinfo"
  909. export *
  910. }
  911. module unordered_map {
  912. header "unordered_map"
  913. export initializer_list
  914. export *
  915. }
  916. module unordered_set {
  917. header "unordered_set"
  918. export initializer_list
  919. export *
  920. }
  921. module utility {
  922. header "utility"
  923. export initializer_list
  924. export *
  925. module __utility {
  926. module as_const { private header "__utility/as_const.h" }
  927. module auto_cast { private header "__utility/auto_cast.h" }
  928. module cmp { private header "__utility/cmp.h" }
  929. module declval { private header "__utility/declval.h" }
  930. module exchange { private header "__utility/exchange.h" }
  931. module forward { private header "__utility/forward.h" }
  932. module in_place { private header "__utility/in_place.h" }
  933. module integer_sequence { private header "__utility/integer_sequence.h" }
  934. module move { private header "__utility/move.h" }
  935. module pair { private header "__utility/pair.h" }
  936. module piecewise_construct { private header "__utility/piecewise_construct.h" }
  937. module priority_tag { private header "__utility/priority_tag.h" }
  938. module rel_ops { private header "__utility/rel_ops.h" }
  939. module swap { private header "__utility/swap.h" }
  940. module to_underlying { private header "__utility/to_underlying.h" }
  941. module transaction { private header "__utility/transaction.h" }
  942. module unreachable { private header "__utility/unreachable.h" }
  943. }
  944. }
  945. module valarray {
  946. header "valarray"
  947. export initializer_list
  948. export *
  949. }
  950. module variant {
  951. header "variant"
  952. export *
  953. module __variant {
  954. module monostate { private header "__variant/monostate.h" }
  955. }
  956. }
  957. module vector {
  958. header "vector"
  959. export initializer_list
  960. export *
  961. }
  962. module version {
  963. header "version"
  964. export *
  965. }
  966. // __config not modularised due to a bug in Clang
  967. // FIXME: These should be private.
  968. module __assert { header "__assert" export * }
  969. module __availability { private header "__availability" export * }
  970. module __bit_reference { private header "__bit_reference" export * }
  971. module __bits { private header "__bits" export * }
  972. module __debug { header "__debug" export * }
  973. module __errc { private header "__errc" export * }
  974. module __hash_table { header "__hash_table" export * }
  975. module __locale { private header "__locale" export * }
  976. module __mbstate_t { private header "__mbstate_t.h" export * }
  977. module __mutex_base { private header "__mutex_base" export * }
  978. module __node_handle { private header "__node_handle" export * }
  979. module __split_buffer { private header "__split_buffer" export * }
  980. module __std_stream { private header "__std_stream" export * }
  981. module __string { private header "__string" export * }
  982. module __threading_support { header "__threading_support" export * }
  983. module __tree { header "__tree" export * }
  984. module __tuple { private header "__tuple" export * }
  985. module __undef_macros { header "__undef_macros" export * }
  986. module experimental {
  987. requires cplusplus11
  988. module algorithm {
  989. header "experimental/algorithm"
  990. export *
  991. }
  992. module coroutine {
  993. requires coroutines
  994. header "experimental/coroutine"
  995. export *
  996. }
  997. module deque {
  998. header "experimental/deque"
  999. export *
  1000. }
  1001. module forward_list {
  1002. header "experimental/forward_list"
  1003. export *
  1004. }
  1005. module functional {
  1006. header "experimental/functional"
  1007. export *
  1008. }
  1009. module iterator {
  1010. header "experimental/iterator"
  1011. export *
  1012. }
  1013. module list {
  1014. header "experimental/list"
  1015. export *
  1016. }
  1017. module map {
  1018. header "experimental/map"
  1019. export *
  1020. }
  1021. module memory_resource {
  1022. header "experimental/memory_resource"
  1023. export *
  1024. }
  1025. module propagate_const {
  1026. header "experimental/propagate_const"
  1027. export *
  1028. }
  1029. module regex {
  1030. header "experimental/regex"
  1031. export *
  1032. }
  1033. module simd {
  1034. header "experimental/simd"
  1035. export *
  1036. }
  1037. module set {
  1038. header "experimental/set"
  1039. export *
  1040. }
  1041. module span {
  1042. header "span"
  1043. export *
  1044. }
  1045. module string {
  1046. header "experimental/string"
  1047. export *
  1048. }
  1049. module type_traits {
  1050. header "experimental/type_traits"
  1051. export *
  1052. }
  1053. module unordered_map {
  1054. header "experimental/unordered_map"
  1055. export *
  1056. }
  1057. module unordered_set {
  1058. header "experimental/unordered_set"
  1059. export *
  1060. }
  1061. module utility {
  1062. header "experimental/utility"
  1063. export *
  1064. }
  1065. module vector {
  1066. header "experimental/vector"
  1067. export *
  1068. }
  1069. // FIXME these should be private
  1070. module __memory {
  1071. header "experimental/__memory"
  1072. export *
  1073. }
  1074. } // end experimental
  1075. }