gpt4 book ai didi

c++ - 如何声明函数 vector (lambda)

转载 作者:可可西里 更新时间:2023-11-01 18:07:38 32 4
gpt4 key购买 nike

我已经了解了如何声明函数 vector (请参阅 calling a function from a vector)。

但这回答了用户的指点。如何使用现代 C++ 中的新语法创建函数/lambda vector ?

使用新语法的函数示例通常使用 auto:

auto f = [] (std::string msg) -> void { 
std::cout << msg << std::endl;
};

f 的实际类型是什么?这样我就可以声明这种类型的 vector 了吗?

非常感谢您的帮助

最佳答案

使用 std::function具有相应的类型:

std::vector<std::function<void(void)>> vec;
vec.push_back([]()->void{});

在您的情况下,它将是 std::function<void(std::string)> .

根据标准 ([expr.prim.lambda]/3),lambda 的确切类型没有意义:

The type of the lambda-expression (which is also the type of the closure object) is a unique, unnamed non-union class type

关于c++ - 如何声明函数 vector (lambda),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40736293/

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