diff --git a/fluent++/Callback.h b/fluent++/Callback.h index bb9a443..cdb3eb7 100644 --- a/fluent++/Callback.h +++ b/fluent++/Callback.h @@ -54,11 +54,20 @@ namespace detail } // detail template -typename detail::unwrap_callback<_CTy>::SharedCallbackType +using callback_of_t = typename detail::unwrap_callback<_CTy>::CallbackType; + +template +using shared_callback_of_t = typename detail::unwrap_callback<_CTy>::SharedCallbackType; + +template +using weak_callback_of_t = typename detail::unwrap_callback<_CTy>::WeakCallbackType; + +template +typename shared_callback_of_t<_CTy> make_shared_callback(_CTy&& callback) { - return std::make_shared::CallbackType> - (std::forward::CallbackType>(callback)); + return std::make_shared> + (std::forward>(callback)); } #endif /// _TASK_SCHEDULER_H_