是C++;03新版本的C++;C+的标准或技术勘误表(TC)+;98? 我确信我读到了一个权威的地方(我相信它是在WG21页面上)C++ 03不是C++ 98的技术勘误,而是它是C++标准的一个新版本。

是C++;03新版本的C++;C+的标准或技术勘误表(TC)+;98? 我确信我读到了一个权威的地方(我相信它是在WG21页面上)C++ 03不是C++ 98的技术勘误,而是它是C++标准的一个新版本。,c++,standards,iso,c++03,C++,Standards,Iso,C++03,但是,我在GCC和其他编译器中只看到了-std=c++98开关,Alf p Steinbach暗示它可能确实是c++98的TC 那么,当我写“C++03”时,提到C++98就足够了吗?作为一个相关的问题,使用“C++03”这个术语是错误的吗?因为我认为如果它真的是C++98TC1,那么在我看来它不能被称为C++03。正如我从未见过有人为C99TC3版本编写C07一样。这是一个全新的标准。我相信它开始时只是一个TC,这就是为什么会出现混乱的原因,当然它实际上只是一个bug修复版本。然而,有一些变化

但是,我在GCC和其他编译器中只看到了
-std=c++98
开关,Alf p Steinbach暗示它可能确实是c++98的TC


那么,当我写“C++03”时,提到C++98就足够了吗?作为一个相关的问题,使用“C++03”这个术语是错误的吗?因为我认为如果它真的是C++98TC1,那么在我看来它不能被称为C++03。正如我从未见过有人为C99TC3版本编写C07一样。

这是一个全新的标准。我相信它开始时只是一个TC,这就是为什么会出现混乱的原因,当然它实际上只是一个bug修复版本。然而,有一些变化,值得知道的是,你说的是98还是03。

是和否

C++03(ISO C++14882:2003)本身就是一个标准,它也是“公正”的TC1,因为只有C++98经过了一系列修正

你可以说C++03是C++98的初衷,C++98的实际措辞经过了修改,使其表达了它的本意

在:

1998年发布了ISO/IEC 14882第一版。2003年批准了技术勘误表。该标准再次作为2003版发布

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

用(这不是一个权威,但如果是错误的,则应予以纠正)的话来说:

“标准发布后的几年,委员会在2003中处理了缺陷报告,并发布了C++标准ISO/IEC 1488—2003的更正版本。”
然而,有人可能会说,值初始化是一个新事物,而不仅仅是一种修正。有人可能会争辩说,技术勘误表本身只包括更正,而用这些更正修订的标准是另一回事,一个新标准。在我看来,这两种观点在上下文中都是有意义的,尽管不是绝对独立于上下文的陈述。

为什么这在实践中很重要?@Mat我想写正确的文本。ISO/IEC 14882:2003是ISO/IEC 14882的第二版,前一版是14882:1998。这两种标准都是ANSI批准的标准。根据《2003年前进报》的报道:“第二版取消并取代了第一版……”@Mat:为什么它在实践中是否重要?这解释了C++98和C++03之间的关系。“但是,有一些变化,值得知道你是在谈论98还是03。”:例如?@akappa:
std::vector
仅要求其元素从03开始连续。不过我不同意这很重要。任何关心C++98的行为是什么的人都会知道他们应该指定它。有人问“C++”可能是在寻找一个实用的答案,因此想知道当前标准的行为,以及他们的编译器将支持什么。因为我们现在使用的是C++11,所以C++98实际上与这些问题无关。@gmannick这个问题明确地问的是C++03和C++98,而不仅仅是“C++”。这一区别远非无关紧要——遗留软件yadda yadda。因此,委员会说他们批准了它作为TC,但iso用它制定了一个非TC的新标准?@Johannes:不,他们没有说“非TC”。C++ 03是用死树版本的后盖的词,“完整的,现行的国际C++标准,包括技术勘误1,这是由所有国家标准机构(如ANSI)批准的BSISO/IEC 1488∶2003(第二版),它是标准的唯一可用的绑定版本。”不过,我不确定这里的BS是什么意思。@AlfP.Steinbach:英国标准。BSi是唯一一个发布绑定死树版本的标准机构。以防有人试图从维基百科中找到qoute而找不到它:可能在更新维基百科条目以包含更新的标准的过程中,这里引用的观点发生了变化,现在它说:“2003年,它[委员会]发布了一个新版本的C++标准,称为ISO/IEC 1488∶2003,它解决了C++ 98中所识别的问题。same@Cheersandhth.-阿尔夫:你认为“这在技术上是废话”是什么意思?