C ++委員会は、新しい標準をリリースする前に、何らかのプロトタイプコンパイラで新しい設計仕様をテストしますか?それとも、大きなコンパイラーがそれを実装するまで、事実上、理論上のみである標準をリリースしますか?
boost::shared_ptr
== std::shared_ptr
。
boost.lambda
=> C ++ 11ラムダ式)。
C ++委員会は、新しい標準をリリースする前に、何らかのプロトタイプコンパイラで新しい設計仕様をテストしますか?それとも、大きなコンパイラーがそれを実装するまで、事実上、理論上のみである標準をリリースしますか?
boost::shared_ptr
== std::shared_ptr
。
boost.lambda
=> C ++ 11ラムダ式)。
回答:
C ++標準委員会は、条例や規則があるが、これらのほとんどはそれほど提案を提出するためにどのように組織の構造、投票、標準を公開、などと標準自体の技術的な詳細について、またはどのようにそれを周りに集中していますテストされる場合があります。
私が知る限り、機能またはその設計を「テスト」するための正式な要件はありません。C ++は、参照または「プライマリ」実装(Microsoft CLR、Oracle JDK、Zend PHPなど)がないという点でも多少独特です。ただし、委員会のメンバーは、言語とコンパイラの実装に関する深い知識を持つ多くの組織で構成されています。たとえば、その前のリンクをたどると、C ++コンパイラを高く評価しているMicrosoftとIntelの代表者が表示されます。Red HatおよびGCCに貢献している他のいくつかの企業も関与しています。
新しい機能を提案するとき、委員会のメンバーは、それが実行可能か、他の機能と競合するか、構文を不必要に複雑にする方法で文法が曖昧になるかについて、すでにかなり良い考えを持っています。(C ++の文法についての良い質問です)
短い答えは「いいえ、委員会はプロトタイプを使用して設計をテストする必要はありません」です。ただし、委員会のメンバーはC ++の専門家であり、ほとんどのプログラマーが理解していないレベルですべての詳細を理解しているため、それほど必要はありません。これらの人々は、言語理論とコンパイラ設計の専門家である言語アーキテクトです。
コンパイラベンダーがプロセスに関与していることを考えると、1つ以上のベンダーが新しい機能のプロトタイプを作成する可能性がありますが、ここでも正式な要件はなく、公開されているドキュメントで読んだものでもありませんC ++委員会。
また、非常に保守的な傾向があり、リスクが高いと判明する可能性のある大量の新機能を指定せずに、現実世界で需要のある新機能を徐々に追加します。実際、近年では、プロプライエタリな拡張機能として存在する新しい機能や、現実世界で既に機能しているオープンソースライブラリが追加されています。たとえば、C ++ 11およびC ++ 14にはBoostの一部が組み込まれており、これは複数のコンパイラーおよび実行環境で実世界で既にテストされています。すでにテストされているものをテストする必要はありません。