The library for the language modes C++ 2017 and C++ 2020 is available in two versions. Some classes have small differences in their layout. The two versions are not compatible with each other.
To avoid an accidental combination the implementation was done in two different namespaces. The user interface is in namespace std
, but the implementation is in namespace std::__CXX01
or std::__CXX02
.
Version 1 was published with C/C++ 4.0A00 in the year 2019.
Version 2 was published with C/C++ 4.0B03 in the year 2023.
A program has to use either version 1 or version 2. When both versions are used, the result would be unresolved external references.
The version can be specified with the statement //MODIFY_LIBRARY_VERSION
or with the posix option -K library_version
. The default is version 1.
Both versions can be used with the language modes C++ 2017 and C++ 2020.
Some classes in the C++ library use functions which require the posix subsystem. So we strongly recommend to install and activate the posix subsystem on every machine where a program using this library is running.
When a critical function is used and the posix subsystem is not available, the program will terminate at the point of use.