编译器错误 C3533
“type”:参数不能有包含“auto”的类型
如果默认 auto
/Zc:auto 编译器选项生效,则不能使用 关键字声明方法或模板参数。
更正此错误
- 从参数声明中删除
auto
关键字。
示例
下面的示例生成 C3533,因为它使用 auto
关键字声明函数参数,并通过 /Zc:auto 进行编译。
// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533
下面的示例在 C++14 模式下生成 C3533,因为它使用 auto
关键字声明模板参数,并通过 /Zc:auto 进行编译。(在 C++17 中,这是具有推断类型的单个非类型模板参数的类模板的有效定义。)
// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533