Поделиться через


Ошибка компилятора C3533

"type": параметр не может иметь тип, содержащий "auto"

Параметр метода или шаблона нельзя объявить с помощью ключевого auto слова, если параметр компилятора по умолчанию /Zc:auto compiler действует.

Исправление ошибки

  1. Удалите ключевое auto слово из объявления параметра.

Примеры

В следующем примере возвращается C3533, так как он объявляет параметр функции с auto ключевым словом и компилируется с параметром /Zc:auto.

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

В следующем примере в режиме C++14 возвращается C3533, так как он объявляет параметр шаблона с auto ключевым словом и компилируется с /Zc:auto. (В C++17 это допустимое определение шаблона класса с одним параметром шаблона нетипа, тип которого выводится.)

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

См. также

Ключевое слово auto
/Zc:auto (выведение типа переменной)