Compiler Error C3536

'symbol': cannot be used before it is initialized

The indicated symbol cannot be used before it is initialized. In practice, this means that a variable cannot be used to initialize itself.

To correct this error

  • Do not initialize a variable with itself.

The following example yields C3536 because each variable is initialized with itself.

// C3536.cpp
// Compile with /Zc:auto
int main()
   auto a = a;     //C3536
   auto b = &b;    //C3536
   auto c = c + 1; //C3536
   auto* d = &d;   //C3536
   auto& e = e;    //C3536
   return 0;