cuda-cccl 0.1.3.1.0.dev1486__cp312-cp312-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-312-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,2171 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the CUDA Toolkit, 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) 2024 NVIDIA CORPORATION & AFFILIATES.
|
|
7
|
+
//
|
|
8
|
+
//===----------------------------------------------------------------------===//
|
|
9
|
+
|
|
10
|
+
#ifndef _CUDA_STD_INPLACE_VECTOR
|
|
11
|
+
#define _CUDA_STD_INPLACE_VECTOR
|
|
12
|
+
|
|
13
|
+
#include <cuda/std/detail/__config>
|
|
14
|
+
|
|
15
|
+
#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
|
|
16
|
+
# pragma GCC system_header
|
|
17
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
|
|
18
|
+
# pragma clang system_header
|
|
19
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
|
|
20
|
+
# pragma system_header
|
|
21
|
+
#endif // no system header
|
|
22
|
+
|
|
23
|
+
#include <cuda/std/__algorithm/copy.h>
|
|
24
|
+
#include <cuda/std/__algorithm/equal.h>
|
|
25
|
+
#include <cuda/std/__algorithm/fill.h>
|
|
26
|
+
#include <cuda/std/__algorithm/lexicographical_compare.h>
|
|
27
|
+
#include <cuda/std/__algorithm/move.h>
|
|
28
|
+
#include <cuda/std/__algorithm/move_backward.h>
|
|
29
|
+
#include <cuda/std/__algorithm/remove.h>
|
|
30
|
+
#include <cuda/std/__algorithm/remove_if.h>
|
|
31
|
+
#include <cuda/std/__algorithm/rotate.h>
|
|
32
|
+
#include <cuda/std/__algorithm/swap_ranges.h>
|
|
33
|
+
#include <cuda/std/__exception/terminate.h>
|
|
34
|
+
#include <cuda/std/__iterator/advance.h>
|
|
35
|
+
#include <cuda/std/__iterator/concepts.h>
|
|
36
|
+
#include <cuda/std/__iterator/distance.h>
|
|
37
|
+
#include <cuda/std/__iterator/iter_move.h>
|
|
38
|
+
#include <cuda/std/__iterator/next.h>
|
|
39
|
+
#include <cuda/std/__iterator/reverse_iterator.h>
|
|
40
|
+
#include <cuda/std/__memory/construct_at.h>
|
|
41
|
+
#include <cuda/std/__memory/uninitialized_algorithms.h>
|
|
42
|
+
#include <cuda/std/__new/bad_alloc.h>
|
|
43
|
+
#include <cuda/std/__new/launder.h>
|
|
44
|
+
#include <cuda/std/__ranges/access.h>
|
|
45
|
+
#include <cuda/std/__ranges/concepts.h>
|
|
46
|
+
#include <cuda/std/__ranges/from_range.h>
|
|
47
|
+
#include <cuda/std/__ranges/size.h>
|
|
48
|
+
#include <cuda/std/__ranges/unwrap_end.h>
|
|
49
|
+
#include <cuda/std/__type_traits/conditional.h>
|
|
50
|
+
#include <cuda/std/__type_traits/is_constant_evaluated.h>
|
|
51
|
+
#include <cuda/std/__type_traits/is_nothrow_constructible.h>
|
|
52
|
+
#include <cuda/std/__type_traits/is_nothrow_copy_assignable.h>
|
|
53
|
+
#include <cuda/std/__type_traits/is_nothrow_copy_constructible.h>
|
|
54
|
+
#include <cuda/std/__type_traits/is_nothrow_default_constructible.h>
|
|
55
|
+
#include <cuda/std/__type_traits/is_nothrow_move_assignable.h>
|
|
56
|
+
#include <cuda/std/__type_traits/is_nothrow_move_constructible.h>
|
|
57
|
+
#include <cuda/std/__type_traits/is_swappable.h>
|
|
58
|
+
#include <cuda/std/__type_traits/is_trivial.h>
|
|
59
|
+
#include <cuda/std/__type_traits/is_trivially_copy_assignable.h>
|
|
60
|
+
#include <cuda/std/__type_traits/is_trivially_copy_constructible.h>
|
|
61
|
+
#include <cuda/std/__type_traits/is_trivially_destructible.h>
|
|
62
|
+
#include <cuda/std/__type_traits/is_trivially_move_assignable.h>
|
|
63
|
+
#include <cuda/std/__type_traits/is_trivially_move_constructible.h>
|
|
64
|
+
#include <cuda/std/__utility/forward.h>
|
|
65
|
+
#include <cuda/std/__utility/move.h>
|
|
66
|
+
#include <cuda/std/cstdint>
|
|
67
|
+
#include <cuda/std/detail/libcxx/include/stdexcept>
|
|
68
|
+
#include <cuda/std/initializer_list>
|
|
69
|
+
#include <cuda/std/limits>
|
|
70
|
+
|
|
71
|
+
#include <cuda/std/__cccl/prologue.h>
|
|
72
|
+
|
|
73
|
+
_LIBCUDACXX_BEGIN_NAMESPACE_STD
|
|
74
|
+
|
|
75
|
+
template <size_t _Capacity>
|
|
76
|
+
using __inplace_vector_size_type =
|
|
77
|
+
_If<_Capacity <= numeric_limits<uint8_t>::max(),
|
|
78
|
+
uint8_t,
|
|
79
|
+
_If<_Capacity <= numeric_limits<uint16_t>::max(),
|
|
80
|
+
uint16_t,
|
|
81
|
+
_If<_Capacity <= numeric_limits<uint32_t>::max(), uint32_t, uint64_t>>>;
|
|
82
|
+
|
|
83
|
+
enum class __inplace_vector_specialization
|
|
84
|
+
{
|
|
85
|
+
__empty,
|
|
86
|
+
__trivial,
|
|
87
|
+
__default,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
template <class _Tp, size_t _Capacity>
|
|
91
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr __inplace_vector_specialization
|
|
92
|
+
__select_inplace_vector_specialization()
|
|
93
|
+
{
|
|
94
|
+
if (_Capacity == 0)
|
|
95
|
+
{
|
|
96
|
+
return __inplace_vector_specialization::__empty;
|
|
97
|
+
}
|
|
98
|
+
else if (_CCCL_TRAIT(is_trivial, _Tp))
|
|
99
|
+
{
|
|
100
|
+
return __inplace_vector_specialization::__trivial;
|
|
101
|
+
}
|
|
102
|
+
else
|
|
103
|
+
{
|
|
104
|
+
return __inplace_vector_specialization::__default;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
template <class _Base>
|
|
109
|
+
struct _Rollback_change_size
|
|
110
|
+
{
|
|
111
|
+
using iterator = typename _Base::iterator;
|
|
112
|
+
_Base* __obj_;
|
|
113
|
+
iterator& __first_;
|
|
114
|
+
iterator __current_;
|
|
115
|
+
|
|
116
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Rollback_change_size(
|
|
117
|
+
_Base* __obj, iterator& __first, iterator& __current) noexcept
|
|
118
|
+
: __obj_(__obj)
|
|
119
|
+
, __first_(__first)
|
|
120
|
+
, __current_(__current)
|
|
121
|
+
{}
|
|
122
|
+
|
|
123
|
+
_LIBCUDACXX_HIDE_FROM_ABI void operator()() const noexcept
|
|
124
|
+
{
|
|
125
|
+
__obj_->__size_ += static_cast<typename _Base::__size_type>(__current_ - __first_);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
template <class _Tp, size_t _Capacity, bool = _CCCL_TRAIT(is_trivially_destructible, _Tp)>
|
|
130
|
+
struct __inplace_vector_destruct_base
|
|
131
|
+
{
|
|
132
|
+
using size_type = size_t;
|
|
133
|
+
using __size_type = __inplace_vector_size_type<_Capacity>;
|
|
134
|
+
|
|
135
|
+
alignas(_Tp) unsigned char __elems_[_Capacity * sizeof(_Tp)] = {};
|
|
136
|
+
__size_type __size_{0};
|
|
137
|
+
|
|
138
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
139
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_destruct_base() = default;
|
|
140
|
+
_LIBCUDACXX_HIDE_FROM_ABI ~__inplace_vector_destruct_base() noexcept
|
|
141
|
+
{
|
|
142
|
+
_Tp* __begin = _CUDA_VSTD::launder(reinterpret_cast<_Tp*>(__elems_));
|
|
143
|
+
_CUDA_VSTD::__destroy(__begin, __begin + __size_);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
template <class _Tp, size_t _Capacity>
|
|
148
|
+
struct __inplace_vector_destruct_base<_Tp, _Capacity, true>
|
|
149
|
+
{
|
|
150
|
+
using size_type = size_t;
|
|
151
|
+
using __size_type = __inplace_vector_size_type<_Capacity>;
|
|
152
|
+
|
|
153
|
+
alignas(_Tp) unsigned char __elems_[_Capacity * sizeof(_Tp)] = {};
|
|
154
|
+
__size_type __size_{0};
|
|
155
|
+
|
|
156
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
157
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_destruct_base() = default;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
template <class _Tp, size_t _Capacity>
|
|
161
|
+
struct __inplace_vector_storage : public __inplace_vector_destruct_base<_Tp, _Capacity>
|
|
162
|
+
{
|
|
163
|
+
using size_type = size_t;
|
|
164
|
+
using __size_type = __inplace_vector_size_type<_Capacity>;
|
|
165
|
+
using reference = _Tp&;
|
|
166
|
+
using iterator = _Tp*;
|
|
167
|
+
using const_iterator = const _Tp*;
|
|
168
|
+
|
|
169
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_storage, __inplace_vector_destruct_base, _Tp, _Capacity);
|
|
170
|
+
|
|
171
|
+
// [containers.sequences.inplace.vector.members] size/capacity
|
|
172
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type size() const noexcept
|
|
173
|
+
{
|
|
174
|
+
return static_cast<size_type>(this->__size_);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr bool empty() const noexcept
|
|
178
|
+
{
|
|
179
|
+
return this->__size_ == 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// [containers.sequences.inplace.vector.data], data access
|
|
183
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI _Tp* data() noexcept
|
|
184
|
+
{
|
|
185
|
+
return _CUDA_VSTD::launder(reinterpret_cast<_Tp*>(this->__elems_));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI const _Tp* data() const noexcept
|
|
189
|
+
{
|
|
190
|
+
return _CUDA_VSTD::launder(reinterpret_cast<const _Tp*>(this->__elems_));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// [containers.sequences.inplace.vector.itertators] iterators
|
|
194
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI iterator begin() noexcept
|
|
195
|
+
{
|
|
196
|
+
return _CUDA_VSTD::launder(reinterpret_cast<_Tp*>(this->__elems_));
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI const_iterator begin() const noexcept
|
|
200
|
+
{
|
|
201
|
+
return _CUDA_VSTD::launder(reinterpret_cast<const _Tp*>(this->__elems_));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI iterator end() noexcept
|
|
205
|
+
{
|
|
206
|
+
return _CUDA_VSTD::launder(reinterpret_cast<_Tp*>(this->__elems_) + this->__size_);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI const_iterator end() const noexcept
|
|
210
|
+
{
|
|
211
|
+
return _CUDA_VSTD::launder(reinterpret_cast<const _Tp*>(this->__elems_) + this->__size_);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// [containers.sequences.inplace.vector.modifiers], modifiers
|
|
215
|
+
template <class... _Args>
|
|
216
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference
|
|
217
|
+
unchecked_emplace_back(_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
|
|
218
|
+
{
|
|
219
|
+
auto __final = _CUDA_VSTD::__construct_at(end(), _CUDA_VSTD::forward<_Args>(__args)...);
|
|
220
|
+
++this->__size_;
|
|
221
|
+
return *__final;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
protected:
|
|
225
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __destroy(iterator __first, iterator __last) noexcept
|
|
226
|
+
{
|
|
227
|
+
_CUDA_VSTD::__destroy(__first, __last);
|
|
228
|
+
this->__size_ -= static_cast<__size_type>(__last - __first);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
_CCCL_TEMPLATE(bool _IsNothrow = _CCCL_TRAIT(is_nothrow_default_constructible, _Tp))
|
|
232
|
+
_CCCL_REQUIRES(_IsNothrow)
|
|
233
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_value_construct(iterator __first, iterator __last) noexcept
|
|
234
|
+
{
|
|
235
|
+
iterator __idx = __first;
|
|
236
|
+
for (; __idx != __last; ++__idx)
|
|
237
|
+
{
|
|
238
|
+
::new (_CUDA_VSTD::__voidify(*__idx)) _Tp();
|
|
239
|
+
}
|
|
240
|
+
this->__size_ += static_cast<__size_type>(__last - __first);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
_CCCL_TEMPLATE(bool _IsNothrow = _CCCL_TRAIT(is_nothrow_default_constructible, _Tp))
|
|
244
|
+
_CCCL_REQUIRES((!_IsNothrow))
|
|
245
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_value_construct(iterator __first, iterator __last)
|
|
246
|
+
{
|
|
247
|
+
iterator __idx = __first;
|
|
248
|
+
auto __guard = __make_exception_guard(_Rollback_change_size<__inplace_vector_storage>{this, __first, __idx});
|
|
249
|
+
for (; __idx != __last; ++__idx)
|
|
250
|
+
{
|
|
251
|
+
::new (_CUDA_VSTD::__voidify(*__idx)) _Tp();
|
|
252
|
+
}
|
|
253
|
+
__guard.__complete();
|
|
254
|
+
this->__size_ += static_cast<__size_type>(__last - __first);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
_CCCL_TEMPLATE(bool _IsNothrow = _CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
258
|
+
_CCCL_REQUIRES(_IsNothrow)
|
|
259
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_fill(iterator __first, iterator __last, const _Tp& __value) noexcept
|
|
260
|
+
{
|
|
261
|
+
iterator __idx = __first;
|
|
262
|
+
for (; __idx != __last; ++__idx)
|
|
263
|
+
{
|
|
264
|
+
::new (_CUDA_VSTD::__voidify(*__idx)) _Tp(__value);
|
|
265
|
+
}
|
|
266
|
+
this->__size_ += static_cast<__size_type>(__last - __first);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
_CCCL_TEMPLATE(bool _IsNothrow = _CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
270
|
+
_CCCL_REQUIRES((!_IsNothrow))
|
|
271
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_fill(iterator __first, iterator __last, const _Tp& __value)
|
|
272
|
+
{
|
|
273
|
+
iterator __idx = __first;
|
|
274
|
+
auto __guard = __make_exception_guard(_Rollback_change_size<__inplace_vector_storage>{this, __first, __idx});
|
|
275
|
+
for (; __idx != __last; ++__idx)
|
|
276
|
+
{
|
|
277
|
+
::new (_CUDA_VSTD::__voidify(*__idx)) _Tp(__value);
|
|
278
|
+
}
|
|
279
|
+
__guard.__complete();
|
|
280
|
+
this->__size_ += static_cast<__size_type>(__last - __first);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
_CCCL_TEMPLATE(class _Iter, bool _IsNothrow = _CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
284
|
+
_CCCL_REQUIRES(_IsNothrow)
|
|
285
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_copy(_Iter __first, _Iter __last, iterator __dest) noexcept
|
|
286
|
+
{
|
|
287
|
+
iterator __curr = __dest;
|
|
288
|
+
for (; __first != __last; ++__curr, (void) ++__first)
|
|
289
|
+
{
|
|
290
|
+
::new (_CUDA_VSTD::__voidify(*__curr)) _Tp(*__first);
|
|
291
|
+
}
|
|
292
|
+
this->__size_ += static_cast<__size_type>(__curr - __dest);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
_CCCL_TEMPLATE(class _Iter, bool _IsNothrow = _CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
296
|
+
_CCCL_REQUIRES((!_IsNothrow))
|
|
297
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_copy(_Iter __first, _Iter __last, iterator __dest)
|
|
298
|
+
{
|
|
299
|
+
iterator __curr = __dest;
|
|
300
|
+
auto __guard = __make_exception_guard(_Rollback_change_size<__inplace_vector_storage>{this, __dest, __curr});
|
|
301
|
+
for (; __first != __last; ++__curr, (void) ++__first)
|
|
302
|
+
{
|
|
303
|
+
::new (_CUDA_VSTD::__voidify(*__curr)) _Tp(*__first);
|
|
304
|
+
}
|
|
305
|
+
__guard.__complete();
|
|
306
|
+
this->__size_ += static_cast<__size_type>(__curr - __dest);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
_CCCL_TEMPLATE(class _Iter, bool _IsNothrow = _CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
310
|
+
_CCCL_REQUIRES(_IsNothrow)
|
|
311
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_move(_Iter __first, _Iter __last, iterator __dest) noexcept
|
|
312
|
+
{
|
|
313
|
+
iterator __curr = __dest;
|
|
314
|
+
for (; __first != __last; ++__curr, (void) ++__first)
|
|
315
|
+
{
|
|
316
|
+
::new (_CUDA_VSTD::__voidify(*__curr)) _Tp(_CUDA_VRANGES::iter_move(__first));
|
|
317
|
+
}
|
|
318
|
+
this->__size_ += static_cast<__size_type>(__curr - __dest);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
_CCCL_TEMPLATE(class _Iter, bool _IsNothrow = _CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
322
|
+
_CCCL_REQUIRES((!_IsNothrow))
|
|
323
|
+
_LIBCUDACXX_HIDE_FROM_ABI void __uninitialized_move(_Iter __first, _Iter __last, iterator __dest)
|
|
324
|
+
{
|
|
325
|
+
iterator __curr = __dest;
|
|
326
|
+
auto __guard = __make_exception_guard(_Rollback_change_size<__inplace_vector_storage>{this, __dest, __curr});
|
|
327
|
+
for (; __first != __last; ++__curr, (void) ++__first)
|
|
328
|
+
{
|
|
329
|
+
::new (_CUDA_VSTD::__voidify(*__curr)) _Tp(_CUDA_VRANGES::iter_move(__first));
|
|
330
|
+
}
|
|
331
|
+
__guard.__complete();
|
|
332
|
+
this->__size_ += static_cast<__size_type>(__curr - __dest);
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
// * If is_trivially_copy_constructible_v<T> is true, then IV has a trivial copy constructor.
|
|
337
|
+
template <class _Tp, size_t _Capacity, bool = _CCCL_TRAIT(is_trivially_copy_constructible, _Tp)>
|
|
338
|
+
struct __inplace_vector_copy : __inplace_vector_storage<_Tp, _Capacity>
|
|
339
|
+
{
|
|
340
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_copy, __inplace_vector_storage, _Tp, _Capacity);
|
|
341
|
+
|
|
342
|
+
_LIBCUDACXX_HIDE_FROM_ABI
|
|
343
|
+
__inplace_vector_copy(const __inplace_vector_copy& __other) noexcept(_CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
344
|
+
: __base()
|
|
345
|
+
{
|
|
346
|
+
this->__uninitialized_copy(__other.begin(), __other.end(), this->begin());
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy(__inplace_vector_copy&&) = default;
|
|
350
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy& operator=(const __inplace_vector_copy&) = default;
|
|
351
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy& operator=(__inplace_vector_copy&&) = default;
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
template <class _Tp, size_t _Capacity>
|
|
355
|
+
struct __inplace_vector_copy<_Tp, _Capacity, true> : __inplace_vector_storage<_Tp, _Capacity>
|
|
356
|
+
{
|
|
357
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_copy, __inplace_vector_storage, _Tp, _Capacity);
|
|
358
|
+
|
|
359
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy(const __inplace_vector_copy&) = default;
|
|
360
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy(__inplace_vector_copy&&) = default;
|
|
361
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy& operator=(const __inplace_vector_copy&) = default;
|
|
362
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy& operator=(__inplace_vector_copy&&) = default;
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
// * If is_trivially_move_constructible_v<T> is true, then IV has a trivial move constructor.
|
|
366
|
+
template <class _Tp, size_t _Capacity, bool = _CCCL_TRAIT(is_trivially_move_constructible, _Tp)>
|
|
367
|
+
struct __inplace_vector_move : __inplace_vector_copy<_Tp, _Capacity>
|
|
368
|
+
{
|
|
369
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_move, __inplace_vector_copy, _Tp, _Capacity);
|
|
370
|
+
|
|
371
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move(const __inplace_vector_move&) = default;
|
|
372
|
+
|
|
373
|
+
_LIBCUDACXX_HIDE_FROM_ABI
|
|
374
|
+
__inplace_vector_move(__inplace_vector_move&& __other) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
375
|
+
: __base()
|
|
376
|
+
{
|
|
377
|
+
this->__uninitialized_move(__other.begin(), __other.end(), this->begin());
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move& operator=(const __inplace_vector_move&) = default;
|
|
381
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move& operator=(__inplace_vector_move&&) = default;
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
template <class _Tp, size_t _Capacity>
|
|
385
|
+
struct __inplace_vector_move<_Tp, _Capacity, true> : __inplace_vector_copy<_Tp, _Capacity>
|
|
386
|
+
{
|
|
387
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_move, __inplace_vector_copy, _Tp, _Capacity);
|
|
388
|
+
|
|
389
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move(const __inplace_vector_move&) = default;
|
|
390
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move(__inplace_vector_move&&) = default;
|
|
391
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move& operator=(const __inplace_vector_move&) = default;
|
|
392
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move& operator=(__inplace_vector_move&&) = default;
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
// * if is_trivially_copy_constructible_v<T> && is_trivially_copy_assignable_v<T> is true, then IV has a trivial copy
|
|
396
|
+
// assignment operator
|
|
397
|
+
template <class _Tp,
|
|
398
|
+
size_t _Capacity,
|
|
399
|
+
bool = _CCCL_TRAIT(is_trivially_copy_constructible, _Tp) && _CCCL_TRAIT(is_trivially_copy_assignable, _Tp)>
|
|
400
|
+
struct __inplace_vector_copy_assign : __inplace_vector_move<_Tp, _Capacity>
|
|
401
|
+
{
|
|
402
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_copy_assign, __inplace_vector_move, _Tp, _Capacity);
|
|
403
|
+
|
|
404
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign(const __inplace_vector_copy_assign&) = default;
|
|
405
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign(__inplace_vector_copy_assign&&) = default;
|
|
406
|
+
|
|
407
|
+
_LIBCUDACXX_HIDE_FROM_ABI __inplace_vector_copy_assign&
|
|
408
|
+
operator=(const __inplace_vector_copy_assign& __other) noexcept(
|
|
409
|
+
_CCCL_TRAIT(is_nothrow_copy_constructible, _Tp) && _CCCL_TRAIT(is_nothrow_copy_assignable, _Tp))
|
|
410
|
+
{
|
|
411
|
+
if (__other.size() < this->size())
|
|
412
|
+
{
|
|
413
|
+
const auto __new_end = _CUDA_VSTD::copy(__other.begin(), __other.end(), this->begin());
|
|
414
|
+
this->__destroy(__new_end, this->end());
|
|
415
|
+
}
|
|
416
|
+
else
|
|
417
|
+
{
|
|
418
|
+
_CUDA_VSTD::copy(__other.begin(), __other.begin() + this->size(), this->begin());
|
|
419
|
+
this->__uninitialized_copy(__other.begin() + this->size(), __other.end(), this->end());
|
|
420
|
+
}
|
|
421
|
+
return *this;
|
|
422
|
+
}
|
|
423
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign& operator=(__inplace_vector_copy_assign&&) = default;
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
template <class _Tp, size_t _Capacity>
|
|
427
|
+
struct __inplace_vector_copy_assign<_Tp, _Capacity, true> : __inplace_vector_move<_Tp, _Capacity>
|
|
428
|
+
{
|
|
429
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_copy_assign, __inplace_vector_move, _Tp, _Capacity);
|
|
430
|
+
|
|
431
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign(const __inplace_vector_copy_assign&) = default;
|
|
432
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign(__inplace_vector_copy_assign&&) = default;
|
|
433
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign& operator=(const __inplace_vector_copy_assign&) = default;
|
|
434
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_copy_assign& operator=(__inplace_vector_copy_assign&&) = default;
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
// * if is_trivially_move_constructible_v<T> && is_trivially_move_assignable_v<T> is true, then IV has a trivial move
|
|
438
|
+
// assignment operator
|
|
439
|
+
template <class _Tp,
|
|
440
|
+
size_t _Capacity,
|
|
441
|
+
bool = _CCCL_TRAIT(is_trivially_move_constructible, _Tp) && _CCCL_TRAIT(is_trivially_move_assignable, _Tp)>
|
|
442
|
+
struct __inplace_vector_move_assign : __inplace_vector_copy_assign<_Tp, _Capacity>
|
|
443
|
+
{
|
|
444
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_move_assign, __inplace_vector_copy_assign, _Tp, _Capacity);
|
|
445
|
+
|
|
446
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign(const __inplace_vector_move_assign&) = default;
|
|
447
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign(__inplace_vector_move_assign&&) = default;
|
|
448
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign& operator=(const __inplace_vector_move_assign&) = default;
|
|
449
|
+
|
|
450
|
+
_LIBCUDACXX_HIDE_FROM_ABI __inplace_vector_move_assign& operator=(__inplace_vector_move_assign&& __other) noexcept(
|
|
451
|
+
_CCCL_TRAIT(is_nothrow_move_constructible, _Tp) && _CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
452
|
+
{
|
|
453
|
+
if (__other.size() < this->size())
|
|
454
|
+
{
|
|
455
|
+
const auto __new_end = _CUDA_VSTD::move(__other.begin(), __other.end(), this->begin());
|
|
456
|
+
this->__destroy(__new_end, this->end());
|
|
457
|
+
}
|
|
458
|
+
else
|
|
459
|
+
{
|
|
460
|
+
_CUDA_VSTD::move(__other.begin(), __other.begin() + this->size(), this->begin());
|
|
461
|
+
this->__uninitialized_move(__other.begin() + this->size(), __other.end(), this->end());
|
|
462
|
+
}
|
|
463
|
+
return *this;
|
|
464
|
+
}
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
template <class _Tp, size_t _Capacity>
|
|
468
|
+
struct __inplace_vector_move_assign<_Tp, _Capacity, true> : __inplace_vector_copy_assign<_Tp, _Capacity>
|
|
469
|
+
{
|
|
470
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_move_assign, __inplace_vector_copy_assign, _Tp, _Capacity);
|
|
471
|
+
|
|
472
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign(const __inplace_vector_move_assign&) = default;
|
|
473
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign(__inplace_vector_move_assign&&) = default;
|
|
474
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign& operator=(const __inplace_vector_move_assign&) = default;
|
|
475
|
+
_CCCL_HIDE_FROM_ABI __inplace_vector_move_assign& operator=(__inplace_vector_move_assign&&) = default;
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
// Specialization for non-trivial types. Nothing in here can be constexpr
|
|
479
|
+
template <class _Tp,
|
|
480
|
+
size_t _Capacity,
|
|
481
|
+
__inplace_vector_specialization _Spec = __select_inplace_vector_specialization<_Tp, _Capacity>()>
|
|
482
|
+
struct __inplace_vector_base : __inplace_vector_move_assign<_Tp, _Capacity>
|
|
483
|
+
{
|
|
484
|
+
_LIBCUDACXX_DELEGATE_CONSTRUCTORS(__inplace_vector_base, __inplace_vector_move_assign, _Tp, _Capacity);
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
template <class _Tp, size_t _Capacity>
|
|
488
|
+
struct __inplace_vector_base<_Tp, _Capacity, __inplace_vector_specialization::__trivial>
|
|
489
|
+
{
|
|
490
|
+
using size_type = size_t;
|
|
491
|
+
using __size_type = __inplace_vector_size_type<_Capacity>;
|
|
492
|
+
using reference = _Tp&;
|
|
493
|
+
using iterator = _Tp*;
|
|
494
|
+
using const_iterator = const _Tp*;
|
|
495
|
+
|
|
496
|
+
_Tp __elems_[_Capacity] = {};
|
|
497
|
+
__size_type __size_{0};
|
|
498
|
+
|
|
499
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
500
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base() = default;
|
|
501
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base(const __inplace_vector_base&) = default;
|
|
502
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base(__inplace_vector_base&&) = default;
|
|
503
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base& operator=(const __inplace_vector_base&) = default;
|
|
504
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base& operator=(__inplace_vector_base&&) = default;
|
|
505
|
+
|
|
506
|
+
// [containers.sequences.inplace.vector.members] size/capacity
|
|
507
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type size() const noexcept
|
|
508
|
+
{
|
|
509
|
+
return static_cast<size_type>(__size_);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr bool empty() const noexcept
|
|
513
|
+
{
|
|
514
|
+
return __size_ == 0;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// [containers.sequences.inplace.vector.data], data access
|
|
518
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp* data() noexcept
|
|
519
|
+
{
|
|
520
|
+
return __elems_;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp* data() const noexcept
|
|
524
|
+
{
|
|
525
|
+
return __elems_;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// [containers.sequences.inplace.vector.itertators] iterators
|
|
529
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr iterator begin() noexcept
|
|
530
|
+
{
|
|
531
|
+
return __elems_;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator begin() const noexcept
|
|
535
|
+
{
|
|
536
|
+
return __elems_;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr iterator end() noexcept
|
|
540
|
+
{
|
|
541
|
+
return __elems_ + __size_;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator end() const noexcept
|
|
545
|
+
{
|
|
546
|
+
return __elems_ + __size_;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// [containers.sequences.inplace.vector.modifiers], modifiers
|
|
550
|
+
template <class... _Args>
|
|
551
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference
|
|
552
|
+
unchecked_emplace_back(_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
|
|
553
|
+
{
|
|
554
|
+
_Tp* __final = __elems_ + __size_;
|
|
555
|
+
*__final = _Tp(_CUDA_VSTD::forward<_Args>(__args)...);
|
|
556
|
+
++__size_;
|
|
557
|
+
return *__final;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
protected:
|
|
561
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __destroy(iterator __first, iterator __last) noexcept
|
|
562
|
+
{
|
|
563
|
+
__size_ -= static_cast<__size_type>(__last - __first);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_value_construct(iterator __first, iterator __last) noexcept
|
|
567
|
+
{
|
|
568
|
+
_CUDA_VSTD::fill(__first, __last, _Tp());
|
|
569
|
+
__size_ += static_cast<__size_type>(__last - __first);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void
|
|
573
|
+
__uninitialized_fill(iterator __first, iterator __last, const _Tp& __value) noexcept
|
|
574
|
+
{
|
|
575
|
+
_CUDA_VSTD::fill(__first, __last, __value);
|
|
576
|
+
__size_ += static_cast<__size_type>(__last - __first);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
template <class _Iter>
|
|
580
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_copy(_Iter __first, _Iter __last, iterator __dest) noexcept
|
|
581
|
+
{
|
|
582
|
+
_CUDA_VSTD::copy(__first, __last, __dest);
|
|
583
|
+
__size_ += static_cast<__size_type>(_CUDA_VRANGES::distance(__first, __last));
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
template <class _Iter>
|
|
587
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_move(_Iter __first, _Iter __last, iterator __dest) noexcept
|
|
588
|
+
{
|
|
589
|
+
_CUDA_VSTD::copy(__first, __last, __dest);
|
|
590
|
+
__size_ += static_cast<__size_type>(_CUDA_VRANGES::distance(__first, __last));
|
|
591
|
+
}
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
// We need to specialize inplace_vector for zero capacity as in that case it is required to be empty and trivial
|
|
595
|
+
template <class _Tp>
|
|
596
|
+
struct __inplace_vector_base<_Tp, 0, __inplace_vector_specialization::__empty>
|
|
597
|
+
{
|
|
598
|
+
using size_type = size_t;
|
|
599
|
+
using __size_type = __inplace_vector_size_type<0>;
|
|
600
|
+
using reference = _Tp&;
|
|
601
|
+
using iterator = _Tp*;
|
|
602
|
+
using const_iterator = const _Tp*;
|
|
603
|
+
|
|
604
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
605
|
+
_CCCL_HIDE_FROM_ABI constexpr __inplace_vector_base() = default;
|
|
606
|
+
|
|
607
|
+
// [containers.sequences.inplace.vector.members] size/capacity
|
|
608
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type size() const noexcept
|
|
609
|
+
{
|
|
610
|
+
return 0;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr bool empty() const noexcept
|
|
614
|
+
{
|
|
615
|
+
return true;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
// [containers.sequences.inplace.vector.data], data access
|
|
619
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp* data() noexcept
|
|
620
|
+
{
|
|
621
|
+
return nullptr;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const _Tp* data() const noexcept
|
|
625
|
+
{
|
|
626
|
+
return nullptr;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
// [containers.sequences.inplace.vector.itertators] iterators
|
|
630
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr iterator begin() noexcept
|
|
631
|
+
{
|
|
632
|
+
return nullptr;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator begin() const noexcept
|
|
636
|
+
{
|
|
637
|
+
return nullptr;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr iterator end() noexcept
|
|
641
|
+
{
|
|
642
|
+
return nullptr;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator end() const noexcept
|
|
646
|
+
{
|
|
647
|
+
return nullptr;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// [containers.sequences.inplace.vector.modifiers], modifiers
|
|
651
|
+
template <class... _Args>
|
|
652
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _Tp& unchecked_emplace_back(_Args&&...) noexcept
|
|
653
|
+
{
|
|
654
|
+
_CCCL_UNREACHABLE();
|
|
655
|
+
#if _CCCL_COMPILER(MSVC)
|
|
656
|
+
return *begin();
|
|
657
|
+
#endif // _CCCL_COMPILER(MSVC)
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
protected:
|
|
661
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __destroy(iterator, iterator) noexcept
|
|
662
|
+
{
|
|
663
|
+
_CCCL_UNREACHABLE();
|
|
664
|
+
}
|
|
665
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_value_construct(iterator, iterator) noexcept
|
|
666
|
+
{
|
|
667
|
+
_CCCL_UNREACHABLE();
|
|
668
|
+
}
|
|
669
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_fill(iterator, iterator, const _Tp&) noexcept
|
|
670
|
+
{
|
|
671
|
+
_CCCL_UNREACHABLE();
|
|
672
|
+
}
|
|
673
|
+
template <class _Iter>
|
|
674
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_copy(_Iter, _Iter, iterator) noexcept
|
|
675
|
+
{
|
|
676
|
+
_CCCL_UNREACHABLE();
|
|
677
|
+
}
|
|
678
|
+
template <class _Iter>
|
|
679
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void __uninitialized_move(_Iter, _Iter, iterator) noexcept
|
|
680
|
+
{
|
|
681
|
+
_CCCL_UNREACHABLE();
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
|
|
685
|
+
template <class _Tp, size_t _Capacity>
|
|
686
|
+
class inplace_vector : __inplace_vector_base<_Tp, _Capacity>
|
|
687
|
+
{
|
|
688
|
+
private:
|
|
689
|
+
using __base = __inplace_vector_base<_Tp, _Capacity>;
|
|
690
|
+
|
|
691
|
+
public:
|
|
692
|
+
using value_type = _Tp;
|
|
693
|
+
using size_type = size_t;
|
|
694
|
+
using difference_type = ptrdiff_t;
|
|
695
|
+
using pointer = _Tp*;
|
|
696
|
+
using const_pointer = const _Tp*;
|
|
697
|
+
using reference = _Tp&;
|
|
698
|
+
using const_reference = const _Tp&;
|
|
699
|
+
|
|
700
|
+
using iterator = pointer;
|
|
701
|
+
using const_iterator = const_pointer;
|
|
702
|
+
|
|
703
|
+
using reverse_iterator = _CUDA_VSTD::reverse_iterator<iterator>;
|
|
704
|
+
using const_reverse_iterator = _CUDA_VSTD::reverse_iterator<const_iterator>;
|
|
705
|
+
|
|
706
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
707
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector() noexcept = default;
|
|
708
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector(const inplace_vector&) = default;
|
|
709
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector(inplace_vector&&) = default;
|
|
710
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector& operator=(const inplace_vector&) = default;
|
|
711
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector& operator=(inplace_vector&&) = default;
|
|
712
|
+
|
|
713
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit inplace_vector(const size_type __count)
|
|
714
|
+
: __base()
|
|
715
|
+
{
|
|
716
|
+
if (__count > 0)
|
|
717
|
+
{
|
|
718
|
+
if (_Capacity < __count)
|
|
719
|
+
{
|
|
720
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
iterator __begin = this->begin();
|
|
724
|
+
this->__uninitialized_value_construct(__begin, __begin + __count);
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(const size_type __count, const _Tp& __value)
|
|
729
|
+
: __base()
|
|
730
|
+
{
|
|
731
|
+
if (__count > 0)
|
|
732
|
+
{
|
|
733
|
+
if (_Capacity < __count)
|
|
734
|
+
{
|
|
735
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
iterator __begin = this->begin();
|
|
739
|
+
this->__uninitialized_fill(__begin, __begin + __count, __value);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
744
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value _CCCL_AND(!__is_cpp17_forward_iterator<_Iter>::value))
|
|
745
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(_Iter __first, _Iter __last)
|
|
746
|
+
: __base()
|
|
747
|
+
{
|
|
748
|
+
for (; __first != __last; ++__first)
|
|
749
|
+
{
|
|
750
|
+
emplace_back(*__first);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
755
|
+
_CCCL_REQUIRES(__is_cpp17_forward_iterator<_Iter>::value)
|
|
756
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(_Iter __first, _Iter __last)
|
|
757
|
+
: __base()
|
|
758
|
+
{
|
|
759
|
+
if (__first != __last)
|
|
760
|
+
{
|
|
761
|
+
const auto __size = static_cast<size_t>(_CUDA_VSTD::distance(__first, __last));
|
|
762
|
+
if (_Capacity < __size)
|
|
763
|
+
{
|
|
764
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
this->__uninitialized_copy(__first, __last, this->begin());
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(initializer_list<_Tp> __ilist)
|
|
772
|
+
: __base()
|
|
773
|
+
{
|
|
774
|
+
if (__ilist.size() != 0)
|
|
775
|
+
{
|
|
776
|
+
if (_Capacity < __ilist.size())
|
|
777
|
+
{
|
|
778
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
this->__uninitialized_copy(__ilist.begin(), __ilist.end(), this->begin());
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
_CCCL_TEMPLATE(class _Range)
|
|
786
|
+
_CCCL_REQUIRES(
|
|
787
|
+
_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND(!_CUDA_VRANGES::forward_range<_Range>))
|
|
788
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(from_range_t, _Range&& __range)
|
|
789
|
+
: __base()
|
|
790
|
+
{
|
|
791
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
792
|
+
auto __last = _CUDA_VRANGES::end(__range);
|
|
793
|
+
for (; __first != __last; ++__first)
|
|
794
|
+
{
|
|
795
|
+
emplace_back(_CUDA_VRANGES::iter_move(__first));
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
_CCCL_TEMPLATE(class _Range)
|
|
800
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
801
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND _CUDA_VRANGES::sized_range<_Range>)
|
|
802
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(from_range_t, _Range&& __range)
|
|
803
|
+
: __base()
|
|
804
|
+
{
|
|
805
|
+
const auto __size = _CUDA_VRANGES::size(__range);
|
|
806
|
+
if (__size > 0)
|
|
807
|
+
{
|
|
808
|
+
if (_Capacity < __size)
|
|
809
|
+
{
|
|
810
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
this->__uninitialized_move(_CUDA_VRANGES::begin(__range), _CUDA_VRANGES::__unwrap_end(__range), this->begin());
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
_CCCL_TEMPLATE(class _Range)
|
|
818
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
819
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND(!_CUDA_VRANGES::sized_range<_Range>))
|
|
820
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(from_range_t, _Range&& __range)
|
|
821
|
+
: __base()
|
|
822
|
+
{
|
|
823
|
+
const auto __count =
|
|
824
|
+
static_cast<size_t>(_CUDA_VRANGES::distance(_CUDA_VRANGES::begin(__range), _CUDA_VRANGES::end(__range)));
|
|
825
|
+
if (__count > 0)
|
|
826
|
+
{
|
|
827
|
+
if (_Capacity < __count)
|
|
828
|
+
{
|
|
829
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
this->__uninitialized_move(_CUDA_VRANGES::begin(__range), _CUDA_VRANGES::__unwrap_end(__range), this->begin());
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector& operator=(initializer_list<_Tp> __ilist)
|
|
837
|
+
{
|
|
838
|
+
const auto __count = __ilist.size();
|
|
839
|
+
if (_Capacity < __count)
|
|
840
|
+
{
|
|
841
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
const auto __size = this->size();
|
|
845
|
+
if (__count < __size)
|
|
846
|
+
{
|
|
847
|
+
const iterator __new_end = _CUDA_VSTD::copy(__ilist.begin(), __ilist.end(), this->begin());
|
|
848
|
+
this->__destroy(__new_end, this->end());
|
|
849
|
+
}
|
|
850
|
+
else
|
|
851
|
+
{
|
|
852
|
+
_CUDA_VSTD::copy(__ilist.begin(), __ilist.begin() + __size, this->begin());
|
|
853
|
+
this->__uninitialized_copy(__ilist.begin() + __size, __ilist.end(), this->end());
|
|
854
|
+
}
|
|
855
|
+
return *this;
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
// inplace_vector.assign
|
|
859
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(const size_type __count, const _Tp& __value)
|
|
860
|
+
{
|
|
861
|
+
if (_Capacity < __count)
|
|
862
|
+
{
|
|
863
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
const iterator __begin = this->begin();
|
|
867
|
+
const iterator __end = this->end();
|
|
868
|
+
if (__count < this->size())
|
|
869
|
+
{
|
|
870
|
+
_CUDA_VSTD::fill(__begin, __begin + __count, __value);
|
|
871
|
+
this->__destroy(__begin + __count, __end);
|
|
872
|
+
}
|
|
873
|
+
else
|
|
874
|
+
{
|
|
875
|
+
_CUDA_VSTD::fill(__begin, __end, __value);
|
|
876
|
+
this->__uninitialized_fill(__end, __begin + __count, __value);
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
881
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value _CCCL_AND(!__is_cpp17_forward_iterator<_Iter>::value))
|
|
882
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(_Iter __first, _Iter __last)
|
|
883
|
+
{
|
|
884
|
+
iterator __end = this->end();
|
|
885
|
+
for (iterator __current = this->begin(); __current != __end; ++__current, (void) ++__first)
|
|
886
|
+
{
|
|
887
|
+
if (__first == __last)
|
|
888
|
+
{
|
|
889
|
+
this->__destroy(__current, __end);
|
|
890
|
+
return;
|
|
891
|
+
}
|
|
892
|
+
*__current = *__first;
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
for (; __first != __last; ++__first)
|
|
896
|
+
{
|
|
897
|
+
emplace_back(*__first);
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
902
|
+
_CCCL_REQUIRES(__is_cpp17_forward_iterator<_Iter>::value)
|
|
903
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(_Iter __first, _Iter __last)
|
|
904
|
+
{
|
|
905
|
+
const auto __count = static_cast<size_type>(_CUDA_VSTD::distance(__first, __last));
|
|
906
|
+
if (_Capacity < __count)
|
|
907
|
+
{
|
|
908
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
if (__count < this->size())
|
|
912
|
+
{
|
|
913
|
+
const iterator __new_end = _CUDA_VSTD::copy(__first, __last, this->begin());
|
|
914
|
+
this->__destroy(__new_end, this->end());
|
|
915
|
+
}
|
|
916
|
+
else
|
|
917
|
+
{
|
|
918
|
+
_Iter __middle = _CUDA_VSTD::next(__first, this->size());
|
|
919
|
+
_CUDA_VSTD::copy(__first, __middle, this->begin());
|
|
920
|
+
this->__uninitialized_copy(__middle, __last, this->end());
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(initializer_list<_Tp> __ilist)
|
|
925
|
+
{
|
|
926
|
+
const auto __count = static_cast<size_type>(__ilist.size());
|
|
927
|
+
if (_Capacity < __count)
|
|
928
|
+
{
|
|
929
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
if (__count < this->size())
|
|
933
|
+
{
|
|
934
|
+
const iterator __new_end = _CUDA_VSTD::copy(__ilist.begin(), __ilist.end(), this->begin());
|
|
935
|
+
this->__destroy(__new_end, this->end());
|
|
936
|
+
}
|
|
937
|
+
else
|
|
938
|
+
{
|
|
939
|
+
_CUDA_VSTD::copy(__ilist.begin(), __ilist.begin() + this->size(), this->begin());
|
|
940
|
+
this->__uninitialized_copy(__ilist.begin() + this->size(), __ilist.end(), this->end());
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
_CCCL_TEMPLATE(class _Range)
|
|
945
|
+
_CCCL_REQUIRES(
|
|
946
|
+
_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND(!_CUDA_VRANGES::forward_range<_Range>))
|
|
947
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign_range(_Range&& __range)
|
|
948
|
+
{
|
|
949
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
950
|
+
const auto __last = _CUDA_VRANGES::end(__range);
|
|
951
|
+
iterator __end = this->end();
|
|
952
|
+
for (iterator __current = this->begin(); __current != __end; ++__current, (void) ++__first)
|
|
953
|
+
{
|
|
954
|
+
if (__first == __last)
|
|
955
|
+
{
|
|
956
|
+
this->__destroy(__current, __end);
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
*__current = *__first;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
for (; __first != __last; ++__first)
|
|
963
|
+
{
|
|
964
|
+
emplace_back(*__first);
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
_CCCL_TEMPLATE(class _Range)
|
|
969
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
970
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND _CUDA_VRANGES::sized_range<_Range>)
|
|
971
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign_range(_Range&& __range)
|
|
972
|
+
{
|
|
973
|
+
const auto __size = _CUDA_VRANGES::size(__range);
|
|
974
|
+
if (_Capacity < __size)
|
|
975
|
+
{
|
|
976
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
const auto __first = _CUDA_VRANGES::begin(__range);
|
|
980
|
+
const auto __last = _CUDA_VRANGES::__unwrap_end(__range);
|
|
981
|
+
if (static_cast<size_type>(__size) < this->size())
|
|
982
|
+
{
|
|
983
|
+
const iterator __new_end = _CUDA_VSTD::copy(__first, __last, this->begin());
|
|
984
|
+
this->__destroy(__new_end, this->end());
|
|
985
|
+
}
|
|
986
|
+
else
|
|
987
|
+
{
|
|
988
|
+
const auto __middle = _CUDA_VSTD::next(__first, this->size());
|
|
989
|
+
_CUDA_VSTD::copy(__first, __middle, this->begin());
|
|
990
|
+
this->__uninitialized_copy(__middle, __last, this->end());
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
_CCCL_TEMPLATE(class _Range)
|
|
995
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
996
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND(!_CUDA_VRANGES::sized_range<_Range>))
|
|
997
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign_range(_Range&& __range)
|
|
998
|
+
{
|
|
999
|
+
const auto __first = _CUDA_VRANGES::begin(__range);
|
|
1000
|
+
const auto __last = _CUDA_VRANGES::__unwrap_end(__range);
|
|
1001
|
+
const auto __size = static_cast<size_type>(_CUDA_VRANGES::distance(__first, __last));
|
|
1002
|
+
if (_Capacity < __size)
|
|
1003
|
+
{
|
|
1004
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
if (__size < this->size())
|
|
1008
|
+
{
|
|
1009
|
+
const iterator __new_end = _CUDA_VSTD::copy(__first, __last, this->begin());
|
|
1010
|
+
this->__destroy(__new_end, this->end());
|
|
1011
|
+
}
|
|
1012
|
+
else
|
|
1013
|
+
{
|
|
1014
|
+
const auto __middle = _CUDA_VSTD::next(__first, this->size());
|
|
1015
|
+
_CUDA_VSTD::copy(__first, __middle, this->begin());
|
|
1016
|
+
this->__uninitialized_copy(__middle, __last, this->end());
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
// [containers.sequences.inplace.vector.access], element access
|
|
1021
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference at(const size_type __pos)
|
|
1022
|
+
{
|
|
1023
|
+
if (__pos > this->size())
|
|
1024
|
+
{
|
|
1025
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::at");
|
|
1026
|
+
}
|
|
1027
|
+
return *(this->begin() + __pos);
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference at(const size_type __pos) const
|
|
1031
|
+
{
|
|
1032
|
+
if (__pos > this->size())
|
|
1033
|
+
{
|
|
1034
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::at");
|
|
1035
|
+
}
|
|
1036
|
+
return *(this->begin() + __pos);
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference operator[](const size_type __pos) noexcept
|
|
1040
|
+
{
|
|
1041
|
+
return *(this->begin() + __pos);
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference operator[](const size_type __pos) const noexcept
|
|
1045
|
+
{
|
|
1046
|
+
return *(this->begin() + __pos);
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference front() noexcept
|
|
1050
|
+
{
|
|
1051
|
+
return *this->begin();
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference front() const noexcept
|
|
1055
|
+
{
|
|
1056
|
+
return *this->begin();
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference back() noexcept
|
|
1060
|
+
{
|
|
1061
|
+
return *(this->end() - 1);
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference back() const noexcept
|
|
1065
|
+
{
|
|
1066
|
+
return *(this->end() - 1);
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
using __base::data;
|
|
1070
|
+
|
|
1071
|
+
// inplace_vector.iterators
|
|
1072
|
+
using __base::begin;
|
|
1073
|
+
using __base::end;
|
|
1074
|
+
|
|
1075
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reverse_iterator rbegin() noexcept
|
|
1076
|
+
{
|
|
1077
|
+
return reverse_iterator{this->end()};
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator rbegin() const noexcept
|
|
1081
|
+
{
|
|
1082
|
+
return const_reverse_iterator{this->end()};
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reverse_iterator rend() noexcept
|
|
1086
|
+
{
|
|
1087
|
+
return reverse_iterator{this->begin()};
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator rend() const noexcept
|
|
1091
|
+
{
|
|
1092
|
+
return const_reverse_iterator{this->begin()};
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator cbegin() const noexcept
|
|
1096
|
+
{
|
|
1097
|
+
return this->begin();
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator cend() const noexcept
|
|
1101
|
+
{
|
|
1102
|
+
return this->end();
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator crbegin() const noexcept
|
|
1106
|
+
{
|
|
1107
|
+
return const_reverse_iterator{this->end()};
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator crend() const noexcept
|
|
1111
|
+
{
|
|
1112
|
+
return const_reverse_iterator{this->begin()};
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
// [containers.sequences.inplace.vector.members] size/capacity
|
|
1116
|
+
using __base::empty;
|
|
1117
|
+
using __base::size;
|
|
1118
|
+
|
|
1119
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type max_size() const noexcept
|
|
1120
|
+
{
|
|
1121
|
+
return _Capacity;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type capacity() const noexcept
|
|
1125
|
+
{
|
|
1126
|
+
return _Capacity;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
// [containers.sequences.inplace.vector.modifiers], modifiers
|
|
1130
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, const _Tp& __value)
|
|
1131
|
+
{
|
|
1132
|
+
return emplace(__cpos, __value);
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, _Tp&& __value)
|
|
1136
|
+
{
|
|
1137
|
+
return emplace(__cpos, _CUDA_VSTD::move(__value));
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, const size_type __count, const _Tp& __value)
|
|
1141
|
+
{
|
|
1142
|
+
const auto __pos = static_cast<size_type>(__cpos - this->cbegin());
|
|
1143
|
+
if (__count > _Capacity - this->size())
|
|
1144
|
+
{
|
|
1145
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1146
|
+
}
|
|
1147
|
+
else if (__pos > this->size())
|
|
1148
|
+
{
|
|
1149
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::insert(const_iterator, size_type, T)");
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
const iterator __first = this->begin() + __pos;
|
|
1153
|
+
if (__count == 0)
|
|
1154
|
+
{
|
|
1155
|
+
return __first;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
const iterator __end = this->end();
|
|
1159
|
+
if (__pos == this->size())
|
|
1160
|
+
{
|
|
1161
|
+
this->__uninitialized_fill(__end, __end + __count, __value);
|
|
1162
|
+
return __first;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
const iterator __middle = __first + __count;
|
|
1166
|
+
if (__end <= __middle)
|
|
1167
|
+
{ // all existing elements are pushed into uninitialized storage
|
|
1168
|
+
this->__uninitialized_fill(__end, __middle, __value);
|
|
1169
|
+
this->__uninitialized_move(__first, __end, __middle);
|
|
1170
|
+
_CUDA_VSTD::fill(__first, __end, __value);
|
|
1171
|
+
}
|
|
1172
|
+
else
|
|
1173
|
+
{ // some elements get copied into existing storage
|
|
1174
|
+
this->__uninitialized_move(__end - __count, __end, __end);
|
|
1175
|
+
_CUDA_VSTD::move_backward(__first, __end - __count, __end);
|
|
1176
|
+
_CUDA_VSTD::fill(__first, __middle, __value);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
return __first;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
1183
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value _CCCL_AND(!__is_cpp17_forward_iterator<_Iter>::value))
|
|
1184
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, _Iter __first, _Iter __last)
|
|
1185
|
+
{
|
|
1186
|
+
// add all new elements to the back then rotate
|
|
1187
|
+
const iterator __old_end = this->end();
|
|
1188
|
+
for (; __first != __last; ++__first)
|
|
1189
|
+
{
|
|
1190
|
+
emplace_back(*__first);
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
const iterator __res = this->begin() + (__cpos - this->cbegin());
|
|
1194
|
+
_CUDA_VSTD::rotate(__res, __old_end, this->end());
|
|
1195
|
+
return __res;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
1199
|
+
_CCCL_REQUIRES(__is_cpp17_forward_iterator<_Iter>::value)
|
|
1200
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, _Iter __first, _Iter __last)
|
|
1201
|
+
{
|
|
1202
|
+
const auto __pos = static_cast<size_type>(__cpos - this->cbegin());
|
|
1203
|
+
const auto __count = static_cast<size_type>(_CUDA_VSTD::distance(__first, __last));
|
|
1204
|
+
if (__count > _Capacity - this->size())
|
|
1205
|
+
{
|
|
1206
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1207
|
+
}
|
|
1208
|
+
else if (__pos > this->size())
|
|
1209
|
+
{
|
|
1210
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::insert(const_iterator, Iter, Iter)");
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
const iterator __res = this->begin() + __pos;
|
|
1214
|
+
if (__count == 0)
|
|
1215
|
+
{
|
|
1216
|
+
return __res;
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
const iterator __end = this->end();
|
|
1220
|
+
if (__pos == this->size())
|
|
1221
|
+
{
|
|
1222
|
+
this->__uninitialized_copy(__first, __last, __end);
|
|
1223
|
+
return __res;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
const iterator __middle = __res + __count;
|
|
1227
|
+
if (__end <= __middle)
|
|
1228
|
+
{ // all existing elements are pushed into uninitialized storage
|
|
1229
|
+
_Iter __imiddle = _CUDA_VSTD::next(__first, this->size() - __pos);
|
|
1230
|
+
this->__uninitialized_copy(__imiddle, __last, __end);
|
|
1231
|
+
this->__uninitialized_move(__res, __end, __middle);
|
|
1232
|
+
_CUDA_VSTD::copy(__first, __imiddle, __res);
|
|
1233
|
+
}
|
|
1234
|
+
else
|
|
1235
|
+
{ // all new elements get copied into existing storage
|
|
1236
|
+
this->__uninitialized_move(__end - __count, __end, __end);
|
|
1237
|
+
_CUDA_VSTD::move_backward(__res, __end - __count, __end);
|
|
1238
|
+
_CUDA_VSTD::copy(__first, __last, __res);
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
return __res;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, initializer_list<_Tp> __ilist)
|
|
1245
|
+
{
|
|
1246
|
+
const auto __pos = static_cast<size_type>(__cpos - this->cbegin());
|
|
1247
|
+
const auto __count = __ilist.size();
|
|
1248
|
+
if (__count > _Capacity - this->size())
|
|
1249
|
+
{
|
|
1250
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1251
|
+
}
|
|
1252
|
+
else if (__pos > this->size())
|
|
1253
|
+
{
|
|
1254
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::insert(const_iterator, initializer_list)");
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
const iterator __res = this->begin() + __pos;
|
|
1258
|
+
if (__count == 0)
|
|
1259
|
+
{
|
|
1260
|
+
return __res;
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
const iterator __end = this->end();
|
|
1264
|
+
if (__pos == this->size())
|
|
1265
|
+
{
|
|
1266
|
+
this->__uninitialized_copy(__ilist.begin(), __ilist.end(), __end);
|
|
1267
|
+
return __res;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
const iterator __middle = __res + __count;
|
|
1271
|
+
if (__end <= __middle)
|
|
1272
|
+
{ // all existing elements are pushed into uninitialized storage
|
|
1273
|
+
auto __imiddel = __ilist.begin() + this->size() - __pos;
|
|
1274
|
+
this->__uninitialized_copy(__imiddel, __ilist.end(), __end);
|
|
1275
|
+
this->__uninitialized_move(__res, __end, __middle);
|
|
1276
|
+
_CUDA_VSTD::copy(__ilist.begin(), __imiddel, __res);
|
|
1277
|
+
}
|
|
1278
|
+
else
|
|
1279
|
+
{ // all new elements get copied into existing storage
|
|
1280
|
+
this->__uninitialized_move(__end - __count, __end, __end);
|
|
1281
|
+
_CUDA_VSTD::move_backward(__res, __end - __count, __end);
|
|
1282
|
+
_CUDA_VSTD::copy(__ilist.begin(), __ilist.end(), __res);
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
return __res;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1289
|
+
_CCCL_REQUIRES(
|
|
1290
|
+
_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND(!_CUDA_VRANGES::forward_range<_Range>))
|
|
1291
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert_range(const_iterator __cpos, _Range&& __range)
|
|
1292
|
+
{
|
|
1293
|
+
// add all new elements to the back then rotate
|
|
1294
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1295
|
+
auto __last = _CUDA_VRANGES::end(__range);
|
|
1296
|
+
const iterator __old_end = this->end();
|
|
1297
|
+
for (; __first != __last; ++__first)
|
|
1298
|
+
{
|
|
1299
|
+
emplace_back(*__first);
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
const auto __pos = this->begin() + static_cast<size_type>(__cpos - this->cbegin());
|
|
1303
|
+
_CUDA_VSTD::rotate(__pos, __old_end, this->end());
|
|
1304
|
+
return __pos;
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1308
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND _CUDA_VRANGES::forward_range<_Range>)
|
|
1309
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert_range(const_iterator __cpos, _Range&& __range)
|
|
1310
|
+
{
|
|
1311
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1312
|
+
return insert(__cpos, __first, _CUDA_VRANGES::__unwrap_end(__range));
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1316
|
+
_CCCL_REQUIRES(
|
|
1317
|
+
_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND(!_CUDA_VRANGES::forward_range<_Range>))
|
|
1318
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void append_range(_Range&& __range)
|
|
1319
|
+
{
|
|
1320
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1321
|
+
auto __last = _CUDA_VRANGES::end(__range);
|
|
1322
|
+
for (; __first != __last; ++__first)
|
|
1323
|
+
{
|
|
1324
|
+
emplace_back(*__first);
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1329
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND _CUDA_VRANGES::forward_range<_Range>)
|
|
1330
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void append_range(_Range&& __range)
|
|
1331
|
+
{
|
|
1332
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1333
|
+
insert(this->end(), __first, _CUDA_VRANGES::__unwrap_end(__range));
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
template <class... _Args>
|
|
1337
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator emplace(const_iterator __cpos, _Args&&... __args)
|
|
1338
|
+
{
|
|
1339
|
+
const auto __pos = static_cast<size_type>(__cpos - this->cbegin());
|
|
1340
|
+
if (this->size() == _Capacity)
|
|
1341
|
+
{
|
|
1342
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1343
|
+
}
|
|
1344
|
+
else if (__pos > this->size())
|
|
1345
|
+
{
|
|
1346
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::emplace(const_iterator, Args...)");
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
const iterator __res = this->begin() + __pos;
|
|
1350
|
+
if (__pos == this->size())
|
|
1351
|
+
{
|
|
1352
|
+
this->unchecked_emplace_back(_CUDA_VSTD::forward<_Args>(__args)...);
|
|
1353
|
+
return __res;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
const iterator __end = this->end();
|
|
1357
|
+
_Tp __temp{_CUDA_VSTD::forward<_Args>(__args)...};
|
|
1358
|
+
this->unchecked_emplace_back(_CUDA_VSTD::move(*(__end - 1)));
|
|
1359
|
+
_CUDA_VSTD::move_backward(__res, __end - 1, __end);
|
|
1360
|
+
*__res = _CUDA_VSTD::move(__temp);
|
|
1361
|
+
|
|
1362
|
+
return __res;
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
template <class... _Args>
|
|
1366
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference emplace_back(_Args&&... __args)
|
|
1367
|
+
{
|
|
1368
|
+
if (this->size() == _Capacity)
|
|
1369
|
+
{
|
|
1370
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
return this->unchecked_emplace_back(_CUDA_VSTD::forward<_Args>(__args)...);
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference push_back(const _Tp& __value)
|
|
1377
|
+
{
|
|
1378
|
+
if (this->size() == _Capacity)
|
|
1379
|
+
{
|
|
1380
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
return this->unchecked_emplace_back(__value);
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference push_back(_Tp&& __value)
|
|
1387
|
+
{
|
|
1388
|
+
if (this->size() == _Capacity)
|
|
1389
|
+
{
|
|
1390
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
return this->unchecked_emplace_back(_CUDA_VSTD::move(__value));
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
template <class... _Args>
|
|
1397
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer
|
|
1398
|
+
try_emplace_back(_Args&&... __args) noexcept(_CCCL_TRAIT(is_nothrow_constructible, _Tp, _Args...))
|
|
1399
|
+
{
|
|
1400
|
+
if (this->size() == _Capacity)
|
|
1401
|
+
{
|
|
1402
|
+
return nullptr;
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
return _CUDA_VSTD::addressof(this->unchecked_emplace_back(_CUDA_VSTD::forward<_Args>(__args)...));
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer
|
|
1409
|
+
try_push_back(const _Tp& __value) noexcept(_CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
1410
|
+
{
|
|
1411
|
+
if (this->size() == _Capacity)
|
|
1412
|
+
{
|
|
1413
|
+
return nullptr;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
return _CUDA_VSTD::addressof(this->unchecked_emplace_back(__value));
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer
|
|
1420
|
+
try_push_back(_Tp&& __value) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
1421
|
+
{
|
|
1422
|
+
if (this->size() == _Capacity)
|
|
1423
|
+
{
|
|
1424
|
+
return nullptr;
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1427
|
+
return _CUDA_VSTD::addressof(this->unchecked_emplace_back(_CUDA_VSTD::move(__value)));
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1431
|
+
_CCCL_REQUIRES(
|
|
1432
|
+
_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND(!_CUDA_VRANGES::forward_range<_Range>))
|
|
1433
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _CUDA_VRANGES::iterator_t<_Range>
|
|
1434
|
+
try_append_range(_Range&& __range) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
1435
|
+
{
|
|
1436
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1437
|
+
auto __last = _CUDA_VRANGES::end(__range);
|
|
1438
|
+
for (; this->size() != _Capacity && __first != __last; ++__first)
|
|
1439
|
+
{
|
|
1440
|
+
emplace_back(*__first);
|
|
1441
|
+
}
|
|
1442
|
+
return __first;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1446
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
1447
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND _CUDA_VRANGES::sized_range<_Range>)
|
|
1448
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _CUDA_VRANGES::iterator_t<_Range>
|
|
1449
|
+
try_append_range(_Range&& __range) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
1450
|
+
{
|
|
1451
|
+
const auto __capacity = _Capacity - this->size();
|
|
1452
|
+
const auto __size = _CUDA_VRANGES::size(__range);
|
|
1453
|
+
const auto __diff = __size < __capacity ? __size : __capacity;
|
|
1454
|
+
|
|
1455
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1456
|
+
auto __middle = _CUDA_VRANGES::next(__first, __diff);
|
|
1457
|
+
this->__uninitialized_move(__first, __middle, this->end());
|
|
1458
|
+
return __middle;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1462
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp> _CCCL_AND
|
|
1463
|
+
_CUDA_VRANGES::forward_range<_Range> _CCCL_AND(!_CUDA_VRANGES::sized_range<_Range>))
|
|
1464
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _CUDA_VRANGES::iterator_t<_Range>
|
|
1465
|
+
try_append_range(_Range&& __range) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
1466
|
+
{
|
|
1467
|
+
const auto __capacity = static_cast<ptrdiff_t>(_Capacity - this->size());
|
|
1468
|
+
auto __first = _CUDA_VRANGES::begin(__range);
|
|
1469
|
+
const auto __size = static_cast<ptrdiff_t>(_CUDA_VRANGES::distance(__first, _CUDA_VRANGES::__unwrap_end(__range)));
|
|
1470
|
+
const ptrdiff_t __diff = __size < __capacity ? __size : __capacity;
|
|
1471
|
+
|
|
1472
|
+
auto __middle = _CUDA_VRANGES::next(__first, __diff);
|
|
1473
|
+
this->__uninitialized_move(__first, __middle, this->end());
|
|
1474
|
+
return __middle;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
using __base::unchecked_emplace_back;
|
|
1478
|
+
|
|
1479
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference
|
|
1480
|
+
unchecked_push_back(const _Tp& __value) noexcept(_CCCL_TRAIT(is_nothrow_copy_constructible, _Tp))
|
|
1481
|
+
{
|
|
1482
|
+
return this->unchecked_emplace_back(__value);
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference
|
|
1486
|
+
unchecked_push_back(_Tp&& __value) noexcept(_CCCL_TRAIT(is_nothrow_move_constructible, _Tp))
|
|
1487
|
+
{
|
|
1488
|
+
return this->unchecked_emplace_back(_CUDA_VSTD::move(__value));
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void pop_back() noexcept
|
|
1492
|
+
{
|
|
1493
|
+
const auto __end = this->end();
|
|
1494
|
+
this->__destroy(__end - 1, __end);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator
|
|
1498
|
+
erase(const_iterator __cpos) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
1499
|
+
{
|
|
1500
|
+
const auto __pos = static_cast<size_type>(__cpos - this->cbegin());
|
|
1501
|
+
if (__pos > this->size())
|
|
1502
|
+
{
|
|
1503
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
const iterator __res = this->begin() + __pos;
|
|
1507
|
+
if (__pos == this->size())
|
|
1508
|
+
{
|
|
1509
|
+
return __res;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
const iterator __end = this->end();
|
|
1513
|
+
_CUDA_VSTD::move(__res + 1, __end, __res);
|
|
1514
|
+
this->__destroy(__end - 1, __end);
|
|
1515
|
+
return __res;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator
|
|
1519
|
+
erase(const_iterator __cfirst, const_iterator __clast) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
1520
|
+
{
|
|
1521
|
+
const iterator __first = (iterator) __cfirst;
|
|
1522
|
+
const iterator __last = (iterator) __clast;
|
|
1523
|
+
const iterator __end = this->end();
|
|
1524
|
+
if (__first == __last)
|
|
1525
|
+
{
|
|
1526
|
+
return __last;
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
if (__first < this->begin() || __end < __last)
|
|
1530
|
+
{
|
|
1531
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
const auto __new_end = _CUDA_VSTD::move(__last, __end, __first);
|
|
1535
|
+
this->__destroy(__new_end, __end);
|
|
1536
|
+
return __first;
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void clear() noexcept
|
|
1540
|
+
{
|
|
1541
|
+
this->__destroy(this->begin(), this->end());
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void resize(const size_type __count)
|
|
1545
|
+
{
|
|
1546
|
+
const auto __diff = static_cast<ptrdiff_t>(__count) - static_cast<ptrdiff_t>(this->size());
|
|
1547
|
+
if (__diff == 0)
|
|
1548
|
+
{
|
|
1549
|
+
return;
|
|
1550
|
+
}
|
|
1551
|
+
else if (__diff < 0)
|
|
1552
|
+
{
|
|
1553
|
+
this->__destroy(this->begin() + __count, this->end());
|
|
1554
|
+
}
|
|
1555
|
+
else
|
|
1556
|
+
{
|
|
1557
|
+
if (_Capacity < __count)
|
|
1558
|
+
{
|
|
1559
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1562
|
+
const iterator __end = this->end();
|
|
1563
|
+
this->__uninitialized_value_construct(__end, __end + __diff);
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void resize(const size_type __count, const _Tp& __value)
|
|
1568
|
+
{
|
|
1569
|
+
const auto __diff = static_cast<ptrdiff_t>(__count) - static_cast<ptrdiff_t>(this->size());
|
|
1570
|
+
if (__diff == 0)
|
|
1571
|
+
{
|
|
1572
|
+
return;
|
|
1573
|
+
}
|
|
1574
|
+
else if (__diff < 0)
|
|
1575
|
+
{
|
|
1576
|
+
this->__destroy(this->begin() + __count, this->end());
|
|
1577
|
+
}
|
|
1578
|
+
else
|
|
1579
|
+
{
|
|
1580
|
+
if (_Capacity < __count)
|
|
1581
|
+
{
|
|
1582
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
const iterator __end = this->end();
|
|
1586
|
+
this->__uninitialized_fill(__end, __end + __diff, __value);
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
_LIBCUDACXX_HIDE_FROM_ABI static constexpr void reserve(const size_type __count)
|
|
1591
|
+
{
|
|
1592
|
+
if (_Capacity < __count)
|
|
1593
|
+
{
|
|
1594
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
_LIBCUDACXX_HIDE_FROM_ABI static constexpr void shrink_to_fit() noexcept {}
|
|
1598
|
+
|
|
1599
|
+
_CCCL_TEMPLATE(class _Tp2 = _Tp)
|
|
1600
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_swappable, _Tp2) _CCCL_AND _CCCL_TRAIT(is_move_constructible, _Tp2))
|
|
1601
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void swap(inplace_vector& __other) noexcept(
|
|
1602
|
+
_CCCL_TRAIT(is_nothrow_swappable, _Tp2) && _CCCL_TRAIT(is_nothrow_move_constructible, _Tp2))
|
|
1603
|
+
{
|
|
1604
|
+
if (this->size() < __other.size())
|
|
1605
|
+
{
|
|
1606
|
+
const auto __new_mid = _CUDA_VSTD::swap_ranges(this->begin(), this->end(), __other.begin());
|
|
1607
|
+
this->__uninitialized_move(__new_mid, __other.end(), this->end());
|
|
1608
|
+
__other.__destroy(__new_mid, __other.end());
|
|
1609
|
+
}
|
|
1610
|
+
else
|
|
1611
|
+
{
|
|
1612
|
+
const auto __new_mid = _CUDA_VSTD::swap_ranges(__other.begin(), __other.end(), this->begin());
|
|
1613
|
+
__other.__uninitialized_move(__new_mid, this->end(), __other.end());
|
|
1614
|
+
this->__destroy(__new_mid, this->end());
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
_CCCL_TEMPLATE(class _Tp2 = _Tp)
|
|
1619
|
+
_CCCL_REQUIRES(_CCCL_TRAIT(is_swappable, _Tp2) _CCCL_AND _CCCL_TRAIT(is_move_constructible, _Tp2))
|
|
1620
|
+
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr void swap(inplace_vector& __lhs, inplace_vector& __rhs) noexcept(
|
|
1621
|
+
_Capacity == 0 || (_CCCL_TRAIT(is_nothrow_swappable, _Tp2) && _CCCL_TRAIT(is_nothrow_move_constructible, _Tp2)))
|
|
1622
|
+
{
|
|
1623
|
+
__lhs.swap(__rhs);
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
// inplace_vector.comparison
|
|
1627
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1628
|
+
operator==(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1629
|
+
noexcept(_CUDA_VSTD::equal(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1630
|
+
{
|
|
1631
|
+
return _CUDA_VSTD::equal(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end());
|
|
1632
|
+
}
|
|
1633
|
+
#if _CCCL_STD_VER <= 2017
|
|
1634
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1635
|
+
operator!=(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1636
|
+
noexcept(_CUDA_VSTD::equal(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1637
|
+
{
|
|
1638
|
+
return !_CUDA_VSTD::equal(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end());
|
|
1639
|
+
}
|
|
1640
|
+
#endif // _CCCL_STD_VER <= 2017
|
|
1641
|
+
|
|
1642
|
+
#if _LIBCUDACXX_HAS_SPACESHIP_OPERATOR()
|
|
1643
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr __synth_three_way_result_t<_Tp>
|
|
1644
|
+
operator<=>(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1645
|
+
noexcept(_CUDA_VSTD::lexicographical_compare_three_way(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1646
|
+
{
|
|
1647
|
+
return _CUDA_VSTD::lexicographical_compare_three_way(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end());
|
|
1648
|
+
}
|
|
1649
|
+
#else // ^^^ _LIBCUDACXX_HAS_SPACESHIP_OPERATOR() ^^^ / vvv !_LIBCUDACXX_HAS_SPACESHIP_OPERATOR() vvv
|
|
1650
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1651
|
+
operator<(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1652
|
+
noexcept(_CUDA_VSTD::lexicographical_compare(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1653
|
+
{
|
|
1654
|
+
return _CUDA_VSTD::lexicographical_compare(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end());
|
|
1655
|
+
}
|
|
1656
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1657
|
+
operator>(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1658
|
+
noexcept(_CUDA_VSTD::lexicographical_compare(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1659
|
+
{
|
|
1660
|
+
return __rhs < __lhs;
|
|
1661
|
+
}
|
|
1662
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1663
|
+
operator<=(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1664
|
+
noexcept(_CUDA_VSTD::lexicographical_compare(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1665
|
+
{
|
|
1666
|
+
return !(__rhs < __lhs);
|
|
1667
|
+
}
|
|
1668
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
1669
|
+
operator>=(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
1670
|
+
noexcept(_CUDA_VSTD::lexicographical_compare(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
1671
|
+
{
|
|
1672
|
+
return !(__lhs < __rhs);
|
|
1673
|
+
}
|
|
1674
|
+
#endif // !_LIBCUDACXX_HAS_SPACESHIP_OPERATOR()
|
|
1675
|
+
|
|
1676
|
+
// [containers.sequences.inplace.vector.erasure]
|
|
1677
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_type
|
|
1678
|
+
__erase(const _Tp& __value) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
1679
|
+
{
|
|
1680
|
+
const iterator __old_end = this->end();
|
|
1681
|
+
const iterator __new_end = _CUDA_VSTD::remove(this->begin(), __old_end, __value);
|
|
1682
|
+
this->__destroy(__new_end, __old_end);
|
|
1683
|
+
return static_cast<size_type>(__old_end - __new_end);
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
template <class _Pred>
|
|
1687
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_type
|
|
1688
|
+
__erase_if(_Pred __pred) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
1689
|
+
{
|
|
1690
|
+
const iterator __old_end = this->end();
|
|
1691
|
+
const iterator __new_end = _CUDA_VSTD::remove_if(this->begin(), __old_end, _CUDA_VSTD::move(__pred));
|
|
1692
|
+
this->__destroy(__new_end, __old_end);
|
|
1693
|
+
return static_cast<size_type>(__old_end - __new_end);
|
|
1694
|
+
}
|
|
1695
|
+
};
|
|
1696
|
+
|
|
1697
|
+
template <class _Tp>
|
|
1698
|
+
class inplace_vector<_Tp, 0> : __inplace_vector_base<_Tp, 0>
|
|
1699
|
+
{
|
|
1700
|
+
private:
|
|
1701
|
+
using __base = __inplace_vector_base<_Tp, 0>;
|
|
1702
|
+
|
|
1703
|
+
public:
|
|
1704
|
+
using value_type = _Tp;
|
|
1705
|
+
using size_type = size_t;
|
|
1706
|
+
using difference_type = ptrdiff_t;
|
|
1707
|
+
using pointer = _Tp*;
|
|
1708
|
+
using const_pointer = const _Tp*;
|
|
1709
|
+
using reference = _Tp&;
|
|
1710
|
+
using const_reference = const _Tp&;
|
|
1711
|
+
|
|
1712
|
+
using iterator = pointer;
|
|
1713
|
+
using const_iterator = const_pointer;
|
|
1714
|
+
|
|
1715
|
+
using reverse_iterator = _CUDA_VSTD::reverse_iterator<iterator>;
|
|
1716
|
+
using const_reverse_iterator = _CUDA_VSTD::reverse_iterator<const_iterator>;
|
|
1717
|
+
|
|
1718
|
+
// [containers.sequences.inplace.vector.cons], construct/copy/destroy
|
|
1719
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector() noexcept = default;
|
|
1720
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector(const inplace_vector&) = default;
|
|
1721
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector(inplace_vector&&) = default;
|
|
1722
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector& operator=(const inplace_vector&) = default;
|
|
1723
|
+
_CCCL_HIDE_FROM_ABI constexpr inplace_vector& operator=(inplace_vector&&) = default;
|
|
1724
|
+
|
|
1725
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr explicit inplace_vector(const size_type __count)
|
|
1726
|
+
: __base()
|
|
1727
|
+
{
|
|
1728
|
+
if (__count > 0)
|
|
1729
|
+
{
|
|
1730
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1731
|
+
}
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(const size_type __count, const _Tp& __value)
|
|
1735
|
+
: __base()
|
|
1736
|
+
{
|
|
1737
|
+
if (__count > 0)
|
|
1738
|
+
{
|
|
1739
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
1744
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value)
|
|
1745
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(_Iter __first, _Iter __last)
|
|
1746
|
+
: __base()
|
|
1747
|
+
{
|
|
1748
|
+
if (__first != __last)
|
|
1749
|
+
{
|
|
1750
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1754
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(initializer_list<_Tp> __ilist)
|
|
1755
|
+
: __base()
|
|
1756
|
+
{
|
|
1757
|
+
if (__ilist.size() != 0)
|
|
1758
|
+
{
|
|
1759
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1764
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp>)
|
|
1765
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector(from_range_t, _Range&& __range)
|
|
1766
|
+
: __base()
|
|
1767
|
+
{
|
|
1768
|
+
if (_CUDA_VRANGES::begin(__range) != _CUDA_VRANGES::end(__range))
|
|
1769
|
+
{
|
|
1770
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr inplace_vector& operator=(initializer_list<_Tp> __ilist)
|
|
1775
|
+
{
|
|
1776
|
+
if (__ilist.size() != 0)
|
|
1777
|
+
{
|
|
1778
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1779
|
+
}
|
|
1780
|
+
return *this;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
// inplace_vector.assign
|
|
1784
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(const size_type __count, const _Tp&)
|
|
1785
|
+
{
|
|
1786
|
+
if (__count != 0)
|
|
1787
|
+
{
|
|
1788
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1789
|
+
}
|
|
1790
|
+
return;
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
1794
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value)
|
|
1795
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(_Iter __first, _Iter __last)
|
|
1796
|
+
{
|
|
1797
|
+
if (__first != __last)
|
|
1798
|
+
{
|
|
1799
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1800
|
+
}
|
|
1801
|
+
return;
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1804
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign(initializer_list<_Tp> __ilist)
|
|
1805
|
+
{
|
|
1806
|
+
if (__ilist.size() != 0)
|
|
1807
|
+
{
|
|
1808
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1809
|
+
}
|
|
1810
|
+
return;
|
|
1811
|
+
}
|
|
1812
|
+
|
|
1813
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1814
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp>)
|
|
1815
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void assign_range(_Range&& __range)
|
|
1816
|
+
{
|
|
1817
|
+
if (_CUDA_VRANGES::begin(__range) != _CUDA_VRANGES::end(__range))
|
|
1818
|
+
{
|
|
1819
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1820
|
+
}
|
|
1821
|
+
return;
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1824
|
+
// [containers.sequences.inplace.vector.access], element access
|
|
1825
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference at(const size_type __pos)
|
|
1826
|
+
{
|
|
1827
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::at");
|
|
1828
|
+
return *(this->begin() + __pos);
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1831
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference at(const size_type __pos) const
|
|
1832
|
+
{
|
|
1833
|
+
_CUDA_VSTD::__throw_out_of_range("inplace_vector::at");
|
|
1834
|
+
return *(this->begin() + __pos);
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference operator[](const size_type __pos) noexcept
|
|
1838
|
+
{
|
|
1839
|
+
return *(this->begin() + __pos);
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference operator[](const size_type __pos) const noexcept
|
|
1843
|
+
{
|
|
1844
|
+
return *(this->begin() + __pos);
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference front() noexcept
|
|
1848
|
+
{
|
|
1849
|
+
return *this->begin();
|
|
1850
|
+
}
|
|
1851
|
+
|
|
1852
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference front() const noexcept
|
|
1853
|
+
{
|
|
1854
|
+
return *this->begin();
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reference back() noexcept
|
|
1858
|
+
{
|
|
1859
|
+
return *(this->end() - 1);
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reference back() const noexcept
|
|
1863
|
+
{
|
|
1864
|
+
return *(this->end() - 1);
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
using __base::data;
|
|
1868
|
+
|
|
1869
|
+
// inplace_vector.iterators
|
|
1870
|
+
using __base::begin;
|
|
1871
|
+
using __base::end;
|
|
1872
|
+
|
|
1873
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reverse_iterator rbegin() noexcept
|
|
1874
|
+
{
|
|
1875
|
+
return reverse_iterator{this->end()};
|
|
1876
|
+
}
|
|
1877
|
+
|
|
1878
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator rbegin() const noexcept
|
|
1879
|
+
{
|
|
1880
|
+
return const_reverse_iterator{this->end()};
|
|
1881
|
+
}
|
|
1882
|
+
|
|
1883
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr reverse_iterator rend() noexcept
|
|
1884
|
+
{
|
|
1885
|
+
return reverse_iterator{this->begin()};
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator rend() const noexcept
|
|
1889
|
+
{
|
|
1890
|
+
return const_reverse_iterator{this->begin()};
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator cbegin() const noexcept
|
|
1894
|
+
{
|
|
1895
|
+
return this->begin();
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_iterator cend() const noexcept
|
|
1899
|
+
{
|
|
1900
|
+
return this->end();
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator crbegin() const noexcept
|
|
1904
|
+
{
|
|
1905
|
+
return const_reverse_iterator{this->end()};
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr const_reverse_iterator crend() const noexcept
|
|
1909
|
+
{
|
|
1910
|
+
return const_reverse_iterator{this->begin()};
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
// [containers.sequences.inplace.vector.members] size/capacity
|
|
1914
|
+
using __base::empty;
|
|
1915
|
+
using __base::size;
|
|
1916
|
+
|
|
1917
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type max_size() const noexcept
|
|
1918
|
+
{
|
|
1919
|
+
return 0;
|
|
1920
|
+
}
|
|
1921
|
+
|
|
1922
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI constexpr size_type capacity() const noexcept
|
|
1923
|
+
{
|
|
1924
|
+
return 0;
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
// [containers.sequences.inplace.vector.modifiers], modifiers
|
|
1928
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, const _Tp& __value)
|
|
1929
|
+
{
|
|
1930
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1931
|
+
return emplace(__cpos, __value);
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1934
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator __cpos, _Tp&& __value)
|
|
1935
|
+
{
|
|
1936
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1937
|
+
return emplace(__cpos, _CUDA_VSTD::move(__value));
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator, const size_type __count, const _Tp&)
|
|
1941
|
+
{
|
|
1942
|
+
if (__count != 0)
|
|
1943
|
+
{
|
|
1944
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1945
|
+
}
|
|
1946
|
+
return nullptr;
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
_CCCL_TEMPLATE(class _Iter)
|
|
1950
|
+
_CCCL_REQUIRES(__is_cpp17_input_iterator<_Iter>::value)
|
|
1951
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator, _Iter __first, _Iter __last)
|
|
1952
|
+
{
|
|
1953
|
+
if (__first != __last)
|
|
1954
|
+
{
|
|
1955
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1956
|
+
}
|
|
1957
|
+
return nullptr;
|
|
1958
|
+
}
|
|
1959
|
+
|
|
1960
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert(const_iterator, initializer_list<_Tp> __ilist)
|
|
1961
|
+
{
|
|
1962
|
+
if (__ilist.size() != 0)
|
|
1963
|
+
{
|
|
1964
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1965
|
+
}
|
|
1966
|
+
return nullptr;
|
|
1967
|
+
}
|
|
1968
|
+
|
|
1969
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1970
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp>)
|
|
1971
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator insert_range(const_iterator __cpos, _Range&& __range)
|
|
1972
|
+
{
|
|
1973
|
+
if (_CUDA_VRANGES::begin(__range) != _CUDA_VRANGES::end(__range))
|
|
1974
|
+
{
|
|
1975
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1976
|
+
}
|
|
1977
|
+
return nullptr;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1980
|
+
_CCCL_TEMPLATE(class _Range)
|
|
1981
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp>)
|
|
1982
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void append_range(_Range&& __range)
|
|
1983
|
+
{
|
|
1984
|
+
if (_CUDA_VRANGES::begin(__range) != _CUDA_VRANGES::end(__range))
|
|
1985
|
+
{
|
|
1986
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1990
|
+
template <class... _Args>
|
|
1991
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator emplace(const_iterator, _Args&&...)
|
|
1992
|
+
{
|
|
1993
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
template <class... _Args>
|
|
1997
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference emplace_back(_Args&&...)
|
|
1998
|
+
{
|
|
1999
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2000
|
+
}
|
|
2001
|
+
|
|
2002
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference push_back(const _Tp&)
|
|
2003
|
+
{
|
|
2004
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference push_back(_Tp&&)
|
|
2008
|
+
{
|
|
2009
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
template <class... _Args>
|
|
2013
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer try_emplace_back(_Args&&...) noexcept
|
|
2014
|
+
{
|
|
2015
|
+
return nullptr;
|
|
2016
|
+
}
|
|
2017
|
+
|
|
2018
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer try_push_back(const _Tp&) noexcept
|
|
2019
|
+
{
|
|
2020
|
+
return nullptr;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr pointer try_push_back(_Tp&&) noexcept
|
|
2024
|
+
{
|
|
2025
|
+
return nullptr;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
_CCCL_TEMPLATE(class _Range)
|
|
2029
|
+
_CCCL_REQUIRES(_CUDA_VRANGES::__container_compatible_range<_Range, _Tp>)
|
|
2030
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr _CUDA_VRANGES::iterator_t<_Range> try_append_range(_Range&& __range) noexcept
|
|
2031
|
+
{
|
|
2032
|
+
return _CUDA_VRANGES::begin(__range);
|
|
2033
|
+
}
|
|
2034
|
+
|
|
2035
|
+
using __base::unchecked_emplace_back;
|
|
2036
|
+
|
|
2037
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference unchecked_push_back(const _Tp&) noexcept
|
|
2038
|
+
{
|
|
2039
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr reference unchecked_push_back(_Tp&&) noexcept
|
|
2043
|
+
{
|
|
2044
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void pop_back() noexcept
|
|
2048
|
+
{
|
|
2049
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator erase(const_iterator) noexcept
|
|
2053
|
+
{
|
|
2054
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr iterator erase(const_iterator __cfirst, const_iterator __clast) noexcept
|
|
2058
|
+
{
|
|
2059
|
+
if (__cfirst != __clast)
|
|
2060
|
+
{
|
|
2061
|
+
_CUDA_VSTD_NOVERSION::terminate();
|
|
2062
|
+
}
|
|
2063
|
+
return nullptr;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void clear() noexcept {}
|
|
2067
|
+
|
|
2068
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void resize(const size_type __count)
|
|
2069
|
+
{
|
|
2070
|
+
if (__count != 0)
|
|
2071
|
+
{
|
|
2072
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void resize(const size_type __count, const _Tp&)
|
|
2077
|
+
{
|
|
2078
|
+
if (__count != 0)
|
|
2079
|
+
{
|
|
2080
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
_LIBCUDACXX_HIDE_FROM_ABI static constexpr void reserve(const size_type __count)
|
|
2085
|
+
{
|
|
2086
|
+
if (__count != 0)
|
|
2087
|
+
{
|
|
2088
|
+
_CUDA_VSTD::__throw_bad_alloc();
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2091
|
+
_LIBCUDACXX_HIDE_FROM_ABI static constexpr void shrink_to_fit() noexcept {}
|
|
2092
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr void swap(inplace_vector&) noexcept {}
|
|
2093
|
+
_LIBCUDACXX_HIDE_FROM_ABI friend constexpr void swap(inplace_vector&, inplace_vector&) noexcept {}
|
|
2094
|
+
|
|
2095
|
+
// inplace_vector.comparison
|
|
2096
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2097
|
+
operator==(const inplace_vector&, const inplace_vector&) noexcept
|
|
2098
|
+
{
|
|
2099
|
+
return true;
|
|
2100
|
+
}
|
|
2101
|
+
#if _CCCL_STD_VER <= 2017
|
|
2102
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2103
|
+
operator!=(const inplace_vector&, const inplace_vector&) noexcept
|
|
2104
|
+
{
|
|
2105
|
+
return false;
|
|
2106
|
+
}
|
|
2107
|
+
#endif // _CCCL_STD_VER <= 2017
|
|
2108
|
+
|
|
2109
|
+
#if _LIBCUDACXX_HAS_SPACESHIP_OPERATOR()
|
|
2110
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr __synth_three_way_result_t<_Tp>
|
|
2111
|
+
operator<=>(const inplace_vector& __lhs, const inplace_vector& __rhs) noexcept(
|
|
2112
|
+
noexcept(_CUDA_VSTD::lexicographical_compare_three_way(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end())))
|
|
2113
|
+
{
|
|
2114
|
+
return _CUDA_VSTD::lexicographical_compare_three_way(__lhs.begin(), __lhs.end(), __rhs.begin(), __rhs.end());
|
|
2115
|
+
}
|
|
2116
|
+
#else // ^^^ _LIBCUDACXX_HAS_SPACESHIP_OPERATOR() ^^^ / vvv !_LIBCUDACXX_HAS_SPACESHIP_OPERATOR() vvv
|
|
2117
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2118
|
+
operator<(const inplace_vector&, const inplace_vector&) noexcept
|
|
2119
|
+
{
|
|
2120
|
+
return false;
|
|
2121
|
+
}
|
|
2122
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2123
|
+
operator>(const inplace_vector&, const inplace_vector&) noexcept
|
|
2124
|
+
{
|
|
2125
|
+
return false;
|
|
2126
|
+
}
|
|
2127
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2128
|
+
operator<=(const inplace_vector&, const inplace_vector&) noexcept
|
|
2129
|
+
{
|
|
2130
|
+
return true;
|
|
2131
|
+
}
|
|
2132
|
+
[[nodiscard]] _LIBCUDACXX_HIDE_FROM_ABI friend constexpr bool
|
|
2133
|
+
operator>=(const inplace_vector&, const inplace_vector&) noexcept
|
|
2134
|
+
{
|
|
2135
|
+
return true;
|
|
2136
|
+
}
|
|
2137
|
+
#endif // !_LIBCUDACXX_HAS_SPACESHIP_OPERATOR()
|
|
2138
|
+
|
|
2139
|
+
// [containers.sequences.inplace.vector.erasure]
|
|
2140
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_type __erase(const _Tp&) noexcept
|
|
2141
|
+
{
|
|
2142
|
+
return 0;
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
template <class _Pred>
|
|
2146
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_type __erase_if(_Pred) noexcept
|
|
2147
|
+
{
|
|
2148
|
+
return 0;
|
|
2149
|
+
}
|
|
2150
|
+
};
|
|
2151
|
+
|
|
2152
|
+
// [containers.sequences.inplace.vector.erasure]
|
|
2153
|
+
template <class _Tp, size_t _Capacity>
|
|
2154
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_t
|
|
2155
|
+
erase(inplace_vector<_Tp, _Capacity>& __cont, const _Tp& __value) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
2156
|
+
{
|
|
2157
|
+
return __cont.__erase(__value);
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
template <class _Tp, size_t _Capacity, class _Pred>
|
|
2161
|
+
_LIBCUDACXX_HIDE_FROM_ABI constexpr size_t
|
|
2162
|
+
erase_if(inplace_vector<_Tp, _Capacity>& __cont, _Pred __pred) noexcept(_CCCL_TRAIT(is_nothrow_move_assignable, _Tp))
|
|
2163
|
+
{
|
|
2164
|
+
return __cont.__erase_if(__pred);
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
_LIBCUDACXX_END_NAMESPACE_STD
|
|
2168
|
+
|
|
2169
|
+
#include <cuda/std/__cccl/epilogue.h>
|
|
2170
|
+
|
|
2171
|
+
#endif // _CUDA_STD_INPLACE_VECTOR
|