検索を試みましたが、同様の質問は表示されませんでした(それまたは私の検索用語が正しくありませんでした。もしそうなら、遠慮なく閉じてください)。
私はSOの熱心なユーザーであり、ディスカッションと回答にはC ++標準への参照がたくさんあることに気づきました-そして私は認めざるを得ません。 、問題は、C ++開発者がこのドキュメントを読んだことがなくても、本当に生活のためのコードを書けるかどうかです。コンパイラを書くビジネスに従事していない私たちにとって、それは本当に重要ですか?
検索を試みましたが、同様の質問は表示されませんでした(それまたは私の検索用語が正しくありませんでした。もしそうなら、遠慮なく閉じてください)。
私はSOの熱心なユーザーであり、ディスカッションと回答にはC ++標準への参照がたくさんあることに気づきました-そして私は認めざるを得ません。 、問題は、C ++開発者がこのドキュメントを読んだことがなくても、本当に生活のためのコードを書けるかどうかです。コンパイラを書くビジネスに従事していない私たちにとって、それは本当に重要ですか?
回答:
言語のセマンティクスと標準について議論したい場合は、標準が非常に重要です。(私は完全に軽蔑このことを意味するものではありません。)あなただけの仕事を成し遂げるにしたい場合には、言語(対上の言語)、それはとても少ないです。
標準は、少し慣れれば標準ライブラリへの適切な参照(言語自体についてはそれほどではありません)を作成できますが、そのように使用することをお勧めします。ほとんどの人は他の素材を使ったほうがうまくいくようです。とはいえ、stdlibについて何かを調べる必要があるときは、標準に目を向けます。
ただし、委員会の草案や論文を読むことは、C ++ 0xに遅れないようにするための1つの方法です。実際、現在、ごくわずかな方法の1つにすぎません。
SOや他のフォーラムについては、ポスターが明確かつ確実に利益をもたらすと思われる場合を除いて、標準を引用するのをためらいます。ほとんどの場合、特にC ++を初めて使用するプログラマーの場合、それを引用しても通常はあまり役に立たないようです。
あなたはそれを参照のために利用できるはずですが、私はその作者以外は誰もがすべてを読んだとは思わないでしょう...もし彼らが読んだとしても(彼らは分野に焦点を合わせたグループで働いているので、私はそれを疑っています)。
あなたがそれを利用できるようにするべき理由は、コードの正しさについての質問が標準を参照することによってしか答えられないことがあることです。
大規模なチームでは、標準を少なくともある程度はよく知っている1人(ただし、通常はそれ以上)の人が必要です。そうすることで、特定のコードが標準の要件に準拠しているかどうかなどの引数/質問を解決することができます。
しかし現実的には、これらの答えは判断と経験によって和らげる必要があります。(現在の)標準はexport
キーワードであり、それが何をするかを示しています。実際には、ほとんどのコンパイラではそのようには機能しません。同様に、多くのケースでは、あなたには、いくつかの特定のコードとどのような標準は、その、それについて言うかもしれについて不同意三人がある場合も、コードはより簡単であることを書き換える必要があるかもしれないという徴候であるが。
同時に、ほとんどのチームは1つのプラットフォームでほとんどの作業を行い、標準(およびそれに少なくともある程度の知識がある人)が、自分のしていることがそのプラットフォームに近すぎないことを確認します。役に立つ。
私は標準を読んだことなく、C ++開発者として合計約4年間パンを稼いでいます。実際、最初の2年間は、Stan LippmanによるC ++ PrimerとMSDNの記事以外はほとんど読んでいません。したがって、それは可能です。実際、C ++コードを作成しているほとんどの人が、Effective C ++などの基本的な作業さえ読んでいないのではないかと恐れています。私自身、後で発見しました。
優れたC ++開発者であるためには、言語の内部ロジック(Scott Meyersが指摘するように、C ++は約4種類の言語です)と一般的なイディオムと落とし穴を理解し、常に詳細を学ぶ準備ができている必要があります。SOでスレッドを読むことは、誰かが本当に深く掘り下げたい場合に、標準の関連する部分を読む価値があるかもしれないコーナーケースについて多くを教えることができます。しかし、それをすべて読むことは、ほとんどの人にとっておそらくめったに必要ではありません。
「標準を知ること」は程度の問題であり、必ずしも元の文書を暗記することを意味するわけではありません。
標準ドキュメントは信頼できるように設計されています-必ずしもアクセスできるとは限りません。アクセスしやすいワンステップで削除されたソースがたくさんあります。確かに、その中には中国のささやきが少しありますが、それが大きな問題になることはめったにありません-確かにワンステップ削除されたレベルで。
完全な開示-私はこれを言わざるを得ません-私は規格を読んだことがありません。C ++ 0xのドキュメントが完成したら、完全なものになるように努力するつもりです。
もちろんEDITがStroustrupが「The C ++ Programming Language」の新版をリリースした場合、私はそれで再び解決するかもしれません。
私は以前にこの質問に答えたことがあると誓ったかもしれませんが、それを見つけることができません。基本的に、C ++は、他のプラットフォーム仕様が満たすことができる仕様(POSIX、アーキテクチャのABI仕様、コンパイラなど)に穴を開けることを目的としている点で、Javaとは異なります。したがって、StackOverflowなどのサイトで質問に回答する場合、ある仕様が1つのコンパイラで機能するからといって、どこでも機能するわけではないことを示す仕様を提示するのが一般的です。言い換えると、C ++で作業するときに特定の仕様を参照する理由の多くは、言語の特定の使用がどれほど移植可能かを明確にするためです。