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


Starting in 11.0 the Intel(R) 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 FeaturesVersion 11.1Version 12.0Version 12.0 Update 6 or 12.1Version 13.0Version 14.0*1Version 15.0*1 & Later
N1610Initialization of class objects by rvaluesYesYesYesYesYesYes
N1720static_assertYesYesYesYesYesYes
N1737Multi-declarator auto-YesYesYesYesYes
N1757Right angle bracketsYesYesYesYesYesYes
N1791Extended friend declarationsPartialYesYesYesYesYes
N1984auto: Deducing the type of variable from its initializer expression-YesYesYesYesYes
N1986Delegating constructors----YesYes
N1987Extern templatesYesYesYesYesYesYes
N2118Rvalues references-YesYesYesYesYes
N2170Universal character names in literals--YesYesYesYes
N2235Generalized constant expressions---PartialYesYes
N2242variadic templates v0.9--YesYesYesYes
N2249char16_t/char32_t types--Partial on Windows;
Yes on Linux & macOS
Partial on Windows;
Yes on Linux & macOS
Yes (VS)Yes
N2253Extended sizeof----YesYes
N2258alias templates--YesYesYesYes
N2341Alignment: Adding Alignment Support to the C++ Programming Language-----Yes
N2342Standard-layout and trivial types----YesYes
N2343decltype v1.0-YesYesYesYesYes
N2346deleted and defaulted functions-YesYesYesYesYes
N2347Explicit enum bases and scoped enums---YesYesYes
N2347Strongly typed enumsPartialPartialPartialPartialYesYes
N2431nullptr--YesYesYesYes
N2437Explicit conversion operators---YesYesYes
N2439Rvalue references for *this----YesYes
N2442Raw string literals----YesYes
N2535Inline namespaces----YesYes
N2540Inheriting constructors-----Yes
N2541auto: Trailing return types-YesYesYesYesYes
N2541Late-specified return types--YesYesYesYes
N2544Unrestricted unions----Yes on Linux & OS XYes on Linux & OS X
N2546auto v1.0: Removal of auto as a storage-class specifier-YesYesYesYesYes
N2550Lambdas v0.9: Lambda Expressions and Closures-YesYesYesYesYes
N2555variadic templates v1.0--YesYesYesYes
N2634New-style Expression SFINAE (N2634)--YesYesYesYes
N2657Local and unnamed types as template arguments-YesYesYesYesYes
N2658Lambdas v1.0: Constness of Lambda Functions-YesYesYesYesYes
N2670Minimal support for garbage collection-----Yes on Windows
N2672General initializer lists---PartialYesYes
N2756Non-static data member initializers----YesYes
N2761Standard attributes (N2761)--YesYesYesYes
N2764Forward declared enumsPartialPartialPartialPartialYesYes
N2765User-defined literals-----Yes
N2844Rvalue references v2-YesYesYesYesYes
N2927Lambdas v1.1: New wording for C++0x Lambdas-YesYesYesYesYes
N2928Explicit Virtual Overrides----YesYes
N2930Range-based for loops---YesYesYes
N2947Additional type traits---YesYesYes
N3050noexcept or Allowing move constructors to throw----YesYes
N3052Conversions of lambdas to function pointers---YesYesYes
N3053RValues: Defining Move Special Member Functions----YesYes
N3206Explicit virtual overrides -> Override control: Eliminating Attributes----YesYes
N3272override and final----YesYes
N3276decltype v1.1: Decltype and Call Expressions-YesYesYesYesYes
Core issue 382Allow typename outside of templates-YesYesYesYesYes
DR226Default template arguments for function templates--YesYesYesYes
 Core Language Features: Concurrency      
N2179exception_ptr-YesYesYesYesYes
N2239Reworded sequence points-----Yes
N2440quick_exit-----Yes on Linux/OS X
N2427atomic types and operations---YesYesYes
N2429Memory model-----Yes on Linux/OS X
N2547Atomics in signal handlers-----Yes on Linux/OS X
N2659Thread-local storage----No on Linux/OS X
Yes on Windows in VS2015 mode
Yes on Linux/OS X
Yes on Windows in VS2015 mode
N2660Magic staticsYes on Linux/OS XYes on Linux/OS XYes on Linux/OS XYes on Linux/OS XYes for all OSes, but on Windows in VS2015 mode only Yes for all OSes, but on Windows in VS2015 mode only
N2664Data-dependency ordering------
N2748Strong compare and exchange---YesYesYes
N2752Bidirectional fences---YesYesYes
N2782Data-dependency ordering: function annotation-----Yes
 Core Language Features: C99      
N1653C99 preprocessorYesYesYesYesYesYes
N1811long longYesYesYesYesYesYes
N2340__func__YesYesYesYesYesYes
N1988Extended 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
Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.