为啥lambda中的变量无法调用函数[关闭]
Posted
技术标签:
【中文标题】为啥lambda中的变量无法调用函数[关闭]【英文标题】:Why the variable in lambda is not able to call the function [closed]为什么lambda中的变量无法调用函数[关闭] 【发布时间】:2020-08-07 09:59:41 【问题描述】:这是课程。
#include <iostream>
#include <string>
std::string strName = "ABC";
class BlueOut
public:
void printName() std::cout << strName << std::endl;
;
现在我创建这个类的一个对象
BlueOut blueout;
我在 lambda 中调用对象的函数 printName()
auto a = [&]() blueout.printName(); ;
但是函数没有被执行。
【问题讨论】:
你是否像a();
一样调用lambda?
由于没有 MCVE 而投票关闭,但可能您只是没有调用 lambda。
【参考方案1】:
在这一行,
auto a = [&]() blueout.printName(); ;
[&]() blueout.printName();
部分称为 lambda 表达式。你将它绑定到某个变量a
。现在你有了一个由 lambda 表达式创建的函数对象 a
。为了看到效果,必须调用它:
a();
【讨论】:
以上是关于为啥lambda中的变量无法调用函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥要缓存对 MySQL RDS 的 AWS Lambda python 调用?
在 Java Lambda 中,为啥在捕获的变量上调用 getClass()
为啥 std::apply 可以调用 lambda 而不是等效的模板函数?