C++11 and C++14 feature support

The following table shows the support status of each C++11 and C++14 language feature, including the corresponding C++ standards committee paper:
Table 1. C++11 and C++14 feature support status
C++11 language feature C++ standards committee paper Does the compiler support this feature? Supported starting from this release
Alias templates N2258 Y V16.1
Alignment support N2341 Y V16.1
Allowing move constructors to throw [noexcept] N3050 Y V16.1
auto-typed variables N1984 Y V16.1
Call expressions with incomplete return types in unevaluated contexts N3276 Y V16.1
Changing undefined behavior into diagnosable errors N1727 Y V16.1
Conditionally-supported behavior N1627 Y V16.1
Decltype N2343 Y V16.1
Default template arguments for function templates DR226 Y V16.1
Defaulted functions N2346 Y V16.1
Defining move special member functions N3053 Y V16.1
Delegating constructors N1986 Y V16.1
Deleted functions N2346 Y V16.1
Explicit conversion operators N2437 Y V16.1
Explicit virtual overrides N2928, N3206, N3272 Y V16.1
Extended friend declarations N1791 Y V16.1
Extending sizeof N2253, DR850 Y V16.1
Extending variadic template template parameters N2555 Y V16.1
Extern templates (also known as explicit instantiation declarations) N1987 Y V16.1
Forward declarations for enums N2764, DR1206 Y V16.1
Generalized constant expressions N2235 Y V16.1
Inheriting constructors N2540 Y V16.1
Initializer lists N2672 Y V16.1
Inline namespaces N2535 Y V16.1
Lambda expressions N2550, N2658, N2927 Y V16.1
Local and unnamed types as template arguments N2657 Y V16.1
Multi-declarator auto N1737 Y V16.1
New character types N2249 Y V16.1
New function declarator syntax (also known as trailing return type) N2541 Y V16.1
Non-static data member initializers N2756 Y V16.1
Null pointer constant (also known as nullptr) N2431 Y V16.1
Range-based for N2930 Y V16.1
Raw string literals N2442 Y V16.1
Removal of auto as a storage-class specifier N2546 Y V16.1
Right angle brackets N1757 Y V16.1
Rvalue references N2118, N2844, N3053, N3055 Y V16.1
Rvalue references for *this N2439 Y V16.1
Solving the SFINAE problem for expressions N2634 Y V16.1
Standard Layout Types N2342 Y V16.1
Standardized attribute syntax N2761 Y (except carries_dependency) V16.1
Static assertions (also known as static_assert) N1720 Y V16.1
Strongly-typed enums N2347 Y V16.1
Unicode string literals N2442 Y V16.1
Universal character names in literals N2170 Y V16.1
Unrestricted unions N2544 Y V16.1
User-defined literals N2765 Y V16.1
Variadic templates N2242 Y V16.1
Initialization of class objects by rvalues N1610 Superseded by N3290  
Minimal support for garbage collection and reachability-based leak detection N2670 Allows for optional behavior; not implemented  
   
Concurrency    
Allow atomics use in signal handlers N2547 Y V16.1
Atomic operations N2427 Y (full support on Power8 and Power9, partial on Power4 - Power7) V16.1
Bidirectional Fences N2752 Y V16.1
C++11 Library   Y V16.1
Concurrency memory model N2429 Y V16.1
Data-dependency ordering: atomics and memory model N2664 Y V16.1
Dynamic initialization and destruction with concurrency N2660 Y V16.1
Propagating exceptions N2179 Y V16.1
Sequence points N2239 Y V16.1
Strong Compare and Exchange N2748 Y (full support on Power8 and Power9, partial on Power4 - Power7) V16.1
Thread-local storage N2659 Y (requires AIX 7.2) V16.1
   
C99 Features in C++11    
C99 preprocessor N1653 Y V16.1
long long N1811 Y V16.1
The __func__ predefined identifiers N2340 Y V16.1
Extended integral types N1988 Not applicable; specifies optional rules to apply for language extensions  
   
C++14 Language Feature    
Binary literals N3472 Y V16.1
C++ sized dseallocation (Enabled only when the -fsized-deallocation option is in effect. The -fsized-deallocation option is not enabled by default.) N3778 Y V16.1
decltype(auto) N3638 Y V16.1
Generic lambdas N3649 Y V16.1
Initialized lambda captures N3648 Y V16.1
Member initializers and aggregates N3653 Y V16.1
Relaxing constraints on constexpr functions N3652 Y V16.1
Return type deduction for normal functions N3638 Y V16.1
Single-quotation-mark as a digit separator N3781 Y V16.1
The [[deprecated]] attribute N3760 Y V16.1
Tweak to certain C++ contextual conversions N3323 Y V16.1
Variable templates N3651 Y V16.1
Clarifying memory allocation N3664 Optional behavior; not implemented  


Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us