Extensions for C++11 compatibility

Note:

Start of changeIBM® supports selected features of C++11, known as C++0x before its ratification. IBM will continue to develop and implement the features of the new standard. The implementation of the language level is based on IBM's interpretation of this standard. Until IBM's implementation of all the C++11 features are complete, including the support of a new C++11 standard library, the implementation may change from release to release. IBM makes no attempt to maintain compatibility, in source, binary, or listings and other compiler interfaces, with earlier releases of IBM's implementation of the new C++11 features and therefore they should not be relied on as a stable programming interface.End of change

Start of changeThe following features are part of a continual phased release process leading towards full compliance with C++11. They can be enabled by the LANGLVL(*EXTENDED0X) option. End of change

Table 1. IBM ILE C++ language extensions for compatibility with C++11
Language feature Discussed in:
Auto type deduction Start of changeThe auto type specifier (C++11)End of change
C99 preprocessor features adopted in C++11 Start of changeC99 preprocessor features adopted in C++11 (C++11)End of change
Decltype Start of changeThe decltype(expression) type specifier (C++11)End of change
Defaulted and deleted functions Start of changeExplicitly defaulted functions (C++11)End of change

Start of changeDeleted functions (C++11)End of change

Delegating constructors Start of changeDelegating constructors (C++11)End of change
Explicit conversion operators Start of changeExplicit conversion operators (C++11)End of change
Explicit instantiation declarations Explicit instantiation (C++ only)
Extended friend declarations Friends (C++ only)
Generalized constant expressions Generalized constant expressions (C++11)
Inline namespace definitions Start of changeInline namespace definitions (C++11)End of change
Nullptr Start of changeNull pointersEnd of change
Reference collapsing Start of changeReference collapsing (C++11)End of change
Right angle brackets Start of changeClass templates (C++ only)End of change
Rvalue references Start of changeReferences (C++ only)End of change
Scoped enumerations Start of changeEnumerationsEnd of change
static_assert Start of changestatic_assert declaration (C++11)End of change
Trailing return type Start of changestatic_assert declaration (C++11)End of change
Variadic templates Start of changeVariadic templates (C++11)End of change
Note: You can also use the LANGLVL(*EXTENDED) option to enable the explicit instantiation declarations feature.
Related information
  • LANGLVL in the ILE C/C++ Compiler Reference