<分区>
为什么我们需要 std::invoke
,而我们已经有了 std::function
?它们之间有什么区别?两者都用于调用可调用对象。添加新模板有什么意义?
<分区>
为什么我们需要 std::invoke
,而我们已经有了 std::function
?它们之间有什么区别?两者都用于调用可调用对象。添加新模板有什么意义?
最佳答案
std::invoke
是激活任何 可调用对象的通用方法 - std::function
,一个指向函数的指针,一个指针到成员函数、函数对象等。无需知道您正在处理的是哪一个(也不必使用不同的语法)。它主要用于泛型编程(模板)。
另一方面,标准函数是可调用“事物”的通用容器。完全不一样..
关于c++ - std::invoke 和 std::function 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398740/