I\'m pretty sure I read on an authoritative source somewhere (I believe it was on the WG21 pages) that C++03 was not a technical corrigendum of C++98 but that it wa
It is a whole new Standard. I believe that it began as just a TC, which is why the confusion occurs, and it certainly is effectively just a bugfix release. However, there were changes and it is worth knowing whether you're talking about 98 or 03.
Yes and no.
C++03 (ISO C++14882:2003) is a standard in its own right, and it is also "just" TC1 because it is only C++98 amended with a set of corrections.
You can say that C++03 is what C++98 was intended to be, the actual wording of C++98 revised to make it say what it was meant to say.
In the committee's own words:
“The first edition of ISO/IEC 14882 was published in 1998. A technical corrigendum was approved in 2003, . and the standard was published again as the 2003 edition.”
The extraneous period in there is just quoted literally.
In the words of Wikipedia (which is not an authority, but should be fixed if it’s wrong):
“For some years after the official release of the standard, the committee processed defect reports, and published a corrected version of the C++ standard, ISO/IEC 14882:2003, in 2003.”
One might argue, however, that value initialization was a new thing and not just a correction. And one might argue that the Technical Corrigendum itself consisted only of the corrections, while the standard amended with those corrections is a different thing, a new standard. Both of these points view make sense contextually, as I see it, although not as absolute context-independent statements.