(私は Microsoft および Dinkumware と協力して、VC の標準ライブラリの実装を維持しています。)
【ダニジャール】
(悲しいことに) Visual Studio のドイツ語版を使用しており、コンパイラの更新プログラムが英語であるという事実が原因である可能性があるかどうかはわかりません。
残念ながら、英語のみの CTP はドイツ語の VS をサポートしていません。
「コンパイラ ドライバ」cl.exe は、コンパイラ フロントエンド c1xx.dll、コンパイラ バックエンド c2.dll、およびリンカー link.exe を呼び出すものです。コンパイラ ドライバがクラッシュすることは非常にまれです。CTP によって追加されたエラー メッセージの 1 つを表示しようとしていると推測しますが、CTP はドイツ語のリソースを更新しなかったため、コンパイラ ドライバーはエラー メッセージを読み込めず、クラッシュに進みます。
これは、フロントエンドまたはバックエンドの内部コンパイラ エラー、またはたまたま誤って出力される通常のコンパイラ エラーとは異なることに注意してください。(CTP がリリースされた後、多くの ICE と偽のエラーが修正されました。)
しかし、そうした後でも、 std::initializer_list も <initializer_list> ヘッダーも利用できません。
CTP は <initializer_list> を特別な場所にインストールしました。(実際には、コンパイラ チームによって作成されました。)
コマンド ラインでは、CTP を使用してインクルード パスに <initializer_list> を配置するための呪文は次のとおりです (デフォルトの場所を想定)。
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86
set PATH=C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2012 CTP\bin;%PATH%
set INCLUDE=C:\Program Files (x86)\Microsoft Visual C++ Compiler Nov 2012 CTP\include;%INCLUDE%
行 auto a = { 0 }; をコンパイルしようとしています。これはIntelliSenseによって批判されています
これは文書化されています - Intellisense は CTP によって更新されていないため、新しい機能は認識されません。
[ルーベンブ]
C++ 標準ライブラリはコンパイラで更新されていないため、まともな <tuple> と <intializer_list> がありません (これには、すべての標準コンテナーの波括弧付きの初期化リスト コンストラクターの省略が含まれます)。
スコープ付き列挙型と初期化子リストを完全にサポートするように標準ライブラリを更新したことに興味があるかもしれません。これには、現在のワーキング ペーパー (N3485) で義務付けられているすべての initializer_list オーバーロードに加えて、他のすべての標準ヘッダーと共に <initializer_list> を通常の場所にインストールすることが含まれます。(これは Dinkumware の公式コピーでもありますが、コンパイラ チームの「偽の」バージョンとの違いはほとんど表面的なものでした。) このようなものは、次のパブリック リリースで、いつでも、どのようなものでも利用できるようになります。次のタスクは、脆弱なシミュレーションを置き換えて、標準ライブラリを明示的な変換演算子と可変個引数テンプレートで更新することです。