c++ std::function的使用
作者:互联网
类模板 std::function 是一种通用的多态函数包装器。
std::function 可以存储、复制和调用任何 Callable 目标的实例、函数、lambda 表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。
所存储的可调用对象被称为目标的 std::function,不包含目标的 std::function 将其称为空,调用目标为空的 std::function,结果为 std :: bad_function_call 抛出异常。
一个例子说明 std::function 的使用:
#include <iostream> #include <functional> auto g_lambda = [](int a, int b) -> int { return a + b; }; int add(int a, int b) { return a + b; } class Add { public: int operator () (int a, int b) { return a + b; } }; int main() { std::function<int(int, int)> func1 = add; int result1 = func1(1, 2); std::cout << "result1: " << result1 << std::endl; std::function<int(int, int)> func2 = g_lambda; int result2 = func2(1, 3); std::cout << "result2: " << result2 << std::endl; std::function<int(int, int)> func3 = Add(); int result3 = func3(1, 4); std::cout << "result2: " << result3 << std::endl; return 0; }
// 输出结果为:
// result1: 3
// result2: 4
// result2: 5
标签:std,function,return,cout,int,result2,c++ 来源: https://www.cnblogs.com/tongyishu/p/13194348.html