参考答案
结论:std::function是通用函数包装器,lambda是匿名闭包,bind用于参数绑定,三者实现可调用对象统一。要点:lambda就地定义,编译器生成轻量functor,高效;std::function类型擦除可存储任意可调用对象,有开销;std::bind绑定部分参数生成新可调用体,C++11后常被lambda替代;关系:lambda可赋给function,bind结果也可存入function,如std::function<int(int,int)> fn = [](int a,int b){return a+b;}; auto b = std::bind(f,1,2);。建议优先用lambda。