4da94fc3创建于 2018年10月16日历史提交
#pragma once

#include "../common.h"

namespace cq::utils {
    template <typename ReturnType, typename... Params, typename... Args>
    static ReturnType call_if_valid(std::function<ReturnType(Params...)> func, Args &&... args) {
        if (func) {
            return func(std::forward<Args>(args)...);
        }
        return {};
    }

    template <typename... Params, typename... Args>
    static void call_if_valid(std::function<void(Params...)> func, Args &&... args) {
        if (func) {
            func(std::forward<Args>(args)...);
        }
    }
} // namespace cq::utils