Extensions for GNU C++ compatibility

The following GNU C++ language extension is enabled with the -qlanglvl=extended option, which is the default language level. It can also be enabled or disabled by a specific compiler option, listed in the below table:

Table 1. IBM® XL C++ language extensions for compatibility with GNU C++, with individual option controls
Language feature Discussed in: Individual option control
Template instantiations declared as extern Template instantiation (C++ only) -qlanglvl=[no]gnu_externtemplate

The option -qlanglvl=[no]gnu_externtemplate is deprecated in XL C/C++ V11.1. You can use the option -qlanglvl=[no]externtemplate instead to control the explicit instantiation declaration feature which is introduced in the C++0x standand. For more information, see Explicit instantiation declaration.

The following GNU C++ language extension requires compilation with a specific compiler option, listed in the below table:

Table 2. IBM XL C++ language extensions for compatibility with GNU C++, requiring additional options
Language feature Discussed in: Individual option control
The __thread storage class specifier The __thread storage class specifier (IBM extension) -qtls