Die Bibliothek für die Sprachmodi C++2017 und C++2020 gibt es in zwei Versionen. Es gibt leichte Unterschiede im Layout von ein paar Klassen. Deshalb sind diese Versionen inkompatibel zueinander.
Um eine versehentliche Mischung zu verhindern, sind die beiden Bibliotheken in zwei verschiedenen Namespaces implementiert. Das Benutzer-Interface ist in Namespace std, aber die Implementierung ist in std::__CXX01 bzw. std::__CXX02.
Die Version 1 wurde erstmalig mit C/C++ 4.0A00 im Jahr 2019 ausgeliefert.
Die Version 2 wurde erstmalig mit C/C++ 4.0B03 im Jahr 2023 ausgeliefert.
Das gesamte Programm muss entweder mit Version 1 oder mit Version 2 produziert werden. Eine Mischung ist nicht möglich. Falls trotzdem eine Mischung versucht wird, gibt es nicht aufgelöste Referenzen.
Die Version der Bibliothek kann mit der Anweisung //MODIFY-LIBRARY-VERSION oder der Posix-Option -K library_version angegeben werden. Der Default ist Version 1.
Beide Versionen der Bibliothek können sowohl mit C++2017 als auch mit C++2020 genutzt werden.
Einige Klassen der C++ Bibliothek nutzen Funktionen, die das Posix-Subsystem voraussetzen. Wir empfehlen dringend, das Subsystem Posix auf jeder Maschine zu starten, auf der ein Programm läuft, welches diese Bibliothek nutzt.
Wird eine kritische Funktion genutzt während das Posix-Subsystem nicht verfügbar ist, dann bricht das Programm an dieser Nutzungs-Stelle ab.