General Page
In XL C/C++ for Linux 16.1.1 Fix Pack 7 and earlier releases, the compiler supports only a subset of C++14 standard features. Starting from XL C/C++ for Linux 16.1.1 Fix Pack 8, the compiler fully complies with the C++14 language standard.
When you use C++14 features in XL C/C++ for Linux 16.1.1 Fix Pack 8, pay attention to the following constraints and option usages:
-
The -std=c++14 option is officially supported starting from XL C/C++ for Linux 16.1.1 Fix Pack 8, and you can specify this option to invoke all C++14 language features.
-
In XL C/C++ for Linux 16.1.1 Fix Pack 8, when you specify -std=c++14(recommended), -std=c++1y, or -qlanglvl=extended1y option to enable C++14 support, the __cplusplus macro is predefined to 201402L. In XL C/C++ for Linux 16.1.1 Fix Pack 7 and earlier releases, the __cplusplus macro is not predefined to 201402L when c++14 support is enabled; you have to specify the -qxflag=disable__cplusplusOverride or -D __cplusplus=201402L option to predefine the __cplusplus macro to 201402L. In XL C/C++ for Linux 16.1.1 Fix Pack 8, to restore the predefined value of the __cplusplus macro for XL C/C++ for Linux 16.1.1 Fix Pack 7 and earlier releases, specify the -qxflag=Override__cplusplus option.
- Compiler support for language features that have C++ library requirements is dependent on the GCC C++ library on the Linux distribution.
- The sized deallocation feature is enabled only when the -fsized-deallocation option is in effect. The -fsized-deallocation option is not enabled by default.
Related information:
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"ARM Category":[{"code":"a8m0z00000007u2AAA","label":"C\/C++->Compiler"}],"ARM Case Number":"","Platform":[{"code":"PF016","label":"Linux"}],"Version":"16.1.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Was this topic helpful?
Document Information
Modified date:
11 September 2020
UID
ibm16233264