.. _libcudacxx-standard-api: Standard API ============ .. toctree:: :hidden: :maxdepth: 2 standard_api/algorithms_library standard_api/c_library standard_api/concepts_library standard_api/container_library standard_api/execution_library standard_api/numerics_library standard_api/ranges_library standard_api/synchronization_library standard_api/time_library standard_api/type_support standard_api/utility_library Standard Library Backports -------------------------- C++ Standard versions include new language features and new library features. As the name implies, language features are new features of the language the require compiler support. Library features are simply new additions to the Standard Library that typically do not rely on new language features nor require compiler support and could conceivably be implemented in an older C++ Standard. Typically, library features are only available in the particular C++ Standard version (or newer) in which they were introduced, even if the library features do not depend on any particular language features. In effort to make library features available to a broader set of users, the NVIDIA C++ Standard Library relaxes this restriction. libcu++ makes a best-effort to provide access to C++ Standard Library features in older C++ Standard versions than they were introduced. For example, the calendar functionality added to ```` in C++20 is made available in C++14. ---- .. |V| unicode:: U+2705 C++ Feature Availability Summary -------------------------------- .. table:: :widths: 25 25 8 8 8 8 20 +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | **Library** | ``Libcu++`` | **≤ C++17** + **C++20** | **C++23** | **C++26** | **Notes** | +====================================================================================+======================================================================================+================+=============+=============+=============+================================================================================================================+ | ` `_ | :ref:` ` | |V| | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | |V| | |V| | Converting floating point types is currently unsupported | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | Timezone and clocks added in C++20 are not available | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | |V| | ``constexpr`` if ``is_constant_evaluated`` is supported | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | | | |V| | Only ``cuda::std::execution::prop``, ``cuda::std::execution::env``, ``cuda::std::execution::get_env`` for now | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | | |V| | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | | | |V| | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | | | |V| | Accessors, transposed layout, and related functions | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | | |V| | |V| | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | ``cuda::std::addressof``, ``cuda::std::align``, ``cuda::std::assume_aligned``, Uninitialized memory algorithms | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | | |V| | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | Requires C++20, Range based algorithms and views are not provided | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | | | Includes some random engines and most random distributions | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | |V| | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | |V| | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | :ref:` ` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ | ` `_ | ```` | |V| | | | | | +------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+----------------+-------------+-------------+-------------+----------------------------------------------------------------------------------------------------------------+ ---- C Feature Availability Summary ------------------------------ .. table:: :widths: 25 25 10 +--------------------------------------------------------------------+--------------------------+---------------+ | **Library** | ``Libcu++`` | **≤ C++17** | +====================================================================+==========================+===============+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ | ` `_ | ```` | |V| | +--------------------------------------------------------------------+--------------------------+---------------+ see :ref:`C Libraries ` for more details