Partilhar via


Erro do compilador C3533

'tipo': um parâmetro não pode ter um tipo que contenha 'auto'

Observações

Um método ou parâmetro de modelo não pode ser declarado com a auto palavra-chave se a opção de compilador /Zc:auto padrão estiver em vigor.

Para corrigir este erro

  1. Remova a auto palavra-chave da declaração de parâmetro.

Examples

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 produz C3533 no modo C++14 porque declara um parâmetro de template com a palavra-chave auto e é compilado com /Zc:auto. (Em C++17, esta é uma definição válida de um template de classe com um único parâmetro de template não-tipo cujo tipo é deduzido.)

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

Consulte também

palavra-chave auto
/zc:auto (deduzir tipo de variável)