Extensions for C99 compatibility

ILE C++ adds support for the following C99 language features. The features are enabled with the LANGLVL(*EXTENDED) option, which is the default language level. For more information, see the LANGLVL option in the ILE C/C++ Compiler Reference.

Table 1. Default C99 features as extensions to Standard C++
Language feature Discussed in:
Flexible array members at the end of a structure or union Flexible array members
_Pragma operator The _Pragma preprocessing operator
Additional predefined macro names ILE C/C++ Compiler Reference
Empty arguments in function-like macros Function-like macros
__func__ predefined identifier The __func__ predefined identifier
Hexadecimal floating-point literals Hexadecimal floating-point literals
Trailing comma allowed in enum declaration Enumeration type definition
The restrict type qualifier The restrict type qualifier(C++ only)
Variable length arrays Variable length arrays
Compound literals Compound literal expressions
Variable arguments in function-like macros Function-like macros

The following feature is only enabled by a specific compiler option.

Table 2. C99 features as extensions to Standard C++
Language feature Discussed in:
Universal character names The Unicode standard (C++ only)