标签: c++ callable c++17
当我们已经std::invoke时,为什么我们需要std::function?他们之间有什么区别?两者都用于调用可调用对象。添加新模板有什么意义?
std::invoke
std::function
答案 0 :(得分:8)
std::invoke是激活任何可调用的通用方法 - 一个std::function,一个指向函数的指针,一个指向成员函数的指针,一个函数对象等。无需知道你正在处理哪一个(并且不必使用不同的语法)。它在泛型编程(模板)中非常有用。
另一方面,标准函数是可调用“事物”的通用容器。完全不一样..