내가 찾은 예제 this
는 람다에서 캡처 하여 명시 적으로 사용합니다. 예 :
capturecomplete = [this](){this->calstage1done();};
그러나 암시 적으로 사용할 수도 있습니다. 예 :
capturecomplete = [this](){calstage1done();};
나는 이것을 g ++로 테스트하고 컴파일했다.
이 표준 C ++입니까? (있는 경우 어떤 버전) 또는 어떤 형태의 확장입니까?
나는 이것을 볼 수 있지만, 동시에 간단한 작업이되어야하는 것에 대해 끔찍한 장황한 것처럼 보입니다.
—
plugwash
MSVC (2015
—
년만 가능)
this
@ plugwash : 개발자는 항상 게으르고 물건을 최소화하려는 경향이 있으며 언어 디자이너도 다르지 않습니다. 그러나, 모호성을 해결하기 위해 자세한 정보가 필요한 경우가 많으며, 여기에 해당됩니다.
—
Flater
this->
명시 적으로 사용하는 이유 는 명시 적으로 캡처 된 값이 명시 적으로 사용되도록하기위한 것입니다. 캡처되지[](){ calstage1done(); }
않기 때문에 합법적이지 않다는 점에 유의하십시오this
. 캡처 할 때하지만,this
명시 적으로 함수 몸을 위해, 그것은 놀라운 표시 실제로 캡처 된 값을 사용하지 않는 한 눈에 :[this](){ calstage1done(); }
.