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:
| 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:
| Language feature | Discussed in: | Individual option control |
|---|---|---|
| The __thread storage class specifier | The __thread storage class specifier (IBM extension) | -qtls |