C ++の標準は規範的なドキュメントであり、将来のドキュメントに残る(ほとんど影響を受けない)ルールを設定します。そのため、委員会はその更新に関して非常に慎重なアプローチを取っています。
標準ライブラリへの追加はいくぶん簡単でした。長い間、多くのライブラリがBoostにありました。それらが機能していることが証明されていました。
ただし、言語の中核概念への追加は、最初にコンパイラの変更が必要になるため、実験がはるかに困難です。C ++ 03機能(テンプレートのエクスポート)がコンパイラのサポートなしで指定されていました...結果は恐ろしいものでした。EDGコンパイラフロントエンドの実装者は、それを非常にわずかな利益で大規模なタスク(数人年)として報告しました。他のコンパイラはこれを実装しようとしませんでした。それは快適な状況ではありません。
constexpr
またはのような機能static_assert
は簡単でした(そしてすでにライブラリによってエミュレートされていました)。ラムダは非常によく理解され、他のさまざまな言語で実装されています。すでに広範な研究が行われているため、主に構文の問題でした。
他方で、概念はあまりにも新しくて未熟であると判断されました。彼らは時間内にほとんど特定されておらず、概念の証拠はありませんでした...したがって、彼らは彼らを待つ(または間違いをする)のではなく、拒否されました。
Dをフォローしないのはなぜですか?そうしないということはありません。委員会は、締め切りを迫ることなく、ゼロから再考すること、そして言語の他の機能とどのように相互作用するかを見るためにコンパイラーに含めることを試みることを人々に奨励しました。特に、コンセプトとコンセプトマップを分離する問題があります。それらを1つとしてバンドルすべきかどうか。
参考までに、現在、この実験専用のClangの支部があり、インディアナ大学のLarisse Voufoが率いています。