現在の C または C++ 標準ドキュメントはどこにありますか?

規格の PDF 版

2014 年 9 月 1 日現在、PDF 形式の C および C++ 標準ドキュメントの価格別の最適な場所は次のとおりです。

    <リ>

    C++17 – ISO/IEC 14882:2017:ansi.org から 116 ドル

    <リ>

    C++14 – ISO/IEC 14882:2014:Standards New Zealand から $90 NZD (約 $60 US)

    <リ>

    C++11 – ISO/IEC 14882:2011:ansi.org から $60 Techstreet から $60

    <リ>

    C++03 – ISO 14882:2003:ansi.org から $30 SAI グローバルから $48

    <リ>

    C++98 – ISO/IEC 14882:1998:Standards New Zealand から $90 NZD (約 $60 US)

    <リ>

    C17/C18 – ISO/IEC 9899:2018:SAI Global から 185 ドル / INCITS/ANSI から 116 ドル / N2176 / 2017 年 11 月の c17_updated_proposed_fdis.pdf ドラフト (リンク切れ、Wayback Machine N2176 を参照)

    <リ>

    C11 – ISO/IEC 9899:2011:$30 ansi.org から $60 / WG14 ドラフト バージョン N1570

    <リ>

    C99 – ISO 9899:1999:$30 ansi.org から $60 / WG14 ドラフト バージョン N1256

    <リ>

    C90 – AS 3955-1991:ansi.org から $141 Techstreet から $175 (C90 のオーストラリア版、ISO 9899:1990 と同一)

    <リ>

    C90 – 9899:1990 ハードコピーは SAI Global から入手可能 ($88 + 送料)

通常、標準の新版がリリースされた直後に、標準 (任意の標準) の古いリビジョンを標準化団体から直接入手することはできません。したがって、C89、C90、C99、C++98、C++03 の標準を標準化団体から購入するのは困難です。標準の古いリビジョンが必要な場合は、可能なソースの 1 つとして Techstreet を確認してください。たとえば、カナダ版の CAN/CSA-ISO/IEC 9899:1990 規格を PDF で有料で提供できます。

標準の PDF 以外の電子版

  • C89 – ANSI テキスト形式のドラフト バージョン:(https://web.archive.org/web/20161223125339/http://flash-gordon.me.uk/ansi.c.txt)
  • C90 TC1; ISO/IEC 9899 TCOR1、単一ページの HTML ドキュメント:(http://www.open-std.org/jtc1/sc22/wg14/www/docs/tc1.htm)
  • C90 TC2; ISO/IEC 9899 TCOR2、単一ページの HTML ドキュメント:(http://www.open-std.org/jtc1/sc22/wg14/www/docs/tc2.htm)

規格の印刷版

標準の印刷版は、国の標準化団体および ISO から入手できますが、非常に高価です。

C90 標準のハードコピーが上記よりもはるかに安い価格で必要な場合は、Herb Schildt の著書 The Annotated ANSI Standard の安価な中古コピーを見つけることができるかもしれません。 Amazon で、標準の実際のテキスト (有用) と標準に関する解説 (あまり有用ではありません - 危険で誤解を招くエラーがいくつか含まれています) が含まれています。

C99 および C++03 標準は、Wiley および BSI (British Standards Institute) から書籍形式で入手できます。

  • Amazon の C++03 標準
  • Amazon の C99 標準

標準化委員会のドラフト バージョン (無料)

将来の標準のワーキング ドラフトは、多くの場合、委員会の Web サイトから入手できます。

  • C++ 委員会のウェブサイト
  • C 委員会のウェブサイト

現在またはそれ以前の C/C++ 標準からドラフトを入手したい場合は、インターネットで無料で入手できるものがあります。

C の場合:

    <リ>

    ANSI X3.159-198 (C89):C89 の PDF が見つかりませんが、ISO/IEC 9899:1990 (C90) の以下のドラフトとほぼ同じです。唯一の違いは、ボイラープレートとセクションの番号付けです。

    <リ>

    ISO/IEC 9899:1990 (C90):https://www.pdf-archive.com/2014/10/02/ansi-iso-9899-1990-1/ansi-iso-9899-1990-1.pdf

(フロントマターとセクションの番号付けを除いて、ANSI X3.159-198 (C89) とほぼ同じです。ANSI と ISO/IEC 規格の間の変換は、このドキュメント内で見られることに注意してください。ドキュメントでは、その名前を「ANSI/ISO」と呼んでいます) :9899/99" これは後に作られた規格の正式名称ではありませんが、正式名称は "ISO/IEC 9899:1990" です)

    <リ>

    ISO/IEC 9899:1999 (C99):http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

    <リ>

    ISO/IEC 9899:2011 (C11):http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

    <リ>

    ISO/IEC 9899:2018 (C17/C18):https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis. pdf (N2176)

C++ の場合:

    <リ>

    ISO/IEC 14882:1998 (C++98):http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf

    <リ>

    ISO/IEC 14882:2003 (C++03):https://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/c++2003std.pdf

    <リ>

    ISO/IEC 14882:2011 (C++11):http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf

    <リ>

    ISO/IEC 14882:2014 (C++14):https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true

    <リ>

    ISO/IEC 14882:2017 (C++17):http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf

    <リ>

    ISO/IEC 14882:2020 (C++20):https://isocpp.org/files/papers/N4860.pdf

これらのドキュメントは標準と同じではないことに注意してください。ただし、標準を決定する会議の直前のバージョンは通常、最終的な標準の内容に非常に近いものです。 FCD (Final Committee Draft) バージョンはパスワードで保護されています。それらを取得するには、標準化委員会に参加する必要があります。

ドラフト バージョンは標準の最終的な承認済みバージョンに非常に近いかもしれませんが、この投稿の編集者の中には、実際のドキュメントのコピーを入手することを強くお勧めする人もいます。特に、参照として引用する予定がある場合はそうです。もちろん、飢えている学生は、現金が不足している場合は、先に進んでドラフトを使用する必要があります.

規格の批准後数か月待つことができる場合は、規格を探すときに「ISO/IEC」ではなく「INCITS/ISO/IEC」を検索することが重要です。そうすることで、この投稿の編集者の 1 人は、C11 および C++11 標準を手頃な価格で見つけることができました。たとえば、webstore.ansi.org で「ISO/IEC 9899:2011」ではなく「INCITS/ISO/IEC 9899:2011」を検索すると、手頃な価格の PDF バージョンが見つかります。

サイト https://wg21.link/ は、C++ の現在のワーキング ドラフトとドラフト標準、および委員会の文書への短い URL リンクを提供します。

  • https://wg21.link/std11 - C++11
  • https://wg21.link/std14 - C++14
  • https://wg21.link/std17 - C++17
  • https://wg21.link/std20 - C++20
  • https://wg21.link/std - 現在の草案

標準の現在のドラフトは、Github で LaTeX ソースとして維持されています。これらのソースは、cxxdraft-htmlgen を使用して HTML に変換できます。次のサイトは、そのように生成された HTML ページを維持しています:

  • Tim Song - 現在のワーキング ドラフト - C++11 - C++14 - C++17 - C++20
  • Eelis - 現在のワーキング ドラフト

Tim Song は、Networking TS および Ranges TS の生成された HTML および PDF バージョンも管理しています。


標準のオンライン バージョンは次の場所にあります。

ワーキング ドラフト、プログラミング言語 C++ の標準

以下の標準のすべてのドラフト版 :
以下はすべて無料でダウンロードできます
(これらの多くは、このメイン GitHub リンクで見つけることができます)
2020-10-18:N4868 git
2020-04-08:N4861 git
2020-01-14:N4849 git
2019-11-27:N4842 git
2019-10-08:N4835 git
2019-08-15:N4830 git
2019-06-17:N4820 git
2019-03-15:N4810 git
2019-01-21:N4800 git
2018-11-26:N4791 git
2018-10-08:N4778 git
2018-07-07:N4762 git
2018-05-07:N4750 git
2018-04-02:N4741 git
2018-02-12:N4727 git
2017-11-27:N4713 git
2017-10-16:N4700 git
2017-07-30:N4687 git

これが新しい標準のようです:
これらのバージョンには認証が必要です
2017-03-21:N4660 は C++17 ドラフト標準です

以下の標準のすべてのドラフト版 :
以下はすべて無料でダウンロードできます
2017-03-21:N4659 git
2017-02-06:N4640 git
2016-11-28:N4618 git
2016-07-12:N4606 git
2016-05-30:N4594 git
2016-03-19:N4582 git
2015-11-09:N4567 git
2015-05-22:N4527 git
2015-04-10:N4431 git
2014-11-19:N4296 git

これは古い C++14 標準のようです :
これらのバージョンには認証が必要です
2014-10-07:N4140 git 基本的に C++14 でマイナーなエラーとタイプミスを修正
2014-09-02:N4141 git 標準 C++14
2014-03-02:N3937
2014-03-02:N3936 git

以下の標準のすべてのドラフト版 :
以下はすべて無料でダウンロードできます
2013-10-13:N3797 git
2013-05-16:N3691
2013-05-15:N3690
2012-11-02:N3485
2012-02-28:N3376
2012-01-16:N3337 git 基本的に C++11 でマイナーなエラーとタイプミスを修正

これは古い C++11 標準のようです :
このバージョンには認証が必要です
2011-04-05:N3291 C++11 (または非常に近い)

以下の標準のすべてのドラフト版 :
以下はすべて無料でダウンロードできます
2011-02-28:N3242 (N3291 との違いはごくわずか)
2010-11-27:N3225
2010-08-21:N3126
2010-03-29:N3090
2010-02-16:N3035
2009-11-09:N3000
2009-09-25:N2960
2009-06-22:N2914
2009-03-23:N2857
2008-10-04:N2798
2008-08-25:N2723
2008-06-27:N2691
2008-05-19:N2606
2008-03-17:N2588
2008-02-04:N2521
2007-10-22:N2461
2007-08-06:N2369
2007-06-25:N2315
2007-05-07:N2284
2006-11-03:N2134
2006-04-21:N2009
2005-10-19:N1905
2005-04-27:N1804

これは古い C++03 標準のようです:
以下のすべてのバージョンで認証が必要です
2004-11-05:N1733
2004-07-16:N1655 非公式
2004-02-07:N1577 C++03 (または非常に近い)
2001-09-13:N1316 ドラフト拡張技術正誤表
1997-00-00:N1117 ドラフト拡張技術正誤表

以下の標準のすべてのドラフト バージョン :
以下はすべて無料でダウンロードできます
1996-00-00:N0836 ドラフト拡張技術正誤表
1995-00-00:N0785 情報システムの国際標準案草案のためのワーキング ペーパー - プログラミング言語 C++

その他の興味深い論文:

2020 /2019 /2018 /2017 /2016 /2015 /2014 /2013 /2012 /2011


C99 はオンラインで入手できます。 www.open-std.org から引用: