informa
/
3 MIN READ
Featured Blog

C++ status - a quick summary

Status of the implementation of the C++11 language standard in four different compilers.

C++11 conformance 

  • GCC 4.81 - 100%
  • Clang 3.3 - 100%
  • Intel 14.0 - 84%
  • Visual C++ 2013 - 66%
Another year is almost over so it is a good time to check what is going on with C++. This time more stats and real data.

Chart

This chart provides a general view on C++11 conformance. Percentage comes from counting implemented features in a given compiler according to the list of 45 C++11 language features. Please note that the view may be a bit imperfect or unfair. One language feature can have more "value"/importance than some other. For instance "extern template" vs "constxpr". Or "long long" vs "delegating constructors". This would require to put partial factors for each feature. Additionally some features have several versions (like move orlambda) - only the latest version should be counted.
c++11 compiler conformance graph
Compiler Conformance
GCC 4.6 73%
GCC 4.7 87%
GCC 4.81 100%
Clang 2.9 44%
Clang 3.0 76%
Clang 3.1 93%
Clang 3.2 93%
Clang 3.3 100%
Intel C++ 12 36%
Intel C++ 13 53%
Intel C++ 14 82%
MCVC 10.0 27%
MCVC 11.0 42%
MCVC 12.0 64%
MCVC 12.1 (NOV CTP) 80%

Data

I used wiki.apache.org/stdcxx as a base for my work. I've upgraded it and cleaned up a bit. Additionally compilers: HP, EDGE, IBM, Sun/Oracle, C++ Builder (front-end is based on Clang 3.1 now) and Digital Mars were removed.
C++11 language feature Proposal GCC Intel C++ MSVC Clang
Alignment N2341 4,8   12,1 3,0
Atomic operations N2427 4,4 13,0 11,0 3,1
auto v1.0 N2546 4,4 12,0 10,0 2,9
C99 preprocessor N1653 4,3 11,1   2,9
constexpr N2235 4,6 14,0 12,1 3,1
decltype v1.0 N2343 4,3 12,0 10,0 2,9
decltype v1.1 N3276 4,8 12,0 12,0 2,9
Defaulted And Deleted Functions N2346 4,4 12,0 12,0 3,0
Delegating Constructors N1986 4,7 14,0 12,0 3,0
Explicit conversion operators N2437 4,5 13,0 12,0 3,0
Extended friend Declarations N1791 4,7 11,0 10,0 2,9
extern template N1987 3,3 9,0 6,0 2,9
Forward declarations for enums N2764 4,6 14,0 11,0 3,1
Inheriting Constructors N2540 4,8   12,1 3,3
Initializer Lists N2672 4,4 13,0 12,0 3,1
Lambda v1.0 N2658 4,5 12,0 10,0 3,1
Lambda v1.1 N2927 4,5 12,0 11,0 3,1
Local and Unnamed Types as Template Arguments N2657 4,5 12,0 8,0 2,9
long long N1811 4,3 11,0 7,1 2,9
Namespace Association N2535 4,4 14,0   2,9
New character types N2249 4,4 14,0   2,9
New function declaration syntax for deduced return types N2541 4,4 12,0 10,0 2,9
nullptr N2431 4,6 12,1 10,0 2,9
Unicode String Literals N2442 4,4 11,0   3,0
Raw String Literals N2442 4,5 14,0 12,0 3,0
User-defined Literals N2765 4,7     3,1
Right Angle Brackets N1757 4,3 11,0 8,0 2,9
R-Value References, std::move v2.1 N2884+ 4,5 14,0 11,0 3,0
R-Value References, std::move v3.0 N3053 4,5 14,0   3,0
static_assert N1720 4,3 11,0 10,0 2,9
Strongly-typed enums N2347 4,4 14,0 11,0 2,9
Template aliases N2258 4,7 12,1 12,0 3,0
Thread-Local Storage N2659 4,8     3,3
Unrestricted Unions N2544 4,6     3,0
Built-in Type Traits N1836 4,3 10,0 8,0 3,0
Variadic Templates v0.9 N2242 4,3 12,1 12,0 2,9
Variadic Templates v1.0 N2555 4,4   12,0 2,9
Range-based for-loop N2930 4,6 13,0 11,0 3,0
override and final v1.0 N3272 4,7 14,0 11,0 2,9
Attributes N2761 4,8 12,1   3,3
ref-qualifiers N2439 4,81 14,0 12,1 2,9
Non-static data member initializers N2756 4,7 14,0 12,0 3,0
Extended sizeof N2253 4,4   12,1 3,1
Allowing move constructors to throw [noexcept] N3050 4,6 14,0 12,1 3,0
Dynamic initialization and destruction with concurrency (Magic statics) N2660 4,3   12,1 2,9
Remarks
  • Version 12.1 of MSVC means - November CTP, but this is not "official" of course.
  • long long support for VS: probably from the version 7.1, but before that it existed as a __int64

Resources

Latest Jobs

IO Interactive

Hybrid (Malmö, Sweden)
3.02.23
Gameplay Director (Project Fantasy)

Arizona State University

Los Angeles, CA, USA
2.27.23
Assistant Professor of XR Technologies

IO Interactive

Hybrid (Copenhagen, Denmark)
3.02.23
Animation Tech Programmer

Purdue University

West Lafayette, IN, USA
3.02.23
Assistant Professor in Game Design and Development
More Jobs   

CONNECT WITH US

Explore the
Advertise with
Follow us

Game Developer Job Board

Game Developer

@gamedevdotcom

Explore the

Game Developer Job Board

Browse open positions across the game industry or recruit new talent for your studio

Browse
Advertise with

Game Developer

Engage game professionals and drive sales using an array of Game Developer media solutions to meet your objectives.

Learn More
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more