@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.224

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. package/c/stdlib.zig +32 -22
  2. package/compiler/aro/aro/Compilation.zig +0 -3
  3. package/compiler/translate-c/ast.zig +5 -2
  4. package/compiler_rt/arm.zig +3 -3
  5. package/compiler_rt/trunctfhf2.zig +3 -0
  6. package/compiler_rt.zig +1 -22
  7. package/docs/wasm/markdown/Parser.zig +5 -9
  8. package/include/__clang_spirv_builtins.h +12 -12
  9. package/include/__float_float.h +176 -0
  10. package/include/__float_header_macro.h +12 -0
  11. package/include/__float_infinity_nan.h +20 -0
  12. package/include/amo.h +131 -0
  13. package/include/amxavx512intrin.h +215 -1
  14. package/include/amxintrin.h +0 -2
  15. package/include/arm_acle.h +37 -27
  16. package/include/arm_neon.h +218 -82
  17. package/include/arm_sme.h +8 -8
  18. package/include/arm_sve.h +4162 -3782
  19. package/include/avx10_2_512bf16intrin.h +19 -12
  20. package/include/avx10_2_512convertintrin.h +1 -1
  21. package/include/avx10_2_512niintrin.h +31 -31
  22. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  23. package/include/avx10_2bf16intrin.h +54 -45
  24. package/include/avx10_2convertintrin.h +2 -2
  25. package/include/avx10_2copyintrin.h +1 -1
  26. package/include/avx10_2niintrin.h +14 -14
  27. package/include/avx10_2satcvtdsintrin.h +2 -2
  28. package/include/avx2intrin.h +275 -377
  29. package/include/avx512bf16intrin.h +25 -16
  30. package/include/avx512bitalgintrin.h +19 -30
  31. package/include/avx512bwintrin.h +386 -505
  32. package/include/avx512cdintrin.h +42 -55
  33. package/include/avx512dqintrin.h +132 -161
  34. package/include/avx512fintrin.h +1015 -1424
  35. package/include/avx512fp16intrin.h +112 -110
  36. package/include/avx512ifmaintrin.h +32 -34
  37. package/include/avx512ifmavlintrin.h +73 -46
  38. package/include/avx512vbmi2intrin.h +43 -32
  39. package/include/avx512vbmiintrin.h +19 -27
  40. package/include/avx512vbmivlintrin.h +35 -49
  41. package/include/avx512vlbf16intrin.h +32 -22
  42. package/include/avx512vlbitalgintrin.h +37 -53
  43. package/include/avx512vlbwintrin.h +470 -573
  44. package/include/avx512vlcdintrin.h +74 -102
  45. package/include/avx512vldqintrin.h +110 -127
  46. package/include/avx512vlfp16intrin.h +130 -111
  47. package/include/avx512vlintrin.h +945 -1299
  48. package/include/avx512vlvbmi2intrin.h +78 -63
  49. package/include/avx512vlvnniintrin.h +21 -18
  50. package/include/avx512vlvp2intersectintrin.h +2 -2
  51. package/include/avx512vnniintrin.h +10 -10
  52. package/include/avx512vp2intersectintrin.h +1 -2
  53. package/include/avx512vpopcntdqintrin.h +8 -10
  54. package/include/avx512vpopcntdqvlintrin.h +17 -15
  55. package/include/avxifmaintrin.h +16 -0
  56. package/include/avxintrin.h +165 -241
  57. package/include/avxvnniint16intrin.h +118 -99
  58. package/include/avxvnniint8intrin.h +56 -32
  59. package/include/avxvnniintrin.h +16 -8
  60. package/include/cpuid.h +101 -4
  61. package/include/emmintrin.h +168 -168
  62. package/include/f16cintrin.h +23 -9
  63. package/include/float.h +16 -155
  64. package/include/fma4intrin.h +98 -96
  65. package/include/fmaintrin.h +96 -66
  66. package/include/gfniintrin.h +21 -16
  67. package/include/hexagon_types.h +23 -20
  68. package/include/hvx_hexagon_protos.h +649 -860
  69. package/include/immintrin.h +0 -12
  70. package/include/intrin.h +4 -0
  71. package/include/lasxintrin.h +113 -0
  72. package/include/llvm_libc_wrappers/assert.h +3 -5
  73. package/include/llvm_libc_wrappers/ctype.h +3 -115
  74. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  75. package/include/llvm_libc_wrappers/stdio.h +10 -38
  76. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  77. package/include/llvm_libc_wrappers/string.h +2 -70
  78. package/include/llvm_libc_wrappers/time.h +4 -10
  79. package/include/mmintrin.h +188 -257
  80. package/include/module.modulemap +23 -4
  81. package/include/movrs_avx10_2_512intrin.h +2 -2
  82. package/include/movrs_avx10_2intrin.h +4 -4
  83. package/include/pmmintrin.h +12 -24
  84. package/include/ptrauth.h +16 -2
  85. package/include/riscv_mips.h +34 -0
  86. package/include/riscv_nds.h +89 -0
  87. package/include/sifive_vector.h +58 -2
  88. package/include/sm4evexintrin.h +2 -2
  89. package/include/smmintrin.h +77 -59
  90. package/include/spirvintrin.h +194 -0
  91. package/include/stddefer.h +19 -0
  92. package/include/tmmintrin.h +116 -147
  93. package/include/vaesintrin.h +1 -2
  94. package/include/xmmintrin.h +44 -70
  95. package/include/xopintrin.h +20 -10
  96. package/libcxx/include/__algorithm/all_of.h +11 -5
  97. package/libcxx/include/__algorithm/comp.h +4 -0
  98. package/libcxx/include/__algorithm/copy.h +28 -147
  99. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  100. package/libcxx/include/__algorithm/copy_n.h +50 -16
  101. package/libcxx/include/__algorithm/count.h +2 -2
  102. package/libcxx/include/__algorithm/equal.h +43 -55
  103. package/libcxx/include/__algorithm/fill.h +26 -8
  104. package/libcxx/include/__algorithm/fill_n.h +32 -46
  105. package/libcxx/include/__algorithm/find.h +96 -39
  106. package/libcxx/include/__algorithm/find_end.h +105 -0
  107. package/libcxx/include/__algorithm/for_each.h +18 -24
  108. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  109. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  110. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  111. package/libcxx/include/__algorithm/generate.h +4 -2
  112. package/libcxx/include/__algorithm/generate_n.h +19 -6
  113. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  114. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  115. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  116. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  117. package/libcxx/include/__algorithm/make_heap.h +16 -4
  118. package/libcxx/include/__algorithm/mismatch.h +2 -2
  119. package/libcxx/include/__algorithm/move.h +8 -19
  120. package/libcxx/include/__algorithm/move_backward.h +9 -24
  121. package/libcxx/include/__algorithm/none_of.h +4 -4
  122. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  123. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  124. package/libcxx/include/__algorithm/pstl.h +9 -9
  125. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  126. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  127. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  128. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  129. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  130. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  131. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  132. package/libcxx/include/__algorithm/rotate.h +27 -44
  133. package/libcxx/include/__algorithm/search_n.h +49 -37
  134. package/libcxx/include/__algorithm/sift_down.h +19 -18
  135. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  136. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  137. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  138. package/libcxx/include/__assertion_handler +31 -4
  139. package/libcxx/include/__atomic/atomic.h +36 -60
  140. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  141. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  142. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  143. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  144. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  145. package/libcxx/include/__atomic/contention_t.h +27 -3
  146. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  147. package/libcxx/include/__bit/countl.h +1 -2
  148. package/libcxx/include/__bit/countr.h +1 -2
  149. package/libcxx/include/__bit/has_single_bit.h +1 -1
  150. package/libcxx/include/__bit/popcount.h +0 -1
  151. package/libcxx/include/__bit/rotate.h +15 -26
  152. package/libcxx/include/__bit_reference +207 -18
  153. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  154. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  155. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  156. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  157. package/libcxx/include/__charconv/traits.h +3 -24
  158. package/libcxx/include/__chrono/day.h +11 -0
  159. package/libcxx/include/__chrono/duration.h +58 -33
  160. package/libcxx/include/__chrono/file_clock.h +4 -2
  161. package/libcxx/include/__chrono/is_clock.h +72 -0
  162. package/libcxx/include/__chrono/leap_second.h +13 -0
  163. package/libcxx/include/__chrono/month.h +13 -0
  164. package/libcxx/include/__chrono/month_weekday.h +22 -0
  165. package/libcxx/include/__chrono/monthday.h +20 -0
  166. package/libcxx/include/__chrono/steady_clock.h +1 -1
  167. package/libcxx/include/__chrono/system_clock.h +3 -3
  168. package/libcxx/include/__chrono/time_point.h +37 -13
  169. package/libcxx/include/__chrono/weekday.h +25 -0
  170. package/libcxx/include/__chrono/year.h +11 -0
  171. package/libcxx/include/__chrono/year_month.h +13 -0
  172. package/libcxx/include/__chrono/year_month_day.h +23 -0
  173. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  174. package/libcxx/include/__chrono/zoned_time.h +16 -0
  175. package/libcxx/include/__compare/is_eq.h +6 -6
  176. package/libcxx/include/__compare/strong_order.h +12 -30
  177. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  178. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  179. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  180. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  181. package/libcxx/include/__config +63 -280
  182. package/libcxx/include/__configuration/abi.h +14 -24
  183. package/libcxx/include/__configuration/availability.h +65 -118
  184. package/libcxx/include/__configuration/compiler.h +6 -6
  185. package/libcxx/include/__configuration/experimental.h +38 -0
  186. package/libcxx/include/__configuration/hardening.h +215 -0
  187. package/libcxx/include/__configuration/language.h +3 -0
  188. package/libcxx/include/__configuration/platform.h +9 -16
  189. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  190. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  191. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  192. package/libcxx/include/__exception/exception.h +6 -4
  193. package/libcxx/include/__exception/exception_ptr.h +27 -5
  194. package/libcxx/include/__exception/nested_exception.h +2 -2
  195. package/libcxx/include/__exception/operations.h +5 -5
  196. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  197. package/libcxx/include/__expected/expected.h +62 -64
  198. package/libcxx/include/__expected/unexpected.h +4 -4
  199. package/libcxx/include/__filesystem/copy_options.h +4 -4
  200. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  201. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  202. package/libcxx/include/__filesystem/directory_options.h +7 -4
  203. package/libcxx/include/__filesystem/file_status.h +3 -3
  204. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  205. package/libcxx/include/__filesystem/operations.h +97 -66
  206. package/libcxx/include/__filesystem/path.h +68 -64
  207. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  208. package/libcxx/include/__filesystem/perm_options.h +4 -4
  209. package/libcxx/include/__filesystem/perms.h +4 -4
  210. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  211. package/libcxx/include/__filesystem/space_info.h +1 -1
  212. package/libcxx/include/__filesystem/u8path.h +12 -14
  213. package/libcxx/include/__flat_map/flat_map.h +88 -71
  214. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  215. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  216. package/libcxx/include/__flat_map/utils.h +1 -0
  217. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  218. package/libcxx/include/__flat_set/flat_set.h +86 -68
  219. package/libcxx/include/__format/concepts.h +0 -14
  220. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  221. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  222. package/libcxx/include/__format/format_arg.h +7 -10
  223. package/libcxx/include/__format/format_args.h +1 -1
  224. package/libcxx/include/__format/format_context.h +5 -5
  225. package/libcxx/include/__format/format_parse_context.h +2 -2
  226. package/libcxx/include/__format/formatter_output.h +30 -34
  227. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  228. package/libcxx/include/__format/range_default_formatter.h +2 -41
  229. package/libcxx/include/__format/range_format.h +71 -0
  230. package/libcxx/include/__format/range_formatter.h +1 -0
  231. package/libcxx/include/__format/width_estimation_table.h +4 -2
  232. package/libcxx/include/__functional/bind.h +10 -15
  233. package/libcxx/include/__functional/bind_back.h +1 -1
  234. package/libcxx/include/__functional/bind_front.h +1 -1
  235. package/libcxx/include/__functional/function.h +57 -75
  236. package/libcxx/include/__functional/hash.h +1 -10
  237. package/libcxx/include/__functional/identity.h +1 -1
  238. package/libcxx/include/__functional/is_transparent.h +8 -0
  239. package/libcxx/include/__functional/mem_fn.h +2 -1
  240. package/libcxx/include/__functional/operations.h +18 -0
  241. package/libcxx/include/__functional/ranges_operations.h +7 -0
  242. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  243. package/libcxx/include/__functional/weak_result_type.h +14 -28
  244. package/libcxx/include/__fwd/ios.h +1 -1
  245. package/libcxx/include/__fwd/tuple.h +14 -0
  246. package/libcxx/include/__hash_table +371 -357
  247. package/libcxx/include/__ios/fpos.h +4 -4
  248. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  249. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  250. package/libcxx/include/__iterator/concepts.h +6 -9
  251. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  252. package/libcxx/include/__iterator/distance.h +40 -18
  253. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  254. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  255. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  256. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  257. package/libcxx/include/__iterator/iter_move.h +1 -1
  258. package/libcxx/include/__iterator/iterator.h +13 -0
  259. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  260. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  261. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  262. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  263. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  264. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  265. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  266. package/libcxx/include/__locale +3 -10
  267. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  268. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  269. package/libcxx/include/__locale_dir/messages.h +1 -1
  270. package/libcxx/include/__locale_dir/money.h +2 -2
  271. package/libcxx/include/__locale_dir/num.h +190 -243
  272. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  273. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  274. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  275. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  276. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  277. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  278. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  279. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  280. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  281. package/libcxx/include/__locale_dir/time.h +3 -7
  282. package/libcxx/include/__math/hypot.h +1 -1
  283. package/libcxx/include/__math/logarithms.h +1 -1
  284. package/libcxx/include/__math/traits.h +80 -11
  285. package/libcxx/include/__mdspan/extents.h +7 -4
  286. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  287. package/libcxx/include/__mdspan/mdspan.h +29 -23
  288. package/libcxx/include/__memory/addressof.h +7 -5
  289. package/libcxx/include/__memory/align.h +18 -1
  290. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  291. package/libcxx/include/__memory/allocator.h +14 -26
  292. package/libcxx/include/__memory/allocator_traits.h +6 -4
  293. package/libcxx/include/__memory/compressed_pair.h +15 -9
  294. package/libcxx/include/__memory/construct_at.h +12 -23
  295. package/libcxx/include/__memory/inout_ptr.h +1 -1
  296. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  297. package/libcxx/include/__memory/out_ptr.h +1 -1
  298. package/libcxx/include/__memory/pointer_traits.h +1 -1
  299. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  300. package/libcxx/include/__memory/shared_count.h +9 -30
  301. package/libcxx/include/__memory/shared_ptr.h +100 -145
  302. package/libcxx/include/__memory/temp_value.h +1 -2
  303. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  304. package/libcxx/include/__memory/unique_ptr.h +14 -16
  305. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  306. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  307. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  308. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  309. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  310. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  311. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  312. package/libcxx/include/__mutex/mutex.h +2 -2
  313. package/libcxx/include/__mutex/once_flag.h +14 -11
  314. package/libcxx/include/__mutex/tag_types.h +3 -3
  315. package/libcxx/include/__mutex/unique_lock.h +8 -7
  316. package/libcxx/include/__new/align_val_t.h +6 -0
  317. package/libcxx/include/__new/allocate.h +1 -2
  318. package/libcxx/include/__new/exceptions.h +8 -2
  319. package/libcxx/include/__new/global_new_delete.h +4 -11
  320. package/libcxx/include/__new/interference_size.h +0 -4
  321. package/libcxx/include/__new/launder.h +3 -5
  322. package/libcxx/include/__new/nothrow_t.h +1 -1
  323. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  324. package/libcxx/include/__numeric/midpoint.h +9 -14
  325. package/libcxx/include/__numeric/pstl.h +2 -2
  326. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  327. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  328. package/libcxx/include/__pstl/backends/default.h +14 -14
  329. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  330. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  331. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  332. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  333. package/libcxx/include/__random/binomial_distribution.h +10 -4
  334. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  335. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  336. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  337. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  338. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  339. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  340. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  341. package/libcxx/include/__ranges/common_view.h +7 -7
  342. package/libcxx/include/__ranges/drop_view.h +8 -8
  343. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  344. package/libcxx/include/__ranges/elements_of.h +49 -0
  345. package/libcxx/include/__ranges/empty_view.h +5 -5
  346. package/libcxx/include/__ranges/filter_view.h +10 -10
  347. package/libcxx/include/__ranges/iota_view.h +41 -22
  348. package/libcxx/include/__ranges/owning_view.h +15 -15
  349. package/libcxx/include/__ranges/ref_view.h +6 -6
  350. package/libcxx/include/__ranges/repeat_view.h +17 -10
  351. package/libcxx/include/__ranges/single_view.h +8 -8
  352. package/libcxx/include/__ranges/take_view.h +9 -9
  353. package/libcxx/include/__ranges/transform_view.h +1 -2
  354. package/libcxx/include/__ranges/view_interface.h +10 -10
  355. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  356. package/libcxx/include/__ranges/zip_view.h +20 -20
  357. package/libcxx/include/__split_buffer +612 -240
  358. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  359. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  360. package/libcxx/include/__stop_token/stop_source.h +1 -1
  361. package/libcxx/include/__stop_token/stop_state.h +4 -4
  362. package/libcxx/include/__stop_token/stop_token.h +1 -1
  363. package/libcxx/include/__string/char_traits.h +51 -31
  364. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  365. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  366. package/libcxx/include/__system_error/error_category.h +8 -8
  367. package/libcxx/include/__system_error/error_code.h +5 -5
  368. package/libcxx/include/__system_error/error_condition.h +4 -4
  369. package/libcxx/include/__system_error/system_error.h +1 -1
  370. package/libcxx/include/__thread/id.h +1 -1
  371. package/libcxx/include/__thread/jthread.h +1 -1
  372. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  373. package/libcxx/include/__thread/support/c11.h +8 -8
  374. package/libcxx/include/__thread/support/pthread.h +8 -8
  375. package/libcxx/include/__thread/support/windows.h +8 -8
  376. package/libcxx/include/__thread/thread.h +13 -8
  377. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  378. package/libcxx/include/__tree +849 -701
  379. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  380. package/libcxx/include/__tuple/tuple_element.h +0 -12
  381. package/libcxx/include/__tuple/tuple_size.h +0 -4
  382. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  383. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  384. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  385. package/libcxx/include/__type_traits/invoke.h +8 -0
  386. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  387. package/libcxx/include/__type_traits/is_array.h +26 -0
  388. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  389. package/libcxx/include/__type_traits/is_final.h +1 -1
  390. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  391. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  392. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  393. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  394. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  395. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  396. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  397. package/libcxx/include/__utility/cmp.h +19 -7
  398. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  399. package/libcxx/include/__utility/in_place.h +1 -1
  400. package/libcxx/include/__utility/integer_sequence.h +56 -41
  401. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  402. package/libcxx/include/__utility/pair.h +22 -25
  403. package/libcxx/include/__utility/scope_guard.h +2 -0
  404. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  405. package/libcxx/include/__vector/vector.h +187 -160
  406. package/libcxx/include/__vector/vector_bool.h +76 -83
  407. package/libcxx/include/any +118 -155
  408. package/libcxx/include/array +88 -56
  409. package/libcxx/include/atomic +2 -0
  410. package/libcxx/include/barrier +20 -24
  411. package/libcxx/include/bitset +49 -30
  412. package/libcxx/include/ccomplex +3 -11
  413. package/libcxx/include/chrono +47 -0
  414. package/libcxx/include/ciso646 +3 -6
  415. package/libcxx/include/complex +77 -65
  416. package/libcxx/include/complex.h +10 -10
  417. package/libcxx/include/condition_variable +3 -3
  418. package/libcxx/include/cstdalign +3 -10
  419. package/libcxx/include/cstdbool +3 -10
  420. package/libcxx/include/ctgmath +2 -11
  421. package/libcxx/include/ctype.h +24 -24
  422. package/libcxx/include/cwchar +2 -2
  423. package/libcxx/include/deque +109 -225
  424. package/libcxx/include/errno.h +269 -269
  425. package/libcxx/include/exception +4 -1
  426. package/libcxx/include/ext/hash_map +7 -48
  427. package/libcxx/include/ext/hash_set +2 -8
  428. package/libcxx/include/fenv.h +43 -43
  429. package/libcxx/include/flat_map +663 -11
  430. package/libcxx/include/flat_set +543 -8
  431. package/libcxx/include/float.h +16 -16
  432. package/libcxx/include/forward_list +33 -53
  433. package/libcxx/include/fstream +57 -42
  434. package/libcxx/include/future +41 -51
  435. package/libcxx/include/initializer_list +9 -3
  436. package/libcxx/include/inttypes.h +16 -16
  437. package/libcxx/include/ios +28 -28
  438. package/libcxx/include/istream +19 -13
  439. package/libcxx/include/iterator +10 -0
  440. package/libcxx/include/latch +7 -5
  441. package/libcxx/include/limits +4 -4
  442. package/libcxx/include/list +61 -79
  443. package/libcxx/include/map +386 -274
  444. package/libcxx/include/math.h +19 -0
  445. package/libcxx/include/mdspan +1 -5
  446. package/libcxx/include/mutex +29 -19
  447. package/libcxx/include/optional +644 -149
  448. package/libcxx/include/print +9 -5
  449. package/libcxx/include/queue +39 -37
  450. package/libcxx/include/ranges +48 -0
  451. package/libcxx/include/regex +33 -31
  452. package/libcxx/include/scoped_allocator +16 -11
  453. package/libcxx/include/semaphore +15 -18
  454. package/libcxx/include/set +220 -192
  455. package/libcxx/include/shared_mutex +3 -8
  456. package/libcxx/include/span +53 -37
  457. package/libcxx/include/sstream +34 -28
  458. package/libcxx/include/stack +13 -15
  459. package/libcxx/include/stddef.h +10 -10
  460. package/libcxx/include/stdexcept +2 -2
  461. package/libcxx/include/stdio.h +20 -21
  462. package/libcxx/include/streambuf +59 -19
  463. package/libcxx/include/string +574 -573
  464. package/libcxx/include/string_view +113 -89
  465. package/libcxx/include/strstream +10 -10
  466. package/libcxx/include/syncstream +4 -4
  467. package/libcxx/include/tgmath.h +12 -12
  468. package/libcxx/include/tuple +242 -212
  469. package/libcxx/include/type_traits +8 -2
  470. package/libcxx/include/typeindex +5 -3
  471. package/libcxx/include/typeinfo +92 -89
  472. package/libcxx/include/unordered_map +179 -304
  473. package/libcxx/include/unordered_set +168 -195
  474. package/libcxx/include/utility +12 -0
  475. package/libcxx/include/valarray +106 -161
  476. package/libcxx/include/variant +25 -33
  477. package/libcxx/include/version +41 -24
  478. package/libcxx/include/wctype.h +29 -29
  479. package/libcxx/libc/hdr/errno_macros.h +3 -1
  480. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  481. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  482. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  483. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  484. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  485. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  486. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  487. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  488. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  489. package/libcxx/libc/shared/libc_common.h +5 -0
  490. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  491. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  492. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  493. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  494. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  495. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  496. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  497. package/libcxx/libc/src/__support/big_int.h +14 -14
  498. package/libcxx/libc/src/__support/common.h +3 -2
  499. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  500. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  501. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  502. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  503. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  504. package/libcxx/libc/src/__support/macros/config.h +23 -0
  505. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  506. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  507. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  508. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  509. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  510. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  511. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  512. package/libcxx/libc/src/__support/math_extras.h +20 -4
  513. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  514. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  515. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  516. package/libcxx/src/any.cpp +4 -0
  517. package/libcxx/src/atomic.cpp +365 -80
  518. package/libcxx/src/barrier.cpp +4 -3
  519. package/libcxx/src/charconv.cpp +6 -3
  520. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  521. package/libcxx/src/error_category.cpp +3 -1
  522. package/libcxx/src/exception.cpp +2 -10
  523. package/libcxx/src/experimental/time_zone.cpp +1 -1
  524. package/libcxx/src/experimental/tzdb.cpp +4 -1
  525. package/libcxx/src/filesystem/error.h +4 -22
  526. package/libcxx/src/filesystem/format_string.h +9 -18
  527. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  528. package/libcxx/src/filesystem/operations.cpp +2 -9
  529. package/libcxx/src/filesystem/path.cpp +3 -1
  530. package/libcxx/src/include/aligned_alloc.h +65 -0
  531. package/libcxx/src/include/config_elast.h +1 -1
  532. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  533. package/libcxx/src/include/overridable_function.h +8 -10
  534. package/libcxx/src/iostream.cpp +56 -37
  535. package/libcxx/src/locale.cpp +213 -196
  536. package/libcxx/src/memory.cpp +12 -14
  537. package/libcxx/src/mutex_destructor.cpp +1 -1
  538. package/libcxx/src/new.cpp +5 -5
  539. package/libcxx/src/optional.cpp +4 -0
  540. package/libcxx/src/print.cpp +9 -1
  541. package/libcxx/src/random.cpp +0 -26
  542. package/libcxx/src/string.cpp +10 -25
  543. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  544. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  545. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  546. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  547. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  548. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  549. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  550. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  551. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  552. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  553. package/libcxx/src/system_error.cpp +2 -0
  554. package/libcxx/src/thread.cpp +1 -3
  555. package/libcxx/src/valarray.cpp +1 -2
  556. package/libcxx/src/vector.cpp +2 -2
  557. package/libcxxabi/include/__cxxabi_config.h +42 -23
  558. package/libcxxabi/src/cxa_exception.cpp +4 -2
  559. package/libcxxabi/src/cxa_exception.h +16 -14
  560. package/libcxxabi/src/cxa_personality.cpp +126 -9
  561. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  562. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  563. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  564. package/libcxxabi/src/demangle/Utility.h +21 -7
  565. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  566. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  567. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  568. package/libtsan/LICENSE.TXT +311 -0
  569. package/libtsan/builtins/assembly.h +41 -8
  570. package/libtsan/interception/interception_win.cpp +4 -0
  571. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  572. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  573. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  574. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  575. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  576. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  577. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  578. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  579. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  580. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  581. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  582. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  583. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  584. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  585. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  586. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  587. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  588. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  589. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  590. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  591. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  592. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  593. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  594. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  595. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  596. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  597. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  598. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  599. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  600. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  601. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  602. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  603. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  604. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  605. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  606. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  607. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  608. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  609. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  610. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  611. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  612. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  613. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  614. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  615. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  616. package/libtsan/tsan_debugging.cpp +2 -2
  617. package/libtsan/tsan_flags.cpp +37 -0
  618. package/libtsan/tsan_flags.h +8 -0
  619. package/libtsan/tsan_flags.inc +12 -0
  620. package/libtsan/tsan_interceptors.h +9 -1
  621. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  622. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  623. package/libtsan/tsan_interface.h +3 -3
  624. package/libtsan/tsan_interface_ann.cpp +23 -9
  625. package/libtsan/tsan_mman.cpp +18 -4
  626. package/libtsan/tsan_platform.h +44 -7
  627. package/libtsan/tsan_platform_linux.cpp +42 -14
  628. package/libtsan/tsan_platform_mac.cpp +16 -3
  629. package/libtsan/tsan_report.h +14 -1
  630. package/libtsan/tsan_rtl.cpp +14 -0
  631. package/libtsan/tsan_rtl.h +7 -2
  632. package/libtsan/tsan_rtl_aarch64.S +3 -5
  633. package/libtsan/tsan_rtl_access.cpp +8 -3
  634. package/libtsan/tsan_rtl_amd64.S +2 -0
  635. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  636. package/libtsan/tsan_rtl_report.cpp +132 -65
  637. package/libtsan/tsan_rtl_thread.cpp +31 -9
  638. package/libtsan/tsan_symbolize.cpp +1 -1
  639. package/libtsan/tsan_symbolize.h +1 -1
  640. package/libtsan/tsan_trace.h +1 -1
  641. package/libunwind/include/__libunwind_config.h +11 -2
  642. package/libunwind/include/libunwind.h +117 -11
  643. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  644. package/libunwind/src/AddressSpace.hpp +42 -20
  645. package/libunwind/src/CompactUnwinder.hpp +16 -5
  646. package/libunwind/src/DwarfInstructions.hpp +24 -13
  647. package/libunwind/src/DwarfParser.hpp +62 -23
  648. package/libunwind/src/EHHeaderParser.hpp +7 -4
  649. package/libunwind/src/Registers.hpp +226 -22
  650. package/libunwind/src/Unwind-seh.cpp +6 -7
  651. package/libunwind/src/Unwind-wasm.c +7 -7
  652. package/libunwind/src/UnwindCursor.hpp +167 -49
  653. package/libunwind/src/UnwindLevel1.c +46 -17
  654. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  655. package/libunwind/src/UnwindRegistersSave.S +86 -2
  656. package/libunwind/src/assembly.h +5 -1
  657. package/libunwind/src/config.h +9 -0
  658. package/libunwind/src/gcc_personality_v0.c +79 -6
  659. package/libunwind/src/libunwind.cpp +104 -4
  660. package/libunwind/src/libunwind_ext.h +7 -1
  661. package/libunwind/src/shadow_stack_unwind.h +2 -2
  662. package/lldb/pretty_printers.py +948 -0
  663. package/package.json +1 -1
  664. package/std/Build/Step/Compile.zig +18 -19
  665. package/std/Build/Step/Run.zig +13 -6
  666. package/std/Build/Step.zig +0 -3
  667. package/std/Io/Threaded.zig +3 -0
  668. package/std/Target/aarch64.zig +620 -77
  669. package/std/Target/amdgcn.zig +421 -21
  670. package/std/Target/arm.zig +40 -6
  671. package/std/Target/bpf.zig +6 -0
  672. package/std/Target/hexagon.zig +41 -6
  673. package/std/Target/loongarch.zig +18 -0
  674. package/std/Target/mips.zig +6 -0
  675. package/std/Target/nvptx.zig +58 -35
  676. package/std/Target/powerpc.zig +27 -19
  677. package/std/Target/riscv.zig +415 -177
  678. package/std/Target/sparc.zig +17 -0
  679. package/std/Target/wasm.zig +7 -0
  680. package/std/Target/x86.zig +200 -31
  681. package/std/Target/xtensa.zig +65 -0
  682. package/std/Target.zig +16 -8
  683. package/std/c.zig +7 -0
  684. package/std/crypto/ml_kem.zig +0 -15
  685. package/std/debug/Dwarf.zig +14 -11
  686. package/std/debug/Pdb.zig +24 -16
  687. package/std/hash/xxhash.zig +0 -6
  688. package/std/math/log10.zig +0 -2
  689. package/std/math/modf.zig +1 -2
  690. package/std/mem.zig +1 -2
  691. package/std/os/linux/x86.zig +2 -2
  692. package/std/os/windows.zig +130 -1
  693. package/std/simd.zig +4 -21
  694. package/std/start.zig +4 -3
  695. package/std/zig/Ast.zig +5 -7
  696. package/std/zig/AstGen.zig +20 -14
  697. package/std/zig/ErrorBundle.zig +6 -2
  698. package/std/zig/ZonGen.zig +13 -21
  699. package/std/zig/llvm/Builder.zig +2 -2
  700. package/std/zig/system/arm.zig +56 -2
  701. package/std/zig/system/windows.zig +34 -1
  702. package/std/zig/system/x86.zig +60 -16
  703. package/std/zig/system.zig +0 -10
  704. package/std/zig/target.zig +1 -2
  705. package/std/zon/parse.zig +1 -1
  706. package/include/amxbf16transposeintrin.h +0 -94
  707. package/include/amxcomplextransposeintrin.h +0 -303
  708. package/include/amxfp16transposeintrin.h +0 -94
  709. package/include/amxmovrstransposeintrin.h +0 -200
  710. package/include/amxtf32transposeintrin.h +0 -105
  711. package/include/amxtransposeintrin.h +0 -248
  712. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  713. package/std/Build/Step/CheckObject.zig +0 -2764
@@ -216,6 +216,18 @@ template<size_t N>
216
216
  template<class... T>
217
217
  using index_sequence_for = make_index_sequence<sizeof...(T)>;
218
218
 
219
+ template<class T, T... Values> // C++26
220
+ struct tuple_size<integer_sequence<T, Values...>>;
221
+
222
+ template<size_t I, class T, T... Values> // C++26
223
+ struct tuple_element<I, integer_sequence<T, Values...>>;
224
+
225
+ template<size_t I, class T, T... Values> // C++26
226
+ struct tuple_element<I, const integer_sequence<T, Values...>>;
227
+
228
+ template<size_t I, class T, T... Values> // C++26
229
+ constexpr T get(integer_sequence<T, Values...>) noexcept;
230
+
219
231
  template<class T, class U=T>
220
232
  constexpr T exchange(T& obj, U&& new_value) // constexpr in C++17, noexcept in C++23
221
233
  noexcept(is_nothrow_move_constructible<T>::value && is_nothrow_assignable<T&, U>::value);
@@ -362,6 +362,7 @@ template <class T> unspecified2 end(const valarray<T>& v);
362
362
  # include <__memory/uninitialized_algorithms.h>
363
363
  # include <__type_traits/decay.h>
364
364
  # include <__type_traits/remove_reference.h>
365
+ # include <__utility/exception_guard.h>
365
366
  # include <__utility/move.h>
366
367
  # include <__utility/swap.h>
367
368
  # include <cmath>
@@ -395,9 +396,9 @@ public:
395
396
  _LIBCPP_HIDE_FROM_ABI slice(size_t __start, size_t __size, size_t __stride)
396
397
  : __start_(__start), __size_(__size), __stride_(__stride) {}
397
398
 
398
- _LIBCPP_HIDE_FROM_ABI size_t start() const { return __start_; }
399
- _LIBCPP_HIDE_FROM_ABI size_t size() const { return __size_; }
400
- _LIBCPP_HIDE_FROM_ABI size_t stride() const { return __stride_; }
399
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t start() const { return __start_; }
400
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t size() const { return __size_; }
401
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t stride() const { return __stride_; }
401
402
 
402
403
  # if _LIBCPP_STD_VER >= 20
403
404
 
@@ -792,7 +793,7 @@ private:
792
793
  public:
793
794
  // construct/destroy:
794
795
  _LIBCPP_HIDE_FROM_ABI valarray() : __begin_(nullptr), __end_(nullptr) {}
795
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 explicit valarray(size_t __n);
796
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 explicit valarray(size_t __n);
796
797
  _LIBCPP_HIDE_FROM_ABI valarray(const value_type& __x, size_t __n);
797
798
  valarray(const value_type* __p, size_t __n);
798
799
  valarray(const valarray& __v);
@@ -804,7 +805,7 @@ public:
804
805
  valarray(const gslice_array<value_type>& __ga);
805
806
  valarray(const mask_array<value_type>& __ma);
806
807
  valarray(const indirect_array<value_type>& __ia);
807
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 ~valarray();
808
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 ~valarray();
808
809
 
809
810
  // assignment:
810
811
  valarray& operator=(const valarray& __v);
@@ -821,36 +822,41 @@ public:
821
822
  _LIBCPP_HIDE_FROM_ABI valarray& operator=(const __val_expr<_ValExpr>& __v);
822
823
 
823
824
  // element access:
824
- _LIBCPP_HIDE_FROM_ABI const value_type& operator[](size_t __i) const {
825
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const value_type& operator[](size_t __i) const {
825
826
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__i < size(), "valarray::operator[] index out of bounds");
826
827
  return __begin_[__i];
827
828
  }
828
829
 
829
- _LIBCPP_HIDE_FROM_ABI value_type& operator[](size_t __i) {
830
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type& operator[](size_t __i) {
830
831
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__i < size(), "valarray::operator[] index out of bounds");
831
832
  return __begin_[__i];
832
833
  }
833
834
 
834
835
  // subset operations:
835
- _LIBCPP_HIDE_FROM_ABI __val_expr<__slice_expr<const valarray&> > operator[](slice __s) const;
836
- _LIBCPP_HIDE_FROM_ABI slice_array<value_type> operator[](slice __s);
837
- _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](const gslice& __gs) const;
838
- _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](const gslice& __gs);
836
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__slice_expr<const valarray&> > operator[](slice __s) const;
837
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI slice_array<value_type> operator[](slice __s);
838
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> >
839
+ operator[](const gslice& __gs) const;
840
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](const gslice& __gs);
839
841
  # ifndef _LIBCPP_CXX03_LANG
840
- _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](gslice&& __gs) const;
841
- _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](gslice&& __gs);
842
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](gslice&& __gs) const;
843
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI gslice_array<value_type> operator[](gslice&& __gs);
842
844
  # endif // _LIBCPP_CXX03_LANG
845
+ [[__nodiscard__]]
843
846
  _LIBCPP_HIDE_FROM_ABI __val_expr<__mask_expr<const valarray&> > operator[](const valarray<bool>& __vb) const;
844
- _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](const valarray<bool>& __vb);
847
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](const valarray<bool>& __vb);
845
848
  # ifndef _LIBCPP_CXX03_LANG
849
+ [[__nodiscard__]]
846
850
  _LIBCPP_HIDE_FROM_ABI __val_expr<__mask_expr<const valarray&> > operator[](valarray<bool>&& __vb) const;
847
- _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](valarray<bool>&& __vb);
851
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI mask_array<value_type> operator[](valarray<bool>&& __vb);
848
852
  # endif // _LIBCPP_CXX03_LANG
853
+ [[__nodiscard__]]
849
854
  _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](const valarray<size_t>& __vs) const;
850
- _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](const valarray<size_t>& __vs);
855
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](const valarray<size_t>& __vs);
851
856
  # ifndef _LIBCPP_CXX03_LANG
857
+ [[__nodiscard__]]
852
858
  _LIBCPP_HIDE_FROM_ABI __val_expr<__indirect_expr<const valarray&> > operator[](valarray<size_t>&& __vs) const;
853
- _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](valarray<size_t>&& __vs);
859
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI indirect_array<value_type> operator[](valarray<size_t>&& __vs);
854
860
  # endif // _LIBCPP_CXX03_LANG
855
861
 
856
862
  // unary operators:
@@ -904,16 +910,16 @@ public:
904
910
  // member functions:
905
911
  _LIBCPP_HIDE_FROM_ABI void swap(valarray& __v) _NOEXCEPT;
906
912
 
907
- _LIBCPP_HIDE_FROM_ABI size_t size() const { return static_cast<size_t>(__end_ - __begin_); }
913
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t size() const { return static_cast<size_t>(__end_ - __begin_); }
908
914
 
909
- _LIBCPP_HIDE_FROM_ABI value_type sum() const;
910
- _LIBCPP_HIDE_FROM_ABI value_type min() const;
911
- _LIBCPP_HIDE_FROM_ABI value_type max() const;
915
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type sum() const;
916
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type min() const;
917
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI value_type max() const;
912
918
 
913
- valarray shift(int __i) const;
914
- valarray cshift(int __i) const;
915
- valarray apply(value_type __f(value_type)) const;
916
- valarray apply(value_type __f(const value_type&)) const;
919
+ [[__nodiscard__]] valarray shift(int __i) const;
920
+ [[__nodiscard__]] valarray cshift(int __i) const;
921
+ [[__nodiscard__]] valarray apply(value_type __f(value_type)) const;
922
+ [[__nodiscard__]] valarray apply(value_type __f(const value_type&)) const;
917
923
  void resize(size_t __n, value_type __x = value_type());
918
924
 
919
925
  private:
@@ -1248,11 +1254,11 @@ public:
1248
1254
 
1249
1255
  # endif // _LIBCPP_CXX03_LANG
1250
1256
 
1251
- _LIBCPP_HIDE_FROM_ABI size_t start() const { return __1d_.size() ? __1d_[0] : 0; }
1257
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t start() const { return __1d_.size() ? __1d_[0] : 0; }
1252
1258
 
1253
- _LIBCPP_HIDE_FROM_ABI valarray<size_t> size() const { return __size_; }
1259
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI valarray<size_t> size() const { return __size_; }
1254
1260
 
1255
- _LIBCPP_HIDE_FROM_ABI valarray<size_t> stride() const { return __stride_; }
1261
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI valarray<size_t> stride() const { return __stride_; }
1256
1262
 
1257
1263
  private:
1258
1264
  void __init(size_t __start);
@@ -1992,17 +1998,10 @@ template <class _Tp>
1992
1998
  inline valarray<_Tp>::valarray(size_t __n) : __begin_(nullptr), __end_(nullptr) {
1993
1999
  if (__n) {
1994
2000
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
1995
- # if _LIBCPP_HAS_EXCEPTIONS
1996
- try {
1997
- # endif // _LIBCPP_HAS_EXCEPTIONS
1998
- for (size_t __n_left = __n; __n_left; --__n_left, ++__end_)
1999
- ::new ((void*)__end_) value_type();
2000
- # if _LIBCPP_HAS_EXCEPTIONS
2001
- } catch (...) {
2002
- __clear(__n);
2003
- throw;
2004
- }
2005
- # endif // _LIBCPP_HAS_EXCEPTIONS
2001
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2002
+ for (size_t __n_left = __n; __n_left; --__n_left, ++__end_)
2003
+ ::new ((void*)__end_) value_type();
2004
+ __guard.__complete();
2006
2005
  }
2007
2006
  }
2008
2007
 
@@ -2015,17 +2014,10 @@ template <class _Tp>
2015
2014
  valarray<_Tp>::valarray(const value_type* __p, size_t __n) : __begin_(nullptr), __end_(nullptr) {
2016
2015
  if (__n) {
2017
2016
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2018
- # if _LIBCPP_HAS_EXCEPTIONS
2019
- try {
2020
- # endif // _LIBCPP_HAS_EXCEPTIONS
2021
- for (size_t __n_left = __n; __n_left; ++__end_, ++__p, --__n_left)
2022
- ::new ((void*)__end_) value_type(*__p);
2023
- # if _LIBCPP_HAS_EXCEPTIONS
2024
- } catch (...) {
2025
- __clear(__n);
2026
- throw;
2027
- }
2028
- # endif // _LIBCPP_HAS_EXCEPTIONS
2017
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2018
+ for (size_t __n_left = __n; __n_left; ++__end_, ++__p, --__n_left)
2019
+ ::new ((void*)__end_) value_type(*__p);
2020
+ __guard.__complete();
2029
2021
  }
2030
2022
  }
2031
2023
 
@@ -2033,17 +2025,10 @@ template <class _Tp>
2033
2025
  valarray<_Tp>::valarray(const valarray& __v) : __begin_(nullptr), __end_(nullptr) {
2034
2026
  if (__v.size()) {
2035
2027
  __begin_ = __end_ = allocator<value_type>().allocate(__v.size());
2036
- # if _LIBCPP_HAS_EXCEPTIONS
2037
- try {
2038
- # endif // _LIBCPP_HAS_EXCEPTIONS
2039
- for (value_type* __p = __v.__begin_; __p != __v.__end_; ++__end_, ++__p)
2040
- ::new ((void*)__end_) value_type(*__p);
2041
- # if _LIBCPP_HAS_EXCEPTIONS
2042
- } catch (...) {
2043
- __clear(__v.size());
2044
- throw;
2045
- }
2046
- # endif // _LIBCPP_HAS_EXCEPTIONS
2028
+ auto __guard = std::__make_exception_guard([&] { __clear(__v.size()); });
2029
+ for (value_type* __p = __v.__begin_; __p != __v.__end_; ++__end_, ++__p)
2030
+ ::new ((void*)__end_) value_type(*__p);
2031
+ __guard.__complete();
2047
2032
  }
2048
2033
  }
2049
2034
 
@@ -2059,18 +2044,11 @@ valarray<_Tp>::valarray(initializer_list<value_type> __il) : __begin_(nullptr),
2059
2044
  const size_t __n = __il.size();
2060
2045
  if (__n) {
2061
2046
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2062
- # if _LIBCPP_HAS_EXCEPTIONS
2063
- try {
2064
- # endif // _LIBCPP_HAS_EXCEPTIONS
2065
- size_t __n_left = __n;
2066
- for (const value_type* __p = __il.begin(); __n_left; ++__end_, ++__p, --__n_left)
2067
- ::new ((void*)__end_) value_type(*__p);
2068
- # if _LIBCPP_HAS_EXCEPTIONS
2069
- } catch (...) {
2070
- __clear(__n);
2071
- throw;
2072
- }
2073
- # endif // _LIBCPP_HAS_EXCEPTIONS
2047
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2048
+ size_t __n_left = __n;
2049
+ for (const value_type* __p = __il.begin(); __n_left; ++__end_, ++__p, --__n_left)
2050
+ ::new ((void*)__end_) value_type(*__p);
2051
+ __guard.__complete();
2074
2052
  }
2075
2053
  }
2076
2054
 
@@ -2081,18 +2059,11 @@ valarray<_Tp>::valarray(const slice_array<value_type>& __sa) : __begin_(nullptr)
2081
2059
  const size_t __n = __sa.__size_;
2082
2060
  if (__n) {
2083
2061
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2084
- # if _LIBCPP_HAS_EXCEPTIONS
2085
- try {
2086
- # endif // _LIBCPP_HAS_EXCEPTIONS
2087
- size_t __n_left = __n;
2088
- for (const value_type* __p = __sa.__vp_; __n_left; ++__end_, __p += __sa.__stride_, --__n_left)
2089
- ::new ((void*)__end_) value_type(*__p);
2090
- # if _LIBCPP_HAS_EXCEPTIONS
2091
- } catch (...) {
2092
- __clear(__n);
2093
- throw;
2094
- }
2095
- # endif // _LIBCPP_HAS_EXCEPTIONS
2062
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2063
+ size_t __n_left = __n;
2064
+ for (const value_type* __p = __sa.__vp_; __n_left; ++__end_, __p += __sa.__stride_, --__n_left)
2065
+ ::new ((void*)__end_) value_type(*__p);
2066
+ __guard.__complete();
2096
2067
  }
2097
2068
  }
2098
2069
 
@@ -2101,19 +2072,12 @@ valarray<_Tp>::valarray(const gslice_array<value_type>& __ga) : __begin_(nullptr
2101
2072
  const size_t __n = __ga.__1d_.size();
2102
2073
  if (__n) {
2103
2074
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2104
- # if _LIBCPP_HAS_EXCEPTIONS
2105
- try {
2106
- # endif // _LIBCPP_HAS_EXCEPTIONS
2107
- typedef const size_t* _Ip;
2108
- const value_type* __s = __ga.__vp_;
2109
- for (_Ip __i = __ga.__1d_.__begin_, __e = __ga.__1d_.__end_; __i != __e; ++__i, ++__end_)
2110
- ::new ((void*)__end_) value_type(__s[*__i]);
2111
- # if _LIBCPP_HAS_EXCEPTIONS
2112
- } catch (...) {
2113
- __clear(__n);
2114
- throw;
2115
- }
2116
- # endif // _LIBCPP_HAS_EXCEPTIONS
2075
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2076
+ typedef const size_t* _Ip;
2077
+ const value_type* __s = __ga.__vp_;
2078
+ for (_Ip __i = __ga.__1d_.__begin_, __e = __ga.__1d_.__end_; __i != __e; ++__i, ++__end_)
2079
+ ::new ((void*)__end_) value_type(__s[*__i]);
2080
+ __guard.__complete();
2117
2081
  }
2118
2082
  }
2119
2083
 
@@ -2122,19 +2086,12 @@ valarray<_Tp>::valarray(const mask_array<value_type>& __ma) : __begin_(nullptr),
2122
2086
  const size_t __n = __ma.__1d_.size();
2123
2087
  if (__n) {
2124
2088
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2125
- # if _LIBCPP_HAS_EXCEPTIONS
2126
- try {
2127
- # endif // _LIBCPP_HAS_EXCEPTIONS
2128
- typedef const size_t* _Ip;
2129
- const value_type* __s = __ma.__vp_;
2130
- for (_Ip __i = __ma.__1d_.__begin_, __e = __ma.__1d_.__end_; __i != __e; ++__i, ++__end_)
2131
- ::new ((void*)__end_) value_type(__s[*__i]);
2132
- # if _LIBCPP_HAS_EXCEPTIONS
2133
- } catch (...) {
2134
- __clear(__n);
2135
- throw;
2136
- }
2137
- # endif // _LIBCPP_HAS_EXCEPTIONS
2089
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2090
+ typedef const size_t* _Ip;
2091
+ const value_type* __s = __ma.__vp_;
2092
+ for (_Ip __i = __ma.__1d_.__begin_, __e = __ma.__1d_.__end_; __i != __e; ++__i, ++__end_)
2093
+ ::new ((void*)__end_) value_type(__s[*__i]);
2094
+ __guard.__complete();
2138
2095
  }
2139
2096
  }
2140
2097
 
@@ -2143,19 +2100,12 @@ valarray<_Tp>::valarray(const indirect_array<value_type>& __ia) : __begin_(nullp
2143
2100
  const size_t __n = __ia.__1d_.size();
2144
2101
  if (__n) {
2145
2102
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2146
- # if _LIBCPP_HAS_EXCEPTIONS
2147
- try {
2148
- # endif // _LIBCPP_HAS_EXCEPTIONS
2149
- typedef const size_t* _Ip;
2150
- const value_type* __s = __ia.__vp_;
2151
- for (_Ip __i = __ia.__1d_.__begin_, __e = __ia.__1d_.__end_; __i != __e; ++__i, ++__end_)
2152
- ::new ((void*)__end_) value_type(__s[*__i]);
2153
- # if _LIBCPP_HAS_EXCEPTIONS
2154
- } catch (...) {
2155
- __clear(__n);
2156
- throw;
2157
- }
2158
- # endif // _LIBCPP_HAS_EXCEPTIONS
2103
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2104
+ typedef const size_t* _Ip;
2105
+ const value_type* __s = __ia.__vp_;
2106
+ for (_Ip __i = __ia.__1d_.__begin_, __e = __ia.__1d_.__end_; __i != __e; ++__i, ++__end_)
2107
+ ::new ((void*)__end_) value_type(__s[*__i]);
2108
+ __guard.__complete();
2159
2109
  }
2160
2110
  }
2161
2111
 
@@ -2644,17 +2594,10 @@ void valarray<_Tp>::resize(size_t __n, value_type __x) {
2644
2594
  __clear(size());
2645
2595
  if (__n) {
2646
2596
  __begin_ = __end_ = allocator<value_type>().allocate(__n);
2647
- # if _LIBCPP_HAS_EXCEPTIONS
2648
- try {
2649
- # endif // _LIBCPP_HAS_EXCEPTIONS
2650
- for (size_t __n_left = __n; __n_left; --__n_left, ++__end_)
2651
- ::new ((void*)__end_) value_type(__x);
2652
- # if _LIBCPP_HAS_EXCEPTIONS
2653
- } catch (...) {
2654
- __clear(__n);
2655
- throw;
2656
- }
2657
- # endif // _LIBCPP_HAS_EXCEPTIONS
2597
+ auto __guard = std::__make_exception_guard([&] { __clear(__n); });
2598
+ for (size_t __n_left = __n; __n_left; --__n_left, ++__end_)
2599
+ ::new ((void*)__end_) value_type(__x);
2600
+ __guard.__complete();
2658
2601
  }
2659
2602
  }
2660
2603
 
@@ -3168,7 +3111,7 @@ operator>=(const typename _Expr::value_type& __x, const _Expr& __y) {
3168
3111
  }
3169
3112
 
3170
3113
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3171
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__abs_expr<typename _Expr::value_type>, _Expr> >
3114
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__abs_expr<typename _Expr::value_type>, _Expr> >
3172
3115
  abs(const _Expr& __x) {
3173
3116
  typedef typename _Expr::value_type value_type;
3174
3117
  typedef _UnaryOp<__abs_expr<value_type>, _Expr> _Op;
@@ -3176,7 +3119,7 @@ abs(const _Expr& __x) {
3176
3119
  }
3177
3120
 
3178
3121
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3179
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__acos_expr<typename _Expr::value_type>, _Expr> >
3122
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__acos_expr<typename _Expr::value_type>, _Expr> >
3180
3123
  acos(const _Expr& __x) {
3181
3124
  typedef typename _Expr::value_type value_type;
3182
3125
  typedef _UnaryOp<__acos_expr<value_type>, _Expr> _Op;
@@ -3184,7 +3127,7 @@ acos(const _Expr& __x) {
3184
3127
  }
3185
3128
 
3186
3129
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3187
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__asin_expr<typename _Expr::value_type>, _Expr> >
3130
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__asin_expr<typename _Expr::value_type>, _Expr> >
3188
3131
  asin(const _Expr& __x) {
3189
3132
  typedef typename _Expr::value_type value_type;
3190
3133
  typedef _UnaryOp<__asin_expr<value_type>, _Expr> _Op;
@@ -3192,7 +3135,7 @@ asin(const _Expr& __x) {
3192
3135
  }
3193
3136
 
3194
3137
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3195
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__atan_expr<typename _Expr::value_type>, _Expr> >
3138
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__atan_expr<typename _Expr::value_type>, _Expr> >
3196
3139
  atan(const _Expr& __x) {
3197
3140
  typedef typename _Expr::value_type value_type;
3198
3141
  typedef _UnaryOp<__atan_expr<value_type>, _Expr> _Op;
@@ -3202,15 +3145,16 @@ atan(const _Expr& __x) {
3202
3145
  template <class _Expr1,
3203
3146
  class _Expr2,
3204
3147
  __enable_if_t<__is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value, int> = 0>
3205
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__atan2_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3206
- atan2(const _Expr1& __x, const _Expr2& __y) {
3148
+ [[__nodiscard__]] inline
3149
+ _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__atan2_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3150
+ atan2(const _Expr1& __x, const _Expr2& __y) {
3207
3151
  typedef typename _Expr1::value_type value_type;
3208
3152
  typedef _BinaryOp<__atan2_expr<value_type>, _Expr1, _Expr2> _Op;
3209
3153
  return __val_expr<_Op>(_Op(__atan2_expr<value_type>(), __x, __y));
3210
3154
  }
3211
3155
 
3212
3156
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3213
- inline _LIBCPP_HIDE_FROM_ABI
3157
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
3214
3158
  __val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>, _Expr, __scalar_expr<typename _Expr::value_type> > >
3215
3159
  atan2(const _Expr& __x, const typename _Expr::value_type& __y) {
3216
3160
  typedef typename _Expr::value_type value_type;
@@ -3219,7 +3163,7 @@ atan2(const _Expr& __x, const typename _Expr::value_type& __y) {
3219
3163
  }
3220
3164
 
3221
3165
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3222
- inline _LIBCPP_HIDE_FROM_ABI
3166
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
3223
3167
  __val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>, __scalar_expr<typename _Expr::value_type>, _Expr> >
3224
3168
  atan2(const typename _Expr::value_type& __x, const _Expr& __y) {
3225
3169
  typedef typename _Expr::value_type value_type;
@@ -3228,7 +3172,7 @@ atan2(const typename _Expr::value_type& __x, const _Expr& __y) {
3228
3172
  }
3229
3173
 
3230
3174
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3231
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cos_expr<typename _Expr::value_type>, _Expr> >
3175
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cos_expr<typename _Expr::value_type>, _Expr> >
3232
3176
  cos(const _Expr& __x) {
3233
3177
  typedef typename _Expr::value_type value_type;
3234
3178
  typedef _UnaryOp<__cos_expr<value_type>, _Expr> _Op;
@@ -3236,7 +3180,7 @@ cos(const _Expr& __x) {
3236
3180
  }
3237
3181
 
3238
3182
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3239
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cosh_expr<typename _Expr::value_type>, _Expr> >
3183
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__cosh_expr<typename _Expr::value_type>, _Expr> >
3240
3184
  cosh(const _Expr& __x) {
3241
3185
  typedef typename _Expr::value_type value_type;
3242
3186
  typedef _UnaryOp<__cosh_expr<value_type>, _Expr> _Op;
@@ -3244,7 +3188,7 @@ cosh(const _Expr& __x) {
3244
3188
  }
3245
3189
 
3246
3190
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3247
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__exp_expr<typename _Expr::value_type>, _Expr> >
3191
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__exp_expr<typename _Expr::value_type>, _Expr> >
3248
3192
  exp(const _Expr& __x) {
3249
3193
  typedef typename _Expr::value_type value_type;
3250
3194
  typedef _UnaryOp<__exp_expr<value_type>, _Expr> _Op;
@@ -3252,7 +3196,7 @@ exp(const _Expr& __x) {
3252
3196
  }
3253
3197
 
3254
3198
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3255
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log_expr<typename _Expr::value_type>, _Expr> >
3199
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log_expr<typename _Expr::value_type>, _Expr> >
3256
3200
  log(const _Expr& __x) {
3257
3201
  typedef typename _Expr::value_type value_type;
3258
3202
  typedef _UnaryOp<__log_expr<value_type>, _Expr> _Op;
@@ -3260,7 +3204,7 @@ log(const _Expr& __x) {
3260
3204
  }
3261
3205
 
3262
3206
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3263
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log10_expr<typename _Expr::value_type>, _Expr> >
3207
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__log10_expr<typename _Expr::value_type>, _Expr> >
3264
3208
  log10(const _Expr& __x) {
3265
3209
  typedef typename _Expr::value_type value_type;
3266
3210
  typedef _UnaryOp<__log10_expr<value_type>, _Expr> _Op;
@@ -3270,15 +3214,16 @@ log10(const _Expr& __x) {
3270
3214
  template <class _Expr1,
3271
3215
  class _Expr2,
3272
3216
  __enable_if_t<__is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value, int> = 0>
3273
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__pow_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3274
- pow(const _Expr1& __x, const _Expr2& __y) {
3217
+ [[__nodiscard__]] inline
3218
+ _LIBCPP_HIDE_FROM_ABI __val_expr<_BinaryOp<__pow_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >
3219
+ pow(const _Expr1& __x, const _Expr2& __y) {
3275
3220
  typedef typename _Expr1::value_type value_type;
3276
3221
  typedef _BinaryOp<__pow_expr<value_type>, _Expr1, _Expr2> _Op;
3277
3222
  return __val_expr<_Op>(_Op(__pow_expr<value_type>(), __x, __y));
3278
3223
  }
3279
3224
 
3280
3225
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3281
- inline _LIBCPP_HIDE_FROM_ABI
3226
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
3282
3227
  __val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>, _Expr, __scalar_expr<typename _Expr::value_type> > >
3283
3228
  pow(const _Expr& __x, const typename _Expr::value_type& __y) {
3284
3229
  typedef typename _Expr::value_type value_type;
@@ -3287,7 +3232,7 @@ pow(const _Expr& __x, const typename _Expr::value_type& __y) {
3287
3232
  }
3288
3233
 
3289
3234
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3290
- inline _LIBCPP_HIDE_FROM_ABI
3235
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
3291
3236
  __val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>, __scalar_expr<typename _Expr::value_type>, _Expr> >
3292
3237
  pow(const typename _Expr::value_type& __x, const _Expr& __y) {
3293
3238
  typedef typename _Expr::value_type value_type;
@@ -3296,7 +3241,7 @@ pow(const typename _Expr::value_type& __x, const _Expr& __y) {
3296
3241
  }
3297
3242
 
3298
3243
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3299
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sin_expr<typename _Expr::value_type>, _Expr> >
3244
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sin_expr<typename _Expr::value_type>, _Expr> >
3300
3245
  sin(const _Expr& __x) {
3301
3246
  typedef typename _Expr::value_type value_type;
3302
3247
  typedef _UnaryOp<__sin_expr<value_type>, _Expr> _Op;
@@ -3304,7 +3249,7 @@ sin(const _Expr& __x) {
3304
3249
  }
3305
3250
 
3306
3251
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3307
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sinh_expr<typename _Expr::value_type>, _Expr> >
3252
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sinh_expr<typename _Expr::value_type>, _Expr> >
3308
3253
  sinh(const _Expr& __x) {
3309
3254
  typedef typename _Expr::value_type value_type;
3310
3255
  typedef _UnaryOp<__sinh_expr<value_type>, _Expr> _Op;
@@ -3312,7 +3257,7 @@ sinh(const _Expr& __x) {
3312
3257
  }
3313
3258
 
3314
3259
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3315
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sqrt_expr<typename _Expr::value_type>, _Expr> >
3260
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__sqrt_expr<typename _Expr::value_type>, _Expr> >
3316
3261
  sqrt(const _Expr& __x) {
3317
3262
  typedef typename _Expr::value_type value_type;
3318
3263
  typedef _UnaryOp<__sqrt_expr<value_type>, _Expr> _Op;
@@ -3320,7 +3265,7 @@ sqrt(const _Expr& __x) {
3320
3265
  }
3321
3266
 
3322
3267
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3323
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tan_expr<typename _Expr::value_type>, _Expr> >
3268
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tan_expr<typename _Expr::value_type>, _Expr> >
3324
3269
  tan(const _Expr& __x) {
3325
3270
  typedef typename _Expr::value_type value_type;
3326
3271
  typedef _UnaryOp<__tan_expr<value_type>, _Expr> _Op;
@@ -3328,7 +3273,7 @@ tan(const _Expr& __x) {
3328
3273
  }
3329
3274
 
3330
3275
  template <class _Expr, __enable_if_t<__is_val_expr<_Expr>::value, int> = 0>
3331
- inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tanh_expr<typename _Expr::value_type>, _Expr> >
3276
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI __val_expr<_UnaryOp<__tanh_expr<typename _Expr::value_type>, _Expr> >
3332
3277
  tanh(const _Expr& __x) {
3333
3278
  typedef typename _Expr::value_type value_type;
3334
3279
  typedef _UnaryOp<__tanh_expr<value_type>, _Expr> _Op;
@@ -3336,22 +3281,22 @@ tanh(const _Expr& __x) {
3336
3281
  }
3337
3282
 
3338
3283
  template <class _Tp>
3339
- inline _LIBCPP_HIDE_FROM_ABI _Tp* begin(valarray<_Tp>& __v) {
3284
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _Tp* begin(valarray<_Tp>& __v) {
3340
3285
  return __v.__begin_;
3341
3286
  }
3342
3287
 
3343
3288
  template <class _Tp>
3344
- inline _LIBCPP_HIDE_FROM_ABI const _Tp* begin(const valarray<_Tp>& __v) {
3289
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI const _Tp* begin(const valarray<_Tp>& __v) {
3345
3290
  return __v.__begin_;
3346
3291
  }
3347
3292
 
3348
3293
  template <class _Tp>
3349
- inline _LIBCPP_HIDE_FROM_ABI _Tp* end(valarray<_Tp>& __v) {
3294
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _Tp* end(valarray<_Tp>& __v) {
3350
3295
  return __v.__end_;
3351
3296
  }
3352
3297
 
3353
3298
  template <class _Tp>
3354
- inline _LIBCPP_HIDE_FROM_ABI const _Tp* end(const valarray<_Tp>& __v) {
3299
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI const _Tp* end(const valarray<_Tp>& __v) {
3355
3300
  return __v.__end_;
3356
3301
  }
3357
3302