gpt4 book ai didi

c++ - 递归 lambda : pass by reference or universal reference?

转载 作者:行者123 更新时间:2023-12-04 12:55:58 40 4
gpt4 key购买 nike

当我需要实现递归 lambda 时,通常我这样做:

auto factorial = [](auto& self, int n) -> int {
return n == 0 ? 1 : n * self(self, n - 1);
};
并用 factorial(factorial, n) 调用它.但是,我看到有人声明参数 self带类型 auto&&而不是 auto& .有什么不同?

最佳答案

What's the difference?


对示例的非常量的左值引用不能绑定(bind)到右值。

and call it with factorial(factorial, n)


如果您不打算传递右值,则差异没有实际意义。

关于c++ - 递归 lambda : pass by reference or universal reference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67651303/

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