Wie gehe ich mit der impliziten Werterfassung von „this“ um, die in C++20 veraltet ist?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie gehe ich mit der impliziten Werterfassung von „this“ um, die in C++20 veraltet ist?

Post by Anonymous »

Wie im Artikel P0409R2 vorgeschlagen
Ich gehe davon aus, dass die Definition von />
Fehler C3791: „Dies“ kann nicht explizit erfasst werden, wenn der Standarderfassungsmodus „Kopieren“ ist (=)

Live-Code

Code: Select all

#include 

struct  X {
void  f()
{
int  value = 3;

auto  x = [=] {         // Deprecated from C++20:
return  value + g();
};

auto  y = [=, this] {   // Recommended method from C++20:
return  value + g();  // [=] The this pointer will not be captured, so capture with specifying this
};
}

int g() const
{
return  2;
}
};

int  main()
{
X().f();
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post