Errore del compilatore C3533
'type': un parametro non può avere un tipo che contiene 'auto'
Non è possibile dichiarare un metodo o un parametro di modello con la auto
parola chiave se l'opzione predefinita /Zc:auto del compilatore è attiva.
Per correggere l'errore
- Rimuovere la
auto
parola chiave dalla dichiarazione di parametro.
Esempi
L'esempio seguente restituisce C3533 perché dichiara un parametro di funzione con la auto
parola chiave e viene compilato con /Zc:auto.
// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533
L'esempio seguente restituisce C3533 in modalità C++14 perché dichiara un parametro di modello con la auto
parola chiave e viene compilato con /Zc:auto. In C++17 si tratta di una definizione valida di un modello di classe con un singolo parametro di modello non di tipo il cui tipo è dedotto.
// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533
Vedi anche
Auto (parola chiave)
/Zc:auto (deduzione del tipo di variabile)