您知道,我们可以将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 ++中是否有新的有效表达式?