Extensions for GNU C++ compatibility

The following GNU C++ language extension is enabled by default.

Table 1. IBM® XL C++ language extensions for compatibility with GNU C++
Language feature Discussed in:
init_priority variable attribute The init_priority variable attribute (C++ only) (IBM extension)

The following GNU C++ language extensions are enabled by default. They can also be enabled or disabled by specific compiler options, listed in the below table:

Table 2. 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 __thread storage class specifier The __thread storage class specifier (IBM extension) -qtls

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.