We recommend using Visual Studio 2017

Compiler Error C3533

 

The latest version of this topic can be found at Compiler Error C3533.

type': a parameter cannot have a type that contains 'auto'

A method or template parameter cannot be declared with the auto keyword if the default /Zc:auto compiler option is in effect.

To correct this error

  1. Remove the auto keyword from the parameter declaration.

The following example yields C3535 because it declares a function parameter with the auto keyword and it is compiled with /Zc:auto.

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

The following example yields C3535 because it declares a template parameter with the auto keyword and it is compiled with /Zc:auto.

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

auto Keyword
/Zc:auto (Deduce Variable Type)

Show: