gpt4 book ai didi

c++ - 在声明它的同一行中调用 C++ 递归 lambda

转载 作者:IT老高 更新时间:2023-10-28 22:10:08 26 4
gpt4 key购买 nike

这主要是一个单行样式类型的问题,出于可读性原因,我通常会在多行中编写此代码。

所以我的问题是我可以在定义它的同一语句中调用递归 lambda 吗?

所以不要这样:

int n=3;
function<void(int)> f {[n,&f](int i){if (i>1) { cout << "func(a, "; f(i-1); cout << ")";} else cout << "a";}};
f(n);

在定义 f 的同一行中使用 n 调用函数。

最佳答案

在一个声明多个变量的语句中 ;-)
大多不是你想要的:

std::function<void(int)>
f {[&f](int i){
if (i>1) {
std::cout << "func(a, "; f(i-1); std::cout << ")";}
else
std::cout << "a";
}},
dummy((f(3), nullptr));

Demo

关于c++ - 在声明它的同一行中调用 C++ 递归 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com