libsigc++: sigc::trackable_signal< T_return(T_arg...)> Class Template Reference

libsigc++ 3.8.1

Classes | Public Types | Public Member Functions | List of all members
sigc::trackable_signal< T_return(T_arg...)> Class Template Reference
Signals

trackable_signal can be used to connect() slots that are invoked during subsequent calls to emit(). More...

`#include <sigc++/signal.h>`

Inheritance diagram for sigc::trackable_signal< T_return(T_arg...)>:
[legend]

## Classes
class | accumulated
| Like sigc::trackable_signal but the additional template parameter T_accumulator defines the accumulator type that should be used. More...

## Public Types
using | accumulator_type = void
Public Types inherited from sigc::trackable_signal_with_accumulator< T_return, void, T_arg... >
using | slot_type = slot< T_return(T_arg...)>
Public Types inherited from sigc::signal_base
using | size_type = std::size_t
Public Types inherited from sigc::trackable
using | func_destroy_notify = internal::func_destroy_notify
Public Types inherited from sigc::notifiable
using | func_destroy_notify = internal::func_destroy_notify

## Public Member Functions
| trackable_signal ()=default
| trackable_signal (const trackable_signal &src)
| trackable_signal (trackable_signal &&src)
trackable_signal & | operator= (const trackable_signal &src)
trackable_signal & | operator= (trackable_signal &&src)
Public Member Functions inherited from sigc::trackable_signal_with_accumulator< T_return, void, T_arg... >
| trackable_signal_with_accumulator ()=default
| trackable_signal_with_accumulator (const trackable_signal_with_accumulator &src)
| trackable_signal_with_accumulator (trackable_signal_with_accumulator &&src)
connection | connect (const slot_type & slot_)
| Add a slot at the end of the list of slots.
connection | connect (slot_type && slot_)
| Add a slot at the end of the list of slots.
connection | connect_first (const slot_type & slot_)
| Add a slot at the beginning of the list of slots.
connection | connect_first (slot_type && slot_)
| Add a slot at the beginning of the list of slots.
decltype(auto) | emit (type_trait_take_t< T_arg >... a) const
| Triggers the emission of the signal.
decltype(auto) | make_slot () const
| Creates a functor that calls emit() on this signal.
decltype(auto) | operator() (type_trait_take_t< T_arg >... a) const
| Triggers the emission of the signal (see emit()).
trackable_signal_with_accumulator & | operator= (const trackable_signal_with_accumulator &src)
trackable_signal_with_accumulator & | operator= (trackable_signal_with_accumulator &&src)
Public Member Functions inherited from sigc::signal_base
| signal_base () noexcept
| signal_base (const signal_base &src) noexcept
| signal_base (signal_base &&src)
| ~signal_base ()
void | block (bool should_block=true) noexcept
| Sets the blocking state of all slots in the list.
bool | blocked () const noexcept
| Returns whether all slots in the list are blocked.
void | clear ()
| Empties the list of slots.
bool | empty () const noexcept
| Returns whether the list of slots is empty.
signal_base & | operator= (const signal_base &src)
signal_base & | operator= (signal_base &&src)
size_type | size () const noexcept
| Returns the number of slots in the list.
void | unblock () noexcept
| Unsets the blocking state of all slots in the list.
Public Member Functions inherited from sigc::trackable
| trackable () noexcept
| trackable (const trackable &src) noexcept
| trackable (trackable &&src) noexcept
| ~trackable ()
void | add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
| Add a callback that is executed (notified) when the trackable object is detroyed.
void | notify_callbacks ()
| Execute and remove all previously installed callbacks.
trackable & | operator= (const trackable &src)
trackable & | operator= (trackable &&src) noexcept
void | remove_destroy_notify_callback (notifiable *data) const
| Remove a callback previously installed with add_destroy_notify_callback().

## Additional Inherited Members
Protected Types inherited from sigc::signal_base
using | iterator_type = internal::signal_impl::iterator_type
Protected Member Functions inherited from sigc::signal_base
iterator_type | connect (const slot_base & slot_)
| Adds a slot at the end of the list of slots.
iterator_type | connect (slot_base && slot_)
| Adds a slot at the end of the list of slots.
iterator_type | connect_first (const slot_base & slot_)
| Adds a slot at the beginning of the list of slots.
iterator_type | connect_first (slot_base && slot_)
| Adds a slot at the beginning of the list of slots.
std::shared_ptr< internal::signal_impl > | impl () const
| Returns the signal_impl object encapsulating the list of slots.
iterator_type | insert (iterator_type i, const slot_base & slot_)
| Adds a slot at the given position into the list of slots.
iterator_type | insert (iterator_type i, slot_base && slot_)
| Adds a slot at the given position into the list of slots.
Protected Attributes inherited from sigc::signal_base
std::shared_ptr< internal::signal_impl > | impl_
| The signal_impl object encapsulating the slot list.

## Detailed Description

template <typename T_return, typename... T_arg>
class sigc::trackable_signal< T_return(T_arg...)>

trackable_signal can be used to connect() slots that are invoked during subsequent calls to emit().

Any functor or slot can be passed into connect() or connect_first(). It is converted into a slot implicitly.

If you want to connect one signal to another, use make_slot() to retrieve a functor that emits the signal when invoked.

Be careful if you directly pass one signal into the connect() or connect_first() method of another: a shallow copy of the signal is made and the signal's slots are not disconnected until both the signal and its clone are destroyed, which is probably not what you want!

The template arguments determine the function signature of the emit() function:

- T_return The desired return type of the emit() function.
- T_arg Argument types used in the definition of emit().

For instance, to declare a trackable_signal whose connected slot returns void and takes two parameters of bool and int:

sigc::trackable_signal<void(bool, int)> some_signal;
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

To specify an accumulator type the nested class trackable_signal::accumulated can be used.

Example:
  void foo(int) {}
  sigc::trackable_signal<void(long)> sig;
  sig.connect(sigc::ptr_fun(&foo));
  sig.emit(19);

Since libsigc++ 3.4:

## Member Typedef Documentation

## ◆ accumulator_type

template <typename T_return , typename... T_arg>

using sigc::trackable_signal< T_return(T_arg...)>::accumulator_type = void

## Constructor & Destructor Documentation

## ◆ trackable_signal() [1/3]

template <typename T_return , typename... T_arg>

sigc::trackable_signal< T_return(T_arg...)>::trackable_signal | ( |  | ) |
| default

## ◆ trackable_signal() [2/3]

template <typename T_return , typename... T_arg>

sigc::trackable_signal< T_return(T_arg...)>::trackable_signal | ( | const trackable_signal< T_return(T_arg...)> & | src | ) |
| inline

## ◆ trackable_signal() [3/3]

template <typename T_return , typename... T_arg>

sigc::trackable_signal< T_return(T_arg...)>::trackable_signal | ( | trackable_signal< T_return(T_arg...)> && | src | ) |
| inline

## Member Function Documentation

## ◆ operator=() [1/2]

template <typename T_return , typename... T_arg>

trackable_signal & sigc::trackable_signal< T_return(T_arg...)>::operator= | ( | const trackable_signal< T_return(T_arg...)> & | src | ) |
| inline

## ◆ operator=() [2/2]

template <typename T_return , typename... T_arg>

trackable_signal & sigc::trackable_signal< T_return(T_arg...)>::operator= | ( | trackable_signal< T_return(T_arg...)> && | src | ) |
| inline