Compartilhar via


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

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

Confira também

Palavra-chave auto
/Zc:auto (deduzir tipo de variável)