コンパイラ エラー C3533
'type': パラメーターの型に 'auto' を含めることはできません
既定の /Zc:auto コンパイラ オプションが有効になっている場合、auto
キーワードを使用して、メソッドまたはテンプレート パラメーターを宣言することはできません。
このエラーを解決するには
- パラメーター宣言から
auto
キーワードを削除します。
例
次の例では、auto
キーワードを使用して関数パラメーターを宣言し、それが /Zc:auto でコンパイルされているため、C3533 が発生しています。
// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533
次の例では、auto
キーワードを使用してテンプレート パラメーターを宣言し、それが /Zc:auto でコンパイルされているため、C++ 14 モードで C3533 が発生しています (C++17 では、これは型が推測される単一の非型テンプレート パラメーターを持つクラス テンプレートの有効な定義です)。
// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533