Compiler Error C3493

Visual Studio 2015
 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

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

var' cannot be implicitly captured because no default capture mode has been specified

The empty lambda expression capture, [], specifies that the lambda expression does not explicitly or implicitly capture any variables.

To correct this error

  • Provide a default capture mode, or

  • Explicitly capture one or more variables.

The following example generates C3493 because it modifies an external variable but specifies the empty capture clause:

// C3493a.cpp  
  
int main()  
{  
   int m = 55;  
   [](int n) { m = n; }(99); // C3493  
}  

The following example resolves C3493 by specifying by-reference as the default capture mode.

// C3493b.cpp  
  
int main()  
{  
   int m = 55;  
   [&](int n) { m = n; }(99);  
}  

Lambda Expressions

Show: