40template <
typename JoinT,
typename JoinArg>
44 using Type = std::function<JoinT(JoinT&, JoinArg&&)>;
49 template <
typename Func>
51 : m_func(
std::forward<Func>(func))
54 template <
typename... Args>
57 return std::move(m_func(std::forward<Args>(args)...));
61 Type m_func = [](JoinT& lhs, JoinArg&&) {
return lhs; };
66template <
typename JoinArg>
70 using Type = std::function<void(JoinArg)>;
75 template <
typename Func>
77 : m_func(
std::forward<Func>(func))
80 template <
typename... Args>
83 m_func(std::forward<Args>(args)...);
87 Type m_func = [](JoinArg) {};
96 using Type = std::function<void()>;
101 template <
typename Func>
103 : m_func(
std::forward<Func>(func))
109 Type m_func = []() {};
#define PTL_DEFAULT_OBJECT(NAME)
JoinFunction(Func &&func)
std::function< void(JoinArg)> Type
void operator()(Args &&... args)
std::function< void()> Type
JoinFunction(Func &&func)
JoinT & operator()(Args &&... args)
JoinFunction(Func &&func)
std::function< JoinT(JoinT &, JoinArg &&)> Type