C++ 03是C++标准的新版本还是C++ 98的技术勘误(TC)?

Joh*_*itb 23 c++ standards iso c++03

我很确定我在一个权威来源上阅读(我相信它是在WG21页面上),C++ 03 不是 C++ 98的技术勘误,但它是C++标准的新版本.

但是,尽管如此,我只看到-std=c++98GCC和其他编译器的转换,而Alf P Steinbach发表了一些评论,暗示它可能确实是C++ 98的TC.

所以当我写"C++ 03"时,它是否足以提及C++ 98?作为一个相关问题,使用术语"C++ 03" 甚至是错误的吗?因为我认为如果它真的是C++ 98 TC1,那么在我看来它不能被称为C++ 03.正如我从未见过有人为C99TC3版本编写C07.

Che*_*Alf 9

是的,不是.

C++ 03(ISO C++ 14882:2003)本身就是一个标准,它也是"仅仅"TC1,因为它只是用一组修正修正的C++ 98.

你可以说C++ 03就是C++ 98的目标,C++ 98的实际措辞进行了修改,使其能够说出它的意思.

该委员会自己的话说:

"ISO/IEC 14882的第一版于1998年出版.技术勘误于2003年获得批准,.该标准再次作为2003版出版."

那里的外来时期只是字面引用.

维基百科的话来说(不是权威,但如果错了就应该修复):

"在标准正式发布后的几年里,委员会处理了缺陷报告,并于2003年发布了C++标准的正确版本ISO/IEC 14882:2003."

然而,人们可能会争辩说,价值初始化是一件新事物而不仅仅是一次修正.有人可能会争辩说,技术勘误本身只包含修正,而修正后的标准是一个不同的东西,一个新的标准.正如我所看到的,这两个观点都在上下文中有意义,尽管不是绝对的与上下文无关的陈述.