コンパイラ エラー C3533

'type': パラメーターの型に 'auto' を含めることはできません

既定の /Zc:auto コンパイラ オプションが有効になっている場合、auto キーワードを使用して、メソッドまたはテンプレート パラメーターを宣言することはできません。

このエラーを解決するには

  1. パラメーター宣言から 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

関連項目

auto キーワード
/Zc:auto (変数の型の推測)