src/vt/utils/fntraits/fntraits.h file

Namespaces

namespace vt
namespace vt::util
namespace vt::util::fntraits
namespace vt::util::fntraits::detail

Classes

struct vt::util::fntraits::detail::NoMsg
template<typename enabled, typename... Args>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl
template<typename Obj, typename Return, typename Msg>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<(std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value) and std::is_pointer<Obj>::value>, Return(*)(Obj, Msg*)>
template<typename Obj, typename Return>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<not(std::is_convertible<Obj, vt::Message*>::value or std::is_convertible<Obj, vt::ShortMessage*>::value or std::is_convertible<Obj, vt::EpochMessage*>::value or std::is_convertible<Obj, vt::PayloadMessage*>::value) and std::is_pointer<Obj>::value>, Return(*)(Obj)>
template<typename Obj, typename Return, typename Arg, typename... Args>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<not(std::is_convertible<Arg, vt::Message*>::value or std::is_convertible<Arg, vt::ShortMessage*>::value or std::is_convertible<Arg, vt::EpochMessage*>::value or std::is_convertible<Arg, vt::PayloadMessage*>::value)>, Return(*)(Obj*, Arg, Args...)>
template<typename Obj, typename Return, typename Msg>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value>, Return(Obj::*)(Msg*)>
template<typename Obj, typename Return>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<std::is_same_v<void, void>>, Return(Obj::*)()>
template<typename Obj, typename Return, typename Arg, typename... Args>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<not(std::is_convertible<Arg, vt::Message*>::value or std::is_convertible<Arg, vt::ShortMessage*>::value or std::is_convertible<Arg, vt::EpochMessage*>::value or std::is_convertible<Arg, vt::PayloadMessage*>::value)>, Return(Obj::*)(Arg, Args...)>
template<typename Return, typename Msg>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value>, Return(*)(Msg*)>
template<typename Return>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<std::is_same_v<void, void>>, Return(*)()>
template<typename Return, typename Arg, typename... Args>
struct vt::util::fntraits::detail::ObjFuncTraitsImpl<std::enable_if_t<not std::is_pointer<Arg>::value>, Return(*)(Arg, Args...)>
template<typename enabled, typename... Args>
struct vt::util::fntraits::detail::FunctorTraitsImpl
template<typename FunctorT, typename Return, typename Msg>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value>, FunctorT, Return(FunctorT::*)(Msg*)>
template<typename FunctorT, typename Return>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<std::is_same_v<void, void>>, FunctorT, Return(FunctorT::*)()>
template<typename FunctorT, typename Return, typename Arg, typename... Args>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<not(std::is_convertible<Arg, vt::Message*>::value or std::is_convertible<Arg, vt::ShortMessage*>::value or std::is_convertible<Arg, vt::EpochMessage*>::value or std::is_convertible<Arg, vt::PayloadMessage*>::value)>, FunctorT, Return(FunctorT::*)(Arg, Args...)>
template<typename FunctorT, typename Return, typename Msg>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value>, FunctorT, Return(FunctorT::*)(Msg*) const>
template<typename FunctorT, typename Return>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<std::is_same_v<void, void>>, FunctorT, Return(FunctorT::*)() const>
template<typename FunctorT, typename Return, typename Arg, typename... Args>
struct vt::util::fntraits::detail::FunctorTraitsImpl<std::enable_if_t<not(std::is_convertible<Arg, vt::Message*>::value or std::is_convertible<Arg, vt::ShortMessage*>::value or std::is_convertible<Arg, vt::EpochMessage*>::value or std::is_convertible<Arg, vt::PayloadMessage*>::value)>, FunctorT, Return(FunctorT::*)(Arg, Args...) const>
template<typename enabled, typename... Args>
struct vt::util::fntraits::detail::CBTraitsImpl
template<typename Msg>
struct vt::util::fntraits::detail::CBTraitsImpl<std::enable_if_t<std::is_convertible<Msg*, vt::Message*>::value or std::is_convertible<Msg*, vt::ShortMessage*>::value or std::is_convertible<Msg*, vt::EpochMessage*>::value or std::is_convertible<Msg*, vt::PayloadMessage*>::value>, Msg>
template<>
struct vt::util::fntraits::detail::CBTraitsImpl<std::enable_if_t<std::is_same_v<void, void>>>
template<typename Arg, typename... Args>
struct vt::util::fntraits::detail::CBTraitsImpl<std::enable_if_t<not(std::is_convertible<Arg*, vt::Message*>::value or std::is_convertible<Arg*, vt::ShortMessage*>::value or std::is_convertible<Arg*, vt::EpochMessage*>::value or std::is_convertible<Arg*, vt::PayloadMessage*>::value)>, Arg, Args...>
template<typename... Args>
struct vt::ObjFuncTraits
template<typename... Args>
struct vt::FuncTraits
template<typename... Args>
struct vt::FunctorTraits
template<typename... Args>
struct vt::CBTraits