libsigc++: track_obj()
sigc::track_obj() tracks trackable objects, referenced from a functor. More...
Functions | |
| template<typename T_functor , typename T_obj1 > | |
| track_obj_functor1< T_functor, T_obj1 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1) |
| Creates an adaptor of type sigc::track_obj_functor1 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 > | |
| track_obj_functor2< T_functor, T_obj1, T_obj2 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2) |
| Creates an adaptor of type sigc::track_obj_functor2 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 , typename T_obj3 > | |
| track_obj_functor3< T_functor, T_obj1, T_obj2, T_obj3 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2, const T_obj3& _A_obj3) |
| Creates an adaptor of type sigc::track_obj_functor3 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 , typename T_obj3 , typename T_obj4 > | |
| track_obj_functor4< T_functor, T_obj1, T_obj2, T_obj3, T_obj4 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2, const T_obj3& _A_obj3, const T_obj4& _A_obj4) |
| Creates an adaptor of type sigc::track_obj_functor4 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 , typename T_obj3 , typename T_obj4 , typename T_obj5 > | |
| track_obj_functor5< T_functor, T_obj1, T_obj2, T_obj3, T_obj4, T_obj5 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2, const T_obj3& _A_obj3, const T_obj4& _A_obj4, const T_obj5& _A_obj5) |
| Creates an adaptor of type sigc::track_obj_functor5 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 , typename T_obj3 , typename T_obj4 , typename T_obj5 , typename T_obj6 > | |
| track_obj_functor6< T_functor, T_obj1, T_obj2, T_obj3, T_obj4, T_obj5, T_obj6 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2, const T_obj3& _A_obj3, const T_obj4& _A_obj4, const T_obj5& _A_obj5, const T_obj6& _A_obj6) |
| Creates an adaptor of type sigc::track_obj_functor6 which wraps a functor. More... | |
| template<typename T_functor , typename T_obj1 , typename T_obj2 , typename T_obj3 , typename T_obj4 , typename T_obj5 , typename T_obj6 , typename T_obj7 > | |
| track_obj_functor7< T_functor, T_obj1, T_obj2, T_obj3, T_obj4, T_obj5, T_obj6, T_obj7 > | sigc::track_obj (const T_functor& _A_func, const T_obj1& _A_obj1, const T_obj2& _A_obj2, const T_obj3& _A_obj3, const T_obj4& _A_obj4, const T_obj5& _A_obj5, const T_obj6& _A_obj6, const T_obj7& _A_obj7) |
| Creates an adaptor of type sigc::track_obj_functor7 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. Up to 7 objects can be tracked. operator()() can have up to 7 arguments.
- Example:
- namespace sigc { SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE }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
|
inline |
Creates an adaptor of type sigc::track_obj_functor1 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor2 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor3 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object. _A_obj3 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor4 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object. _A_obj3 Trackable object. _A_obj4 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor5 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object. _A_obj3 Trackable object. _A_obj4 Trackable object. _A_obj5 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor6 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object. _A_obj3 Trackable object. _A_obj4 Trackable object. _A_obj5 Trackable object. _A_obj6 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
|
inline |
Creates an adaptor of type sigc::track_obj_functor7 which wraps a functor.
- Parameters
-
_A_func Functor that shall be wrapped. _A_obj1 Trackable object. _A_obj2 Trackable object. _A_obj3 Trackable object. _A_obj4 Trackable object. _A_obj5 Trackable object. _A_obj6 Trackable object. _A_obj7 Trackable object.
- Returns
- Adaptor that executes _A_func() on invocation.
