C++ テンプレート タスク内に仮想関数があり、Visual Studio 2015 でコンパイルすると (デバッグ/リリースと x86/x64 のすべての組み合わせを試しました)、次のコード行でコンパイラ エラー C1001 で一貫して失敗します。
e_Ty *d(new e_Ty[l]);
e_Ty
クラスのテンプレート パラメータはどこにありますか。e_Ty
このエラーは、テンプレート クラスを に設定して使用した場合にのみ発生しstd::pair<const int &, int &>
ます。これが機能しない正当な理由はありますか、それとも MSVC のバグですか?
編集
ノート:
l
事前に宣言された (関数呼び出しの結果として値が割り当てられた) ローカル変数です。- 無効化の最適化、使用
auto
、割り当てスタイルの初期化の使用を試みましたが、どれも機能しませんでした。 e_Ty
が の場合、コードは正常にコンパイルされますint
。