c – 为什么使用invoke帮助器而不只是调用函子?

前端之家收集整理的这篇文章主要介绍了c – 为什么使用invoke帮助器而不只是调用函子?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
std::apply的“可能实现”所示,我们看到标准库函数 std::invoke用于调用调用对象F.

在这种情况下是否需要?如果是这样,为什么呢?

写作的好处是什么?

template<typename F,typename ... Args>
decltype(auto) func(F &&f,Args &&... args){
    return std::invoke(std::forward<F>(f),std::forward<Args>(args)...);
}

过度:

template<typename F,Args &&... args){
    return std::forward<F>(f)(std::forward<Args>(args)...);
}

解决方法

指向成员的指针是Callable,并且调用(或者INVOKE,因为 soon-to-be-seven-bullet-point construct在标准中已知)的魔法处理这种情况(好的,四个并且很快将是六个实例),而函数调用语法没有.

猜你在找的C&C++相关文章