libsigc++: track_obj()
sigc::track_obj() tracks trackable objects, referenced from a functor. More...
Classes | |
class | sigc::track_obj_functor< T_functor, T_obj > |
track_obj_functor wraps a functor and stores a reference to a trackable object. More... | |
Functions | |
template<typename T_functor , typename... T_obj> | |
decltype(auto) | sigc::track_obj (const T_functor& func, const T_obj&...obj) |
Creates an adaptor of type sigc::track_obj_functor which wraps a functor. More... | |
Detailed Description
sigc::track_obj() tracks trackable objects, referenced from a functor.
It can be useful when you assign a C++11 lambda expression or a std::function<> to a slot, or connect it to a signal, and the lambda expression or std::function<> contains references to sigc::trackable derived objects.
The functor returned by sigc::track_obj() is formally an adaptor, but it does not alter the signature, return type or behaviour of the supplied functor.
- Example:
- sigc::signal<void()> some_signal;void foo(bar&);{bar some_bar;some_signal.connect([&some_bar](){ foo(some_bar); });// NOT disconnected automatically when some_bar goes out of scopesome_signal.connect(sigc::track_obj([&some_bar](){ foo(some_bar); }, some_bar);// disconnected automatically when some_bar goes out of scope}
Function Documentation
template <typename T_functor , typename... T_obj>
|
inline |
Creates an adaptor of type sigc::track_obj_functor which wraps a functor.
- Parameters
-
func Functor that shall be wrapped. obj Trackable objects.
- Returns
- Adaptor that executes func() on invocation.