cuda-cccl 0.1.3.1.0.dev1486__cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
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.
Potentially problematic release.
This version of cuda-cccl might be problematic. Click here for more details.
- cuda/cccl/__init__.py +14 -0
- cuda/cccl/cooperative/__init__.py +3 -0
- cuda/cccl/cooperative/experimental/__init__.py +8 -0
- cuda/cccl/cooperative/experimental/_caching.py +48 -0
- cuda/cccl/cooperative/experimental/_common.py +276 -0
- cuda/cccl/cooperative/experimental/_nvrtc.py +91 -0
- cuda/cccl/cooperative/experimental/_scan_op.py +181 -0
- cuda/cccl/cooperative/experimental/_types.py +953 -0
- cuda/cccl/cooperative/experimental/_typing.py +107 -0
- cuda/cccl/cooperative/experimental/block/__init__.py +33 -0
- cuda/cccl/cooperative/experimental/block/_block_load_store.py +215 -0
- cuda/cccl/cooperative/experimental/block/_block_merge_sort.py +125 -0
- cuda/cccl/cooperative/experimental/block/_block_radix_sort.py +214 -0
- cuda/cccl/cooperative/experimental/block/_block_reduce.py +294 -0
- cuda/cccl/cooperative/experimental/block/_block_scan.py +983 -0
- cuda/cccl/cooperative/experimental/warp/__init__.py +9 -0
- cuda/cccl/cooperative/experimental/warp/_warp_merge_sort.py +98 -0
- cuda/cccl/cooperative/experimental/warp/_warp_reduce.py +153 -0
- cuda/cccl/cooperative/experimental/warp/_warp_scan.py +78 -0
- cuda/cccl/headers/__init__.py +7 -0
- cuda/cccl/headers/include/__init__.py +1 -0
- cuda/cccl/headers/include/cub/agent/agent_adjacent_difference.cuh +261 -0
- cuda/cccl/headers/include/cub/agent/agent_batch_memcpy.cuh +1181 -0
- cuda/cccl/headers/include/cub/agent/agent_for.cuh +84 -0
- cuda/cccl/headers/include/cub/agent/agent_histogram.cuh +919 -0
- cuda/cccl/headers/include/cub/agent/agent_merge.cuh +227 -0
- cuda/cccl/headers/include/cub/agent/agent_merge_sort.cuh +752 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_downsweep.cuh +766 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_histogram.cuh +286 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_onesweep.cuh +704 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_upsweep.cuh +557 -0
- cuda/cccl/headers/include/cub/agent/agent_reduce.cuh +678 -0
- cuda/cccl/headers/include/cub/agent/agent_reduce_by_key.cuh +804 -0
- cuda/cccl/headers/include/cub/agent/agent_rle.cuh +997 -0
- cuda/cccl/headers/include/cub/agent/agent_scan.cuh +561 -0
- cuda/cccl/headers/include/cub/agent/agent_scan_by_key.cuh +473 -0
- cuda/cccl/headers/include/cub/agent/agent_segmented_radix_sort.cuh +292 -0
- cuda/cccl/headers/include/cub/agent/agent_select_if.cuh +1032 -0
- cuda/cccl/headers/include/cub/agent/agent_sub_warp_merge_sort.cuh +342 -0
- cuda/cccl/headers/include/cub/agent/agent_three_way_partition.cuh +592 -0
- cuda/cccl/headers/include/cub/agent/agent_unique_by_key.cuh +614 -0
- cuda/cccl/headers/include/cub/agent/single_pass_scan_operators.cuh +1346 -0
- cuda/cccl/headers/include/cub/block/block_adjacent_difference.cuh +965 -0
- cuda/cccl/headers/include/cub/block/block_discontinuity.cuh +1217 -0
- cuda/cccl/headers/include/cub/block/block_exchange.cuh +1306 -0
- cuda/cccl/headers/include/cub/block/block_histogram.cuh +420 -0
- cuda/cccl/headers/include/cub/block/block_load.cuh +1259 -0
- cuda/cccl/headers/include/cub/block/block_merge_sort.cuh +787 -0
- cuda/cccl/headers/include/cub/block/block_radix_rank.cuh +1218 -0
- cuda/cccl/headers/include/cub/block/block_radix_sort.cuh +2193 -0
- cuda/cccl/headers/include/cub/block/block_raking_layout.cuh +150 -0
- cuda/cccl/headers/include/cub/block/block_reduce.cuh +629 -0
- cuda/cccl/headers/include/cub/block/block_run_length_decode.cuh +437 -0
- cuda/cccl/headers/include/cub/block/block_scan.cuh +2600 -0
- cuda/cccl/headers/include/cub/block/block_shuffle.cuh +346 -0
- cuda/cccl/headers/include/cub/block/block_store.cuh +1246 -0
- cuda/cccl/headers/include/cub/block/radix_rank_sort_operations.cuh +620 -0
- cuda/cccl/headers/include/cub/block/specializations/block_histogram_atomic.cuh +86 -0
- cuda/cccl/headers/include/cub/block/specializations/block_histogram_sort.cuh +240 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_raking.cuh +252 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh +238 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_warp_reductions.cuh +259 -0
- cuda/cccl/headers/include/cub/block/specializations/block_scan_raking.cuh +790 -0
- cuda/cccl/headers/include/cub/block/specializations/block_scan_warp_scans.cuh +538 -0
- cuda/cccl/headers/include/cub/config.cuh +60 -0
- cuda/cccl/headers/include/cub/cub.cuh +112 -0
- cuda/cccl/headers/include/cub/detail/array_utils.cuh +77 -0
- cuda/cccl/headers/include/cub/detail/choose_offset.cuh +155 -0
- cuda/cccl/headers/include/cub/detail/detect_cuda_runtime.cuh +93 -0
- cuda/cccl/headers/include/cub/detail/device_double_buffer.cuh +96 -0
- cuda/cccl/headers/include/cub/detail/fast_modulo_division.cuh +246 -0
- cuda/cccl/headers/include/cub/detail/launcher/cuda_driver.cuh +120 -0
- cuda/cccl/headers/include/cub/detail/launcher/cuda_runtime.cuh +74 -0
- cuda/cccl/headers/include/cub/detail/mdspan_utils.cuh +118 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/README.md +71 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/array.h +68 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/json.h +61 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/object.h +100 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/string.h +71 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/value.h +93 -0
- cuda/cccl/headers/include/cub/detail/ptx-json-parser.h +63 -0
- cuda/cccl/headers/include/cub/detail/rfa.cuh +724 -0
- cuda/cccl/headers/include/cub/detail/strong_load.cuh +189 -0
- cuda/cccl/headers/include/cub/detail/strong_store.cuh +220 -0
- cuda/cccl/headers/include/cub/detail/temporary_storage.cuh +355 -0
- cuda/cccl/headers/include/cub/detail/type_traits.cuh +206 -0
- cuda/cccl/headers/include/cub/detail/uninitialized_copy.cuh +72 -0
- cuda/cccl/headers/include/cub/detail/unsafe_bitcast.cuh +56 -0
- cuda/cccl/headers/include/cub/device/device_adjacent_difference.cuh +596 -0
- cuda/cccl/headers/include/cub/device/device_copy.cuh +187 -0
- cuda/cccl/headers/include/cub/device/device_for.cuh +994 -0
- cuda/cccl/headers/include/cub/device/device_histogram.cuh +1507 -0
- cuda/cccl/headers/include/cub/device/device_memcpy.cuh +195 -0
- cuda/cccl/headers/include/cub/device/device_merge.cuh +202 -0
- cuda/cccl/headers/include/cub/device/device_merge_sort.cuh +979 -0
- cuda/cccl/headers/include/cub/device/device_partition.cuh +664 -0
- cuda/cccl/headers/include/cub/device/device_radix_sort.cuh +3431 -0
- cuda/cccl/headers/include/cub/device/device_reduce.cuh +1387 -0
- cuda/cccl/headers/include/cub/device/device_run_length_encode.cuh +368 -0
- cuda/cccl/headers/include/cub/device/device_scan.cuh +1901 -0
- cuda/cccl/headers/include/cub/device/device_segmented_radix_sort.cuh +1496 -0
- cuda/cccl/headers/include/cub/device/device_segmented_reduce.cuh +1512 -0
- cuda/cccl/headers/include/cub/device/device_segmented_sort.cuh +2811 -0
- cuda/cccl/headers/include/cub/device/device_select.cuh +1224 -0
- cuda/cccl/headers/include/cub/device/device_transform.cuh +313 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_adjacent_difference.cuh +314 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_advance_iterators.cuh +109 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_batch_memcpy.cuh +718 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_common.cuh +45 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_for.cuh +197 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_histogram.cuh +1051 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_merge.cuh +305 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_merge_sort.cuh +473 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_radix_sort.cuh +1748 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce.cuh +1316 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_by_key.cuh +625 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_deterministic.cuh +502 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_rle.cuh +548 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_scan.cuh +497 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_scan_by_key.cuh +598 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_segmented_sort.cuh +1374 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_select_if.cuh +838 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce.cuh +341 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce_by_key.cuh +439 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_three_way_partition.cuh +552 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_transform.cuh +397 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_unique_by_key.cuh +543 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/for_each.cuh +218 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/histogram.cuh +505 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/merge_sort.cuh +338 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/radix_sort.cuh +799 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/reduce.cuh +523 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/scan.cuh +194 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/segmented_reduce.cuh +330 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/transform.cuh +437 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/unique_by_key.cuh +176 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_adjacent_difference.cuh +70 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_batch_memcpy.cuh +121 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_for.cuh +63 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_histogram.cuh +278 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge.cuh +91 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge_sort.cuh +118 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_radix_sort.cuh +1068 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_reduce.cuh +397 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_reduce_by_key.cuh +945 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_run_length_encode.cuh +675 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan.cuh +555 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan_by_key.cuh +1013 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_segmented_sort.cuh +249 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_select_if.cuh +1587 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_three_way_partition.cuh +407 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_transform.cuh +283 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_unique_by_key.cuh +874 -0
- cuda/cccl/headers/include/cub/grid/grid_even_share.cuh +215 -0
- cuda/cccl/headers/include/cub/grid/grid_mapping.cuh +106 -0
- cuda/cccl/headers/include/cub/grid/grid_queue.cuh +202 -0
- cuda/cccl/headers/include/cub/iterator/arg_index_input_iterator.cuh +256 -0
- cuda/cccl/headers/include/cub/iterator/cache_modified_input_iterator.cuh +238 -0
- cuda/cccl/headers/include/cub/iterator/cache_modified_output_iterator.cuh +252 -0
- cuda/cccl/headers/include/cub/iterator/tex_obj_input_iterator.cuh +322 -0
- cuda/cccl/headers/include/cub/thread/thread_load.cuh +347 -0
- cuda/cccl/headers/include/cub/thread/thread_operators.cuh +629 -0
- cuda/cccl/headers/include/cub/thread/thread_reduce.cuh +504 -0
- cuda/cccl/headers/include/cub/thread/thread_scan.cuh +340 -0
- cuda/cccl/headers/include/cub/thread/thread_search.cuh +198 -0
- cuda/cccl/headers/include/cub/thread/thread_simd.cuh +406 -0
- cuda/cccl/headers/include/cub/thread/thread_sort.cuh +101 -0
- cuda/cccl/headers/include/cub/thread/thread_store.cuh +364 -0
- cuda/cccl/headers/include/cub/util_allocator.cuh +921 -0
- cuda/cccl/headers/include/cub/util_arch.cuh +163 -0
- cuda/cccl/headers/include/cub/util_cpp_dialect.cuh +95 -0
- cuda/cccl/headers/include/cub/util_debug.cuh +207 -0
- cuda/cccl/headers/include/cub/util_device.cuh +779 -0
- cuda/cccl/headers/include/cub/util_macro.cuh +91 -0
- cuda/cccl/headers/include/cub/util_math.cuh +115 -0
- cuda/cccl/headers/include/cub/util_namespace.cuh +176 -0
- cuda/cccl/headers/include/cub/util_policy_wrapper_t.cuh +55 -0
- cuda/cccl/headers/include/cub/util_ptx.cuh +513 -0
- cuda/cccl/headers/include/cub/util_temporary_storage.cuh +122 -0
- cuda/cccl/headers/include/cub/util_type.cuh +1111 -0
- cuda/cccl/headers/include/cub/util_vsmem.cuh +251 -0
- cuda/cccl/headers/include/cub/version.cuh +89 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_exchange_shfl.cuh +329 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_exchange_smem.cuh +177 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_shfl.cuh +729 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_smem.cuh +405 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_scan_shfl.cuh +688 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_scan_smem.cuh +437 -0
- cuda/cccl/headers/include/cub/warp/warp_exchange.cuh +405 -0
- cuda/cccl/headers/include/cub/warp/warp_load.cuh +614 -0
- cuda/cccl/headers/include/cub/warp/warp_merge_sort.cuh +169 -0
- cuda/cccl/headers/include/cub/warp/warp_reduce.cuh +822 -0
- cuda/cccl/headers/include/cub/warp/warp_scan.cuh +1156 -0
- cuda/cccl/headers/include/cub/warp/warp_store.cuh +520 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/access_property.h +169 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/access_property_encoding.h +172 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/annotated_ptr.h +210 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/annotated_ptr_base.h +100 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/apply_access_property.h +84 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/associate_access_property.h +127 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/createpolicy.h +209 -0
- cuda/cccl/headers/include/cuda/__atomic/atomic.h +145 -0
- cuda/cccl/headers/include/cuda/__barrier/aligned_size.h +61 -0
- cuda/cccl/headers/include/cuda/__barrier/async_contract_fulfillment.h +39 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier.h +66 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_arrive_tx.h +100 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_block_scope.h +454 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_expect_tx.h +72 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_native_handle.h +45 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_thread_scope.h +61 -0
- cuda/cccl/headers/include/cuda/__bit/bit_reverse.h +171 -0
- cuda/cccl/headers/include/cuda/__bit/bitfield.h +122 -0
- cuda/cccl/headers/include/cuda/__bit/bitmask.h +88 -0
- cuda/cccl/headers/include/cuda/__cccl_config +36 -0
- cuda/cccl/headers/include/cuda/__cmath/ceil_div.h +126 -0
- cuda/cccl/headers/include/cuda/__cmath/ilog.h +195 -0
- cuda/cccl/headers/include/cuda/__cmath/ipow.h +107 -0
- cuda/cccl/headers/include/cuda/__cmath/isqrt.h +80 -0
- cuda/cccl/headers/include/cuda/__cmath/neg.h +47 -0
- cuda/cccl/headers/include/cuda/__cmath/pow2.h +74 -0
- cuda/cccl/headers/include/cuda/__cmath/round_down.h +104 -0
- cuda/cccl/headers/include/cuda/__cmath/round_up.h +106 -0
- cuda/cccl/headers/include/cuda/__cmath/uabs.h +57 -0
- cuda/cccl/headers/include/cuda/__execution/determinism.h +90 -0
- cuda/cccl/headers/include/cuda/__execution/require.h +67 -0
- cuda/cccl/headers/include/cuda/__execution/tune.h +62 -0
- cuda/cccl/headers/include/cuda/__functional/address_stability.h +131 -0
- cuda/cccl/headers/include/cuda/__functional/for_each_canceled.h +279 -0
- cuda/cccl/headers/include/cuda/__functional/get_device_address.h +58 -0
- cuda/cccl/headers/include/cuda/__functional/maximum.h +58 -0
- cuda/cccl/headers/include/cuda/__functional/minimum.h +58 -0
- cuda/cccl/headers/include/cuda/__functional/proclaim_return_type.h +108 -0
- cuda/cccl/headers/include/cuda/__fwd/barrier.h +38 -0
- cuda/cccl/headers/include/cuda/__fwd/barrier_native_handle.h +42 -0
- cuda/cccl/headers/include/cuda/__fwd/get_stream.h +38 -0
- cuda/cccl/headers/include/cuda/__fwd/pipeline.h +37 -0
- cuda/cccl/headers/include/cuda/__iterator/constant_iterator.h +261 -0
- cuda/cccl/headers/include/cuda/__iterator/counting_iterator.h +407 -0
- cuda/cccl/headers/include/cuda/__iterator/discard_iterator.h +314 -0
- cuda/cccl/headers/include/cuda/__iterator/strided_iterator.h +323 -0
- cuda/cccl/headers/include/cuda/__iterator/transform_iterator.h +481 -0
- cuda/cccl/headers/include/cuda/__latch/latch.h +44 -0
- cuda/cccl/headers/include/cuda/__mdspan/host_device_accessor.h +457 -0
- cuda/cccl/headers/include/cuda/__mdspan/host_device_mdspan.h +63 -0
- cuda/cccl/headers/include/cuda/__mdspan/restrict_accessor.h +123 -0
- cuda/cccl/headers/include/cuda/__mdspan/restrict_mdspan.h +51 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/check_preconditions.h +79 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/completion_mechanism.h +47 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_bulk_shared_global.h +60 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_fallback.h +72 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_shared_global.h +98 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/dispatch_memcpy_async.h +162 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/is_local_smem_barrier.h +49 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async.h +179 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async_barrier.h +99 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async_tx.h +99 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_completion.h +170 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/try_get_barrier_handle.h +59 -0
- cuda/cccl/headers/include/cuda/__memory/address_space.h +86 -0
- cuda/cccl/headers/include/cuda/__memory_resource/get_memory_resource.h +94 -0
- cuda/cccl/headers/include/cuda/__memory_resource/get_property.h +158 -0
- cuda/cccl/headers/include/cuda/__memory_resource/properties.h +73 -0
- cuda/cccl/headers/include/cuda/__memory_resource/resource.h +129 -0
- cuda/cccl/headers/include/cuda/__memory_resource/resource_ref.h +653 -0
- cuda/cccl/headers/include/cuda/__numeric/narrow.h +108 -0
- cuda/cccl/headers/include/cuda/__numeric/overflow_cast.h +57 -0
- cuda/cccl/headers/include/cuda/__numeric/overflow_result.h +43 -0
- cuda/cccl/headers/include/cuda/__nvtx/nvtx.h +101 -0
- cuda/cccl/headers/include/cuda/__nvtx/nvtx3.h +2982 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/barrier_cluster.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/bfind.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/bmsk.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/clusterlaunchcontrol.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk.h +44 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_commit_group.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_tensor.h +45 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_wait_group.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_mbarrier_arrive.h +42 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_reduce_async_bulk.h +60 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/elect_sync.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/exit.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/fence.h +49 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/barrier_cluster.h +115 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/bfind.h +190 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/bmsk.h +54 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/clusterlaunchcontrol.h +240 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk.h +193 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_commit_group.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_multicast.h +52 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor.h +957 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_gather_scatter.h +288 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_multicast.h +596 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_wait_group.h +46 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive.h +26 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive_noinc.h +26 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk.h +1445 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_bf16.h +132 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_f16.h +117 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_tensor.h +601 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/elect_sync.h +36 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/exit.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence.h +208 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_mbarrier_init.h +31 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_alias.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_async.h +58 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_async_generic_sync_restrict.h +62 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_tensormap_generic.h +101 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_sync_restrict.h +62 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/get_sreg.h +949 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/getctarank.h +32 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/ld.h +15074 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive.h +385 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive_expect_tx.h +176 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive_no_complete.h +34 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_expect_tx.h +94 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_init.h +27 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_test_wait.h +137 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_test_wait_parity.h +138 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_try_wait.h +280 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_try_wait_parity.h +282 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_ld_reduce.h +2148 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_red.h +1272 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_st.h +228 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/prmt.h +230 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/red_async.h +430 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/shl.h +96 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/shr.h +168 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st.h +1830 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st_async.h +123 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st_bulk.h +31 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_alloc.h +105 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_commit.h +81 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_cp.h +612 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_fence.h +44 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_ld.h +4446 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_mma.h +4061 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_mma_ws.h +6438 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_shift.h +36 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_st.h +4582 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_wait.h +44 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tensormap_cp_fenceproxy.h +67 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tensormap_replace.h +750 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/trap.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/get_sreg.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/getctarank.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/ld.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_arrive.h +45 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_expect_tx.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_init.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_wait.h +46 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_ld_reduce.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_red.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/prmt.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/red_async.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shfl_sync.h +275 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shl.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shr.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st_async.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st_bulk.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_alloc.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_commit.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_cp.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_fence.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_ld.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_mma.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_mma_ws.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_shift.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_wait.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tensormap_cp_fenceproxy.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tensormap_replace.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/trap.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/ptx_dot_variants.h +230 -0
- cuda/cccl/headers/include/cuda/__ptx/ptx_helper_functions.h +151 -0
- cuda/cccl/headers/include/cuda/__semaphore/counting_semaphore.h +53 -0
- cuda/cccl/headers/include/cuda/__stream/get_stream.h +97 -0
- cuda/cccl/headers/include/cuda/__stream/stream_ref.h +165 -0
- cuda/cccl/headers/include/cuda/__type_traits/is_floating_point.h +47 -0
- cuda/cccl/headers/include/cuda/__warp/lane_mask.h +326 -0
- cuda/cccl/headers/include/cuda/__warp/warp_match_all.h +66 -0
- cuda/cccl/headers/include/cuda/__warp/warp_shuffle.h +249 -0
- cuda/cccl/headers/include/cuda/access_property +26 -0
- cuda/cccl/headers/include/cuda/annotated_ptr +29 -0
- cuda/cccl/headers/include/cuda/atomic +27 -0
- cuda/cccl/headers/include/cuda/barrier +262 -0
- cuda/cccl/headers/include/cuda/bit +29 -0
- cuda/cccl/headers/include/cuda/cmath +35 -0
- cuda/cccl/headers/include/cuda/discard_memory +61 -0
- cuda/cccl/headers/include/cuda/functional +31 -0
- cuda/cccl/headers/include/cuda/iterator +31 -0
- cuda/cccl/headers/include/cuda/latch +27 -0
- cuda/cccl/headers/include/cuda/mdspan +28 -0
- cuda/cccl/headers/include/cuda/memory +28 -0
- cuda/cccl/headers/include/cuda/memory_resource +41 -0
- cuda/cccl/headers/include/cuda/numeric +28 -0
- cuda/cccl/headers/include/cuda/pipeline +579 -0
- cuda/cccl/headers/include/cuda/ptx +118 -0
- cuda/cccl/headers/include/cuda/semaphore +31 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/adjacent_find.h +60 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/all_of.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/any_of.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/binary_search.h +52 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/clamp.h +48 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/comp.h +64 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/comp_ref_type.h +85 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy.h +143 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_backward.h +79 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_if.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_n.h +74 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/count.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/count_if.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/equal.h +129 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/equal_range.h +101 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/fill.h +58 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/fill_n.h +51 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find.h +64 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_end.h +225 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_first_of.h +73 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_if.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_if_not.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/for_each.h +42 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/for_each_n.h +48 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/generate.h +41 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/generate_n.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/half_positive.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/includes.h +92 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_heap.h +51 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_heap_until.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_partitioned.h +58 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_permutation.h +252 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_sorted.h +50 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_sorted_until.h +69 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/iter_swap.h +82 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/iterator_operations.h +188 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/lexicographical_compare.h +68 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/lower_bound.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/make_heap.h +72 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/make_projected.h +96 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/max.h +62 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/max_element.h +70 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/merge.h +89 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/min.h +62 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/min_element.h +88 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/minmax.h +71 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/minmax_element.h +141 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/mismatch.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/move.h +88 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/move_backward.h +84 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/next_permutation.h +89 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/none_of.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partial_sort.h +102 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partial_sort_copy.h +122 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition.h +121 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition_copy.h +59 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition_point.h +61 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/pop_heap.h +95 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/prev_permutation.h +89 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/push_heap.h +103 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_iterator_concept.h +65 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_min.h +99 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_min_element.h +69 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove.h +55 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_copy.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_copy_if.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_if.h +56 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_copy.h +54 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_copy_if.h +50 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_if.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/reverse.h +81 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/reverse_copy.h +43 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/rotate.h +264 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/rotate_copy.h +40 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/search.h +185 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/search_n.h +163 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_difference.h +95 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_intersection.h +123 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_symmetric_difference.h +135 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_union.h +129 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/shift_left.h +84 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/shift_right.h +144 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/sift_down.h +139 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/sort_heap.h +72 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/swap_ranges.h +78 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/transform.h +59 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unique.h +77 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unique_copy.h +156 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unwrap_iter.h +96 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unwrap_range.h +127 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/upper_bound.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm_ +26 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/common.h +192 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/owned.h +138 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/reference.h +118 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/common.h +58 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_local.h +218 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_derived.h +401 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_generated.h +3971 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_generated_helper.h +177 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/host.h +211 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions.h +33 -0
- cuda/cccl/headers/include/cuda/std/__atomic/order.h +159 -0
- cuda/cccl/headers/include/cuda/std/__atomic/platform/msvc_to_builtins.h +654 -0
- cuda/cccl/headers/include/cuda/std/__atomic/platform.h +93 -0
- cuda/cccl/headers/include/cuda/std/__atomic/scopes.h +105 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/base.h +250 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/common.h +105 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/locked.h +225 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/reference.h +73 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/small.h +228 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types.h +52 -0
- cuda/cccl/headers/include/cuda/std/__atomic/wait/notify_wait.h +95 -0
- cuda/cccl/headers/include/cuda/std/__atomic/wait/polling.h +65 -0
- cuda/cccl/headers/include/cuda/std/__barrier/barrier.h +227 -0
- cuda/cccl/headers/include/cuda/std/__barrier/empty_completion.h +37 -0
- cuda/cccl/headers/include/cuda/std/__barrier/poll_tester.h +84 -0
- cuda/cccl/headers/include/cuda/std/__bit/bit_cast.h +77 -0
- cuda/cccl/headers/include/cuda/std/__bit/byteswap.h +183 -0
- cuda/cccl/headers/include/cuda/std/__bit/countl.h +167 -0
- cuda/cccl/headers/include/cuda/std/__bit/countr.h +185 -0
- cuda/cccl/headers/include/cuda/std/__bit/endian.h +39 -0
- cuda/cccl/headers/include/cuda/std/__bit/has_single_bit.h +43 -0
- cuda/cccl/headers/include/cuda/std/__bit/integral.h +124 -0
- cuda/cccl/headers/include/cuda/std/__bit/popcount.h +154 -0
- cuda/cccl/headers/include/cuda/std/__bit/reference.h +1274 -0
- cuda/cccl/headers/include/cuda/std/__bit/rotate.h +94 -0
- cuda/cccl/headers/include/cuda/std/__cccl/architecture.h +78 -0
- cuda/cccl/headers/include/cuda/std/__cccl/assert.h +146 -0
- cuda/cccl/headers/include/cuda/std/__cccl/attributes.h +207 -0
- cuda/cccl/headers/include/cuda/std/__cccl/builtin.h +1343 -0
- cuda/cccl/headers/include/cuda/std/__cccl/compiler.h +216 -0
- cuda/cccl/headers/include/cuda/std/__cccl/cuda_capabilities.h +43 -0
- cuda/cccl/headers/include/cuda/std/__cccl/cuda_toolkit.h +53 -0
- cuda/cccl/headers/include/cuda/std/__cccl/deprecated.h +69 -0
- cuda/cccl/headers/include/cuda/std/__cccl/diagnostic.h +129 -0
- cuda/cccl/headers/include/cuda/std/__cccl/dialect.h +124 -0
- cuda/cccl/headers/include/cuda/std/__cccl/epilogue.h +326 -0
- cuda/cccl/headers/include/cuda/std/__cccl/exceptions.h +35 -0
- cuda/cccl/headers/include/cuda/std/__cccl/execution_space.h +68 -0
- cuda/cccl/headers/include/cuda/std/__cccl/extended_data_types.h +129 -0
- cuda/cccl/headers/include/cuda/std/__cccl/is_non_narrowing_convertible.h +73 -0
- cuda/cccl/headers/include/cuda/std/__cccl/os.h +48 -0
- cuda/cccl/headers/include/cuda/std/__cccl/preprocessor.h +1234 -0
- cuda/cccl/headers/include/cuda/std/__cccl/prologue.h +267 -0
- cuda/cccl/headers/include/cuda/std/__cccl/ptx_isa.h +176 -0
- cuda/cccl/headers/include/cuda/std/__cccl/rtti.h +72 -0
- cuda/cccl/headers/include/cuda/std/__cccl/sequence_access.h +87 -0
- cuda/cccl/headers/include/cuda/std/__cccl/system_header.h +38 -0
- cuda/cccl/headers/include/cuda/std/__cccl/unreachable.h +31 -0
- cuda/cccl/headers/include/cuda/std/__cccl/version.h +26 -0
- cuda/cccl/headers/include/cuda/std/__cccl/visibility.h +112 -0
- cuda/cccl/headers/include/cuda/std/__charconv/chars_format.h +81 -0
- cuda/cccl/headers/include/cuda/std/__charconv/from_chars_result.h +56 -0
- cuda/cccl/headers/include/cuda/std/__charconv/to_chars.h +148 -0
- cuda/cccl/headers/include/cuda/std/__charconv/to_chars_result.h +56 -0
- cuda/cccl/headers/include/cuda/std/__charconv_ +30 -0
- cuda/cccl/headers/include/cuda/std/__cmath/abs.h +240 -0
- cuda/cccl/headers/include/cuda/std/__cmath/copysign.h +187 -0
- cuda/cccl/headers/include/cuda/std/__cmath/exponential_functions.h +620 -0
- cuda/cccl/headers/include/cuda/std/__cmath/fpclassify.h +207 -0
- cuda/cccl/headers/include/cuda/std/__cmath/gamma.h +181 -0
- cuda/cccl/headers/include/cuda/std/__cmath/hyperbolic_functions.h +250 -0
- cuda/cccl/headers/include/cuda/std/__cmath/hypot.h +213 -0
- cuda/cccl/headers/include/cuda/std/__cmath/inverse_hyperbolic_functions.h +250 -0
- cuda/cccl/headers/include/cuda/std/__cmath/inverse_trigonometric_functions.h +323 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isfinite.h +163 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isinf.h +201 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isnan.h +176 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isnormal.h +129 -0
- cuda/cccl/headers/include/cuda/std/__cmath/lerp.h +106 -0
- cuda/cccl/headers/include/cuda/std/__cmath/logarithms.h +503 -0
- cuda/cccl/headers/include/cuda/std/__cmath/min_max.h +236 -0
- cuda/cccl/headers/include/cuda/std/__cmath/nvbf16.h +58 -0
- cuda/cccl/headers/include/cuda/std/__cmath/nvfp16.h +58 -0
- cuda/cccl/headers/include/cuda/std/__cmath/roots.h +180 -0
- cuda/cccl/headers/include/cuda/std/__cmath/rounding_functions.h +877 -0
- cuda/cccl/headers/include/cuda/std/__cmath/signbit.h +155 -0
- cuda/cccl/headers/include/cuda/std/__cmath/traits.h +170 -0
- cuda/cccl/headers/include/cuda/std/__cmath/trigonometric_functions.h +292 -0
- cuda/cccl/headers/include/cuda/std/__complex/nvbf16.h +351 -0
- cuda/cccl/headers/include/cuda/std/__complex/nvfp16.h +350 -0
- cuda/cccl/headers/include/cuda/std/__complex/vector_support.h +135 -0
- cuda/cccl/headers/include/cuda/std/__concepts/arithmetic.h +56 -0
- cuda/cccl/headers/include/cuda/std/__concepts/assignable.h +64 -0
- cuda/cccl/headers/include/cuda/std/__concepts/boolean_testable.h +63 -0
- cuda/cccl/headers/include/cuda/std/__concepts/class_or_enum.h +46 -0
- cuda/cccl/headers/include/cuda/std/__concepts/common_reference_with.h +69 -0
- cuda/cccl/headers/include/cuda/std/__concepts/common_with.h +82 -0
- cuda/cccl/headers/include/cuda/std/__concepts/concept_macros.h +274 -0
- cuda/cccl/headers/include/cuda/std/__concepts/constructible.h +107 -0
- cuda/cccl/headers/include/cuda/std/__concepts/convertible_to.h +71 -0
- cuda/cccl/headers/include/cuda/std/__concepts/copyable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__concepts/derived_from.h +57 -0
- cuda/cccl/headers/include/cuda/std/__concepts/destructible.h +76 -0
- cuda/cccl/headers/include/cuda/std/__concepts/different_from.h +38 -0
- cuda/cccl/headers/include/cuda/std/__concepts/equality_comparable.h +100 -0
- cuda/cccl/headers/include/cuda/std/__concepts/invocable.h +80 -0
- cuda/cccl/headers/include/cuda/std/__concepts/movable.h +58 -0
- cuda/cccl/headers/include/cuda/std/__concepts/predicate.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/regular.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/relation.h +77 -0
- cuda/cccl/headers/include/cuda/std/__concepts/same_as.h +42 -0
- cuda/cccl/headers/include/cuda/std/__concepts/semiregular.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/swappable.h +206 -0
- cuda/cccl/headers/include/cuda/std/__concepts/totally_ordered.h +101 -0
- cuda/cccl/headers/include/cuda/std/__cstddef/byte.h +113 -0
- cuda/cccl/headers/include/cuda/std/__cstddef/types.h +52 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/abs.h +57 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/aligned_alloc.h +66 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/div.h +96 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/malloc.h +69 -0
- cuda/cccl/headers/include/cuda/std/__cuda/api_wrapper.h +62 -0
- cuda/cccl/headers/include/cuda/std/__cuda/ensure_current_device.h +72 -0
- cuda/cccl/headers/include/cuda/std/__exception/cuda_error.h +143 -0
- cuda/cccl/headers/include/cuda/std/__exception/terminate.h +73 -0
- cuda/cccl/headers/include/cuda/std/__execution/env.h +436 -0
- cuda/cccl/headers/include/cuda/std/__expected/bad_expected_access.h +127 -0
- cuda/cccl/headers/include/cuda/std/__expected/expected.h +2002 -0
- cuda/cccl/headers/include/cuda/std/__expected/expected_base.h +1078 -0
- cuda/cccl/headers/include/cuda/std/__expected/unexpect.h +37 -0
- cuda/cccl/headers/include/cuda/std/__expected/unexpected.h +178 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/arithmetic.h +56 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/cast.h +809 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/cccl_fp.h +125 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/common_type.h +48 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/constants.h +172 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/conversion_rank_order.h +103 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/format.h +162 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/fp.h +39 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/mask.h +64 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/native_type.h +81 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/nvfp_types.h +58 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/overflow_handler.h +139 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/properties.h +229 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/storage.h +248 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/traits.h +172 -0
- cuda/cccl/headers/include/cuda/std/__functional/binary_function.h +63 -0
- cuda/cccl/headers/include/cuda/std/__functional/binary_negate.h +65 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind.h +352 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind_back.h +88 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind_front.h +73 -0
- cuda/cccl/headers/include/cuda/std/__functional/binder1st.h +75 -0
- cuda/cccl/headers/include/cuda/std/__functional/binder2nd.h +75 -0
- cuda/cccl/headers/include/cuda/std/__functional/compose.h +69 -0
- cuda/cccl/headers/include/cuda/std/__functional/default_searcher.h +75 -0
- cuda/cccl/headers/include/cuda/std/__functional/function.h +1277 -0
- cuda/cccl/headers/include/cuda/std/__functional/hash.h +650 -0
- cuda/cccl/headers/include/cuda/std/__functional/identity.h +61 -0
- cuda/cccl/headers/include/cuda/std/__functional/invoke.h +560 -0
- cuda/cccl/headers/include/cuda/std/__functional/is_transparent.h +43 -0
- cuda/cccl/headers/include/cuda/std/__functional/mem_fn.h +67 -0
- cuda/cccl/headers/include/cuda/std/__functional/mem_fun_ref.h +214 -0
- cuda/cccl/headers/include/cuda/std/__functional/not_fn.h +121 -0
- cuda/cccl/headers/include/cuda/std/__functional/operations.h +534 -0
- cuda/cccl/headers/include/cuda/std/__functional/perfect_forward.h +127 -0
- cuda/cccl/headers/include/cuda/std/__functional/pointer_to_binary_function.h +65 -0
- cuda/cccl/headers/include/cuda/std/__functional/pointer_to_unary_function.h +64 -0
- cuda/cccl/headers/include/cuda/std/__functional/ranges_operations.h +113 -0
- cuda/cccl/headers/include/cuda/std/__functional/reference_wrapper.h +113 -0
- cuda/cccl/headers/include/cuda/std/__functional/unary_function.h +62 -0
- cuda/cccl/headers/include/cuda/std/__functional/unary_negate.h +67 -0
- cuda/cccl/headers/include/cuda/std/__functional/unwrap_ref.h +56 -0
- cuda/cccl/headers/include/cuda/std/__functional/weak_result_type.h +278 -0
- cuda/cccl/headers/include/cuda/std/__fwd/allocator.h +35 -0
- cuda/cccl/headers/include/cuda/std/__fwd/array.h +36 -0
- cuda/cccl/headers/include/cuda/std/__fwd/char_traits.h +49 -0
- cuda/cccl/headers/include/cuda/std/__fwd/complex.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/fp.h +37 -0
- cuda/cccl/headers/include/cuda/std/__fwd/get.h +123 -0
- cuda/cccl/headers/include/cuda/std/__fwd/hash.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/iterator_traits.h +40 -0
- cuda/cccl/headers/include/cuda/std/__fwd/mdspan.h +73 -0
- cuda/cccl/headers/include/cuda/std/__fwd/memory_resource.h +37 -0
- cuda/cccl/headers/include/cuda/std/__fwd/pair.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/reference_wrapper.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/span.h +38 -0
- cuda/cccl/headers/include/cuda/std/__fwd/string.h +83 -0
- cuda/cccl/headers/include/cuda/std/__fwd/string_view.h +59 -0
- cuda/cccl/headers/include/cuda/std/__fwd/subrange.h +55 -0
- cuda/cccl/headers/include/cuda/std/__fwd/tuple.h +34 -0
- cuda/cccl/headers/include/cuda/std/__internal/cpp_dialect.h +44 -0
- cuda/cccl/headers/include/cuda/std/__internal/features.h +71 -0
- cuda/cccl/headers/include/cuda/std/__internal/namespaces.h +102 -0
- cuda/cccl/headers/include/cuda/std/__iterator/access.h +132 -0
- cuda/cccl/headers/include/cuda/std/__iterator/advance.h +230 -0
- cuda/cccl/headers/include/cuda/std/__iterator/back_insert_iterator.h +103 -0
- cuda/cccl/headers/include/cuda/std/__iterator/bounded_iter.h +264 -0
- cuda/cccl/headers/include/cuda/std/__iterator/concepts.h +608 -0
- cuda/cccl/headers/include/cuda/std/__iterator/counted_iterator.h +469 -0
- cuda/cccl/headers/include/cuda/std/__iterator/data.h +63 -0
- cuda/cccl/headers/include/cuda/std/__iterator/default_sentinel.h +36 -0
- cuda/cccl/headers/include/cuda/std/__iterator/distance.h +126 -0
- cuda/cccl/headers/include/cuda/std/__iterator/empty.h +54 -0
- cuda/cccl/headers/include/cuda/std/__iterator/erase_if_container.h +53 -0
- cuda/cccl/headers/include/cuda/std/__iterator/front_insert_iterator.h +98 -0
- cuda/cccl/headers/include/cuda/std/__iterator/incrementable_traits.h +152 -0
- cuda/cccl/headers/include/cuda/std/__iterator/indirectly_comparable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__iterator/insert_iterator.h +105 -0
- cuda/cccl/headers/include/cuda/std/__iterator/istream_iterator.h +141 -0
- cuda/cccl/headers/include/cuda/std/__iterator/istreambuf_iterator.h +161 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iter_move.h +161 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iter_swap.h +163 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iterator.h +44 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iterator_traits.h +935 -0
- cuda/cccl/headers/include/cuda/std/__iterator/mergeable.h +72 -0
- cuda/cccl/headers/include/cuda/std/__iterator/move_iterator.h +401 -0
- cuda/cccl/headers/include/cuda/std/__iterator/move_sentinel.h +73 -0
- cuda/cccl/headers/include/cuda/std/__iterator/next.h +102 -0
- cuda/cccl/headers/include/cuda/std/__iterator/ostream_iterator.h +99 -0
- cuda/cccl/headers/include/cuda/std/__iterator/ostreambuf_iterator.h +101 -0
- cuda/cccl/headers/include/cuda/std/__iterator/permutable.h +54 -0
- cuda/cccl/headers/include/cuda/std/__iterator/prev.h +92 -0
- cuda/cccl/headers/include/cuda/std/__iterator/projected.h +61 -0
- cuda/cccl/headers/include/cuda/std/__iterator/readable_traits.h +185 -0
- cuda/cccl/headers/include/cuda/std/__iterator/reverse_access.h +146 -0
- cuda/cccl/headers/include/cuda/std/__iterator/reverse_iterator.h +615 -0
- cuda/cccl/headers/include/cuda/std/__iterator/size.h +69 -0
- cuda/cccl/headers/include/cuda/std/__iterator/sortable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__iterator/unreachable_sentinel.h +88 -0
- cuda/cccl/headers/include/cuda/std/__iterator/wrap_iter.h +259 -0
- cuda/cccl/headers/include/cuda/std/__latch/latch.h +88 -0
- cuda/cccl/headers/include/cuda/std/__limits/numeric_limits.h +617 -0
- cuda/cccl/headers/include/cuda/std/__limits/numeric_limits_ext.h +781 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conj_if_needed.h +78 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conjugate_transposed.h +55 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conjugated.h +140 -0
- cuda/cccl/headers/include/cuda/std/__linalg/scaled.h +134 -0
- cuda/cccl/headers/include/cuda/std/__linalg/transposed.h +328 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/aligned_accessor.h +100 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/concepts.h +139 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/default_accessor.h +74 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/empty_base.h +363 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/extents.h +765 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_left.h +317 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_right.h +310 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_stride.h +615 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/mdspan.h +512 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_extents.h +193 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_helper.h +190 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_mapping.h +347 -0
- cuda/cccl/headers/include/cuda/std/__memory/addressof.h +64 -0
- cuda/cccl/headers/include/cuda/std/__memory/align.h +87 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocate_at_least.h +81 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocation_guard.h +100 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator.h +320 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_arg_t.h +84 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_destructor.h +59 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_traits.h +569 -0
- cuda/cccl/headers/include/cuda/std/__memory/assume_aligned.h +60 -0
- cuda/cccl/headers/include/cuda/std/__memory/builtin_new_allocator.h +87 -0
- cuda/cccl/headers/include/cuda/std/__memory/compressed_pair.h +231 -0
- cuda/cccl/headers/include/cuda/std/__memory/construct_at.h +248 -0
- cuda/cccl/headers/include/cuda/std/__memory/destruct_n.h +91 -0
- cuda/cccl/headers/include/cuda/std/__memory/is_sufficiently_aligned.h +43 -0
- cuda/cccl/headers/include/cuda/std/__memory/pointer_traits.h +260 -0
- cuda/cccl/headers/include/cuda/std/__memory/temporary_buffer.h +92 -0
- cuda/cccl/headers/include/cuda/std/__memory/uninitialized_algorithms.h +686 -0
- cuda/cccl/headers/include/cuda/std/__memory/unique_ptr.h +771 -0
- cuda/cccl/headers/include/cuda/std/__memory/uses_allocator.h +55 -0
- cuda/cccl/headers/include/cuda/std/__memory/voidify.h +41 -0
- cuda/cccl/headers/include/cuda/std/__memory_ +34 -0
- cuda/cccl/headers/include/cuda/std/__new/allocate.h +126 -0
- cuda/cccl/headers/include/cuda/std/__new/bad_alloc.h +57 -0
- cuda/cccl/headers/include/cuda/std/__new/launder.h +49 -0
- cuda/cccl/headers/include/cuda/std/__new_ +29 -0
- cuda/cccl/headers/include/cuda/std/__numeric/accumulate.h +57 -0
- cuda/cccl/headers/include/cuda/std/__numeric/adjacent_difference.h +72 -0
- cuda/cccl/headers/include/cuda/std/__numeric/exclusive_scan.h +66 -0
- cuda/cccl/headers/include/cuda/std/__numeric/gcd_lcm.h +80 -0
- cuda/cccl/headers/include/cuda/std/__numeric/inclusive_scan.h +73 -0
- cuda/cccl/headers/include/cuda/std/__numeric/inner_product.h +62 -0
- cuda/cccl/headers/include/cuda/std/__numeric/iota.h +42 -0
- cuda/cccl/headers/include/cuda/std/__numeric/midpoint.h +100 -0
- cuda/cccl/headers/include/cuda/std/__numeric/partial_sum.h +70 -0
- cuda/cccl/headers/include/cuda/std/__numeric/reduce.h +61 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_exclusive_scan.h +51 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_inclusive_scan.h +65 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_reduce.h +72 -0
- cuda/cccl/headers/include/cuda/std/__ranges/access.h +304 -0
- cuda/cccl/headers/include/cuda/std/__ranges/all.h +97 -0
- cuda/cccl/headers/include/cuda/std/__ranges/concepts.h +313 -0
- cuda/cccl/headers/include/cuda/std/__ranges/counted.h +90 -0
- cuda/cccl/headers/include/cuda/std/__ranges/dangling.h +54 -0
- cuda/cccl/headers/include/cuda/std/__ranges/data.h +136 -0
- cuda/cccl/headers/include/cuda/std/__ranges/empty.h +111 -0
- cuda/cccl/headers/include/cuda/std/__ranges/empty_view.h +77 -0
- cuda/cccl/headers/include/cuda/std/__ranges/enable_borrowed_range.h +41 -0
- cuda/cccl/headers/include/cuda/std/__ranges/enable_view.h +77 -0
- cuda/cccl/headers/include/cuda/std/__ranges/from_range.h +36 -0
- cuda/cccl/headers/include/cuda/std/__ranges/iota_view.h +271 -0
- cuda/cccl/headers/include/cuda/std/__ranges/movable_box.h +410 -0
- cuda/cccl/headers/include/cuda/std/__ranges/owning_view.h +161 -0
- cuda/cccl/headers/include/cuda/std/__ranges/range_adaptor.h +114 -0
- cuda/cccl/headers/include/cuda/std/__ranges/rbegin.h +175 -0
- cuda/cccl/headers/include/cuda/std/__ranges/ref_view.h +121 -0
- cuda/cccl/headers/include/cuda/std/__ranges/rend.h +182 -0
- cuda/cccl/headers/include/cuda/std/__ranges/repeat_view.h +343 -0
- cuda/cccl/headers/include/cuda/std/__ranges/single_view.h +156 -0
- cuda/cccl/headers/include/cuda/std/__ranges/size.h +200 -0
- cuda/cccl/headers/include/cuda/std/__ranges/subrange.h +513 -0
- cuda/cccl/headers/include/cuda/std/__ranges/take_while_view.h +263 -0
- cuda/cccl/headers/include/cuda/std/__ranges/transform_view.h +531 -0
- cuda/cccl/headers/include/cuda/std/__ranges/unwrap_end.h +53 -0
- cuda/cccl/headers/include/cuda/std/__ranges/view_interface.h +181 -0
- cuda/cccl/headers/include/cuda/std/__ranges/views.h +38 -0
- cuda/cccl/headers/include/cuda/std/__semaphore/atomic_semaphore.h +233 -0
- cuda/cccl/headers/include/cuda/std/__semaphore/counting_semaphore.h +51 -0
- cuda/cccl/headers/include/cuda/std/__string/char_traits.h +191 -0
- cuda/cccl/headers/include/cuda/std/__string/constexpr_c_functions.h +591 -0
- cuda/cccl/headers/include/cuda/std/__string/helper_functions.h +299 -0
- cuda/cccl/headers/include/cuda/std/__string/string_view.h +244 -0
- cuda/cccl/headers/include/cuda/std/__string_ +29 -0
- cuda/cccl/headers/include/cuda/std/__system_error/errc.h +51 -0
- cuda/cccl/headers/include/cuda/std/__system_error_ +26 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support.h +105 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_cuda.h +47 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_external.h +41 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_pthread.h +144 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_win32.h +87 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/ignore.h +51 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/make_tuple_types.h +98 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/sfinae_helpers.h +236 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/structured_bindings.h +216 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_element.h +70 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_indices.h +44 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like.h +90 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like_ext.h +73 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_size.h +79 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_types.h +35 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/vector_types.h +242 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_const.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_cv.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_lvalue_reference.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_pointer.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_rvalue_reference.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_volatile.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/aligned_storage.h +149 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/aligned_union.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/alignment_of.h +41 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/always_false.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/can_extract_key.h +69 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/common_reference.h +262 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/common_type.h +174 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/conditional.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/conjunction.h +67 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/copy_cv.h +50 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/copy_cvref.h +148 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/decay.h +83 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/dependent_type.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/disjunction.h +77 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/enable_if.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/extent.h +68 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/fold.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/has_unique_object_representation.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/has_virtual_destructor.h +51 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/integral_constant.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_abstract.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_aggregate.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_allocator.h +46 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_arithmetic.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_array.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_assignable.h +78 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_base_of.h +83 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_bounded_array.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_callable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_char_like_type.h +38 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_class.h +68 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_compound.h +54 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_const.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_constant_evaluated.h +51 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_constructible.h +174 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_convertible.h +214 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_copy_assignable.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_copy_constructible.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_core_convertible.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_corresponding_member.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_default_constructible.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_destructible.h +115 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_empty.h +73 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_enum.h +68 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_extended_arithmetic.h +38 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_extended_floating_point.h +81 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_final.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_floating_point.h +53 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_function.h +61 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_fundamental.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_implicitly_default_constructible.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_integer.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_integral.h +123 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_layout_compatible.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_literal_type.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_function_pointer.h +79 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_object_pointer.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_pointer.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_move_assignable.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_move_constructible.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_assignable.h +70 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_constructible.h +84 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_convertible.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_copy_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_copy_constructible.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_default_constructible.h +54 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_destructible.h +79 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_move_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_move_constructible.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_null_pointer.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_object.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_one_of.h +37 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pod.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer_interconvertible_base_of.h +87 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer_interconvertible_with_class.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_polymorphic.h +63 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_primary_template.h +119 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_reference.h +95 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_reference_wrapper.h +50 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_referenceable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_same.h +84 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_scalar.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_scoped_enum.h +49 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_signed.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_signed_integer.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_standard_layout.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_swappable.h +203 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivial.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_assignable.h +70 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_constructible.h +82 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copy_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copy_constructible.h +61 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copyable.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_default_constructible.h +55 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_destructible.h +73 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_move_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_move_constructible.h +58 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unbounded_array.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_union.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unsigned.h +66 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unsigned_integer.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_valid_expansion.h +41 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_void.h +55 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_volatile.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/lazy.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_const_lvalue_ref.h +36 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_nbit_int.h +107 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_signed.h +140 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_unsigned.h +151 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/maybe_const.h +36 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/nat.h +39 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/negation.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/num_bits.h +123 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/promote.h +163 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/rank.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/reference_constructs_from_temporary.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/reference_converts_from_temporary.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_all_extents.h +66 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_const.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_const_ref.h +37 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_cv.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_cvref.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_extent.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_pointer.h +73 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_reference.h +72 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_volatile.h +58 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/result_of.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_identity.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_list.h +1069 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_set.h +132 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/underlying_type.h +66 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/void_t.h +34 -0
- cuda/cccl/headers/include/cuda/std/__utility/as_const.h +52 -0
- cuda/cccl/headers/include/cuda/std/__utility/auto_cast.h +32 -0
- cuda/cccl/headers/include/cuda/std/__utility/cmp.h +116 -0
- cuda/cccl/headers/include/cuda/std/__utility/convert_to_integral.h +103 -0
- cuda/cccl/headers/include/cuda/std/__utility/declval.h +63 -0
- cuda/cccl/headers/include/cuda/std/__utility/exception_guard.h +162 -0
- cuda/cccl/headers/include/cuda/std/__utility/exchange.h +46 -0
- cuda/cccl/headers/include/cuda/std/__utility/forward.h +59 -0
- cuda/cccl/headers/include/cuda/std/__utility/forward_like.h +56 -0
- cuda/cccl/headers/include/cuda/std/__utility/in_place.h +77 -0
- cuda/cccl/headers/include/cuda/std/__utility/integer_sequence.h +251 -0
- cuda/cccl/headers/include/cuda/std/__utility/monostate.h +99 -0
- cuda/cccl/headers/include/cuda/std/__utility/move.h +75 -0
- cuda/cccl/headers/include/cuda/std/__utility/pair.h +808 -0
- cuda/cccl/headers/include/cuda/std/__utility/piecewise_construct.h +37 -0
- cuda/cccl/headers/include/cuda/std/__utility/pod_tuple.h +763 -0
- cuda/cccl/headers/include/cuda/std/__utility/priority_tag.h +40 -0
- cuda/cccl/headers/include/cuda/std/__utility/rel_ops.h +63 -0
- cuda/cccl/headers/include/cuda/std/__utility/swap.h +65 -0
- cuda/cccl/headers/include/cuda/std/__utility/to_underlying.h +40 -0
- cuda/cccl/headers/include/cuda/std/__utility/typeid.h +425 -0
- cuda/cccl/headers/include/cuda/std/__utility/unreachable.h +37 -0
- cuda/cccl/headers/include/cuda/std/array +527 -0
- cuda/cccl/headers/include/cuda/std/atomic +823 -0
- cuda/cccl/headers/include/cuda/std/barrier +43 -0
- cuda/cccl/headers/include/cuda/std/bit +35 -0
- cuda/cccl/headers/include/cuda/std/bitset +1026 -0
- cuda/cccl/headers/include/cuda/std/cassert +28 -0
- cuda/cccl/headers/include/cuda/std/ccomplex +15 -0
- cuda/cccl/headers/include/cuda/std/cfloat +59 -0
- cuda/cccl/headers/include/cuda/std/chrono +26 -0
- cuda/cccl/headers/include/cuda/std/climits +61 -0
- cuda/cccl/headers/include/cuda/std/cmath +25 -0
- cuda/cccl/headers/include/cuda/std/complex +25 -0
- cuda/cccl/headers/include/cuda/std/concepts +48 -0
- cuda/cccl/headers/include/cuda/std/cstddef +28 -0
- cuda/cccl/headers/include/cuda/std/cstdint +178 -0
- cuda/cccl/headers/include/cuda/std/cstdlib +30 -0
- cuda/cccl/headers/include/cuda/std/cstring +111 -0
- cuda/cccl/headers/include/cuda/std/ctime +147 -0
- cuda/cccl/headers/include/cuda/std/detail/__config +45 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/__config +258 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/algorithm +2692 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/chrono +3689 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/cmath +685 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/complex +1610 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/iosfwd +128 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/optional +1786 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/stdexcept +120 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/tuple +1378 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/variant +2160 -0
- cuda/cccl/headers/include/cuda/std/execution +27 -0
- cuda/cccl/headers/include/cuda/std/expected +30 -0
- cuda/cccl/headers/include/cuda/std/functional +56 -0
- cuda/cccl/headers/include/cuda/std/initializer_list +36 -0
- cuda/cccl/headers/include/cuda/std/inplace_vector +2171 -0
- cuda/cccl/headers/include/cuda/std/iterator +70 -0
- cuda/cccl/headers/include/cuda/std/latch +34 -0
- cuda/cccl/headers/include/cuda/std/limits +28 -0
- cuda/cccl/headers/include/cuda/std/linalg +30 -0
- cuda/cccl/headers/include/cuda/std/mdspan +38 -0
- cuda/cccl/headers/include/cuda/std/memory +39 -0
- cuda/cccl/headers/include/cuda/std/numbers +335 -0
- cuda/cccl/headers/include/cuda/std/numeric +41 -0
- cuda/cccl/headers/include/cuda/std/optional +25 -0
- cuda/cccl/headers/include/cuda/std/ranges +68 -0
- cuda/cccl/headers/include/cuda/std/ratio +417 -0
- cuda/cccl/headers/include/cuda/std/semaphore +31 -0
- cuda/cccl/headers/include/cuda/std/source_location +83 -0
- cuda/cccl/headers/include/cuda/std/span +640 -0
- cuda/cccl/headers/include/cuda/std/string_view +814 -0
- cuda/cccl/headers/include/cuda/std/tuple +26 -0
- cuda/cccl/headers/include/cuda/std/type_traits +176 -0
- cuda/cccl/headers/include/cuda/std/utility +70 -0
- cuda/cccl/headers/include/cuda/std/variant +25 -0
- cuda/cccl/headers/include/cuda/std/version +245 -0
- cuda/cccl/headers/include/cuda/stream_ref +54 -0
- cuda/cccl/headers/include/cuda/type_traits +27 -0
- cuda/cccl/headers/include/cuda/version +16 -0
- cuda/cccl/headers/include/cuda/warp +28 -0
- cuda/cccl/headers/include/cuda/work_stealing +26 -0
- cuda/cccl/headers/include/nv/detail/__preprocessor +169 -0
- cuda/cccl/headers/include/nv/detail/__target_macros +599 -0
- cuda/cccl/headers/include/nv/target +229 -0
- cuda/cccl/headers/include/thrust/addressof.h +22 -0
- cuda/cccl/headers/include/thrust/adjacent_difference.h +254 -0
- cuda/cccl/headers/include/thrust/advance.h +59 -0
- cuda/cccl/headers/include/thrust/allocate_unique.h +299 -0
- cuda/cccl/headers/include/thrust/binary_search.h +1910 -0
- cuda/cccl/headers/include/thrust/complex.h +859 -0
- cuda/cccl/headers/include/thrust/copy.h +506 -0
- cuda/cccl/headers/include/thrust/count.h +245 -0
- cuda/cccl/headers/include/thrust/detail/adjacent_difference.inl +95 -0
- cuda/cccl/headers/include/thrust/detail/algorithm_wrapper.h +37 -0
- cuda/cccl/headers/include/thrust/detail/alignment.h +81 -0
- cuda/cccl/headers/include/thrust/detail/allocator/allocator_traits.h +350 -0
- cuda/cccl/headers/include/thrust/detail/allocator/allocator_traits.inl +371 -0
- cuda/cccl/headers/include/thrust/detail/allocator/copy_construct_range.h +45 -0
- cuda/cccl/headers/include/thrust/detail/allocator/copy_construct_range.inl +242 -0
- cuda/cccl/headers/include/thrust/detail/allocator/destroy_range.h +39 -0
- cuda/cccl/headers/include/thrust/detail/allocator/destroy_range.inl +137 -0
- cuda/cccl/headers/include/thrust/detail/allocator/fill_construct_range.h +39 -0
- cuda/cccl/headers/include/thrust/detail/allocator/fill_construct_range.inl +99 -0
- cuda/cccl/headers/include/thrust/detail/allocator/malloc_allocator.h +53 -0
- cuda/cccl/headers/include/thrust/detail/allocator/malloc_allocator.inl +68 -0
- cuda/cccl/headers/include/thrust/detail/allocator/no_throw_allocator.h +76 -0
- cuda/cccl/headers/include/thrust/detail/allocator/tagged_allocator.h +102 -0
- cuda/cccl/headers/include/thrust/detail/allocator/tagged_allocator.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/allocator/temporary_allocator.h +79 -0
- cuda/cccl/headers/include/thrust/detail/allocator/temporary_allocator.inl +81 -0
- cuda/cccl/headers/include/thrust/detail/allocator/value_initialize_range.h +39 -0
- cuda/cccl/headers/include/thrust/detail/allocator/value_initialize_range.inl +98 -0
- cuda/cccl/headers/include/thrust/detail/allocator_aware_execution_policy.h +99 -0
- cuda/cccl/headers/include/thrust/detail/binary_search.inl +525 -0
- cuda/cccl/headers/include/thrust/detail/caching_allocator.h +47 -0
- cuda/cccl/headers/include/thrust/detail/complex/arithmetic.h +255 -0
- cuda/cccl/headers/include/thrust/detail/complex/c99math.h +64 -0
- cuda/cccl/headers/include/thrust/detail/complex/catrig.h +875 -0
- cuda/cccl/headers/include/thrust/detail/complex/catrigf.h +589 -0
- cuda/cccl/headers/include/thrust/detail/complex/ccosh.h +233 -0
- cuda/cccl/headers/include/thrust/detail/complex/ccoshf.h +161 -0
- cuda/cccl/headers/include/thrust/detail/complex/cexp.h +195 -0
- cuda/cccl/headers/include/thrust/detail/complex/cexpf.h +173 -0
- cuda/cccl/headers/include/thrust/detail/complex/clog.h +223 -0
- cuda/cccl/headers/include/thrust/detail/complex/clogf.h +210 -0
- cuda/cccl/headers/include/thrust/detail/complex/complex.inl +263 -0
- cuda/cccl/headers/include/thrust/detail/complex/cpow.h +50 -0
- cuda/cccl/headers/include/thrust/detail/complex/cproj.h +81 -0
- cuda/cccl/headers/include/thrust/detail/complex/csinh.h +228 -0
- cuda/cccl/headers/include/thrust/detail/complex/csinhf.h +168 -0
- cuda/cccl/headers/include/thrust/detail/complex/csqrt.h +178 -0
- cuda/cccl/headers/include/thrust/detail/complex/csqrtf.h +174 -0
- cuda/cccl/headers/include/thrust/detail/complex/ctanh.h +208 -0
- cuda/cccl/headers/include/thrust/detail/complex/ctanhf.h +133 -0
- cuda/cccl/headers/include/thrust/detail/complex/math_private.h +138 -0
- cuda/cccl/headers/include/thrust/detail/complex/stream.h +73 -0
- cuda/cccl/headers/include/thrust/detail/config/compiler.h +38 -0
- cuda/cccl/headers/include/thrust/detail/config/config.h +43 -0
- cuda/cccl/headers/include/thrust/detail/config/cpp_dialect.h +78 -0
- cuda/cccl/headers/include/thrust/detail/config/device_system.h +55 -0
- cuda/cccl/headers/include/thrust/detail/config/host_system.h +48 -0
- cuda/cccl/headers/include/thrust/detail/config/memory_resource.h +41 -0
- cuda/cccl/headers/include/thrust/detail/config/namespace.h +162 -0
- cuda/cccl/headers/include/thrust/detail/config/simple_defines.h +48 -0
- cuda/cccl/headers/include/thrust/detail/config.h +36 -0
- cuda/cccl/headers/include/thrust/detail/contiguous_storage.h +228 -0
- cuda/cccl/headers/include/thrust/detail/contiguous_storage.inl +273 -0
- cuda/cccl/headers/include/thrust/detail/copy.h +72 -0
- cuda/cccl/headers/include/thrust/detail/copy.inl +129 -0
- cuda/cccl/headers/include/thrust/detail/copy_if.h +62 -0
- cuda/cccl/headers/include/thrust/detail/copy_if.inl +102 -0
- cuda/cccl/headers/include/thrust/detail/count.h +55 -0
- cuda/cccl/headers/include/thrust/detail/count.inl +89 -0
- cuda/cccl/headers/include/thrust/detail/device_delete.inl +52 -0
- cuda/cccl/headers/include/thrust/detail/device_free.inl +47 -0
- cuda/cccl/headers/include/thrust/detail/device_malloc.inl +60 -0
- cuda/cccl/headers/include/thrust/detail/device_new.inl +61 -0
- cuda/cccl/headers/include/thrust/detail/device_ptr.inl +48 -0
- cuda/cccl/headers/include/thrust/detail/equal.inl +93 -0
- cuda/cccl/headers/include/thrust/detail/event_error.h +160 -0
- cuda/cccl/headers/include/thrust/detail/execute_with_allocator.h +80 -0
- cuda/cccl/headers/include/thrust/detail/execute_with_allocator_fwd.h +61 -0
- cuda/cccl/headers/include/thrust/detail/execution_policy.h +80 -0
- cuda/cccl/headers/include/thrust/detail/extrema.inl +184 -0
- cuda/cccl/headers/include/thrust/detail/fill.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/find.inl +113 -0
- cuda/cccl/headers/include/thrust/detail/for_each.inl +84 -0
- cuda/cccl/headers/include/thrust/detail/function.h +49 -0
- cuda/cccl/headers/include/thrust/detail/functional/actor.h +214 -0
- cuda/cccl/headers/include/thrust/detail/functional/operators.h +386 -0
- cuda/cccl/headers/include/thrust/detail/gather.inl +173 -0
- cuda/cccl/headers/include/thrust/detail/generate.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/get_iterator_value.h +62 -0
- cuda/cccl/headers/include/thrust/detail/inner_product.inl +118 -0
- cuda/cccl/headers/include/thrust/detail/integer_math.h +130 -0
- cuda/cccl/headers/include/thrust/detail/internal_functional.h +285 -0
- cuda/cccl/headers/include/thrust/detail/logical.inl +113 -0
- cuda/cccl/headers/include/thrust/detail/malloc_and_free.h +92 -0
- cuda/cccl/headers/include/thrust/detail/malloc_and_free_fwd.h +45 -0
- cuda/cccl/headers/include/thrust/detail/memory_algorithms.h +209 -0
- cuda/cccl/headers/include/thrust/detail/memory_wrapper.h +40 -0
- cuda/cccl/headers/include/thrust/detail/merge.inl +276 -0
- cuda/cccl/headers/include/thrust/detail/mismatch.inl +94 -0
- cuda/cccl/headers/include/thrust/detail/mpl/math.h +164 -0
- cuda/cccl/headers/include/thrust/detail/numeric_wrapper.h +37 -0
- cuda/cccl/headers/include/thrust/detail/overlapped_copy.h +124 -0
- cuda/cccl/headers/include/thrust/detail/partition.inl +378 -0
- cuda/cccl/headers/include/thrust/detail/pointer.h +217 -0
- cuda/cccl/headers/include/thrust/detail/pointer.inl +172 -0
- cuda/cccl/headers/include/thrust/detail/preprocessor.h +652 -0
- cuda/cccl/headers/include/thrust/detail/random_bijection.h +177 -0
- cuda/cccl/headers/include/thrust/detail/range/head_flags.h +116 -0
- cuda/cccl/headers/include/thrust/detail/range/tail_flags.h +130 -0
- cuda/cccl/headers/include/thrust/detail/raw_pointer_cast.h +52 -0
- cuda/cccl/headers/include/thrust/detail/raw_reference_cast.h +189 -0
- cuda/cccl/headers/include/thrust/detail/reduce.inl +377 -0
- cuda/cccl/headers/include/thrust/detail/reference.h +500 -0
- cuda/cccl/headers/include/thrust/detail/reference_forward_declaration.h +35 -0
- cuda/cccl/headers/include/thrust/detail/remove.inl +213 -0
- cuda/cccl/headers/include/thrust/detail/replace.inl +231 -0
- cuda/cccl/headers/include/thrust/detail/reverse.inl +88 -0
- cuda/cccl/headers/include/thrust/detail/scan.inl +518 -0
- cuda/cccl/headers/include/thrust/detail/scatter.inl +157 -0
- cuda/cccl/headers/include/thrust/detail/seq.h +54 -0
- cuda/cccl/headers/include/thrust/detail/sequence.inl +109 -0
- cuda/cccl/headers/include/thrust/detail/set_operations.inl +981 -0
- cuda/cccl/headers/include/thrust/detail/shuffle.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/sort.inl +373 -0
- cuda/cccl/headers/include/thrust/detail/static_assert.h +58 -0
- cuda/cccl/headers/include/thrust/detail/static_map.h +167 -0
- cuda/cccl/headers/include/thrust/detail/swap_ranges.inl +65 -0
- cuda/cccl/headers/include/thrust/detail/tabulate.inl +62 -0
- cuda/cccl/headers/include/thrust/detail/temporary_array.h +153 -0
- cuda/cccl/headers/include/thrust/detail/temporary_array.inl +138 -0
- cuda/cccl/headers/include/thrust/detail/temporary_buffer.h +81 -0
- cuda/cccl/headers/include/thrust/detail/transform.inl +250 -0
- cuda/cccl/headers/include/thrust/detail/transform_reduce.inl +69 -0
- cuda/cccl/headers/include/thrust/detail/transform_scan.inl +161 -0
- cuda/cccl/headers/include/thrust/detail/trivial_sequence.h +131 -0
- cuda/cccl/headers/include/thrust/detail/tuple_meta_transform.h +61 -0
- cuda/cccl/headers/include/thrust/detail/type_deduction.h +62 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/has_member_function.h +47 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/has_nested_type.h +43 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_call_possible.h +167 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_commutative.h +69 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_metafunction_defined.h +39 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_thrust_pointer.h +60 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/iterator/is_discard_iterator.h +44 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/iterator/is_output_iterator.h +46 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/minimum_type.h +89 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/pointer_traits.h +332 -0
- cuda/cccl/headers/include/thrust/detail/type_traits.h +136 -0
- cuda/cccl/headers/include/thrust/detail/uninitialized_copy.inl +90 -0
- cuda/cccl/headers/include/thrust/detail/uninitialized_fill.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/unique.inl +373 -0
- cuda/cccl/headers/include/thrust/detail/use_default.h +34 -0
- cuda/cccl/headers/include/thrust/detail/util/align.h +59 -0
- cuda/cccl/headers/include/thrust/detail/vector_base.h +630 -0
- cuda/cccl/headers/include/thrust/detail/vector_base.inl +1242 -0
- cuda/cccl/headers/include/thrust/device_allocator.h +134 -0
- cuda/cccl/headers/include/thrust/device_delete.h +59 -0
- cuda/cccl/headers/include/thrust/device_free.h +72 -0
- cuda/cccl/headers/include/thrust/device_make_unique.h +56 -0
- cuda/cccl/headers/include/thrust/device_malloc.h +108 -0
- cuda/cccl/headers/include/thrust/device_malloc_allocator.h +190 -0
- cuda/cccl/headers/include/thrust/device_new.h +91 -0
- cuda/cccl/headers/include/thrust/device_new_allocator.h +179 -0
- cuda/cccl/headers/include/thrust/device_ptr.h +202 -0
- cuda/cccl/headers/include/thrust/device_reference.h +986 -0
- cuda/cccl/headers/include/thrust/device_vector.h +574 -0
- cuda/cccl/headers/include/thrust/distance.h +43 -0
- cuda/cccl/headers/include/thrust/equal.h +247 -0
- cuda/cccl/headers/include/thrust/execution_policy.h +384 -0
- cuda/cccl/headers/include/thrust/extrema.h +657 -0
- cuda/cccl/headers/include/thrust/fill.h +201 -0
- cuda/cccl/headers/include/thrust/find.h +382 -0
- cuda/cccl/headers/include/thrust/for_each.h +261 -0
- cuda/cccl/headers/include/thrust/functional.h +396 -0
- cuda/cccl/headers/include/thrust/gather.h +464 -0
- cuda/cccl/headers/include/thrust/generate.h +193 -0
- cuda/cccl/headers/include/thrust/host_vector.h +576 -0
- cuda/cccl/headers/include/thrust/inner_product.h +264 -0
- cuda/cccl/headers/include/thrust/iterator/constant_iterator.h +219 -0
- cuda/cccl/headers/include/thrust/iterator/counting_iterator.h +335 -0
- cuda/cccl/headers/include/thrust/iterator/detail/any_assign.h +48 -0
- cuda/cccl/headers/include/thrust/iterator/detail/any_system_tag.h +43 -0
- cuda/cccl/headers/include/thrust/iterator/detail/device_system_tag.h +38 -0
- cuda/cccl/headers/include/thrust/iterator/detail/host_system_tag.h +38 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_adaptor_base.h +81 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_to_system.h +51 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_to_traversal.h +62 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_with_system_and_traversal.h +57 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_facade_category.h +199 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_traversal_tags.h +50 -0
- cuda/cccl/headers/include/thrust/iterator/detail/minimum_system.h +53 -0
- cuda/cccl/headers/include/thrust/iterator/detail/normal_iterator.h +69 -0
- cuda/cccl/headers/include/thrust/iterator/detail/retag.h +104 -0
- cuda/cccl/headers/include/thrust/iterator/detail/tagged_iterator.h +81 -0
- cuda/cccl/headers/include/thrust/iterator/detail/tuple_of_iterator_references.h +174 -0
- cuda/cccl/headers/include/thrust/iterator/discard_iterator.h +164 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_adaptor.h +251 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_categories.h +215 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_facade.h +660 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_traits.h +245 -0
- cuda/cccl/headers/include/thrust/iterator/offset_iterator.h +192 -0
- cuda/cccl/headers/include/thrust/iterator/permutation_iterator.h +204 -0
- cuda/cccl/headers/include/thrust/iterator/retag.h +74 -0
- cuda/cccl/headers/include/thrust/iterator/reverse_iterator.h +221 -0
- cuda/cccl/headers/include/thrust/iterator/shuffle_iterator.h +184 -0
- cuda/cccl/headers/include/thrust/iterator/strided_iterator.h +152 -0
- cuda/cccl/headers/include/thrust/iterator/tabulate_output_iterator.h +149 -0
- cuda/cccl/headers/include/thrust/iterator/transform_input_output_iterator.h +226 -0
- cuda/cccl/headers/include/thrust/iterator/transform_iterator.h +351 -0
- cuda/cccl/headers/include/thrust/iterator/transform_output_iterator.h +190 -0
- cuda/cccl/headers/include/thrust/iterator/zip_iterator.h +357 -0
- cuda/cccl/headers/include/thrust/logical.h +290 -0
- cuda/cccl/headers/include/thrust/memory.h +395 -0
- cuda/cccl/headers/include/thrust/merge.h +725 -0
- cuda/cccl/headers/include/thrust/mismatch.h +261 -0
- cuda/cccl/headers/include/thrust/mr/allocator.h +229 -0
- cuda/cccl/headers/include/thrust/mr/device_memory_resource.h +41 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_pool.h +526 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_sync_pool.h +118 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_tls_pool.h +68 -0
- cuda/cccl/headers/include/thrust/mr/fancy_pointer_resource.h +67 -0
- cuda/cccl/headers/include/thrust/mr/host_memory_resource.h +38 -0
- cuda/cccl/headers/include/thrust/mr/memory_resource.h +217 -0
- cuda/cccl/headers/include/thrust/mr/new.h +100 -0
- cuda/cccl/headers/include/thrust/mr/polymorphic_adaptor.h +63 -0
- cuda/cccl/headers/include/thrust/mr/pool.h +526 -0
- cuda/cccl/headers/include/thrust/mr/pool_options.h +174 -0
- cuda/cccl/headers/include/thrust/mr/sync_pool.h +114 -0
- cuda/cccl/headers/include/thrust/mr/tls_pool.h +65 -0
- cuda/cccl/headers/include/thrust/mr/universal_memory_resource.h +29 -0
- cuda/cccl/headers/include/thrust/mr/validator.h +56 -0
- cuda/cccl/headers/include/thrust/pair.h +102 -0
- cuda/cccl/headers/include/thrust/partition.h +1383 -0
- cuda/cccl/headers/include/thrust/per_device_resource.h +98 -0
- cuda/cccl/headers/include/thrust/random/detail/discard_block_engine.inl +184 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_congruential_engine.inl +155 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_congruential_engine_discard.h +104 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_feedback_shift_engine.inl +151 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_feedback_shift_engine_wordmask.h +53 -0
- cuda/cccl/headers/include/thrust/random/detail/mod.h +101 -0
- cuda/cccl/headers/include/thrust/random/detail/normal_distribution.inl +187 -0
- cuda/cccl/headers/include/thrust/random/detail/normal_distribution_base.h +160 -0
- cuda/cccl/headers/include/thrust/random/detail/random_core_access.h +63 -0
- cuda/cccl/headers/include/thrust/random/detail/subtract_with_carry_engine.inl +201 -0
- cuda/cccl/headers/include/thrust/random/detail/uniform_int_distribution.inl +198 -0
- cuda/cccl/headers/include/thrust/random/detail/uniform_real_distribution.inl +198 -0
- cuda/cccl/headers/include/thrust/random/detail/xor_combine_engine.inl +183 -0
- cuda/cccl/headers/include/thrust/random/detail/xor_combine_engine_max.h +217 -0
- cuda/cccl/headers/include/thrust/random/discard_block_engine.h +240 -0
- cuda/cccl/headers/include/thrust/random/linear_congruential_engine.h +289 -0
- cuda/cccl/headers/include/thrust/random/linear_feedback_shift_engine.h +217 -0
- cuda/cccl/headers/include/thrust/random/normal_distribution.h +257 -0
- cuda/cccl/headers/include/thrust/random/subtract_with_carry_engine.h +247 -0
- cuda/cccl/headers/include/thrust/random/uniform_int_distribution.h +261 -0
- cuda/cccl/headers/include/thrust/random/uniform_real_distribution.h +258 -0
- cuda/cccl/headers/include/thrust/random/xor_combine_engine.h +255 -0
- cuda/cccl/headers/include/thrust/random.h +120 -0
- cuda/cccl/headers/include/thrust/reduce.h +1112 -0
- cuda/cccl/headers/include/thrust/remove.h +768 -0
- cuda/cccl/headers/include/thrust/replace.h +827 -0
- cuda/cccl/headers/include/thrust/reverse.h +213 -0
- cuda/cccl/headers/include/thrust/scan.h +1671 -0
- cuda/cccl/headers/include/thrust/scatter.h +446 -0
- cuda/cccl/headers/include/thrust/sequence.h +277 -0
- cuda/cccl/headers/include/thrust/set_operations.h +3026 -0
- cuda/cccl/headers/include/thrust/shuffle.h +182 -0
- cuda/cccl/headers/include/thrust/sort.h +1320 -0
- cuda/cccl/headers/include/thrust/swap.h +147 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/adjacent_difference.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/binary_search.h +32 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/copy_if.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/count.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/equal.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/execution_policy.h +90 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/extrema.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/find.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/for_each.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/gather.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/generate.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/inner_product.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/memory.inl +60 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/merge.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/mismatch.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/par.h +62 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/partition.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reduce_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/remove.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/replace.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reverse.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scan_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scatter.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/sort.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/swap_ranges.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/tabulate.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform_reduce.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform_scan.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/uninitialized_copy.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/uninitialized_fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/unique.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/unique_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/vector.inl +130 -0
- cuda/cccl/headers/include/thrust/system/cpp/execution_policy.h +161 -0
- cuda/cccl/headers/include/thrust/system/cpp/memory.h +109 -0
- cuda/cccl/headers/include/thrust/system/cpp/memory_resource.h +75 -0
- cuda/cccl/headers/include/thrust/system/cpp/pointer.h +119 -0
- cuda/cccl/headers/include/thrust/system/cpp/vector.h +99 -0
- cuda/cccl/headers/include/thrust/system/cuda/config.h +123 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/adjacent_difference.h +219 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/assign_value.h +124 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/binary_search.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/cdp_dispatch.h +72 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/copy.h +129 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/copy_if.h +255 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/agent_launcher.h +289 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/load_iterator.h +58 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/make_load_iterator.h +60 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/triple_chevron_launch.h +191 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/util.h +630 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/count.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/cross_system.h +243 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/dispatch.h +210 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/equal.h +64 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/error.inl +96 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/execution_policy.h +113 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/extrema.h +476 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/fill.h +82 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/find.h +272 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/for_each.h +83 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/gather.h +91 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/generate.h +85 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/get_value.h +65 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/inner_product.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/internal/copy_cross_system.h +204 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/internal/copy_device_to_device.h +98 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/iter_swap.h +69 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/make_unsigned_special.h +61 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/malloc_and_free.h +121 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/memory.inl +57 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/merge.h +228 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/mismatch.h +217 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/par.h +237 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/par_to_seq.h +95 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/parallel_for.h +81 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/partition.h +405 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/per_device_resource.h +72 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reduce.h +961 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reduce_by_key.h +1000 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/remove.h +107 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/replace.h +164 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reverse.h +88 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scan.h +342 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scan_by_key.h +415 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scatter.h +79 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/set_operations.h +1736 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/sort.h +482 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/swap_ranges.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/tabulate.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/temporary_buffer.h +132 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/terminate.h +53 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform.h +403 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform_reduce.h +143 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform_scan.h +119 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/uninitialized_copy.h +94 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/uninitialized_fill.h +91 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/unique.h +648 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/unique_by_key.h +311 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/util.h +251 -0
- cuda/cccl/headers/include/thrust/system/cuda/error.h +175 -0
- cuda/cccl/headers/include/thrust/system/cuda/execution_policy.h +39 -0
- cuda/cccl/headers/include/thrust/system/cuda/memory.h +122 -0
- cuda/cccl/headers/include/thrust/system/cuda/memory_resource.h +122 -0
- cuda/cccl/headers/include/thrust/system/cuda/pointer.h +140 -0
- cuda/cccl/headers/include/thrust/system/cuda/vector.h +108 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/adjacent_difference.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/assign_value.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/binary_search.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/copy_if.h +52 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/count.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/equal.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/extrema.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/fill.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/find.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/for_each.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/gather.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/generate.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/get_value.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/inner_product.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/iter_swap.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/logical.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/malloc_and_free.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/merge.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/mismatch.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/partition.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/per_device_resource.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reduce.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reduce_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/remove.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/replace.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reverse.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scan.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scan_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scatter.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/sequence.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/set_operations.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/sort.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/swap_ranges.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/tabulate.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/temporary_buffer.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform_reduce.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform_scan.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/uninitialized_copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/uninitialized_fill.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/unique.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/unique_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/bad_alloc.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/errno.h +125 -0
- cuda/cccl/headers/include/thrust/system/detail/error_category.inl +302 -0
- cuda/cccl/headers/include/thrust/system/detail/error_code.inl +173 -0
- cuda/cccl/headers/include/thrust/system/detail/error_condition.inl +121 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/adjacent_difference.h +59 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/adjacent_difference.inl +85 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/binary_search.h +167 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/binary_search.inl +391 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy.inl +70 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy_if.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy_if.inl +152 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/count.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/count.inl +90 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/equal.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/equal.inl +66 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/extrema.h +72 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/extrema.inl +258 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/fill.h +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/find.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/find.inl +143 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/for_each.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/gather.h +79 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/gather.inl +102 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/generate.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/generate.inl +63 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/inner_product.h +66 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/inner_product.inl +78 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/logical.h +65 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/memory.h +70 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/memory.inl +83 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/merge.h +105 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/merge.inl +154 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/mismatch.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/mismatch.inl +74 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/partition.h +135 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/partition.inl +213 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/per_device_resource.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce.h +77 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce.inl +106 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce_by_key.h +89 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce_by_key.inl +192 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/remove.h +92 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/remove.inl +127 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/replace.h +101 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/replace.inl +181 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reverse.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reverse.inl +72 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scalar/binary_search.h +78 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scalar/binary_search.inl +141 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan.h +78 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan.inl +91 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan_by_key.h +132 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan_by_key.inl +238 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scatter.h +79 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scatter.inl +91 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/select_system.h +96 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sequence.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sequence.inl +95 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/set_operations.h +288 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/set_operations.inl +482 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/shuffle.h +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/shuffle.inl +131 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sort.h +119 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sort.inl +181 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/swap_ranges.h +50 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/swap_ranges.inl +82 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tabulate.h +47 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tabulate.inl +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tag.h +53 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/temporary_buffer.h +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/temporary_buffer.inl +88 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform.h +109 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform.inl +185 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_reduce.h +56 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_reduce.inl +62 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_scan.h +86 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_scan.inl +119 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_copy.inl +172 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_fill.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_fill.inl +121 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique.h +77 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique.inl +119 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique_by_key.h +87 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique_by_key.inl +132 -0
- cuda/cccl/headers/include/thrust/system/detail/internal/decompose.h +123 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/adjacent_difference.h +76 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/assign_value.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/binary_search.h +142 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy.inl +125 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy_backward.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy_if.h +77 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/count.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/equal.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/execution_policy.h +78 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/extrema.h +116 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/find.h +68 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/for_each.h +80 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/gather.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/general_copy.h +129 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/generate.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/get_value.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/inner_product.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/insertion_sort.h +147 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/iter_swap.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/malloc_and_free.h +56 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/merge.h +81 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/merge.inl +151 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/mismatch.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/partition.h +309 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reduce.h +70 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reduce_by_key.h +104 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/remove.h +185 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/replace.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reverse.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scan.h +160 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scan_by_key.h +151 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scatter.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/set_operations.h +212 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sort.h +65 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sort.inl +187 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_merge_sort.h +61 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_merge_sort.inl +362 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_primitive_sort.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_primitive_sort.inl +130 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_radix_sort.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_radix_sort.inl +592 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/swap_ranges.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/tabulate.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform_reduce.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform_scan.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/trivial_copy.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/uninitialized_copy.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/uninitialized_fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/unique.h +121 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/unique_by_key.h +112 -0
- cuda/cccl/headers/include/thrust/system/detail/system_error.inl +108 -0
- cuda/cccl/headers/include/thrust/system/error_code.h +512 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/adjacent_difference.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/binary_search.h +77 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy.h +50 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy.inl +74 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy_if.h +56 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy_if.inl +59 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/count.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/default_decomposition.h +50 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/default_decomposition.inl +65 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/equal.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/execution_policy.h +113 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/extrema.h +66 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/find.h +53 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/for_each.h +56 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/for_each.inl +87 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/gather.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/generate.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/inner_product.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/logical.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/memory.inl +93 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/merge.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/mismatch.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/par.h +62 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/partition.h +88 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/partition.inl +102 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/pragma_omp.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce.inl +78 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_by_key.h +64 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_by_key.inl +65 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_intervals.h +59 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_intervals.inl +103 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/remove.h +72 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/remove.inl +87 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/replace.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reverse.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scan_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scatter.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sequence.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sort.h +60 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sort.inl +259 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/swap_ranges.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/tabulate.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform_reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform_scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/uninitialized_copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/uninitialized_fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique.h +60 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique.inl +71 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique_by_key.h +67 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique_by_key.inl +75 -0
- cuda/cccl/headers/include/thrust/system/omp/execution_policy.h +160 -0
- cuda/cccl/headers/include/thrust/system/omp/memory.h +111 -0
- cuda/cccl/headers/include/thrust/system/omp/memory_resource.h +75 -0
- cuda/cccl/headers/include/thrust/system/omp/pointer.h +120 -0
- cuda/cccl/headers/include/thrust/system/omp/vector.h +99 -0
- cuda/cccl/headers/include/thrust/system/system_error.h +184 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/adjacent_difference.h +54 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/binary_search.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy.h +50 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy.inl +73 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy_if.h +47 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy_if.inl +136 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/count.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/equal.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/execution_policy.h +92 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/extrema.h +66 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/find.h +49 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/for_each.h +51 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/for_each.inl +91 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/gather.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/generate.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/inner_product.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/logical.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/memory.inl +94 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/merge.h +77 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/merge.inl +327 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/mismatch.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/par.h +62 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/partition.h +84 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/partition.inl +98 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce.h +54 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce.inl +137 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_by_key.h +61 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_by_key.inl +400 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_intervals.h +140 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/remove.h +76 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/remove.inl +87 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/replace.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reverse.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan.h +59 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan.inl +312 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scatter.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sequence.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sort.h +60 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sort.inl +295 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/swap_ranges.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/tabulate.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform_reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform_scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/uninitialized_copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/uninitialized_fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique.h +60 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique.inl +71 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique_by_key.h +67 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique_by_key.inl +75 -0
- cuda/cccl/headers/include/thrust/system/tbb/execution_policy.h +160 -0
- cuda/cccl/headers/include/thrust/system/tbb/memory.h +111 -0
- cuda/cccl/headers/include/thrust/system/tbb/memory_resource.h +75 -0
- cuda/cccl/headers/include/thrust/system/tbb/pointer.h +120 -0
- cuda/cccl/headers/include/thrust/system/tbb/vector.h +99 -0
- cuda/cccl/headers/include/thrust/system_error.h +57 -0
- cuda/cccl/headers/include/thrust/tabulate.h +125 -0
- cuda/cccl/headers/include/thrust/transform.h +903 -0
- cuda/cccl/headers/include/thrust/transform_reduce.h +190 -0
- cuda/cccl/headers/include/thrust/transform_scan.h +442 -0
- cuda/cccl/headers/include/thrust/tuple.h +142 -0
- cuda/cccl/headers/include/thrust/type_traits/integer_sequence.h +261 -0
- cuda/cccl/headers/include/thrust/type_traits/is_contiguous_iterator.h +182 -0
- cuda/cccl/headers/include/thrust/type_traits/is_execution_policy.h +65 -0
- cuda/cccl/headers/include/thrust/type_traits/is_operator_less_or_greater_function_object.h +184 -0
- cuda/cccl/headers/include/thrust/type_traits/is_operator_plus_function_object.h +116 -0
- cuda/cccl/headers/include/thrust/type_traits/is_trivially_relocatable.h +306 -0
- cuda/cccl/headers/include/thrust/type_traits/logical_metafunctions.h +42 -0
- cuda/cccl/headers/include/thrust/type_traits/unwrap_contiguous_iterator.h +93 -0
- cuda/cccl/headers/include/thrust/uninitialized_copy.h +300 -0
- cuda/cccl/headers/include/thrust/uninitialized_fill.h +268 -0
- cuda/cccl/headers/include/thrust/unique.h +1090 -0
- cuda/cccl/headers/include/thrust/universal_allocator.h +90 -0
- cuda/cccl/headers/include/thrust/universal_ptr.h +34 -0
- cuda/cccl/headers/include/thrust/universal_vector.h +71 -0
- cuda/cccl/headers/include/thrust/version.h +93 -0
- cuda/cccl/headers/include/thrust/zip_function.h +176 -0
- cuda/cccl/headers/include_paths.py +72 -0
- cuda/cccl/parallel/__init__.py +3 -0
- cuda/cccl/parallel/experimental/__init__.py +3 -0
- cuda/cccl/parallel/experimental/_bindings.py +24 -0
- cuda/cccl/parallel/experimental/_bindings.pyi +388 -0
- cuda/cccl/parallel/experimental/_bindings_impl.cpython-311-x86_64-linux-gnu.so +0 -0
- cuda/cccl/parallel/experimental/_bindings_impl.pyx +2158 -0
- cuda/cccl/parallel/experimental/_caching.py +71 -0
- cuda/cccl/parallel/experimental/_cccl_interop.py +371 -0
- cuda/cccl/parallel/experimental/_utils/__init__.py +0 -0
- cuda/cccl/parallel/experimental/_utils/protocols.py +132 -0
- cuda/cccl/parallel/experimental/algorithms/__init__.py +28 -0
- cuda/cccl/parallel/experimental/algorithms/_merge_sort.py +172 -0
- cuda/cccl/parallel/experimental/algorithms/_radix_sort.py +244 -0
- cuda/cccl/parallel/experimental/algorithms/_reduce.py +136 -0
- cuda/cccl/parallel/experimental/algorithms/_scan.py +179 -0
- cuda/cccl/parallel/experimental/algorithms/_segmented_reduce.py +183 -0
- cuda/cccl/parallel/experimental/algorithms/_transform.py +213 -0
- cuda/cccl/parallel/experimental/algorithms/_unique_by_key.py +179 -0
- cuda/cccl/parallel/experimental/cccl/.gitkeep +0 -0
- cuda/cccl/parallel/experimental/cccl/libcccl.c.parallel.so +0 -0
- cuda/cccl/parallel/experimental/iterators/__init__.py +157 -0
- cuda/cccl/parallel/experimental/iterators/_iterators.py +650 -0
- cuda/cccl/parallel/experimental/numba_utils.py +6 -0
- cuda/cccl/parallel/experimental/struct.py +150 -0
- cuda/cccl/parallel/experimental/typing.py +27 -0
- cuda/cccl/py.typed +0 -0
- cuda_cccl-0.1.3.1.0.dev1486.dist-info/METADATA +29 -0
- cuda_cccl-0.1.3.1.0.dev1486.dist-info/RECORD +1819 -0
- cuda_cccl-0.1.3.1.0.dev1486.dist-info/WHEEL +6 -0
- cuda_cccl-0.1.3.1.0.dev1486.dist-info/licenses/LICENSE +1 -0
|
@@ -0,0 +1,2002 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
// SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES.
|
|
7
|
+
//
|
|
8
|
+
//===----------------------------------------------------------------------===//
|
|
9
|
+
#ifndef _LIBCUDACXX___EXPECTED_EXPECTED_H
|
|
10
|
+
#define _LIBCUDACXX___EXPECTED_EXPECTED_H
|
|
11
|
+
|
|
12
|
+
#include <cuda/std/detail/__config>
|
|
13
|
+
|
|
14
|
+
#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
|
|
15
|
+
# pragma GCC system_header
|
|
16
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
|
|
17
|
+
# pragma clang system_header
|
|
18
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
|
|
19
|
+
# pragma system_header
|
|
20
|
+
#endif // no system header
|
|
21
|
+
|
|
22
|
+
#include <cuda/std/__concepts/invocable.h>
|
|
23
|
+
#include <cuda/std/__expected/bad_expected_access.h>
|
|
24
|
+
#include <cuda/std/__expected/expected_base.h>
|
|
25
|
+
#include <cuda/std/__expected/unexpect.h>
|
|
26
|
+
#include <cuda/std/__expected/unexpected.h>
|
|
27
|
+
#include <cuda/std/__memory/addressof.h>
|
|
28
|
+
#include <cuda/std/__memory/construct_at.h>
|
|
29
|
+
#include <cuda/std/__type_traits/conjunction.h>
|
|
30
|
+
#include <cuda/std/__type_traits/disjunction.h>
|
|
31
|
+
#include <cuda/std/__type_traits/is_assignable.h>
|
|
32
|
+
#include <cuda/std/__type_traits/is_constructible.h>
|
|
33
|
+
#include <cuda/std/__type_traits/is_convertible.h>
|
|
34
|
+
#include <cuda/std/__type_traits/is_copy_assignable.h>
|
|
35
|
+
#include <cuda/std/__type_traits/is_copy_constructible.h>
|
|
36
|
+
#include <cuda/std/__type_traits/is_default_constructible.h>
|
|
37
|
+
#include <cuda/std/__type_traits/is_function.h>
|
|
38
|
+
#include <cuda/std/__type_traits/is_move_assignable.h>
|
|
39
|
+
#include <cuda/std/__type_traits/is_move_constructible.h>
|
|
40
|
+
#include <cuda/std/__type_traits/is_nothrow_constructible.h>
|
|
41
|
+
#include <cuda/std/__type_traits/is_nothrow_copy_assignable.h>
|
|
42
|
+
#include <cuda/std/__type_traits/is_nothrow_copy_constructible.h>
|
|
43
|
+
#include <cuda/std/__type_traits/is_nothrow_default_constructible.h>
|
|
44
|
+
#include <cuda/std/__type_traits/is_nothrow_move_assignable.h>
|
|
45
|
+
#include <cuda/std/__type_traits/is_nothrow_move_constructible.h>
|
|
46
|
+
#include <cuda/std/__type_traits/is_reference.h>
|
|
47
|
+
#include <cuda/std/__type_traits/is_same.h>
|
|
48
|
+
#include <cuda/std/__type_traits/is_swappable.h>
|
|
49
|
+
#include <cuda/std/__type_traits/is_trivially_copy_constructible.h>
|
|
50
|
+
#include <cuda/std/__type_traits/is_trivially_destructible.h>
|
|
51
|
+
#include <cuda/std/__type_traits/is_trivially_move_constructible.h>
|
|
52
|
+
#include <cuda/std/__type_traits/is_void.h>
|
|
53
|
+
#include <cuda/std/__type_traits/lazy.h>
|
|
54
|
+
#include <cuda/std/__type_traits/negation.h>
|
|
55
|
+
#include <cuda/std/__type_traits/remove_cv.h>
|
|
56
|
+
#include <cuda/std/__type_traits/remove_cvref.h>
|
|
57
|
+
#include <cuda/std/__utility/as_const.h>
|
|
58
|
+
#include <cuda/std/__utility/exception_guard.h>
|
|
59
|
+
#include <cuda/std/__utility/forward.h>
|
|
60
|
+
#include <cuda/std/__utility/in_place.h>
|
|
61
|
+
#include <cuda/std/__utility/move.h>
|
|
62
|
+
#include <cuda/std/__utility/swap.h>
|
|
63
|
+
#include <cuda/std/initializer_list>
|
|
64
|
+
|
|
65
|
+
#include <cuda/std/__cccl/prologue.h>
|
|
66
|
+
|
|
67
|
+
_LIBCUDACXX_BEGIN_NAMESPACE_STD
|
|
68
|
+
|
|
69
|
+
template <class _Tp, class _Err>
|
|
70
|
+
class expected;
|
|
71
|
+
|
|
72
|
+
namespace __expected
|
|
73
|
+
{
|
|
74
|
+
template <class _Tp, class _Err>
|
|
75
|
+
inline constexpr bool __valid_expected =
|
|
76
|
+
!_CCCL_TRAIT(is_reference, _Tp) && !_CCCL_TRAIT(is_function, _Tp)
|
|
77
|
+
&& !_CCCL_TRAIT(is_same, remove_cv_t<_Tp>, in_place_t) && !_CCCL_TRAIT(is_same, remove_cv_t<_Tp>, unexpect_t)
|
|
78
|
+
&& !__unexpected::__is_unexpected<remove_cv_t<_Tp>> && __unexpected::__valid_unexpected<_Err>;
|
|
79
|
+
|
|
80
|
+
template <class _Tp>
|
|
81
|
+
inline constexpr bool __is_expected = false;
|
|
82
|
+
|
|
83
|
+
template <class _Tp, class _Err>
|
|
84
|
+
inline constexpr bool __is_expected<expected<_Tp, _Err>> = true;
|
|
85
|
+
|
|
86
|
+
template <class _Tp>
|
|
87
|
+
inline constexpr bool __is_expected_nonvoid = __is_expected<_Tp>;
|
|
88
|
+
|
|
89
|
+
template <class _Err>
|
|
90
|
+
inline constexpr bool __is_expected_nonvoid<expected<void, _Err>> = false;
|
|
91
|
+
|
|
92
|
+
template <class _Tp, class _Err>
|
|
93
|
+
inline constexpr bool __can_swap =
|
|
94
|
+
_CCCL_TRAIT(is_swappable, _Tp) && _CCCL_TRAIT(is_swappable, _Err) && _CCCL_TRAIT(is_move_constructible, _Tp)
|
|
95
|
+
&& _CCCL_TRAIT(is_move_constructible, _Err)
|
|
96
|
+
&& (_CCCL_TRAIT(is_nothrow_move_constructible, _Tp) || _CCCL_TRAIT(is_nothrow_move_constructible, _Err));
|
|
97
|
+
|
|
98
|
+
template <class _Err>
|
|
99
|
+
inline constexpr bool __can_swap<void, _Err> =
|
|
100
|
+
_CCCL_TRAIT(is_swappable, _Err) && _CCCL_TRAIT(is_move_constructible, _Err);
|
|
101
|
+
} // namespace __expected
|
|
102
|
+
|
|
103
|
+
template <class _Tp, class _Err>
|
|
104
|
+
class expected : private __expected_move_assign<_Tp, _Err>
|
|
105
|
+
{
|
|
106
|
+
using __base = __expected_move_assign<_Tp, _Err>;
|
|
107
|
+
|
|
108
|
+
static_assert(__expected::__valid_expected<_Tp, _Err>,
|
|
109
|
+
"[expected.object.general] A program that instantiates the definition of template expected<T, E> for a "
|
|
110
|
+
"reference type, a function type, or for possibly cv-qualified types in_place_t, unexpect_t, or a "
|
|
111
|
+
"specialization of unexpected for the T parameter is ill-formed. A program that instantiates the "
|
|
112
|
+
"definition of the template expected<T, E> with a type for the E parameter that is not a valid "
|
|
113
|
+
"template argument for unexpected is ill-formed.");
|
|
114
|
+
|
|
115
|
+
template <class, class>
|
|
116
|
+
friend class expected;
|
|
117
|
+
|
|
118
|
+
public:
|
|
119
|
+
using value_type = _Tp;
|
|
120
|
+
using error_type = _Err;
|
|
121
|
+
using unexpected_type = unexpected<_Err>;
|
|
122
|
+
|
|
123
|
+
template <class _Up>
|
|
124
|
+
using rebind = expected<_Up, error_type>;
|
|
125
|
+
|
|
126
|
+
// [expected.object.ctor], constructors
|
|
127
|
+
_CCCL_TEMPLATE(class _Tp2 = _Tp)
|
|
128
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_default_constructible, _Tp2))
|
|
129
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected() noexcept(_CCCL_TRAIT(is_nothrow_default_constructible, _Tp2))
|
|
130
|
+
: __base(true)
|
|
131
|
+
{}
|
|
132
|
+
|
|
133
|
+
_CCCL_HIDE_FROM_ABI constexpr expected(const expected&) = default;
|
|
134
|
+
_CCCL_HIDE_FROM_ABI constexpr expected(expected&&) = default;
|
|
135
|
+
_CCCL_HIDE_FROM_ABI constexpr expected& operator=(const expected&) = default;
|
|
136
|
+
_CCCL_HIDE_FROM_ABI constexpr expected& operator=(expected&&) = default;
|
|
137
|
+
|
|
138
|
+
private:
|
|
139
|
+
template <class _Up, class _OtherErr, class _UfQual, class _OtherErrQual>
|
|
140
|
+
using __can_convert =
|
|
141
|
+
_And<is_constructible<_Tp, _UfQual>,
|
|
142
|
+
is_constructible<_Err, _OtherErrQual>,
|
|
143
|
+
_Not<is_constructible<_Tp, expected<_Up, _OtherErr>&>>,
|
|
144
|
+
_Not<is_constructible<_Tp, expected<_Up, _OtherErr>>>,
|
|
145
|
+
_Not<is_constructible<_Tp, const expected<_Up, _OtherErr>&>>,
|
|
146
|
+
_Not<is_constructible<_Tp, const expected<_Up, _OtherErr>>>,
|
|
147
|
+
_Not<is_convertible<expected<_Up, _OtherErr>&, _Tp>>,
|
|
148
|
+
_Not<is_convertible<expected<_Up, _OtherErr>&&, _Tp>>,
|
|
149
|
+
_Not<is_convertible<const expected<_Up, _OtherErr>&, _Tp>>,
|
|
150
|
+
_Not<is_convertible<const expected<_Up, _OtherErr>&&, _Tp>>,
|
|
151
|
+
_Not<is_constructible<unexpected<_Err>, expected<_Up, _OtherErr>&>>,
|
|
152
|
+
_Not<is_constructible<unexpected<_Err>, expected<_Up, _OtherErr>>>,
|
|
153
|
+
_Not<is_constructible<unexpected<_Err>, const expected<_Up, _OtherErr>&>>,
|
|
154
|
+
_Not<is_constructible<unexpected<_Err>, const expected<_Up, _OtherErr>>>>;
|
|
155
|
+
|
|
156
|
+
public:
|
|
157
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
158
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, const _Up&, const _OtherErr&>::value _CCCL_AND _CCCL_TRAIT(
|
|
159
|
+
is_convertible, const _Up&, _Tp) _CCCL_AND _CCCL_TRAIT(is_convertible, const _OtherErr&, _Err))
|
|
160
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected(const expected<_Up, _OtherErr>& __other) noexcept(
|
|
161
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, const _Up&)
|
|
162
|
+
&& _CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
163
|
+
: __base(__other.__has_val_)
|
|
164
|
+
{
|
|
165
|
+
if (__other.__has_val_)
|
|
166
|
+
{
|
|
167
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, __other.__union_.__val_);
|
|
168
|
+
}
|
|
169
|
+
else
|
|
170
|
+
{
|
|
171
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, __other.__union_.__unex_);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
176
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, const _Up&, const _OtherErr&>::value _CCCL_AND(
|
|
177
|
+
!_CCCL_TRAIT(is_convertible, const _Up&, _Tp) || !_CCCL_TRAIT(is_convertible, const _OtherErr&, _Err)))
|
|
178
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 explicit expected(const expected<_Up, _OtherErr>& __other) noexcept(
|
|
179
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, const _Up&)
|
|
180
|
+
&& _CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
181
|
+
: __base(__other.__has_val_)
|
|
182
|
+
{
|
|
183
|
+
if (__other.__has_val_)
|
|
184
|
+
{
|
|
185
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, __other.__union_.__val_);
|
|
186
|
+
}
|
|
187
|
+
else
|
|
188
|
+
{
|
|
189
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, __other.__union_.__unex_);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
194
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, _Up, _OtherErr>::value _CCCL_AND _CCCL_TRAIT(is_convertible, _Up, _Tp)
|
|
195
|
+
_CCCL_AND _CCCL_TRAIT(is_convertible, _OtherErr, _Err))
|
|
196
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected(expected<_Up, _OtherErr>&& __other) noexcept(
|
|
197
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Up)
|
|
198
|
+
&& _CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
199
|
+
: __base(__other.__has_val_)
|
|
200
|
+
{
|
|
201
|
+
if (__other.__has_val_)
|
|
202
|
+
{
|
|
203
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, _CUDA_VSTD::move(__other.__union_.__val_));
|
|
204
|
+
}
|
|
205
|
+
else
|
|
206
|
+
{
|
|
207
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, _CUDA_VSTD::move(__other.__union_.__unex_));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
212
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, _Up, _OtherErr>::value _CCCL_AND(
|
|
213
|
+
!_CCCL_TRAIT(is_convertible, _Up, _Tp) || !_CCCL_TRAIT(is_convertible, _OtherErr, _Err)))
|
|
214
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 explicit expected(expected<_Up, _OtherErr>&& __other) noexcept(
|
|
215
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Up)
|
|
216
|
+
&& _CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
217
|
+
: __base(__other.__has_val_)
|
|
218
|
+
{
|
|
219
|
+
if (__other.__has_val_)
|
|
220
|
+
{
|
|
221
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, _CUDA_VSTD::move(__other.__union_.__val_));
|
|
222
|
+
}
|
|
223
|
+
else
|
|
224
|
+
{
|
|
225
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, _CUDA_VSTD::move(__other.__union_.__unex_));
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
_CCCL_TEMPLATE(class _Up = _Tp)
|
|
230
|
+
_CCCL_REQUIRES((!_CCCL_TRAIT(is_same, remove_cvref_t<_Up>, in_place_t)) _CCCL_AND(
|
|
231
|
+
!_CCCL_TRAIT(is_same, expected, remove_cvref_t<_Up>)) _CCCL_AND(!__unexpected::__is_unexpected<remove_cvref_t<_Up>>)
|
|
232
|
+
_CCCL_AND _CCCL_TRAIT(is_constructible, _Tp, _Up) _CCCL_AND _CCCL_TRAIT(is_convertible, _Up, _Tp))
|
|
233
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(_Up&& __u) noexcept(
|
|
234
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Up)) // strengthened
|
|
235
|
+
: __base(in_place, _CUDA_VSTD::forward<_Up>(__u))
|
|
236
|
+
{}
|
|
237
|
+
|
|
238
|
+
_CCCL_TEMPLATE(class _Up = _Tp)
|
|
239
|
+
_CCCL_REQUIRES((!_CCCL_TRAIT(is_same, remove_cvref_t<_Up>, in_place_t)) _CCCL_AND(
|
|
240
|
+
!_CCCL_TRAIT(is_same, expected, remove_cvref_t<_Up>)) _CCCL_AND(!__unexpected::__is_unexpected<remove_cvref_t<_Up>>)
|
|
241
|
+
_CCCL_AND _CCCL_TRAIT(is_constructible, _Tp, _Up) _CCCL_AND(!_CCCL_TRAIT(is_convertible, _Up, _Tp)))
|
|
242
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(_Up&& __u) noexcept(
|
|
243
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Up)) // strengthened
|
|
244
|
+
: __base(in_place, _CUDA_VSTD::forward<_Up>(__u))
|
|
245
|
+
{}
|
|
246
|
+
|
|
247
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
248
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, const _OtherErr&)
|
|
249
|
+
_CCCL_AND _CCCL_TRAIT(is_convertible, const _OtherErr&, _Err))
|
|
250
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(const unexpected<_OtherErr>& __unex) noexcept(
|
|
251
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
252
|
+
: __base(unexpect, __unex.error())
|
|
253
|
+
{}
|
|
254
|
+
|
|
255
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
256
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, const _OtherErr&)
|
|
257
|
+
_CCCL_AND(!_CCCL_TRAIT(is_convertible, const _OtherErr&, _Err)))
|
|
258
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(const unexpected<_OtherErr>& __unex) noexcept(
|
|
259
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
260
|
+
: __base(unexpect, __unex.error())
|
|
261
|
+
{}
|
|
262
|
+
|
|
263
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
264
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _OtherErr) _CCCL_AND _CCCL_TRAIT(is_convertible, _OtherErr, _Err))
|
|
265
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(unexpected<_OtherErr>&& __unex) noexcept(
|
|
266
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
267
|
+
: __base(unexpect, _CUDA_VSTD::move(__unex.error()))
|
|
268
|
+
{}
|
|
269
|
+
|
|
270
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
271
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _OtherErr)
|
|
272
|
+
_CCCL_AND(!_CCCL_TRAIT(is_convertible, _OtherErr, _Err)))
|
|
273
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(unexpected<_OtherErr>&& __unex) noexcept(
|
|
274
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
275
|
+
: __base(unexpect, _CUDA_VSTD::move(__unex.error()))
|
|
276
|
+
{}
|
|
277
|
+
|
|
278
|
+
_CCCL_TEMPLATE(class... _Args)
|
|
279
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp, _Args...))
|
|
280
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(in_place_t, _Args&&... __args) noexcept(
|
|
281
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...)) // strengthened
|
|
282
|
+
: __base(in_place, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
283
|
+
{}
|
|
284
|
+
|
|
285
|
+
_CCCL_TEMPLATE(class _Up, class... _Args)
|
|
286
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp, initializer_list<_Up>&, _Args...))
|
|
287
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(
|
|
288
|
+
in_place_t,
|
|
289
|
+
initializer_list<_Up> __il,
|
|
290
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible,
|
|
291
|
+
_Tp,
|
|
292
|
+
initializer_list<_Up>&,
|
|
293
|
+
_Args...)) // strengthened
|
|
294
|
+
: __base(in_place, __il, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
295
|
+
{}
|
|
296
|
+
|
|
297
|
+
_CCCL_TEMPLATE(class... _Args)
|
|
298
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _Args...))
|
|
299
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(unexpect_t, _Args&&... __args) noexcept(
|
|
300
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _Args...)) // strengthened
|
|
301
|
+
: __base(unexpect, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
302
|
+
{}
|
|
303
|
+
|
|
304
|
+
_CCCL_TEMPLATE(class _Up, class... _Args)
|
|
305
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, initializer_list<_Up>&, _Args...))
|
|
306
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(
|
|
307
|
+
unexpect_t,
|
|
308
|
+
initializer_list<_Up> __il,
|
|
309
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible,
|
|
310
|
+
_Err,
|
|
311
|
+
initializer_list<_Up>&,
|
|
312
|
+
_Args...)) // strengthened
|
|
313
|
+
: __base(unexpect, __il, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
314
|
+
{}
|
|
315
|
+
|
|
316
|
+
private:
|
|
317
|
+
template <class _Fun, class... _Args>
|
|
318
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(
|
|
319
|
+
__expected_construct_from_invoke_tag,
|
|
320
|
+
in_place_t,
|
|
321
|
+
_Fun&& __fun,
|
|
322
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Tp, invoke_result_t<_Fun, _Args...>))
|
|
323
|
+
: __base(__expected_construct_from_invoke_tag{},
|
|
324
|
+
in_place,
|
|
325
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
326
|
+
_CUDA_VSTD::forward<_Args>(__args)...)
|
|
327
|
+
{}
|
|
328
|
+
|
|
329
|
+
template <class _Fun, class... _Args>
|
|
330
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(
|
|
331
|
+
__expected_construct_from_invoke_tag,
|
|
332
|
+
unexpect_t,
|
|
333
|
+
_Fun&& __fun,
|
|
334
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Err, invoke_result_t<_Fun, _Args...>))
|
|
335
|
+
: __base(__expected_construct_from_invoke_tag{},
|
|
336
|
+
unexpect,
|
|
337
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
338
|
+
_CUDA_VSTD::forward<_Args>(__args)...)
|
|
339
|
+
{}
|
|
340
|
+
|
|
341
|
+
public:
|
|
342
|
+
// [expected.object.assign], assignment
|
|
343
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
344
|
+
_CCCL_TEMPLATE(class _Up = _Tp)
|
|
345
|
+
_CCCL_REQUIRES(
|
|
346
|
+
(!_CCCL_TRAIT(is_same, expected, remove_cvref_t<_Up>)) _CCCL_AND(!__unexpected::__is_unexpected<remove_cvref_t<_Up>>)
|
|
347
|
+
_CCCL_AND _CCCL_TRAIT(is_constructible, _Tp, _Up) _CCCL_AND _CCCL_TRAIT(is_assignable, _Tp&, _Up)
|
|
348
|
+
_CCCL_AND(_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Up) || _CCCL_TRAIT(is_nothrow_move_constructible, _Tp)
|
|
349
|
+
|| _CCCL_TRAIT(is_nothrow_move_constructible, _Err)))
|
|
350
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected& operator=(_Up&& __v)
|
|
351
|
+
{
|
|
352
|
+
if (this->__has_val_)
|
|
353
|
+
{
|
|
354
|
+
this->__union_.__val_ = _CUDA_VSTD::forward<_Up>(__v);
|
|
355
|
+
}
|
|
356
|
+
else
|
|
357
|
+
{
|
|
358
|
+
this->__reinit_expected(this->__union_.__val_, this->__union_.__unex_, _CUDA_VSTD::forward<_Up>(__v));
|
|
359
|
+
this->__has_val_ = true;
|
|
360
|
+
}
|
|
361
|
+
return *this;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
private:
|
|
365
|
+
template <class _OtherErrQual>
|
|
366
|
+
static constexpr bool __can_assign_from_unexpected =
|
|
367
|
+
_And<is_constructible<_Err, _OtherErrQual>,
|
|
368
|
+
is_assignable<_Err&, _OtherErrQual>,
|
|
369
|
+
_Lazy<_Or,
|
|
370
|
+
is_nothrow_constructible<_Err, _OtherErrQual>,
|
|
371
|
+
is_nothrow_move_constructible<_Tp>,
|
|
372
|
+
is_nothrow_move_constructible<_Err>>>::value;
|
|
373
|
+
|
|
374
|
+
public:
|
|
375
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
376
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
377
|
+
_CCCL_REQUIRES(__can_assign_from_unexpected<const _OtherErr&>)
|
|
378
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected& operator=(const unexpected<_OtherErr>& __un)
|
|
379
|
+
{
|
|
380
|
+
if (this->__has_val_)
|
|
381
|
+
{
|
|
382
|
+
this->__reinit_expected(this->__union_.__unex_, this->__union_.__val_, __un.error());
|
|
383
|
+
this->__has_val_ = false;
|
|
384
|
+
}
|
|
385
|
+
else
|
|
386
|
+
{
|
|
387
|
+
this->__union_.__unex_ = __un.error();
|
|
388
|
+
}
|
|
389
|
+
return *this;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
393
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
394
|
+
_CCCL_REQUIRES(__can_assign_from_unexpected<_OtherErr>)
|
|
395
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected& operator=(unexpected<_OtherErr>&& __un)
|
|
396
|
+
{
|
|
397
|
+
if (this->__has_val_)
|
|
398
|
+
{
|
|
399
|
+
this->__reinit_expected(this->__union_.__unex_, this->__union_.__val_, _CUDA_VSTD::move(__un.error()));
|
|
400
|
+
this->__has_val_ = false;
|
|
401
|
+
}
|
|
402
|
+
else
|
|
403
|
+
{
|
|
404
|
+
this->__union_.__unex_ = _CUDA_VSTD::move(__un.error());
|
|
405
|
+
}
|
|
406
|
+
return *this;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
_CCCL_TEMPLATE(class... _Args)
|
|
410
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
|
|
411
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 _Tp& emplace(_Args&&... __args) noexcept
|
|
412
|
+
{
|
|
413
|
+
if (this->__has_val_)
|
|
414
|
+
{
|
|
415
|
+
_CUDA_VSTD::__destroy_at(_CUDA_VSTD::addressof(this->__union_.__val_));
|
|
416
|
+
}
|
|
417
|
+
else
|
|
418
|
+
{
|
|
419
|
+
_CUDA_VSTD::__destroy_at(_CUDA_VSTD::addressof(this->__union_.__unex_));
|
|
420
|
+
this->__has_val_ = true;
|
|
421
|
+
}
|
|
422
|
+
return *_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, _CUDA_VSTD::forward<_Args>(__args)...);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
_CCCL_TEMPLATE(class _Up, class... _Args)
|
|
426
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_nothrow_constructible, _Tp, initializer_list<_Up>&, _Args...))
|
|
427
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 _Tp& emplace(initializer_list<_Up> __il, _Args&&... __args) noexcept
|
|
428
|
+
{
|
|
429
|
+
if (this->__has_val_)
|
|
430
|
+
{
|
|
431
|
+
_CUDA_VSTD::__destroy_at(_CUDA_VSTD::addressof(this->__union_.__val_));
|
|
432
|
+
}
|
|
433
|
+
else
|
|
434
|
+
{
|
|
435
|
+
_CUDA_VSTD::__destroy_at(_CUDA_VSTD::addressof(this->__union_.__unex_));
|
|
436
|
+
this->__has_val_ = true;
|
|
437
|
+
}
|
|
438
|
+
return *_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__val_, __il, _CUDA_VSTD::forward<_Args>(__args)...);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
public:
|
|
442
|
+
// [expected.object.swap], swap
|
|
443
|
+
_CCCL_TEMPLATE(class _Tp2 = _Tp, class _Err2 = _Err)
|
|
444
|
+
_CCCL_REQUIRES(__expected::__can_swap<_Tp2, _Err2>)
|
|
445
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void swap(expected<_Tp2, _Err>& __rhs) noexcept(
|
|
446
|
+
_CCCL_TRAIT(is_nothrow_move_constructible, _Tp2) && _CCCL_TRAIT(is_nothrow_swappable, _Tp2)
|
|
447
|
+
&& _CCCL_TRAIT(is_nothrow_move_constructible, _Err) && _CCCL_TRAIT(is_nothrow_swappable, _Err))
|
|
448
|
+
{
|
|
449
|
+
if (this->__has_val_)
|
|
450
|
+
{
|
|
451
|
+
if (__rhs.__has_val_)
|
|
452
|
+
{
|
|
453
|
+
using _CUDA_VSTD::swap;
|
|
454
|
+
swap(this->__union_.__val_, __rhs.__union_.__val_);
|
|
455
|
+
}
|
|
456
|
+
else
|
|
457
|
+
{
|
|
458
|
+
this->__swap_val_unex_impl(*this, __rhs);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
else
|
|
462
|
+
{
|
|
463
|
+
if (__rhs.__has_val_)
|
|
464
|
+
{
|
|
465
|
+
this->__swap_val_unex_impl(__rhs, *this);
|
|
466
|
+
}
|
|
467
|
+
else
|
|
468
|
+
{
|
|
469
|
+
using _CUDA_VSTD::swap;
|
|
470
|
+
swap(this->__union_.__unex_, __rhs.__union_.__unex_);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
template <class _Tp2 = _Tp, class _Err2 = _Err>
|
|
476
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 auto swap(expected& __x, expected& __y) noexcept(
|
|
477
|
+
_CCCL_TRAIT(is_nothrow_move_constructible, _Tp2) && _CCCL_TRAIT(is_nothrow_swappable, _Tp2)
|
|
478
|
+
&& _CCCL_TRAIT(is_nothrow_move_constructible, _Err2) && _CCCL_TRAIT(is_nothrow_swappable, _Err2))
|
|
479
|
+
_CCCL_TRAILING_REQUIRES(void)(__expected::__can_swap<_Tp2, _Err2>)
|
|
480
|
+
{
|
|
481
|
+
return __x.swap(__y); // some compiler warn about non void function without return
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// [expected.object.obs], observers
|
|
485
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp* operator->() const noexcept
|
|
486
|
+
{
|
|
487
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator-> requires the expected to contain a value");
|
|
488
|
+
return _CUDA_VSTD::addressof(this->__union_.__val_);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp* operator->() noexcept
|
|
492
|
+
{
|
|
493
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator-> requires the expected to contain a value");
|
|
494
|
+
return _CUDA_VSTD::addressof(this->__union_.__val_);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp& operator*() const& noexcept
|
|
498
|
+
{
|
|
499
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator* requires the expected to contain a value");
|
|
500
|
+
return this->__union_.__val_;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp& operator*() & noexcept
|
|
504
|
+
{
|
|
505
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator* requires the expected to contain a value");
|
|
506
|
+
return this->__union_.__val_;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp&& operator*() const&& noexcept
|
|
510
|
+
{
|
|
511
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator* requires the expected to contain a value");
|
|
512
|
+
return _CUDA_VSTD::move(this->__union_.__val_);
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp&& operator*() && noexcept
|
|
516
|
+
{
|
|
517
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator* requires the expected to contain a value");
|
|
518
|
+
return _CUDA_VSTD::move(this->__union_.__val_);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit operator bool() const noexcept
|
|
522
|
+
{
|
|
523
|
+
return this->__has_val_;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr bool has_value() const noexcept
|
|
527
|
+
{
|
|
528
|
+
return this->__has_val_;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp& value() const&
|
|
532
|
+
{
|
|
533
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err),
|
|
534
|
+
"expected::value() const& requires is_copy_constructible_v<E>");
|
|
535
|
+
if (!this->__has_val_)
|
|
536
|
+
{
|
|
537
|
+
__throw_bad_expected_access<_Err>(this->__union_.__unex_);
|
|
538
|
+
}
|
|
539
|
+
return this->__union_.__val_;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp& value() &
|
|
543
|
+
{
|
|
544
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err), "expected::value() & requires is_copy_constructible_v<E>");
|
|
545
|
+
if (!this->__has_val_)
|
|
546
|
+
{
|
|
547
|
+
__throw_bad_expected_access<_Err>(_CUDA_VSTD::as_const(this->__union_.__unex_));
|
|
548
|
+
}
|
|
549
|
+
return this->__union_.__val_;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp&& value() const&&
|
|
553
|
+
{
|
|
554
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err),
|
|
555
|
+
"expected::value() const&& requires is_copy_constructible_v<E>");
|
|
556
|
+
static_assert(_CCCL_TRAIT(is_constructible, _Err, decltype(_CUDA_VSTD::move(error()))),
|
|
557
|
+
"expected::value() const&& requires is_constructible_v<E, decltype(_CUDA_VSTD::move(error()))>");
|
|
558
|
+
if (!this->__has_val_)
|
|
559
|
+
{
|
|
560
|
+
__throw_bad_expected_access<_Err>(_CUDA_VSTD::move(this->__union_.__unex_));
|
|
561
|
+
}
|
|
562
|
+
return _CUDA_VSTD::move(this->__union_.__val_);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp&& value() &&
|
|
566
|
+
{
|
|
567
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err), "expected::value() && requires is_copy_constructible_v<E>");
|
|
568
|
+
static_assert(_CCCL_TRAIT(is_constructible, _Err, decltype(_CUDA_VSTD::move(error()))),
|
|
569
|
+
"expected::value() && requires is_constructible_v<E, decltype(_CUDA_VSTD::move(error()))>");
|
|
570
|
+
if (!this->__has_val_)
|
|
571
|
+
{
|
|
572
|
+
__throw_bad_expected_access<_Err>(_CUDA_VSTD::move(this->__union_.__unex_));
|
|
573
|
+
}
|
|
574
|
+
return _CUDA_VSTD::move(this->__union_.__val_);
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Err& error() const& noexcept
|
|
578
|
+
{
|
|
579
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
580
|
+
return this->__union_.__unex_;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Err& error() & noexcept
|
|
584
|
+
{
|
|
585
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
586
|
+
return this->__union_.__unex_;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Err&& error() const&& noexcept
|
|
590
|
+
{
|
|
591
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
592
|
+
return _CUDA_VSTD::move(this->__union_.__unex_);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Err&& error() && noexcept
|
|
596
|
+
{
|
|
597
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
598
|
+
return _CUDA_VSTD::move(this->__union_.__unex_);
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
template <class _Up>
|
|
602
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp value_or(_Up&& __v) const&
|
|
603
|
+
{
|
|
604
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Tp), "value_type has to be copy constructible");
|
|
605
|
+
static_assert(_CCCL_TRAIT(is_convertible, _Up, _Tp), "argument has to be convertible to value_type");
|
|
606
|
+
return this->__has_val_ ? this->__union_.__val_ : static_cast<_Tp>(_CUDA_VSTD::forward<_Up>(__v));
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
template <class _Up>
|
|
610
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp value_or(_Up&& __v) &&
|
|
611
|
+
{
|
|
612
|
+
static_assert(_CCCL_TRAIT(is_move_constructible, _Tp), "value_type has to be move constructible");
|
|
613
|
+
static_assert(_CCCL_TRAIT(is_convertible, _Up, _Tp), "argument has to be convertible to value_type");
|
|
614
|
+
return this->__has_val_ ? _CUDA_VSTD::move(this->__union_.__val_) : static_cast<_Tp>(_CUDA_VSTD::forward<_Up>(__v));
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// [expected.object.monadic]
|
|
618
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
619
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&))
|
|
620
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) &
|
|
621
|
+
{
|
|
622
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Tp&>>;
|
|
623
|
+
|
|
624
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
625
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
626
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
627
|
+
|
|
628
|
+
if (this->__has_val_)
|
|
629
|
+
{
|
|
630
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_);
|
|
631
|
+
}
|
|
632
|
+
else
|
|
633
|
+
{
|
|
634
|
+
return _Res{unexpect, this->__union_.__unex_};
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
639
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2))
|
|
640
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) const&
|
|
641
|
+
{
|
|
642
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Tp&>>;
|
|
643
|
+
|
|
644
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
645
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
646
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
647
|
+
|
|
648
|
+
if (this->__has_val_)
|
|
649
|
+
{
|
|
650
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_);
|
|
651
|
+
}
|
|
652
|
+
else
|
|
653
|
+
{
|
|
654
|
+
return _Res{unexpect, this->__union_.__unex_};
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
659
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2))
|
|
660
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) &&
|
|
661
|
+
{
|
|
662
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Tp>>;
|
|
663
|
+
|
|
664
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
665
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
666
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
667
|
+
|
|
668
|
+
if (this->__has_val_)
|
|
669
|
+
{
|
|
670
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__val_));
|
|
671
|
+
}
|
|
672
|
+
else
|
|
673
|
+
{
|
|
674
|
+
return _Res{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
679
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2))
|
|
680
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) const&&
|
|
681
|
+
{
|
|
682
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Tp>>;
|
|
683
|
+
|
|
684
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
685
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
686
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
687
|
+
|
|
688
|
+
if (this->__has_val_)
|
|
689
|
+
{
|
|
690
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__val_));
|
|
691
|
+
}
|
|
692
|
+
else
|
|
693
|
+
{
|
|
694
|
+
return _Res{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
699
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp2, _Tp2&))
|
|
700
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) &
|
|
701
|
+
{
|
|
702
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Err&>>;
|
|
703
|
+
|
|
704
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
705
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
706
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, _Tp),
|
|
707
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
708
|
+
|
|
709
|
+
if (this->__has_val_)
|
|
710
|
+
{
|
|
711
|
+
return _Res{in_place, this->__union_.__val_};
|
|
712
|
+
}
|
|
713
|
+
else
|
|
714
|
+
{
|
|
715
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
720
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Tp2))
|
|
721
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) const&
|
|
722
|
+
{
|
|
723
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Err&>>;
|
|
724
|
+
|
|
725
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
726
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
727
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, _Tp),
|
|
728
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
729
|
+
|
|
730
|
+
if (this->__has_val_)
|
|
731
|
+
{
|
|
732
|
+
return _Res{in_place, this->__union_.__val_};
|
|
733
|
+
}
|
|
734
|
+
else
|
|
735
|
+
{
|
|
736
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_);
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
741
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Tp2))
|
|
742
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) &&
|
|
743
|
+
{
|
|
744
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Err>>;
|
|
745
|
+
|
|
746
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
747
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
748
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, _Tp),
|
|
749
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
750
|
+
|
|
751
|
+
if (this->__has_val_)
|
|
752
|
+
{
|
|
753
|
+
return _Res{in_place, _CUDA_VSTD::move(this->__union_.__val_)};
|
|
754
|
+
}
|
|
755
|
+
else
|
|
756
|
+
{
|
|
757
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__unex_));
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
762
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp2, const _Tp2))
|
|
763
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) const&&
|
|
764
|
+
{
|
|
765
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Err>>;
|
|
766
|
+
|
|
767
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
768
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
769
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, _Tp),
|
|
770
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
771
|
+
|
|
772
|
+
if (this->__has_val_)
|
|
773
|
+
{
|
|
774
|
+
return _Res{in_place, _CUDA_VSTD::move(this->__union_.__val_)};
|
|
775
|
+
}
|
|
776
|
+
else
|
|
777
|
+
{
|
|
778
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__unex_));
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
783
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&)
|
|
784
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, _Tp2&>>, void))
|
|
785
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &
|
|
786
|
+
{
|
|
787
|
+
static_assert(invocable<_Fun, _Tp&>, "std::expected::transform requires that F must be invocable with T.");
|
|
788
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Tp&>>;
|
|
789
|
+
|
|
790
|
+
if (this->__has_val_)
|
|
791
|
+
{
|
|
792
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_);
|
|
793
|
+
return expected<void, _Err>{};
|
|
794
|
+
}
|
|
795
|
+
else
|
|
796
|
+
{
|
|
797
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
802
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&)
|
|
803
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, _Tp2&>>, void)))
|
|
804
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &
|
|
805
|
+
{
|
|
806
|
+
static_assert(invocable<_Fun, _Tp&>, "std::expected::transform requires that F must be invocable with T.");
|
|
807
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Tp&>>;
|
|
808
|
+
|
|
809
|
+
static_assert(__invoke_constructible<_Fun, _Tp&>,
|
|
810
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
811
|
+
"invoking F");
|
|
812
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
813
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
814
|
+
"std::expected");
|
|
815
|
+
|
|
816
|
+
if (this->__has_val_)
|
|
817
|
+
{
|
|
818
|
+
return expected<_Res, _Err>{
|
|
819
|
+
__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_};
|
|
820
|
+
}
|
|
821
|
+
else
|
|
822
|
+
{
|
|
823
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
828
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2)
|
|
829
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, const _Tp2&>>, void))
|
|
830
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&
|
|
831
|
+
{
|
|
832
|
+
static_assert(invocable<_Fun, const _Tp&>, "std::expected::transform requires that F must be invocable with T.");
|
|
833
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Tp&>>;
|
|
834
|
+
|
|
835
|
+
if (this->__has_val_)
|
|
836
|
+
{
|
|
837
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_);
|
|
838
|
+
return expected<_Res, _Err>{};
|
|
839
|
+
}
|
|
840
|
+
else
|
|
841
|
+
{
|
|
842
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
847
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2)
|
|
848
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, const _Tp2&>>, void)))
|
|
849
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&
|
|
850
|
+
{
|
|
851
|
+
static_assert(invocable<_Fun, const _Tp&>, "std::expected::transform requires that F must be invocable with T");
|
|
852
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Tp&>>;
|
|
853
|
+
|
|
854
|
+
static_assert(__invoke_constructible<_Fun, const _Tp&>,
|
|
855
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
856
|
+
"invoking F");
|
|
857
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
858
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
859
|
+
"std::expected");
|
|
860
|
+
|
|
861
|
+
if (this->__has_val_)
|
|
862
|
+
{
|
|
863
|
+
return expected<_Res, _Err>{
|
|
864
|
+
__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__val_};
|
|
865
|
+
}
|
|
866
|
+
else
|
|
867
|
+
{
|
|
868
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
873
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2)
|
|
874
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, _Tp2>>, void))
|
|
875
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &&
|
|
876
|
+
{
|
|
877
|
+
static_assert(invocable<_Fun, _Tp>, "std::expected::transform requires that F must be invocable with T.");
|
|
878
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Tp>>;
|
|
879
|
+
|
|
880
|
+
if (this->__has_val_)
|
|
881
|
+
{
|
|
882
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__val_));
|
|
883
|
+
return expected<_Res, _Err>{};
|
|
884
|
+
}
|
|
885
|
+
else
|
|
886
|
+
{
|
|
887
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
891
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2)
|
|
892
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, _Tp2>>, void)))
|
|
893
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &&
|
|
894
|
+
{
|
|
895
|
+
static_assert(invocable<_Fun, _Tp>, "std::expected::transform requires that F must be invocable with T");
|
|
896
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Tp>>;
|
|
897
|
+
|
|
898
|
+
static_assert(__invoke_constructible<_Fun, _Tp>,
|
|
899
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
900
|
+
"invoking F");
|
|
901
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
902
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
903
|
+
"std::expected");
|
|
904
|
+
|
|
905
|
+
if (this->__has_val_)
|
|
906
|
+
{
|
|
907
|
+
return expected<_Res, _Err>{
|
|
908
|
+
__expected_construct_from_invoke_tag{},
|
|
909
|
+
in_place,
|
|
910
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
911
|
+
_CUDA_VSTD::move(this->__union_.__val_)};
|
|
912
|
+
}
|
|
913
|
+
else
|
|
914
|
+
{
|
|
915
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
920
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2)
|
|
921
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, const _Tp2>>, void))
|
|
922
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&&
|
|
923
|
+
{
|
|
924
|
+
static_assert(invocable<_Fun, const _Tp>, "std::expected::transform requires that F must be invocable with T.");
|
|
925
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Tp>>;
|
|
926
|
+
|
|
927
|
+
if (this->__has_val_)
|
|
928
|
+
{
|
|
929
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__val_));
|
|
930
|
+
return expected<_Res, _Err>{};
|
|
931
|
+
}
|
|
932
|
+
else
|
|
933
|
+
{
|
|
934
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp, class _Err2 = _Err)
|
|
939
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2)
|
|
940
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun, const _Tp2>>, void)))
|
|
941
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&&
|
|
942
|
+
{
|
|
943
|
+
static_assert(invocable<_Fun, const _Tp>, "std::expected::transform requires that F must be invocable with T");
|
|
944
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Tp>>;
|
|
945
|
+
|
|
946
|
+
static_assert(__invoke_constructible<_Fun, const _Tp>,
|
|
947
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
948
|
+
"invoking F");
|
|
949
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
950
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
951
|
+
"std::expected");
|
|
952
|
+
|
|
953
|
+
if (this->__has_val_)
|
|
954
|
+
{
|
|
955
|
+
return expected<_Res, _Err>{
|
|
956
|
+
__expected_construct_from_invoke_tag{},
|
|
957
|
+
in_place,
|
|
958
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
959
|
+
_CUDA_VSTD::move(this->__union_.__val_)};
|
|
960
|
+
}
|
|
961
|
+
else
|
|
962
|
+
{
|
|
963
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
968
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp2, _Tp2&))
|
|
969
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) &
|
|
970
|
+
{
|
|
971
|
+
static_assert(invocable<_Fun, _Err&>, "std::expected::transform_error requires that F must be invocable with E");
|
|
972
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Err&>>;
|
|
973
|
+
|
|
974
|
+
static_assert(__invoke_constructible<_Fun, _Err&>,
|
|
975
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
976
|
+
"of invoking F");
|
|
977
|
+
static_assert(__expected::__valid_expected<_Tp, _Res>,
|
|
978
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
979
|
+
"std::expected");
|
|
980
|
+
|
|
981
|
+
if (this->__has_val_)
|
|
982
|
+
{
|
|
983
|
+
return expected<_Tp, _Res>{in_place, this->__union_.__val_};
|
|
984
|
+
}
|
|
985
|
+
else
|
|
986
|
+
{
|
|
987
|
+
return expected<_Tp, _Res>{
|
|
988
|
+
__expected_construct_from_invoke_tag{}, unexpect, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_};
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
993
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Tp2))
|
|
994
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) const&
|
|
995
|
+
{
|
|
996
|
+
static_assert(invocable<_Fun, const _Err&>,
|
|
997
|
+
"std::expected::transform_error requires that F must be invocable with E");
|
|
998
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Err&>>;
|
|
999
|
+
|
|
1000
|
+
static_assert(__invoke_constructible<_Fun, const _Err&>,
|
|
1001
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1002
|
+
"of invoking F");
|
|
1003
|
+
static_assert(__expected::__valid_expected<_Tp, _Res>,
|
|
1004
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1005
|
+
"std::expected");
|
|
1006
|
+
|
|
1007
|
+
if (this->__has_val_)
|
|
1008
|
+
{
|
|
1009
|
+
return expected<_Tp, _Res>{in_place, this->__union_.__val_};
|
|
1010
|
+
}
|
|
1011
|
+
else
|
|
1012
|
+
{
|
|
1013
|
+
return expected<_Tp, _Res>{
|
|
1014
|
+
__expected_construct_from_invoke_tag{}, unexpect, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_};
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
1019
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Tp2))
|
|
1020
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) &&
|
|
1021
|
+
{
|
|
1022
|
+
static_assert(invocable<_Fun, _Err>, "std::expected::transform_error requires that F must be invocable with E");
|
|
1023
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Err>>;
|
|
1024
|
+
|
|
1025
|
+
static_assert(__invoke_constructible<_Fun, _Err>,
|
|
1026
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1027
|
+
"of invoking F");
|
|
1028
|
+
static_assert(__expected::__valid_expected<_Tp, _Res>,
|
|
1029
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1030
|
+
"std::expected");
|
|
1031
|
+
|
|
1032
|
+
if (this->__has_val_)
|
|
1033
|
+
{
|
|
1034
|
+
return expected<_Tp, _Res>{in_place, _CUDA_VSTD::move(this->__union_.__val_)};
|
|
1035
|
+
}
|
|
1036
|
+
else
|
|
1037
|
+
{
|
|
1038
|
+
return expected<_Tp, _Res>{
|
|
1039
|
+
__expected_construct_from_invoke_tag{},
|
|
1040
|
+
unexpect,
|
|
1041
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
1042
|
+
_CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
_CCCL_TEMPLATE(class _Fun, class _Tp2 = _Tp)
|
|
1047
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Tp2, const _Tp2))
|
|
1048
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) const&&
|
|
1049
|
+
{
|
|
1050
|
+
static_assert(invocable<_Fun, const _Err>,
|
|
1051
|
+
"std::expected::transform_error requires that F must be invocable with E");
|
|
1052
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Err>>;
|
|
1053
|
+
|
|
1054
|
+
static_assert(__invoke_constructible<_Fun, const _Err>,
|
|
1055
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1056
|
+
"of invoking F");
|
|
1057
|
+
static_assert(__expected::__valid_expected<_Tp, _Res>,
|
|
1058
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1059
|
+
"std::expected");
|
|
1060
|
+
|
|
1061
|
+
if (this->__has_val_)
|
|
1062
|
+
{
|
|
1063
|
+
return expected<_Tp, _Res>{in_place, _CUDA_VSTD::move(this->__union_.__val_)};
|
|
1064
|
+
}
|
|
1065
|
+
else
|
|
1066
|
+
{
|
|
1067
|
+
return expected<_Tp, _Res>{
|
|
1068
|
+
__expected_construct_from_invoke_tag{},
|
|
1069
|
+
unexpect,
|
|
1070
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
1071
|
+
_CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
// [expected.object.eq], equality operators
|
|
1076
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1077
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected& __y)
|
|
1078
|
+
{
|
|
1079
|
+
if (__x.__has_val_ != __y.has_value())
|
|
1080
|
+
{
|
|
1081
|
+
return false;
|
|
1082
|
+
}
|
|
1083
|
+
else
|
|
1084
|
+
{
|
|
1085
|
+
if (__x.__has_val_)
|
|
1086
|
+
{
|
|
1087
|
+
return __x.__union_.__val_ == __y.value();
|
|
1088
|
+
}
|
|
1089
|
+
else
|
|
1090
|
+
{
|
|
1091
|
+
return __x.__union_.__unex_ == __y.error();
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
#if _CCCL_STD_VER < 2020
|
|
1097
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1098
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected& __y)
|
|
1099
|
+
{
|
|
1100
|
+
return !(__x == __y);
|
|
1101
|
+
}
|
|
1102
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1103
|
+
|
|
1104
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1105
|
+
_CCCL_TEMPLATE(class _T2, class _E2)
|
|
1106
|
+
_CCCL_REQUIRES((!_CCCL_TRAIT(is_void, _T2)))
|
|
1107
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected<_T2, _E2>& __y)
|
|
1108
|
+
{
|
|
1109
|
+
if (__x.__has_val_ != __y.has_value())
|
|
1110
|
+
{
|
|
1111
|
+
return false;
|
|
1112
|
+
}
|
|
1113
|
+
else
|
|
1114
|
+
{
|
|
1115
|
+
if (__x.__has_val_)
|
|
1116
|
+
{
|
|
1117
|
+
return __x.__union_.__val_ == __y.value();
|
|
1118
|
+
}
|
|
1119
|
+
else
|
|
1120
|
+
{
|
|
1121
|
+
return __x.__union_.__unex_ == __y.error();
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
#if _CCCL_STD_VER < 2020
|
|
1127
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1128
|
+
_CCCL_TEMPLATE(class _T2, class _E2)
|
|
1129
|
+
_CCCL_REQUIRES((!_CCCL_TRAIT(is_void, _T2)))
|
|
1130
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected<_T2, _E2>& __y)
|
|
1131
|
+
{
|
|
1132
|
+
return !(__x == __y);
|
|
1133
|
+
}
|
|
1134
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1135
|
+
|
|
1136
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1137
|
+
_CCCL_TEMPLATE(class _T2)
|
|
1138
|
+
_CCCL_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
|
|
1139
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const _T2& __v)
|
|
1140
|
+
{
|
|
1141
|
+
return __x.__has_val_ && static_cast<bool>(__x.__union_.__val_ == __v);
|
|
1142
|
+
}
|
|
1143
|
+
#if _CCCL_STD_VER < 2020
|
|
1144
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1145
|
+
_CCCL_TEMPLATE(class _T2)
|
|
1146
|
+
_CCCL_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
|
|
1147
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const _T2& __v, const expected& __x)
|
|
1148
|
+
{
|
|
1149
|
+
return __x.__has_val_ && static_cast<bool>(__x.__union_.__val_ == __v);
|
|
1150
|
+
}
|
|
1151
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1152
|
+
_CCCL_TEMPLATE(class _T2)
|
|
1153
|
+
_CCCL_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
|
|
1154
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const _T2& __v)
|
|
1155
|
+
{
|
|
1156
|
+
return !__x.__has_val_ || static_cast<bool>(__x.__union_.__val_ != __v);
|
|
1157
|
+
}
|
|
1158
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1159
|
+
_CCCL_TEMPLATE(class _T2)
|
|
1160
|
+
_CCCL_REQUIRES((!__expected::__is_expected_nonvoid<_T2>) )
|
|
1161
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const _T2& __v, const expected& __x)
|
|
1162
|
+
{
|
|
1163
|
+
return !__x.__has_val_ || static_cast<bool>(__x.__union_.__val_ != __v);
|
|
1164
|
+
}
|
|
1165
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1166
|
+
|
|
1167
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1168
|
+
template <class _E2>
|
|
1169
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const unexpected<_E2>& __e)
|
|
1170
|
+
{
|
|
1171
|
+
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __e.error());
|
|
1172
|
+
}
|
|
1173
|
+
#if _CCCL_STD_VER < 2020
|
|
1174
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1175
|
+
template <class _E2>
|
|
1176
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const unexpected<_E2>& __e, const expected& __x)
|
|
1177
|
+
{
|
|
1178
|
+
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __e.error());
|
|
1179
|
+
}
|
|
1180
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1181
|
+
template <class _E2>
|
|
1182
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const unexpected<_E2>& __e)
|
|
1183
|
+
{
|
|
1184
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __e.error());
|
|
1185
|
+
}
|
|
1186
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1187
|
+
template <class _E2>
|
|
1188
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const unexpected<_E2>& __e, const expected& __x)
|
|
1189
|
+
{
|
|
1190
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __e.error());
|
|
1191
|
+
}
|
|
1192
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1193
|
+
};
|
|
1194
|
+
|
|
1195
|
+
template <class _Err>
|
|
1196
|
+
class expected<void, _Err> : private __expected_move_assign<void, _Err>
|
|
1197
|
+
{
|
|
1198
|
+
using __base = __expected_move_assign<void, _Err>;
|
|
1199
|
+
static_assert(__unexpected::__valid_unexpected<_Err>,
|
|
1200
|
+
"[expected.void.general] A program that instantiates expected<T, E> with a E that is not a "
|
|
1201
|
+
"valid argument for unexpected<E> is ill-formed");
|
|
1202
|
+
|
|
1203
|
+
template <class, class>
|
|
1204
|
+
friend class expected;
|
|
1205
|
+
|
|
1206
|
+
template <class _Up, class _OtherErr, class _OtherErrQual>
|
|
1207
|
+
using __can_convert =
|
|
1208
|
+
_And<is_void<_Up>,
|
|
1209
|
+
is_constructible<_Err, _OtherErrQual>,
|
|
1210
|
+
_Not<is_constructible<unexpected<_Err>, expected<_Up, _OtherErr>&>>,
|
|
1211
|
+
_Not<is_constructible<unexpected<_Err>, expected<_Up, _OtherErr>>>,
|
|
1212
|
+
_Not<is_constructible<unexpected<_Err>, const expected<_Up, _OtherErr>&>>,
|
|
1213
|
+
_Not<is_constructible<unexpected<_Err>, const expected<_Up, _OtherErr>>>>;
|
|
1214
|
+
|
|
1215
|
+
public:
|
|
1216
|
+
using value_type = void;
|
|
1217
|
+
using error_type = _Err;
|
|
1218
|
+
using unexpected_type = unexpected<_Err>;
|
|
1219
|
+
|
|
1220
|
+
template <class _Up>
|
|
1221
|
+
using rebind = expected<_Up, error_type>;
|
|
1222
|
+
|
|
1223
|
+
// [expected.void.ctor], constructors
|
|
1224
|
+
_CCCL_HIDE_FROM_ABI constexpr expected() = default;
|
|
1225
|
+
_CCCL_HIDE_FROM_ABI constexpr expected(const expected&) = default;
|
|
1226
|
+
_CCCL_HIDE_FROM_ABI constexpr expected(expected&&) = default;
|
|
1227
|
+
_CCCL_HIDE_FROM_ABI constexpr expected& operator=(const expected&) = default;
|
|
1228
|
+
_CCCL_HIDE_FROM_ABI constexpr expected& operator=(expected&&) = default;
|
|
1229
|
+
|
|
1230
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
1231
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, const _OtherErr&>::value _CCCL_AND _CCCL_TRAIT(
|
|
1232
|
+
is_convertible, const _OtherErr&, _Err))
|
|
1233
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected(const expected<_Up, _OtherErr>& __other) noexcept(
|
|
1234
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
1235
|
+
: __base(__other.__has_val_)
|
|
1236
|
+
{
|
|
1237
|
+
if (!__other.__has_val_)
|
|
1238
|
+
{
|
|
1239
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, __other.__union_.__unex_);
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
1244
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, const _OtherErr&>::value _CCCL_AND(
|
|
1245
|
+
!_CCCL_TRAIT(is_convertible, const _OtherErr&, _Err)))
|
|
1246
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 explicit expected(const expected<_Up, _OtherErr>& __other) noexcept(
|
|
1247
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
1248
|
+
: __base(__other.__has_val_)
|
|
1249
|
+
{
|
|
1250
|
+
if (!__other.__has_val_)
|
|
1251
|
+
{
|
|
1252
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, __other.__union_.__unex_);
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
1257
|
+
_CCCL_REQUIRES(__can_convert<_Up, _OtherErr, _OtherErr>::value _CCCL_AND _CCCL_TRAIT(is_convertible, _OtherErr, _Err))
|
|
1258
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected(expected<_Up, _OtherErr>&& __other) noexcept(
|
|
1259
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
1260
|
+
: __base(__other.__has_val_)
|
|
1261
|
+
{
|
|
1262
|
+
if (!__other.__has_val_)
|
|
1263
|
+
{
|
|
1264
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, _CUDA_VSTD::move(__other.__union_.__unex_));
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
_CCCL_TEMPLATE(class _Up, class _OtherErr)
|
|
1269
|
+
_CCCL_REQUIRES(
|
|
1270
|
+
__can_convert<_Up, _OtherErr, _OtherErr>::value _CCCL_AND(!_CCCL_TRAIT(is_convertible, _OtherErr, _Err)))
|
|
1271
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 explicit expected(expected<_Up, _OtherErr>&& __other) noexcept(
|
|
1272
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
1273
|
+
: __base(__other.__has_val_)
|
|
1274
|
+
{
|
|
1275
|
+
if (!__other.__has_val_)
|
|
1276
|
+
{
|
|
1277
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, _CUDA_VSTD::move(__other.__union_.__unex_));
|
|
1278
|
+
}
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1282
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, const _OtherErr&)
|
|
1283
|
+
_CCCL_AND _CCCL_TRAIT(is_convertible, const _OtherErr&, _Err))
|
|
1284
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(const unexpected<_OtherErr>& __unex) noexcept(
|
|
1285
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
1286
|
+
: __base(unexpect, __unex.error())
|
|
1287
|
+
{}
|
|
1288
|
+
|
|
1289
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1290
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, const _OtherErr&)
|
|
1291
|
+
_CCCL_AND(!_CCCL_TRAIT(is_convertible, const _OtherErr&, _Err)))
|
|
1292
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(const unexpected<_OtherErr>& __unex) noexcept(
|
|
1293
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
1294
|
+
: __base(unexpect, __unex.error())
|
|
1295
|
+
{}
|
|
1296
|
+
|
|
1297
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1298
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _OtherErr) _CCCL_AND _CCCL_TRAIT(is_convertible, _OtherErr, _Err))
|
|
1299
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(unexpected<_OtherErr>&& __unex) noexcept(
|
|
1300
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
1301
|
+
: __base(unexpect, _CUDA_VSTD::move(__unex.error()))
|
|
1302
|
+
{}
|
|
1303
|
+
|
|
1304
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1305
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _OtherErr)
|
|
1306
|
+
_CCCL_AND(!_CCCL_TRAIT(is_convertible, _OtherErr, _Err)))
|
|
1307
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(unexpected<_OtherErr>&& __unex) noexcept(
|
|
1308
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr)) // strengthened
|
|
1309
|
+
: __base(unexpect, _CUDA_VSTD::move(__unex.error()))
|
|
1310
|
+
{}
|
|
1311
|
+
|
|
1312
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(in_place_t) noexcept
|
|
1313
|
+
: __base(true)
|
|
1314
|
+
{}
|
|
1315
|
+
|
|
1316
|
+
_CCCL_TEMPLATE(class... _Args)
|
|
1317
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _Args...))
|
|
1318
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(unexpect_t, _Args&&... __args) noexcept(
|
|
1319
|
+
_CCCL_TRAIT(is_nothrow_constructible, _Err, _Args...)) // strengthened
|
|
1320
|
+
: __base(unexpect, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
1321
|
+
{}
|
|
1322
|
+
|
|
1323
|
+
_CCCL_TEMPLATE(class _Up, class... _Args)
|
|
1324
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, initializer_list<_Up>&, _Args...))
|
|
1325
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit expected(
|
|
1326
|
+
unexpect_t,
|
|
1327
|
+
initializer_list<_Up> __il,
|
|
1328
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible,
|
|
1329
|
+
_Err,
|
|
1330
|
+
initializer_list<_Up>,
|
|
1331
|
+
_Args...)) // strengthened
|
|
1332
|
+
: __base(unexpect, __il, _CUDA_VSTD::forward<_Args>(__args)...)
|
|
1333
|
+
{}
|
|
1334
|
+
|
|
1335
|
+
private:
|
|
1336
|
+
template <class _Fun, class... _Args>
|
|
1337
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr expected(
|
|
1338
|
+
__expected_construct_from_invoke_tag,
|
|
1339
|
+
unexpect_t,
|
|
1340
|
+
_Fun&& __fun,
|
|
1341
|
+
_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Err, invoke_result_t<_Fun, _Args...>))
|
|
1342
|
+
: __base(__expected_construct_from_invoke_tag{},
|
|
1343
|
+
unexpect,
|
|
1344
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
1345
|
+
_CUDA_VSTD::forward<_Args>(__args)...)
|
|
1346
|
+
{}
|
|
1347
|
+
|
|
1348
|
+
public:
|
|
1349
|
+
// [expected.void.dtor], destructor
|
|
1350
|
+
// [expected.void.assign], assignment
|
|
1351
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1352
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1353
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, const _OtherErr&)
|
|
1354
|
+
_CCCL_AND _CCCL_TRAIT(is_assignable, _Err&, const _OtherErr&))
|
|
1355
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected& operator=(const unexpected<_OtherErr>& __un) noexcept(
|
|
1356
|
+
_CCCL_TRAIT(is_nothrow_assignable, _Err&, const _OtherErr&)
|
|
1357
|
+
&& _CCCL_TRAIT(is_nothrow_constructible, _Err, const _OtherErr&)) // strengthened
|
|
1358
|
+
{
|
|
1359
|
+
if (this->__has_val_)
|
|
1360
|
+
{
|
|
1361
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, __un.error());
|
|
1362
|
+
this->__has_val_ = false;
|
|
1363
|
+
}
|
|
1364
|
+
else
|
|
1365
|
+
{
|
|
1366
|
+
this->__union_.__unex_ = __un.error();
|
|
1367
|
+
}
|
|
1368
|
+
return *this;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1372
|
+
_CCCL_TEMPLATE(class _OtherErr)
|
|
1373
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err, _OtherErr) _CCCL_AND _CCCL_TRAIT(is_assignable, _Err&, _OtherErr))
|
|
1374
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 expected& operator=(unexpected<_OtherErr>&& __un) noexcept(
|
|
1375
|
+
_CCCL_TRAIT(is_nothrow_assignable, _Err&, _OtherErr) && _CCCL_TRAIT(is_nothrow_constructible, _Err, _OtherErr))
|
|
1376
|
+
{
|
|
1377
|
+
if (this->__has_val_)
|
|
1378
|
+
{
|
|
1379
|
+
_LIBCUDACXX_CONSTRUCT_AT(this->__union_.__unex_, _CUDA_VSTD::move(__un.error()));
|
|
1380
|
+
this->__has_val_ = false;
|
|
1381
|
+
}
|
|
1382
|
+
else
|
|
1383
|
+
{
|
|
1384
|
+
this->__union_.__unex_ = _CUDA_VSTD::move(__un.error());
|
|
1385
|
+
}
|
|
1386
|
+
return *this;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void emplace() noexcept
|
|
1390
|
+
{
|
|
1391
|
+
if (!this->__has_val_)
|
|
1392
|
+
{
|
|
1393
|
+
this->__union_.__unex_.~_Err();
|
|
1394
|
+
this->__has_val_ = true;
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
// [expected.void.swap], swap
|
|
1399
|
+
_CCCL_TEMPLATE(class _Err2 = _Err)
|
|
1400
|
+
_CCCL_REQUIRES(__expected::__can_swap<void, _Err2>)
|
|
1401
|
+
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void swap(expected<void, _Err2>& __rhs) noexcept(
|
|
1402
|
+
_CCCL_TRAIT(is_nothrow_move_constructible, _Err2) && _CCCL_TRAIT(is_nothrow_swappable, _Err2))
|
|
1403
|
+
{
|
|
1404
|
+
if (this->__has_val_)
|
|
1405
|
+
{
|
|
1406
|
+
if (!__rhs.__has_val_)
|
|
1407
|
+
{
|
|
1408
|
+
this->__swap_val_unex_impl(*this, __rhs);
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
else
|
|
1412
|
+
{
|
|
1413
|
+
if (__rhs.__has_val_)
|
|
1414
|
+
{
|
|
1415
|
+
this->__swap_val_unex_impl(__rhs, *this);
|
|
1416
|
+
}
|
|
1417
|
+
else
|
|
1418
|
+
{
|
|
1419
|
+
using _CUDA_VSTD::swap;
|
|
1420
|
+
swap(this->__union_.__unex_, __rhs.__union_.__unex_);
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
template <class _Err2 = _Err>
|
|
1426
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 auto swap(expected& __x, expected& __y) noexcept(
|
|
1427
|
+
_CCCL_TRAIT(is_nothrow_move_constructible, _Err2) && _CCCL_TRAIT(is_nothrow_swappable, _Err2))
|
|
1428
|
+
_CCCL_TRAILING_REQUIRES(void)(__expected::__can_swap<void, _Err2>)
|
|
1429
|
+
{
|
|
1430
|
+
return __x.swap(__y); // some compiler warn about non void function without return
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
// [expected.void.obs], observers
|
|
1434
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit operator bool() const noexcept
|
|
1435
|
+
{
|
|
1436
|
+
return this->__has_val_;
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr bool has_value() const noexcept
|
|
1440
|
+
{
|
|
1441
|
+
return this->__has_val_;
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void operator*() const noexcept
|
|
1445
|
+
{
|
|
1446
|
+
_CCCL_ASSERT(this->__has_val_, "expected::operator* requires the expected to contain a value");
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void value() const&
|
|
1450
|
+
{
|
|
1451
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err),
|
|
1452
|
+
"expected::value() const& requires is_copy_constructible_v<E>");
|
|
1453
|
+
if (!this->__has_val_)
|
|
1454
|
+
{
|
|
1455
|
+
__throw_bad_expected_access<_Err>(this->__union_.__unex_);
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void value() &&
|
|
1460
|
+
{
|
|
1461
|
+
static_assert(_CCCL_TRAIT(is_copy_constructible, _Err), "expected::value() && requires is_copy_constructible_v<E>");
|
|
1462
|
+
static_assert(_CCCL_TRAIT(is_move_constructible, _Err), "expected::value() && requires is_move_constructible_v<E>");
|
|
1463
|
+
if (!this->__has_val_)
|
|
1464
|
+
{
|
|
1465
|
+
__throw_bad_expected_access<_Err>(_CUDA_VSTD::move(this->__union_.__unex_));
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Err& error() const& noexcept
|
|
1470
|
+
{
|
|
1471
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
1472
|
+
return this->__union_.__unex_;
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Err& error() & noexcept
|
|
1476
|
+
{
|
|
1477
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
1478
|
+
return this->__union_.__unex_;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr const _Err&& error() const&& noexcept
|
|
1482
|
+
{
|
|
1483
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
1484
|
+
return _CUDA_VSTD::move(this->__union_.__unex_);
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Err&& error() && noexcept
|
|
1488
|
+
{
|
|
1489
|
+
_CCCL_ASSERT(!this->__has_val_, "expected::error requires the expected to contain an error");
|
|
1490
|
+
return _CUDA_VSTD::move(this->__union_.__unex_);
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
// [expected.void.monadic]
|
|
1494
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1495
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&))
|
|
1496
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) &
|
|
1497
|
+
{
|
|
1498
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun>>;
|
|
1499
|
+
|
|
1500
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
1501
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
1502
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
1503
|
+
|
|
1504
|
+
if (this->__has_val_)
|
|
1505
|
+
{
|
|
1506
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1507
|
+
}
|
|
1508
|
+
else
|
|
1509
|
+
{
|
|
1510
|
+
return _Res{unexpect, this->__union_.__unex_};
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1515
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2))
|
|
1516
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) const&
|
|
1517
|
+
{
|
|
1518
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun>>;
|
|
1519
|
+
|
|
1520
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
1521
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
1522
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
1523
|
+
|
|
1524
|
+
if (this->__has_val_)
|
|
1525
|
+
{
|
|
1526
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1527
|
+
}
|
|
1528
|
+
else
|
|
1529
|
+
{
|
|
1530
|
+
return _Res{unexpect, this->__union_.__unex_};
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1535
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2))
|
|
1536
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) &&
|
|
1537
|
+
{
|
|
1538
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun>>;
|
|
1539
|
+
|
|
1540
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
1541
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
1542
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
1543
|
+
|
|
1544
|
+
if (this->__has_val_)
|
|
1545
|
+
{
|
|
1546
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1547
|
+
}
|
|
1548
|
+
else
|
|
1549
|
+
{
|
|
1550
|
+
return _Res{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1555
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2))
|
|
1556
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto and_then(_Fun&& __fun) const&&
|
|
1557
|
+
{
|
|
1558
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun>>;
|
|
1559
|
+
|
|
1560
|
+
static_assert(__expected::__is_expected<_Res>, "Result of f(value()) must be a specialization of std::expected");
|
|
1561
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::error_type, _Err),
|
|
1562
|
+
"The error type of the result of f(value()) must be the same as that of std::expected");
|
|
1563
|
+
|
|
1564
|
+
if (this->__has_val_)
|
|
1565
|
+
{
|
|
1566
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1567
|
+
}
|
|
1568
|
+
else
|
|
1569
|
+
{
|
|
1570
|
+
return _Res{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
template <class _Fun>
|
|
1575
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) &
|
|
1576
|
+
{
|
|
1577
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Err&>>;
|
|
1578
|
+
|
|
1579
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
1580
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
1581
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, void),
|
|
1582
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
1583
|
+
|
|
1584
|
+
if (this->__has_val_)
|
|
1585
|
+
{
|
|
1586
|
+
return _Res{};
|
|
1587
|
+
}
|
|
1588
|
+
else
|
|
1589
|
+
{
|
|
1590
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_);
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
template <class _Fun>
|
|
1595
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) const&
|
|
1596
|
+
{
|
|
1597
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Err&>>;
|
|
1598
|
+
|
|
1599
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
1600
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
1601
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, void),
|
|
1602
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
1603
|
+
|
|
1604
|
+
if (this->__has_val_)
|
|
1605
|
+
{
|
|
1606
|
+
return _Res{};
|
|
1607
|
+
}
|
|
1608
|
+
else
|
|
1609
|
+
{
|
|
1610
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_);
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
template <class _Fun>
|
|
1615
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) &&
|
|
1616
|
+
{
|
|
1617
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, _Err>>;
|
|
1618
|
+
|
|
1619
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
1620
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
1621
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, void),
|
|
1622
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
1623
|
+
|
|
1624
|
+
if (this->__has_val_)
|
|
1625
|
+
{
|
|
1626
|
+
return _Res{};
|
|
1627
|
+
}
|
|
1628
|
+
else
|
|
1629
|
+
{
|
|
1630
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__unex_));
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
template <class _Fun>
|
|
1635
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto or_else(_Fun&& __fun) const&&
|
|
1636
|
+
{
|
|
1637
|
+
using _Res = remove_cvref_t<invoke_result_t<_Fun, const _Err>>;
|
|
1638
|
+
|
|
1639
|
+
static_assert(__expected::__is_expected<_Res>,
|
|
1640
|
+
"Result of std::expected::or_else must be a specialization of std::expected");
|
|
1641
|
+
static_assert(_CCCL_TRAIT(is_same, typename _Res::value_type, void),
|
|
1642
|
+
"The value type of the result of std::expected::or_else must be the same as that of std::expected");
|
|
1643
|
+
|
|
1644
|
+
if (this->__has_val_)
|
|
1645
|
+
{
|
|
1646
|
+
return _Res{};
|
|
1647
|
+
}
|
|
1648
|
+
else
|
|
1649
|
+
{
|
|
1650
|
+
return _CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun), _CUDA_VSTD::move(this->__union_.__unex_));
|
|
1651
|
+
}
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1655
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&)
|
|
1656
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void))
|
|
1657
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &
|
|
1658
|
+
{
|
|
1659
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T.");
|
|
1660
|
+
if (this->__has_val_)
|
|
1661
|
+
{
|
|
1662
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1663
|
+
return expected<void, _Err>{};
|
|
1664
|
+
}
|
|
1665
|
+
else
|
|
1666
|
+
{
|
|
1667
|
+
return expected<void, _Err>{unexpect, this->__union_.__unex_};
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1672
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, _Err2&)
|
|
1673
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void)))
|
|
1674
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &
|
|
1675
|
+
{
|
|
1676
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T.");
|
|
1677
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun>>;
|
|
1678
|
+
|
|
1679
|
+
static_assert(__invoke_constructible<_Fun>,
|
|
1680
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
1681
|
+
"invoking F");
|
|
1682
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
1683
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
1684
|
+
"std::expected");
|
|
1685
|
+
|
|
1686
|
+
if (this->__has_val_)
|
|
1687
|
+
{
|
|
1688
|
+
return expected<_Res, _Err>{__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun)};
|
|
1689
|
+
}
|
|
1690
|
+
else
|
|
1691
|
+
{
|
|
1692
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1697
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2)
|
|
1698
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void))
|
|
1699
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&
|
|
1700
|
+
{
|
|
1701
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T.");
|
|
1702
|
+
if (this->__has_val_)
|
|
1703
|
+
{
|
|
1704
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1705
|
+
return expected<void, _Err>{};
|
|
1706
|
+
}
|
|
1707
|
+
else
|
|
1708
|
+
{
|
|
1709
|
+
return expected<void, _Err>{unexpect, this->__union_.__unex_};
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1714
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_copy_constructible, _Err2)
|
|
1715
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void)))
|
|
1716
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&
|
|
1717
|
+
{
|
|
1718
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T");
|
|
1719
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun>>;
|
|
1720
|
+
|
|
1721
|
+
static_assert(__invoke_constructible<_Fun>,
|
|
1722
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
1723
|
+
"invoking F");
|
|
1724
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
1725
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
1726
|
+
"std::expected");
|
|
1727
|
+
|
|
1728
|
+
if (this->__has_val_)
|
|
1729
|
+
{
|
|
1730
|
+
return expected<_Res, _Err>{__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun)};
|
|
1731
|
+
}
|
|
1732
|
+
else
|
|
1733
|
+
{
|
|
1734
|
+
return expected<_Res, _Err>{unexpect, this->__union_.__unex_};
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1739
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2)
|
|
1740
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void))
|
|
1741
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &&
|
|
1742
|
+
{
|
|
1743
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T.");
|
|
1744
|
+
if (this->__has_val_)
|
|
1745
|
+
{
|
|
1746
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1747
|
+
return expected<void, _Err>{};
|
|
1748
|
+
}
|
|
1749
|
+
else
|
|
1750
|
+
{
|
|
1751
|
+
return expected<void, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1752
|
+
}
|
|
1753
|
+
}
|
|
1754
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1755
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_move_constructible, _Err2)
|
|
1756
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void)))
|
|
1757
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) &&
|
|
1758
|
+
{
|
|
1759
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T");
|
|
1760
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun>>;
|
|
1761
|
+
|
|
1762
|
+
static_assert(__invoke_constructible<_Fun>,
|
|
1763
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
1764
|
+
"invoking F");
|
|
1765
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
1766
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
1767
|
+
"std::expected");
|
|
1768
|
+
|
|
1769
|
+
if (this->__has_val_)
|
|
1770
|
+
{
|
|
1771
|
+
return expected<_Res, _Err>{__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun)};
|
|
1772
|
+
}
|
|
1773
|
+
else
|
|
1774
|
+
{
|
|
1775
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1780
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2)
|
|
1781
|
+
_CCCL_AND _CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void))
|
|
1782
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&&
|
|
1783
|
+
{
|
|
1784
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T.");
|
|
1785
|
+
if (this->__has_val_)
|
|
1786
|
+
{
|
|
1787
|
+
_CUDA_VSTD::invoke(_CUDA_VSTD::forward<_Fun>(__fun));
|
|
1788
|
+
return expected<void, _Err>{};
|
|
1789
|
+
}
|
|
1790
|
+
else
|
|
1791
|
+
{
|
|
1792
|
+
return expected<void, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
_CCCL_TEMPLATE(class _Fun, class _Err2 = _Err)
|
|
1797
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_constructible, _Err2, const _Err2)
|
|
1798
|
+
_CCCL_AND(!_CCCL_TRAIT(is_same, remove_cv_t<invoke_result_t<_Fun>>, void)))
|
|
1799
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform(_Fun&& __fun) const&&
|
|
1800
|
+
{
|
|
1801
|
+
static_assert(invocable<_Fun>, "std::expected::transform requires that F must be invocable with T");
|
|
1802
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun>>;
|
|
1803
|
+
|
|
1804
|
+
static_assert(__invoke_constructible<_Fun>,
|
|
1805
|
+
"std::expected::transform requires that the return type of F is constructible with the result of "
|
|
1806
|
+
"invoking F");
|
|
1807
|
+
static_assert(__expected::__valid_expected<_Res, _Err>,
|
|
1808
|
+
"std::expected::transform requires that the return type of F must be a valid argument for "
|
|
1809
|
+
"std::expected");
|
|
1810
|
+
|
|
1811
|
+
if (this->__has_val_)
|
|
1812
|
+
{
|
|
1813
|
+
return expected<_Res, _Err>{__expected_construct_from_invoke_tag{}, in_place, _CUDA_VSTD::forward<_Fun>(__fun)};
|
|
1814
|
+
}
|
|
1815
|
+
else
|
|
1816
|
+
{
|
|
1817
|
+
return expected<_Res, _Err>{unexpect, _CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
template <class _Fun>
|
|
1822
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) &
|
|
1823
|
+
{
|
|
1824
|
+
static_assert(invocable<_Fun, _Err&>, "std::expected::transform_error requires that F must be invocable with E");
|
|
1825
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Err&>>;
|
|
1826
|
+
|
|
1827
|
+
static_assert(__invoke_constructible<_Fun, _Err&>,
|
|
1828
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1829
|
+
"of invoking F");
|
|
1830
|
+
static_assert(__expected::__valid_expected<void, _Res>,
|
|
1831
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1832
|
+
"std::expected");
|
|
1833
|
+
|
|
1834
|
+
if (this->__has_val_)
|
|
1835
|
+
{
|
|
1836
|
+
return expected<void, _Res>{};
|
|
1837
|
+
}
|
|
1838
|
+
else
|
|
1839
|
+
{
|
|
1840
|
+
return expected<void, _Res>{
|
|
1841
|
+
__expected_construct_from_invoke_tag{}, unexpect, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_};
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
template <class _Fun>
|
|
1846
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) const&
|
|
1847
|
+
{
|
|
1848
|
+
static_assert(invocable<_Fun, const _Err&>,
|
|
1849
|
+
"std::expected::transform_error requires that F must be invocable with E");
|
|
1850
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Err&>>;
|
|
1851
|
+
|
|
1852
|
+
static_assert(__invoke_constructible<_Fun, const _Err&>,
|
|
1853
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1854
|
+
"of invoking F");
|
|
1855
|
+
static_assert(__expected::__valid_expected<void, _Res>,
|
|
1856
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1857
|
+
"std::expected");
|
|
1858
|
+
|
|
1859
|
+
if (this->__has_val_)
|
|
1860
|
+
{
|
|
1861
|
+
return expected<void, _Res>{};
|
|
1862
|
+
}
|
|
1863
|
+
else
|
|
1864
|
+
{
|
|
1865
|
+
return expected<void, _Res>{
|
|
1866
|
+
__expected_construct_from_invoke_tag{}, unexpect, _CUDA_VSTD::forward<_Fun>(__fun), this->__union_.__unex_};
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
|
|
1870
|
+
template <class _Fun>
|
|
1871
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) &&
|
|
1872
|
+
{
|
|
1873
|
+
static_assert(invocable<_Fun, _Err>, "std::expected::transform_error requires that F must be invocable with E");
|
|
1874
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, _Err>>;
|
|
1875
|
+
|
|
1876
|
+
static_assert(__invoke_constructible<_Fun, _Err>,
|
|
1877
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1878
|
+
"of invoking F");
|
|
1879
|
+
static_assert(__expected::__valid_expected<void, _Res>,
|
|
1880
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1881
|
+
"std::expected");
|
|
1882
|
+
|
|
1883
|
+
if (this->__has_val_)
|
|
1884
|
+
{
|
|
1885
|
+
return expected<void, _Res>{};
|
|
1886
|
+
}
|
|
1887
|
+
else
|
|
1888
|
+
{
|
|
1889
|
+
return expected<void, _Res>{
|
|
1890
|
+
__expected_construct_from_invoke_tag{},
|
|
1891
|
+
unexpect,
|
|
1892
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
1893
|
+
_CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
|
|
1897
|
+
template <class _Fun>
|
|
1898
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr auto transform_error(_Fun&& __fun) const&&
|
|
1899
|
+
{
|
|
1900
|
+
static_assert(invocable<_Fun, const _Err>,
|
|
1901
|
+
"std::expected::transform_error requires that F must be invocable with E");
|
|
1902
|
+
using _Res = remove_cv_t<invoke_result_t<_Fun, const _Err>>;
|
|
1903
|
+
|
|
1904
|
+
static_assert(__invoke_constructible<_Fun, const _Err>,
|
|
1905
|
+
"std::expected::transform_error requires that the return type of F is constructible with the result "
|
|
1906
|
+
"of invoking F");
|
|
1907
|
+
static_assert(__expected::__valid_expected<void, _Res>,
|
|
1908
|
+
"std::expected::transform_error requires that the return type of F must be a valid argument for "
|
|
1909
|
+
"std::expected");
|
|
1910
|
+
|
|
1911
|
+
if (this->__has_val_)
|
|
1912
|
+
{
|
|
1913
|
+
return expected<void, _Res>{};
|
|
1914
|
+
}
|
|
1915
|
+
else
|
|
1916
|
+
{
|
|
1917
|
+
return expected<void, _Res>{
|
|
1918
|
+
__expected_construct_from_invoke_tag{},
|
|
1919
|
+
unexpect,
|
|
1920
|
+
_CUDA_VSTD::forward<_Fun>(__fun),
|
|
1921
|
+
_CUDA_VSTD::move(this->__union_.__unex_)};
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
// [expected.void.eq], equality operators
|
|
1926
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1927
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const expected& __y) noexcept
|
|
1928
|
+
{
|
|
1929
|
+
if (__x.__has_val_ != __y.has_value())
|
|
1930
|
+
{
|
|
1931
|
+
return false;
|
|
1932
|
+
}
|
|
1933
|
+
else
|
|
1934
|
+
{
|
|
1935
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ == __y.error());
|
|
1936
|
+
}
|
|
1937
|
+
}
|
|
1938
|
+
#if _CCCL_STD_VER < 2020
|
|
1939
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1940
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator!=(const expected& __x, const expected& __y) noexcept
|
|
1941
|
+
{
|
|
1942
|
+
return !(__x == __y);
|
|
1943
|
+
}
|
|
1944
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1945
|
+
|
|
1946
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1947
|
+
template <class _E2>
|
|
1948
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
|
|
1949
|
+
operator==(const expected& __x, const expected<void, _E2>& __y) noexcept
|
|
1950
|
+
{
|
|
1951
|
+
if (__x.__has_val_ != __y.has_value())
|
|
1952
|
+
{
|
|
1953
|
+
return false;
|
|
1954
|
+
}
|
|
1955
|
+
else
|
|
1956
|
+
{
|
|
1957
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ == __y.error());
|
|
1958
|
+
}
|
|
1959
|
+
}
|
|
1960
|
+
#if _CCCL_STD_VER < 2020
|
|
1961
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1962
|
+
template <class _E2>
|
|
1963
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool
|
|
1964
|
+
operator!=(const expected& __x, const expected<void, _E2>& __y) noexcept
|
|
1965
|
+
{
|
|
1966
|
+
return !(__x == __y);
|
|
1967
|
+
}
|
|
1968
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1969
|
+
|
|
1970
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1971
|
+
template <class _E2>
|
|
1972
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const expected& __x, const unexpected<_E2>& __y) noexcept
|
|
1973
|
+
{
|
|
1974
|
+
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __y.error());
|
|
1975
|
+
}
|
|
1976
|
+
#if _CCCL_STD_VER < 2020
|
|
1977
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1978
|
+
template <class _E2>
|
|
1979
|
+
friend _LIBCUDACXX_HIDE_FROM_ABI constexpr bool operator==(const unexpected<_E2>& __y, const expected& __x) noexcept
|
|
1980
|
+
{
|
|
1981
|
+
return !__x.__has_val_ && static_cast<bool>(__x.__union_.__unex_ == __y.error());
|
|
1982
|
+
}
|
|
1983
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1984
|
+
template <class _E2>
|
|
1985
|
+
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool operator!=(const expected& __x, const unexpected<_E2>& __y) noexcept
|
|
1986
|
+
{
|
|
1987
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __y.error());
|
|
1988
|
+
}
|
|
1989
|
+
_CCCL_EXEC_CHECK_DISABLE
|
|
1990
|
+
template <class _E2>
|
|
1991
|
+
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool operator!=(const unexpected<_E2>& __y, const expected& __x) noexcept
|
|
1992
|
+
{
|
|
1993
|
+
return __x.__has_val_ || static_cast<bool>(__x.__union_.__unex_ != __y.error());
|
|
1994
|
+
}
|
|
1995
|
+
#endif // _CCCL_STD_VER < 2020
|
|
1996
|
+
};
|
|
1997
|
+
|
|
1998
|
+
_LIBCUDACXX_END_NAMESPACE_STD
|
|
1999
|
+
|
|
2000
|
+
#include <cuda/std/__cccl/epilogue.h>
|
|
2001
|
+
|
|
2002
|
+
#endif // _LIBCUDACXX___EXPECTED_EXPECTED_H
|