General Information#
This section describes the most general functionality of oneAPI DPC++ Library (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.
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 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 <oneapi/dpl/version>
automatically includes <version>
if that is available. – end example]
Version Information#
A oneDPL implementation must define the following preprocessor macro representing the version of the oneDPL specification that the implementation is compliant with.
// Defined in <oneapi/dpl/version>
#define ONEDPL_SPEC_VERSION /*implementation-defined*/
The ONEDPL_SPEC_VERSION
macro must be defined to the decimal literal whose 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]