为啥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(); ;

[&amp;]() blueout.printName(); 部分称为 lambda 表达式。你将它绑定到某个变量a。现在你有了一个由 lambda 表达式创建的函数对象 a。为了看到效果,必须调用它:

a();

【讨论】:

以上是关于为啥lambda中的变量无法调用函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥要缓存对 MySQL RDS 的 AWS Lambda python 调用?

在 Java Lambda 中,为啥在捕获的变量上调用 getClass()

为啥 std::apply 可以调用 lambda 而不是等效的模板函数?

Python:不明白为啥在 GUI“command=”中需要 lambda 来调用函数 [重复]

lambda 函数对象中的静态变量如何工作?

为啥使用 lambda 函数?