Question

C++ code standard is defined by the International Organization of Standardization (ISO). There are many different implementations of C++ like GCC/G++, libc/libc++, clang (++ too), Microsoft Visual C++, Intel C++ Compiler etc. so Anyone can make his own implementations (compiler etc, runtime library, ...) and call it C++.

I wanted to know:

  • Are there any disciplines relating the implementations of C++?
  • Does any organization (like ISO) control these implementations to make sure they conform to standards?
Was it helpful?

Solution

It's totally up to compilers vendors.

One of the reasons why C++14 standard itself is being developed openly on GitHub is because before that it was relatively obscure and hard for vendors/implementors to follow what is happening behind closed doors of various WGs.

With C++14 ISO is trying to make vendors aware of the changes beforehand, participate in shaping and also know what is expected of them and voice their opinion if they see any problems.

AFAIK many of compiler developers are (and have always been) on the ISO committee, but not all of them managed to implement all things in time. Notoriously, MSVC took a while to implement 'noexcept'. GCC's libstdc++ is lagging behind quite badly, although it's more speed-optimized than clang's libc++.

AFAIK, clang is the only compiler to have all c++11 and c++14 features done and then some outside the standard scope (see below in that page). libc++ is also very modern and supports c++11 fully (or 99% fully for that matter).

Hopefully, the example ISO committee sets now with how the standard is developed will set the bar for vendors to implement it quickly and correctly, and not 10 years later.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top