C++ library function changes
Existing C++ library functions have been rewritten to better conform with C++ TR1 specifications.
In IBM® i 7.2 changes were made to provide C++ library extensions in support of standards, which were submitted to the C++ standards committee with Draft Technical Report on C++ Library Extensions, ISO/IEC DTR 19768. To read more about the standards, also known as C++ Technical report 1 (TR1), follow the link to: Draft Technical Report on C++ Library Extensions ISO/IEC DTR 19768.
With the introduction of this support in 7.2, it was necessary to rewrite some of the existing library functions to better conform with the C++ TR1 specification. Some of the changes added to the C++ STL header file require compiling with OPTION(*RTTIALL) to work properly on 7.2. Specifically, this includes functions within the header files <locale>, <functional>, and <memory>.
Any source code that uses non-standard facets in C++ locales might
be affected and should be examined. The has_facet
and use_facet
functions
were rewritten to take advantage of each facet's runtime type identification
(RTTI) information. The generated C++ program might signal an MCH3601 (Pointer
not set) exception within "std::type_info::operator==(const
std::type_info&) const"
if the source code is not compiled
with the OPTION(*RTTIALL) C++ compiler option.