gpt4 book ai didi

c++ - lambda 中的 Const 参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:58 26 4
gpt4 key购买 nike

如果我想创建 std::function<void(const Foo&)> 类型的 lambda .为什么删除参数的引用和常量性是合法的?这是有效的:

std::function<void(const Foo&)> f = [](Foo) {
// ...
};

最佳答案

If I want to make a lambda of type std::function<void(const Foo&)>

该类型不是 lambda,因此您不能拥有该类型的 lambda。我想您的意思是,您想将 lambda 存储在该类型的函数包装器中。

Why is it legal to drop the reference and the constness of the argument?

因为 Foo (lambda 的参数)可以从 const Foo& 初始化(函数包装器的参数)。您也可以在没有 lambda 的情况下执行此操作:

const Foo& ref{some_value};
Foo f {ref};

关于c++ - lambda 中的 Const 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57845595/

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