libsigc++: track_obj(), track_object()

libsigc++ 3.8.1

Classes | Functions
track_obj(), track_object()
Adaptors

sigc::track_object() 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.
template <typename T_functor , typename T_obj1 , typename... T_objs>
decltype(auto) | sigc::track_object (const T_functor &func, const T_obj1 &obj1, const T_objs &... objs)
| Creates an adaptor of type sigc::track_obj_functor which wraps a functor.

## Detailed Description

sigc::track_object() 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_object() is formally an adaptor, but it does not alter the signature, return type or behaviour of the supplied functor.

track_obj() is a deprecated alternative to track_object().

Example:
  struct bar : public sigc::trackable {};
  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 scope
  some_signal.connect(sigc::track_object([&some_bar](){ foo(some_bar); }, some_bar);
  // disconnected automatically when some_bar goes out of scope
  }
  sigc::ptr_fun
  decltype(auto) ptr_fun(T_return(*func)(T_args...))
  Creates a functor of type sigc::pointer_functor which wraps an existing non-member function.
  Definition ptr_fun.h:107
  sigc::track_object
  decltype(auto) track_object(const T_functor &func, const T_obj1 &obj1, const T_objs &... objs)
  Creates an adaptor of type sigc::track_obj_functor which wraps a functor.
  Definition track_obj.h:161
  sigc::trackable
  Base class for objects with auto-disconnection.
  Definition trackable.h:115

## Function Documentation

## ◆ track_obj()

template <typename T_functor , typename... T_obj>

decltype(auto) sigc::track_obj | ( | const T_functor & | func,
|  | const T_obj &... | 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.

Since libsigc++ 2.4:

Deprecated:
  Use sigc::track_object() instead.

## ◆ track_object()

template <typename T_functor , typename T_obj1 , typename... T_objs>

decltype(auto) sigc::track_object | ( | const T_functor & | func,
|  | const T_obj1 & | obj1,
|  | const T_objs &... | objs
| ) |  |
| inline

Creates an adaptor of type sigc::track_obj_functor which wraps a functor.

Parameters

  func | Functor that shall be wrapped.
  obj1 | Trackable object, derived directly or indirectly from sigc::trackable.
  objs | Zero or more trackable objects, derived directly or indirectly from sigc::trackable.

Returns
  Adaptor that executes func() on invocation.

Since libsigc++ 3.4: