1 2 3 4 5 6
#include <utility> template <typename Fun, typename ... Args> inline decltype(auto) Invoke(Fun&& f, Args&&... args) noexcept(noexcept(std::forward<Fun>(f)(std::forward<Args>(args) ...))) { return std::forward<Fun>(f)(std::forward<Args>(args) ...); }