多くの質問に対する答えは「標準」にあるようです。しかし、それはどこにありますか?できればオンライン。
グーグルは、プログラミングフォーラムでの議論の洪水に溺れているため、特にC標準では、場合によっては無駄に感じることがあります。
これを始めるために、これらは私が今探しているものですので、どこに良いオンラインリソースがありますか?
- C89
- C99
- C11
- C ++ 98
- C ++ 03
- C ++ 11
- C ++ 14
- C ++ 17
多くの質問に対する答えは「標準」にあるようです。しかし、それはどこにありますか?できればオンライン。
グーグルは、プログラミングフォーラムでの議論の洪水に溺れているため、特にC標準では、場合によっては無駄に感じることがあります。
これを始めるために、これらは私が今探しているものですので、どこに良いオンラインリソースがありますか?
回答:
2014年9月1日の時点で、PDFのCおよびC ++標準ドキュメントの価格別の最適な場所は次のとおりです。
C ++ 98 – ISO / IEC 14882:1998:ニュージーランド規格から$ 90 NZD(約$ 60 US)
C17 / C18 – ISO / IEC 9899:2018:SAI Globalから$ 185 / INCITS / ANSI / N2176 から$ 116/ 2017年11月からのc17_updated_proposed_fdis.pdfドラフト(リンクが壊れている、Wayback Machine N2176を参照)
通常、新しいバージョンの標準がリリースされた直後に、標準(任意の標準)の古いリビジョンを標準化団体から直接入手することはできません。したがって、C89、C90、C99、C ++ 98、C ++ 03の標準を標準化団体から購入することは困難です。標準の古いリビジョンが必要な場合は、Techstreetを1つのソースとして確認してください。たとえば、カナダ版CAN / CSA-ISO / IEC 9899:1990規格をPDFで有料で提供できます。
規格の印刷コピーは、各国の標準化団体およびISOから入手できますが、非常に高価です。
あなたは上記よりもはるかに少ないお金のためにC90標準のハードコピーが必要な場合は、の安い中古コピーを見つけることができるかもしれハーブSchildtの著書ザ・注釈付きANSI規格でアマゾン(便利な)標準の実際のテキストが含まれています、標準に関する解説(あまり役に立たない-いくつかの危険で誤解を招くエラーが含まれています)。
C99およびC ++ 03標準は、本の形式でWileyおよびBSI(英国標準協会)から入手できます。
将来の標準の草案は、委員会のWebサイトから入手できることがよくあります。
現在または以前のC / C ++標準からドラフトを入手したい場合は、インターネットで無料で入手できるものがあります。
C89のPDFは見つかりませんが、以下の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 "です)
http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf
https://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/c++2003std.pdf
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf
これらの文書は標準と同じではないことに注意してください。ただし、標準を決定する会議の直前のバージョンは通常、最終的な標準の内容に非常に近いものです。FCD(最終委員会ドラフト)バージョンはパスワードで保護されています。それらを取得するには、標準委員会に参加する必要があります。
ドラフトバージョンは標準の最終承認済みバージョンに非常に近いかもしれませんが、この投稿の編集者の中には、実際のドキュメントのコピーを入手することを強くお勧めします。特に、参照として引用する予定がある場合はそうです。もちろん、飢えている学生は、現金に縛られている場合は先に進んで下書きを使用する必要があります。
規格が承認されてから数か月待つことができるなら、規格を探すときに「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リンクを提供します。
標準の現在のドラフトは、Github上のLaTeXソースとして維持されます。これらのソースは、cxxdraft-htmlgenを使用してHTMLに変換できます。次のサイトは、生成されたHTMLページを維持しています。
Tim Songは、Networking TSおよびRanges TSの生成されたHTMLおよびPDFバージョンも維持しています。
標準のオンラインバージョンは次の場所にあります。
次の標準のすべてのドラフトバージョン:
以下はすべて無料でダウンロードできます
(これらの多くは、このメインのGitHubリンクにあります)
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から引用:
標準の最新の公開バージョンは、2007-09-07付けのC99 + TC1 + TC2 + TC3、WG14 N1256の組み合わせです。これはWG14ワーキングペーパーですが、発行時の統合規格を反映しています。
下書きリンク:
C ++ 11(+編集上の修正):N3337 HTML、PDF
C ++ 14(+編集上の修正):N4140 HTML、PDF
C99 N1256
規格の草案は、批准と公開の前にコメントのために回覧されます。
ISO規格のコストは、適度な金額(PDFバージョンの場合)から少し(本バージョンの場合)です。
ただし、確定されていませんが、通常は下書きとしてオンラインで公開されています。ほとんどの場合、最終バージョンは前回のドラフトと大幅に異ならないため、完璧ではありませんが、問題なく適合します。
C99およびC ++ 03標準は、Wileyから書籍形式で入手できます。
さらに、すでに述べたように、将来の標準の草案は委員会のWebサイトから入手できることがよくあります。
ISO CおよびC ++標準は非常に高価です。一方、INCITSは大幅に少ないコストで再発行しています。http://www.techstreet.com/には、30ドルのPDFがあるようです(INCITS / ISO / IEC 14882:2003を検索してください)。
ハードコピー版も入手可能です。Wileyによって発行されたBritish Standards Instituteバージョンを探します。
実際の標準文書は、最も役立つとは限りません。ほとんどのコンパイラは標準を完全に実装していないため、実際には競合する場合があります。ですから、すでに持っているコンパイラのドキュメントがもっと役立つでしょう。さらに、ドキュメントには、プラットフォーム固有の注意事項と注意事項の注記が含まれます。
ANSI C標準(別名C.89)のドラフトのテキストは、オンラインで入手できます。これは、ISO C規格(C.90)で承認される前にANSI委員会によって標準化されたため、セクションの番号は異なります(ANSIセクション2から4は、ISOセクション5から7にほぼ対応しています)。とほぼ同じです。
[0, 60]
、C90(誤って)[0, 61]
tm_sec
です(0, 61)
。それはうるう秒のためだと思いました、理にかなっています。
以下のようないくつかのコンパイラがない実際の標準が、それはC99に統合されたC94 / 95、または標準追補1と呼ばれるISO C(C89 / 90)の改正がありクランは、あなたはspecifiyすることを可能にする-std=c94
コマンドラインで。ISO / IEC 9899:1990 / Amd 1:1995は、SAI GLOBAL(PDFまたはハードコピー)から高額の価格で購入できます。
ドキュメントの概要はここにあります。
(当時の)ANSI C規格が1990年に国際規格の採用を検討されていたとき、国際化の問題に対応していなかったため、いくつかの異論がありました。規格はすでに作成されてから数年が経過しているため、基礎を提供するためにいくつかの変更が行われることが合意されました(たとえば、7.10.7節の関数が追加されました)。標準の適切な国際化。この作業は、規範補遺1で最高潮に達しました。
規範補遺1は、国際的な文字セットの制限と約束の両方に対するCの反応を具体化しています。ダイグラフとヘッダーは、ISO 646の各国版で記述されたCプログラムの外観を改善するためのもので、たとえば{または}文字はありません。スペクトルの反対側では、ファシリティは古い規格の接続に拡張され、ワイド文字とマルチバイト文字列を処理するための完全で一貫したユーティリティセットに拡張されます。
この文書は、規範的な補遺1を要約したものです。これは、すでに標準に精通している読者にすばやく知らせることを目的としています。NA1の背後にある複雑な主題を紹介することはできず、また紹介することもできません。また、リファレンスマニュアルとして元のドキュメントを置き換えることもできません。(それにもかかわらず、それは可能な限り正確であるように努めています、そしてその作者はすべてのエラーまたは省略について聞きたいです。)
http://c0x.coding-guidelines.com/には、検索可能なHTMLベースのバージョンのC標準が含まれています。実際、わずかに変更されたバージョン:
このWebサイトには、N1256の修正バージョンが含まれています。これには、C99から削除された表現(つまり、取り消し線の付いた形式)と、C99に表示されていた表現(つまり、下線付きの形式)が含まれます。