在与声明相同的行中从 lambda 返回值
Returning value from lambda in the same line with declaration
有时用函数表示一个值会更容易,而 lambda 表达式对此很有用。但是有什么方法可以从 lambda 声明中获取 return 值吗?
例如:
int i = []{return 2;};
生成错误。如何在没有任何新代码行的情况下进行 lambda 声明 return 2
?
就像使用调用operator()
调用任何函数一样,您需要调用lambda。
int i = []{return 2;}();
// ^^
除提供的答案外。这称为立即调用的函数表达式 (IIFE),有时也称为立即调用的 lambda 表达式。 (FF来源于C++在其他语言中广泛使用)
int i = []{return 2;}(); // () invokes the lambda AKA call operator
有时用函数表示一个值会更容易,而 lambda 表达式对此很有用。但是有什么方法可以从 lambda 声明中获取 return 值吗?
例如:
int i = []{return 2;};
生成错误。如何在没有任何新代码行的情况下进行 lambda 声明 return 2
?
就像使用调用operator()
调用任何函数一样,您需要调用lambda。
int i = []{return 2;}();
// ^^
除提供的答案外。这称为立即调用的函数表达式 (IIFE),有时也称为立即调用的 lambda 表达式。 (FF来源于C++在其他语言中广泛使用)
int i = []{return 2;}(); // () invokes the lambda AKA call operator