- 模板
template<typename Fn>explicit Pormise(QObject *parent, IWorkObj * work, Fn successS)
- std:function<>
explicit Pormise(QObject *parent, IWorkObj * work, std::function<void(QString)> successS);
用template<class Fn>可以不依赖STL,且是编译期多态,不过这样每个匿名函数都会产生一个新的函数实例。而用std::function<>实现多态,可以缩小模版实例化范围,但是运行时多态。各有利弊。如果是简单函数,建议前者,写成inline,复杂函数还是后者好。
参考:https://www.zhihu.com/question/48354089?sort=created