C++11 std::function
1 为什么需要 std::function
// 如果只接受普通函数指针,就无法传入 Lambda 或 Functor
void process(int value, void(*callback)(int)) {
// ... do something ...
callback(value);
}
auto my_lambda = [](int x) { /* ... */ };
// process(10, my_lambda); // 编译错误!Lambda 类型和函数指针类型不匹配2 如何使用 std::function
2.1 语法
2.2 例子
3 std::function 实现机制
3.1 性能开销
3.2 所有权
最后更新于