We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Compiler Error C3531

'symbol': a symbol whose type contains 'auto' must have an initializer

The specified variable does not have an initializer expression.

To correct this error

  • Specify an initializer expression, such as a simple assignment that uses equal-sign syntax, when you declare the variable.

The following example yields C3531 because variables x1, y1, y2, y3, and z2 are not initialized.

// C3531.cpp
// Compile with /Zc:auto
int main()
   auto x1;                  // C3531
   auto y1, y2, y3;          // C3531
   auto z1 = 1, z2, z3 = -1; // C3531
   return 0;