Error del compilador C3533

"type": un parámetro no puede tener un tipo que contiene "auto"

Un parámetro de método o plantilla no se puede declarar con la palabra clave auto si la opción predeterminada del compilador /Zc:auto está en vigor.

Para corregir este error

  1. Quite la palabra clave auto de la declaración de parámetro.

Ejemplos

En el ejemplo siguiente, se produce el error C3533 porque se declara un parámetro de función con la palabra clave auto y se compila con /Zc:auto.

// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533

En el ejemplo siguiente, se produce el error C3533 en modo C++14 porque se declara un parámetro de plantilla con la palabra clave auto y se compila con /Zc:auto. (En C++17, esta es una definición válida de una plantilla de clase con un único parámetro de plantilla sin tipo cuyo tipo se deduce).

// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533

Consulte también

Auto (palabra clave)
/Zc:auto (Deducir tipo de variable)