Udostępnij za pośrednictwem


Błąd kompilatora C3533

"type": parametr nie może mieć typu zawierającego wartość "auto"

Nie można zadeklarować metody lub parametru szablonu ze auto słowem kluczowym, jeśli domyślna opcja /Zc:auto compiler jest w mocy.

Aby poprawić ten błąd

  1. auto Usuń słowo kluczowe z deklaracji parametru.

Przykłady

Poniższy przykład zwraca wartość C3533, ponieważ deklaruje parametr funkcji za pomocą słowa kluczowego auto i jest kompilowany za pomocą /Zc:auto.

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

Poniższy przykład daje C3533 w trybie C++14, ponieważ deklaruje parametr szablonu za pomocą słowa kluczowego auto i jest kompilowany z /Zc:auto. (W języku C++17 jest to prawidłowa definicja szablonu klasy z pojedynczym parametrem szablonu innego niż typ, którego typ jest wywoływany).

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

Zobacz też

Auto, słowo kluczowe
/Zc:auto (Dedukuj typ zmiennej)