在lambda中使用静态方法时出错 [英] error using static method in lambda
本文介绍了在lambda中使用静态方法时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 my_class
中有一个 static
方法 my_method_1()
,并且我试图在lambda中使用它:
I have a static
method my_method_1()
in my_class
, and I am trying to use it in a lambda:
static void my_method_1(el);
void my_class::my_method_2()
{
std::for_each(my_list_.begin(), my_list_.end(),
[](auto& element)
{
my_method_1(element);
});
}
gcc6给我一个错误:
gcc6 gives me an error:
此lambda函数未捕获"this"
'this' was not captured for this lambda function
在gcc4中,它会编译.
In gcc4, it compiles.
推荐答案
2个观察结果:
-
您的函数是静态的,您可以将其称为
my_class :: my_method_1()
您不需要在这里使用lambda,您尝试过吗?
You don't need to use a lambda here, have you tried this ?
void my_class::my_method_2()
{
for (auto& element : my_list)
my_method_1(element);
}
这篇关于在lambda中使用静态方法时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文