在lambda表达式中调用方法 [英] Call method inside lambda expression
本文介绍了在lambda表达式中调用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在lambda表达式中调用我的类的方法:
I want to call a method of my class inside a lambda expression:
void my_class::my_method(my_obj& obj)
{
}
void my_class::test_lambda()
{
std::list<my_obj> my_list;
std::for_each(my_list.begin(), my_list.end(), [](my_obj& obj)
{
// Here I want to call my_method:
// my_method(obj);
});
}
我该怎么办?
推荐答案
您需要显式或隐式地捕获 c>:
You need to capture this
, either explicitly or implicitly:
std::for_each(l.begin(), l.end(),
[this](my_obj& o){ // or [=] or [&]
my_method(o); // can be called as if the lambda was a member
});
这篇关于在lambda表达式中调用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文