C ++ 98は、ISO / IEC 14882:1998として正式に標準化される前に、ANSIの下で作成されたと誰かに言われました。
ANSIがCに関与していることは知っていますが、「ANSIC++」というフレーズが非常に正確であることを証明する方法についてはあまりわかりません。
- 「ANSIC++」はC++98の良い説明ですか?
- 「ANSIC++」は、C ++標準の後続のバージョンの適切な説明ですか?
当初、'89年には、C++の標準化はANSIX3J16によって処理されていました。'91年からISOWG21が参加しました。BSのAHistoryof C ++:1979-1991を読むことをお勧めします。IMO、「ANSIC++」は単なる残りの名前です。ANSIが間接的に標準化に関与している場合でも、言語は「ISOC++」です。
このgotwページでは、C ++に関する限り、ANSIとISOの関係について簡単に説明しています。
ISOおよびUS委員会の正式名称は次のとおりです。
ISO / IEC JTC1 / SC22 / WG21-C ++(ISO C ++委員会)
INCITS PL22.16-C ++(米国のC ++委員会、しばしば「ANSI C ++委員会」と呼ばれます-より正確には、INCITSは、ANSIの一部ではないが、米国規格を開発するためにANSIによって認定された別個の組織です)(以前はX3J16およびJ16)
これらの2つのグループは、一緒に作業を行うため、単数形で「C++委員会」と呼ばれることがよくあります。会議は常に同じ部屋で同時に行われます
この委員会で開発されたISO規格は、自動的に米国規格になるようですが、実際にこれらの委員会で働いている人の方が説明しやすいと思います。
ある種ですが、実際にはそうではありません。C ++用の別個のANSI規格は存在せず、これまでもありませんでした。
ただし、現在の規格は実際にはINCITS / ISO /IEC14882-2003です。2003年の時点で、INCITSは別のANSI認定組織になりました。INCITSという名前は新しいものではありませんでしたが、以前はANSIの一部でした。2003年には、独立した(ただし、ANSI認定の)組織として「スピンオフ」されました。したがって、現在の(2003)規格はINCITS / ISO / IEC規格として表示され、次の(2011)規格も表示されると思います。
C ++ 98は、国際標準化機構(ISO)の一部である国際委員会によって開発されました。ANSIおよびその他の国家標準化団体は、この委員会のメンバーです。国際規格は、ANSIによって米国の国内規格として採用されており、他の多くの国内規格機関でも同様に採用されています。
以前のバージョンは、AT&Tによって米国で商業的に開発されました。ANSIが中間バージョンに関与していたかどうかはわかりません(編集:しかし、Erikの回答は、それが簡単に関与していたことを示唆しています)。
「ANSIC++」はC++98の良い説明ですか?
現在の標準について話していることが明らかな場合は、「標準C ++」、「C ++ 98」、または単に「C++」と呼びます。「ANSIC++」は技術的には正確ですが、同じことを意味していることに気付いていない人、特にANSIが何であるかを知らない他の国の人を混乱させる可能性があります。同様に正確な説明である「BritishStandardC++」と呼んだ場合、おそらく奇妙な外観になります。
「ANSIC++」は、C ++標準の後続のバージョンの適切な説明ですか?
同じ答え。C ++標準はISOによって開発され、ANSIおよびその他の機関によって採用されています。
AFAIKは、「ANSI C ++」と言うとき、実際には「コンパイラ固有の拡張機能がない」ことを意味します。
ISO作業部会が標準を作成します。C ++ 98は、ISO委員会(同じ人々)の支援の下で標準化が行われる前に、アメリカで標準化に関して多くの作業が行われていました(C ++が作成され、その作成者が住んでいたため)。その後、最終的なISO規格が、ANSIおよびその他の国内規格当局によって採用されました。
私はいつも標準C++を「標準C++」と呼んでいます。