36template <
class... Types>
55 template <
class Obj,
class ObjMemberFn>
59 [=](Types... args) { return (*obj.*fn)(args...); });
65 template <
class Obj,
class Ret>
69 [=](Types... ) { return (*obj.*fn)(); });
77 template <
class Obj,
class Ret>
78 void connect(
const Obj* obj, Ret (Obj::*fn)()
const)
81 [=](Types... ) { return (*obj.*fn)(); });
88 class Enabled =
typename std::enable_if<
89 std::is_empty<std::tuple<Types...>(Types...)>::value,
91 void connect(
const std::function<
void()>& slot)
125template <
class Obj,
class ObjMemberFn>
128 connections_.emplace_back([=]() {
return (*obj.*fn)(); });
Basic signal class for implementing event callbacks.
void disconnect()
Remove all connections.
void connect(const Obj *obj, Ret(Obj::*fn)() const)
Connect a valued signal to a no-parameter object member function.
void send(Types... args) const
Signal all connections with parameters.
void connect(Obj *obj, ObjMemberFn &&fn)
Connect to an object's member function.
void connect(SlotFnType slot)
Connect to a free, static, or lambda function.
std::size_t numConnections() const
Get the number of connected slots.
void connect(Obj *obj, Ret(Obj::*fn)())
Connect a valued signal to a no-parameter object member function.
void connect(const std::function< void()> &slot)
Connect signals with parameters to functions without parameters.
std::function< void(Types...)> SlotFnType
void operator()(Types... args) const
Convenience operator: Calls Signal::send(args)
std::vector< Connection > connections_
Volume Cartographer library