Compiler Error C3482

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 C3482.

this' can only be used as a lambda capture within a non-static member function

You cannot pass this to the capture list of a lambda expression that is declared in a static method or a global function.

To correct this error

  • Convert the enclosing function to a non-static method, or

  • Remove the this pointer from the capture list of the lambda expression.

The following example generates C3482:

// C3482.cpp  
// compile with: /c  
  
class C  
{  
public:  
   static void staticMethod()  
   {  
      [this] {}(); // C3482  
   }  
};  

Lambda Expressions

Show: