我很确定我在某个权威来源上读到过(我相信是在 WG21 页面上),C++03 不是 C++98 的技术勘误表,而是 C++ 的新版本标准。
但尽管如此,我只看到 GCC 和其他编译器中的
-std=c++98
切换,并且 Alf P Steinbach 做了一些一些评论暗示它可能确实是 C++98 的 TC。
那么当我写“C++03”时,提及C++98就足够了吗?作为一个相关的问题,使用术语“C++03”是否是“错误”?因为我觉得如果真的是C++98 TC1的话,那么在我看来它就不能称为C++03了。就像我从未见过有人为 C99TC3 版本编写 C07 一样。
C++03 (ISO C++14882:2003) 本身就是一个标准,它也“只是”TC1,因为它只是 C++98 的一组修正。
你可以说 C++03 就是 C++98 的本意,C++98 的实际措辞经过修改,使其表达了它的意思。
用
委员会自己的话“ISO/IEC 14882 第一版于 1998 年发布。技术勘误于 2003 年获得批准。该标准再次发布为2003年版。其中多余的句点只是逐字引用。
用
Wikipedia“在标准正式发布后的几年里,委员会处理了缺陷报告,并于 2003 年发布了 C++ 标准的修正版本 ISO/IEC 14882:2003。”值初始化然而,有人可能会说,
是一个新事物,而不仅仅是一个修正。有人可能会争辩说,技术勘误本身仅包含更正,而用这些更正修改的标准是另一回事,是一个新标准。在我看来,这两种观点在上下文中都是有意义的,尽管不是绝对独立于上下文的陈述。
变化,值得知道你是在谈论 98 还是 03。