27

C++03 は C++98 の技術的な正誤表ではなく、C++ 標準の新しいリリースであることをどこかの信頼できる情報源 (WG21 のページにあったと思います) で読んだことは確かです。

-std=c++98しかし、それにもかかわらず、GCC やその他のコンパイラでは switchしか見られず、Alf P Steinbach は、実際には C++98 の TC である可能性があることを示唆するいくつかのコメントを作成しました。

では、「C++03」について書いているときは、C++98 について言及するだけで十分でしょうか? 関連する質問として、「C++03」という用語を使用するのは間違っていますか? 本当にC++98 TC1だと思うので、C++03と呼べないように思えます。C99TC3 リリースのために誰かが C07 を書いているのを見たことがないのと同じように。

4

2 に答える 2

12

はいといいえ。

C++03 (ISO C++14882:2003) は、それ自体が標準であり、C++98 のみが一連の修正で修正されているため、「単なる」TC1 でもあります。

C++03 は C++98 が意図したものであると言えます。C++98 の実際の文言は、本来の意味を示すように改訂されています。

委員会自身の言葉で:

「ISO/IEC 14882 の初版は 1998 年に発行されました。技術的な正誤表は 2003 年に承認されました。この規格は 2003 年版として再び発行されました。」

そこの余分なピリオドは、文字通り引用されているだけです。

ウィキペディアの言葉で(これは権威ではありませんが、間違っている場合は修正する必要があります):

「標準が正式にリリースされてから数年間、委員会は欠陥レポートを処理し、2003 年に C++ 標準の修正版 ISO/IEC 14882:2003 を発行しました。」

ただし、値の初期化は新しいものであり、単なる修正ではないと主張する人もいるかもしれません。そして、技術的正誤表自体は修正だけで構成されていたのに対し、それらの修正で修正された規格は別のものであり、新しい規格であると主張する人もいるかもしれません. 私が見ているように、これらの観点はどちらも文脈的に意味がありますが、絶対的な文脈から独立したステートメントではありません。

于 2011-11-27T16:25:30.907 に答える
1

まったく新しいスタンダードです。私はそれが単なる TC として始まったと信じています。それが混乱の原因であり、事実上単なるバグ修正リリースであることは確かです。ただし、変更あり、98 について話しているのか 03 について話しているのかを知る価値があります。

于 2011-11-27T13:16:42.210 に答える