:lambda, statik üye işlevini çağırmak için 'bunu' kaydetmeyi mi gerektiriyor? Aşağıdaki kod için
struct B
{
void g()
{
[]() { B::f(); }();
}
static void f();
};
g ++ 4.6 hata verir:
test.cpp: In lambda function:
test.cpp:44:21: error: 'this' was not captured for this lambda function
(İlginç bir şekilde, g ++ 4.5 kod ince derler).
Bu, g ++ 4.6'daki bir hata mı, yoksa statik üye işlevini çağırabilmek için 'bu' parametresini yakalamak gerçekten gerekli mi? Neden olduğunu anlamıyorum, hatta B::
ile aramayı bile nitelendirdim.
Bu, bir hata olur. –
Yine de GCC 4.7.2'deki bir hata. Bu 'yakalama' olarak eklemek hala işe yarıyor. –
GCC 4.8'de düzeltilmiştir. – akim