diff --git a/source/elements/oneDPL/source/common.rst b/source/elements/oneDPL/source/common.rst index af73d24fed..e950afd3b2 100644 --- a/source/elements/oneDPL/source/common.rst +++ b/source/elements/oneDPL/source/common.rst @@ -2,8 +2,14 @@ .. .. SPDX-License-Identifier: CC-BY-4.0 +General Information +------------------- + +This section describes the most general functionality of |dpl_full_name| (oneDPL) +such as namespaces, versioning, etc. + Namespaces ----------- +++++++++++ oneDPL uses ``namespace oneapi::dpl`` and a shorter variant ``namespace dpl`` for all functionality including parallel algorithms, oneDPL execution policies, etc. @@ -11,5 +17,36 @@ For the subset of the standard C++ library for kernels, the standard class and function names are also aliased in ``namespace oneapi::dpl``. oneDPL uses nested namespaces for the functionality aligned with the C++ standard. -The names of those namespaces are the same as in ``namespace std``. For example, -oneDPL execution policies are provided in ``namespace oneapi::dpl::execution``. +The names of those namespaces are the same as for their analogues in ``namespace std``. +[*Example*: oneDPL execution policies are provided in ``namespace oneapi::dpl::execution``. -- *end example*] + +Header Files +++++++++++++ + +The oneDPL header files are provided under the ``oneapi/dpl/`` include path, +which must explicitly precede oneDPL header file names in ``#include`` directives. + +Following the naming convention for the C++ standard library header files, +the oneDPL header files have no extension suffix in their names. + +A oneDPL header file automatically includes the C++ standard library header file +which name matches that of the oneDPL header file without the include path prefix. +[*Example*: ``#include `` automatically includes ```` +if that is available. -- *end example*] + +Version Information ++++++++++++++++++++ + +A oneDPL implementation must define a preprocessor macro representing the version +of the oneDPL specification that the implementation is compliant with. + +.. code:: cpp + + // Defined in + + #define ONEDPL_SPEC_VERSION /*implementation-defined*/ + +The ``ONEDPL_SPEC_VERSION`` macro must be defined to the decimal literal which value equals to +*major-spec-version* * 100 + *minor-spec-version*, where *major-spec-version* and *minor-spec-version* +are the major and the minor versions of the latest fully supported specification. +[*Example*: ``#define ONEDPL_SPEC_VERSION 104`` for the oneDPL specification 1.4. -- *end example*]