Condividi tramite


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

  1. 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)