C++11 Features Supported by Intel® C++ Compiler

ID 659132
Updated 4/17/2016
Version Latest
Public

author-image

By


Starting in 11.0 the Intel® C++ Compiler has supported some of the C++11 features (previously called C++0x). With the latest release of Intel C++ Compiler for Windows*, Linux* and macOS* , more C++11 features are supported.

Standard# Core Language Features Version 11.1 Version 12.0 Version 12.0 Update 6 or 12.1 Version 13.0 Version 14.0*1 Version 15.0*1 & Later
N1610 Initialization of class objects by rvalues Yes Yes Yes Yes Yes Yes
N1720 static_assert Yes Yes Yes Yes Yes Yes
N1737 Multi-declarator auto - Yes Yes Yes Yes Yes
N1757 Right angle brackets Yes Yes Yes Yes Yes Yes
N1791 Extended friend declarations Partial Yes Yes Yes Yes Yes
N1984 auto: Deducing the type of variable from its initializer expression - Yes Yes Yes Yes Yes
N1986 Delegating constructors - - - - Yes Yes
N1987 Extern templates Yes Yes Yes Yes Yes Yes
N2118 Rvalues references - Yes Yes Yes Yes Yes
N2170 Universal character names in literals - - Yes Yes Yes Yes
N2235 Generalized constant expressions - - - Partial Yes Yes
N2242 variadic templates v0.9 - - Yes Yes Yes Yes
N2249 char16_t/char32_t types - - Partial on Windows;
Yes on Linux & macOS
Partial on Windows;
Yes on Linux & macOS
Yes (VS) Yes
N2253 Extended sizeof - - - - Yes Yes
N2258 alias templates - - Yes Yes Yes Yes
N2341 Alignment: Adding Alignment Support to the C++ Programming Language - - - - - Yes
N2342 Standard-layout and trivial types - - - - Yes Yes
N2343 decltype v1.0 - Yes Yes Yes Yes Yes
N2346 deleted and defaulted functions - Yes Yes Yes Yes Yes
N2347 Explicit enum bases and scoped enums - - - Yes Yes Yes
N2347 Strongly typed enums Partial Partial Partial Partial Yes Yes
N2431 nullptr - - Yes Yes Yes Yes
N2437 Explicit conversion operators - - - Yes Yes Yes
N2439 Rvalue references for *this - - - - Yes Yes
N2442 Raw string literals - - - - Yes Yes
N2535 Inline namespaces - - - - Yes Yes
N2540 Inheriting constructors - - - - - Yes
N2541 auto: Trailing return types - Yes Yes Yes Yes Yes
N2541 Late-specified return types - - Yes Yes Yes Yes
N2544 Unrestricted unions - - - - Yes on Linux & OS X Yes on Linux & OS X
N2546 auto v1.0: Removal of auto as a storage-class specifier - Yes Yes Yes Yes Yes
N2550 Lambdas v0.9: Lambda Expressions and Closures - Yes Yes Yes Yes Yes
N2555 variadic templates v1.0 - - Yes Yes Yes Yes
N2634 New-style Expression SFINAE (N2634) - - Yes Yes Yes Yes
N2657 Local and unnamed types as template arguments - Yes Yes Yes Yes Yes
N2658 Lambdas v1.0: Constness of Lambda Functions - Yes Yes Yes Yes Yes
N2670 Minimal support for garbage collection - - - - - Yes on Windows
N2672 General initializer lists - - - Partial Yes Yes
N2756 Non-static data member initializers - - - - Yes Yes
N2761 Standard attributes (N2761) - - Yes Yes Yes Yes
N2764 Forward declared enums Partial Partial Partial Partial Yes Yes
N2765 User-defined literals - - - - - Yes
N2844 Rvalue references v2 - Yes Yes Yes Yes Yes
N2927 Lambdas v1.1: New wording for C++0x Lambdas - Yes Yes Yes Yes Yes
N2928 Explicit Virtual Overrides - - - - Yes Yes
N2930 Range-based for loops - - - Yes Yes Yes
N2947 Additional type traits - - - Yes Yes Yes
N3050 noexcept or Allowing move constructors to throw - - - - Yes Yes
N3052 Conversions of lambdas to function pointers - - - Yes Yes Yes
N3053 RValues: Defining Move Special Member Functions - - - - Yes Yes
N3206 Explicit virtual overrides -> Override control: Eliminating Attributes - - - - Yes Yes
N3272 override and final - - - - Yes Yes
N3276 decltype v1.1: Decltype and Call Expressions - Yes Yes Yes Yes Yes
Core issue 382 Allow typename outside of templates - Yes Yes Yes Yes Yes
DR226 Default template arguments for function templates - - Yes Yes Yes Yes
  Core Language Features: Concurrency            
N2179 exception_ptr - Yes Yes Yes Yes Yes
N2239 Reworded sequence points - - - - - Yes
N2440 quick_exit - - - - - Yes on Linux/OS X
N2427 atomic types and operations - - - Yes Yes Yes
N2429 Memory model - - - - - Yes on Linux/OS X
N2547 Atomics in signal handlers - - - - - Yes on Linux/OS X
N2659 Thread-local storage - - - - No on Linux/OS X
Yes on Windows in VS2015 mode
Yes on Linux/OS X
Yes on Windows in VS2015 mode
N2660 Magic statics Yes on Linux/OS X Yes on Linux/OS X Yes on Linux/OS X Yes on Linux/OS X Yes for all OSes, but on Windows in VS2015 mode only Yes for all OSes, but on Windows in VS2015 mode only
N2664 Data-dependency ordering - - - - - -
N2748 Strong compare and exchange - - - Yes Yes Yes
N2752 Bidirectional fences - - - Yes Yes Yes
N2782 Data-dependency ordering: function annotation - - - - - Yes
  Core Language Features: C99            
N1653 C99 preprocessor Yes Yes Yes Yes Yes Yes
N1811 long long Yes Yes Yes Yes Yes Yes
N2340 __func__ Yes Yes Yes Yes Yes Yes
N1988 Extended integer types - - - - - Yes on Linux/OS X

Note:

  1. *1: * Full C++11 support requires gcc 4.8 environment or newer on Linux*
  2. On Windows: when using Intel C++ compiler with Visual Studio 2010* or 2012*, the C++11 features supported by Visual C++ 2010/2012 are enabled by default. Use "/Qstd=c++11" to turn on the support for all other cases.
    "char16_t/char32_t types" feature also requires Visual C++ 2015 or above.
  3. On Linux or macOS: the C++11 features supported by gcc on the path are enabled by default. Use "-std=c++11" to turn on the support for all other cases.
  4. /Qstd=c++0x (-std=c++0x on Linux or macOS) is still supported. It is the same as /Qstd=c++11(-std=c++11 on Linux or macOS).
    Please read the documentation for detail information under /Qstd (-std on Linux* or macOS*) option.
  5. On Building Applications for Intel® Many Integrated Core Architecture (Intel® MIC Architecture)
    • Linux: Note that language features available can depend on gcc* version installed. The version of gcc compiler, header files, and libraries that are provided as part of the Intel® Manycore Platform Software Stack (Intel® MPSS) distribution on Intel® MIC Architecture is an experimental 4.7.0 version. This version lacks full support for some gcc features that are available in the final release of the 4.7.0 gcc compiler and libraries. In particular, this version of gcc lacks the support for allocator_traits.
    • Windows: The version of header files and libraries that are provided as part of the Intel® MPSS distribution on Intel® MIC Architecture is an experimental 4.7.0 version. This version lacks full support for some gcc* features that are available in the final release of the 4.7.0 gcc libraries. In particular, this version of gcc lacks the support for allocator traits.

Other related articles

  1. C++14 Features Supported by Intel® C++ Compiler
  2.  C++17 Features Supported by Intel(R) C++ Compiler
  3. C99 Support in Intel C++ Compiler article for supported C99 features.
  4. C++11 FAQ by Bjarne Stroustrup
  5. C++11 Features Supported in Microsoft Visual Studio* 2012/2013
  6. C++11 Features Supported in GNU* gcc