Yawzheek wrote: |
---|
at what point after a standard has been reviewed, published, and implemented can it be considered that the new features are completely portable? |
"implemented" is the key word here. As soon as it is implemented by two compilers, the new features are portable between those two compilers.
I'll try to recover the recent timeline:
2011:
C++11 published
2012:
clang completes C++11 standard library (written from scratch)
2013:
gcc 4.8.1 completes C++11 core language
clang 3.3 completes C++11 core language
Visual Studio completes C++11 standard library (not core language)
intel 14.0 completes C++11 core language
EDG 4.8 completes C++11 core language
2014:
C++14 published
clang 3.4 completes C++14 core language (ahead of publication)
clang 3.5 completes C++14 standard library
2015:
gcc 5.1 completes C++11 standard library (finally)
gcc 5.1 completes C++14 core language
gcc 5.1 completes C++14 standard library
Visual Studio completes C++14 standard library (not core language)
Visual Studio is *almost* done with C++11 and C++14 core language
2016:
Oracle Studio completes C++11 core language
Since C++17 was a fairly minor update to core language, but major update to the library, I would expect gcc and clang will claim full core language in the same year, and finish up their libraries in 2018 (gcc learned from their 2011 mess and already has a lead there, but clang is very aggressively competitive), and Microsoft will likely do both core language and library in 2018 as well (their library was fully up to date with C++17-so-far at the beginning of 2016)