Cof*_*ode 10 c++ functor c++17
如"可能的实现"所示,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)...);
}
Run Code Online (Sandbox Code Playgroud)
过度:
template<typename F, typename ... Args>
decltype(auto) func(F &&f, Args &&... args){
return std::forward<F>(f)(std::forward<Args>(args)...);
}
Run Code Online (Sandbox Code Playgroud)
?