General IBM extensions
The following feature is enabled by default
at all extended language levels:
Language feature | Discussed in: |
---|---|
Allowed types in typedef definitions |
typedef definitions |
The following feature is disabled by default
at all language levels. It also can be enabled or disabled by an individual
option.
Language feature | Discussed in: | Individual option controls |
---|---|---|
A non-const or volatile lvalue reference bound to an rvalue of a user-defined type | Initialization of references (C++ only) | LANGLVL([NO]COMPATRVALUEBINDING) |
Extra text after #endif or #else | Extension of #endif and #else (IBM extension) | LANGLVL([NO]TEXTAFTERENDIF) |
The following feature is enabled with the LANGLVL(COMPAT366 | EXTENDED) option. It can also be enabled or disabled by a specific compiler option, listed in the following table:
Language feature | Discussed in: | Individual option controls |
---|---|---|
Non-C99 IBM long long extension |
Types of integer literals that are supported in pre-C99 and pre-C++11 modes | [NO]LONGLONG |
The following feature is enabled with the LANGLVL(EXTENDED0X) option. It can also
be enabled or disabled by specific compiler options, listed in the
following table:
Language feature | Discussed in: | Individual option controls |
---|---|---|
C99 long long feature with
the associated IBM extensions |
Types of integer literals in C99 and C++11 | LANGLVL([NO]C99LONGLONG), LANGLVL([NO]EXTENDEDINTEGERSAFE)
|