最佳答案
你知道,我们可以把 lambda 函数包装或存储到 std::function
:
#include <iostream>
#include <functional>
int main()
{
std::function<float (float, float)> add = [](float a, float b)
// ^^^^^^^^^^^^^^^^^^^^
{
return a + b;
};
std::cout << add(1, 2) << std::endl;
}
我的问题是围绕 std::function
,因为你可以看到它是一个模板类,但它可以接受任何类型的 功能特征。
例如 float (float, float)
的这种形式 return_value (first_arg, second_arg)
。
std::function
的结构是什么? 它如何接受像 x(y,z)
这样的函数签名? 它如何使用它?float (float, float)
是 C + + 中一个新的有效表达式吗?