Erro do compilador C3533
um parâmetro não pode ter um tipo que contenha 'auto'
Um método ou parâmetro de modelo não poderá ser declarado com a palavra-chave auto
se a opção de compilador padrão /Zc:auto estiver em vigor.
Para corrigir este erro
- Remova a palavra-chave
auto
da declaração de parâmetros.
Exemplos
O exemplo a seguir gera C3533 porque declara um parâmetro de função com a palavra-chave auto
, e é compilado com /Zc:auto.
// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533
O exemplo a seguir gera C3533 no modo C++14 porque declara um parâmetro de modelo com a palavra-chave auto
, e é compilado com /Zc:auto. (No C++17, essa é uma definição válida de um modelo de classe com um único parâmetro de modelo não tipo cujo tipo é deduzido.)
// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533