.. _libcudacxx-standard-api-ranges: Ranges Library ======================= See the documentation of the standard headers `\ `_ and `\ `_ .. list-table:: :widths: 25 45 30 :header-rows: 1 * - Header - Content - Availability * - `\ `_ - Iterator related concepts and machinery such as ``cuda::std::forward_iterator`` - CCCL 2.3.0 / CUDA 12.4 * - `\ `_ - Range related concepts and machinery such as ``cuda::std::ranges::forward_range`` and ``cuda::std::ranges::subrange`` - CCCL 2.4.0 / CUDA 12.5 Extensions ---------- - All library features are available from C++17 onwards. The concepts can be used like type traits prior to C++20. .. code:: cpp template void do_something_with_ranges_in_cpp20(Range&& range) {...} template, int> = 0> void do_something_with_ranges_in_cpp17(Range&& range) {...} Restrictions ------------ - Subsumption does not work prior to C++20 - Subsumption is only partially implemented in the compiler until nvcc 12.4 Omissions --------- - Range based algorithms have *not* been implemented - Views have *not* been implemented