我很确定我在某处的权威来源(我相信它在 WG21 页面上)读到 C++03 不是 C++98 的技术勘误,但它是 C++ 标准的新版本。
但我在 GCC 和其他编译器中只看到 -std=c++98
开关,Alf P Steinbach 做了一个 few comments暗示它可能确实是 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 的实际措辞经过修改以使其表达其本意。
“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.”
这里的无关句号只是按字面引用。
用 Wikipedia 的话来说(这不是权威,但如果是错误的应该更正):
“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.”
然而,有人可能会争辩说,值初始化是一个新事物,而不仅仅是一个修正。有人可能会争辩说,技术勘误本身只包含更正,而用这些更正修改的标准是另一回事,是一个新标准。在我看来,这两种观点都具有上下文意义,尽管不是绝对独立于上下文的陈述。
关于c++ - C++03 是 C++ 标准的新版本还是只是 C++98 的技术勘误 (TC)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285777/