gpt4 book ai didi

c++ - 在 C++ 中使用 auto 声明 lambda 变量的首选方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:54 24 4
gpt4 key购买 nike

有没有人了解使用 auto 声明 lambda 变量的各种方法的优缺点?
例如:

 auto Val = [] { };           // #1
const auto &LVRef = [] { }; // #2
auto &&RVRef = [] { }; // #3

谁能想出一个令人信服的理由来不总是喜欢#1?

我想对于模板函数,声明可调用参数的首选方法是使用通用引用?

template<class F> void foo(F&& f) { f(); }

还是大多数指南更愿意将其声明为非引用参数?

template<class F> void foo(F f) { f(); }

谢谢!

最佳答案

Can anyone think of a compelling reason to not always prefer #1?

没有。 #1 更简单,与其他选项相比没有性能损失。

获取仿函数的算法通常只是按值获取它们,但如果您想保证不会出于某种原因复制仿函数,则使用通用引用是合理的。如果您正在编写仅转发仿函数的内容,请使用通用引用。

关于c++ - 在 C++ 中使用 auto 声明 lambda 变量的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918762/

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