Compilerfehler C3533

'type': Ein Parameter darf keinen Typ haben, der "auto" enthält.

Eine Methode oder ein Vorlagenparameter kann nicht mit dem auto Schlüsselwort (keyword) deklariert werden, wenn die Standardoption /Zc:auto compiler aktiv ist.

So beheben Sie diesen Fehler

  1. Entfernen Sie die auto Schlüsselwort (keyword) aus der Parameterdeklaration.

Beispiele

Im folgenden Beispiel wird C3533 generiert, da er einen Funktionsparameter mit dem auto Schlüsselwort (keyword) deklariert und mit /Zc:auto kompiliert wird.

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

Im folgenden Beispiel wird C3533 im C++14-Modus generiert, da er einen Vorlagenparameter mit dem auto Schlüsselwort (keyword) deklariert und mit /Zc:auto kompiliert wird. (In C++17 ist dies eine gültige Definition einer Klassenvorlage mit einem einzelnen Nichttypvorlagenparameter, dessen Typ abgeleitet ist.)

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

Siehe auch

Auto-Schlüsselwort
/Zc:auto (Variablentyp ableiten)