sigc::signal< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >::accumulated< T_accumulator > Class Template Reference
Signals

Convenience wrapper for the numbered sigc::signal# templates. More...

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

Inheritance diagram for sigc::signal< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >::accumulated< T_accumulator >:
[legend]

## Public Member Functions

| accumulated ()
| accumulated (const accumulated& src)
Public Member Functions inherited from sigc::signal7< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator >
| signal7 ()
| signal7 (const signal7& src)
| signal7 (signal7&& src)
iterator | connect (const slot_type& slot_)
| Add a slot to the list of slots. More...
result_type | emit (type_trait_take_t< T_arg1 > _A_a1, type_trait_take_t< T_arg2 > _A_a2, type_trait_take_t< T_arg3 > _A_a3, type_trait_take_t< T_arg4 > _A_a4, type_trait_take_t< T_arg5 > _A_a5, type_trait_take_t< T_arg6 > _A_a6, type_trait_take_t< T_arg7 > _A_a7) const
| Triggers the emission of the signal. More...
result_type | emit_reverse (type_trait_take_t< T_arg1 > _A_a1, type_trait_take_t< T_arg2 > _A_a2, type_trait_take_t< T_arg3 > _A_a3, type_trait_take_t< T_arg4 > _A_a4, type_trait_take_t< T_arg5 > _A_a5, type_trait_take_t< T_arg6 > _A_a6, type_trait_take_t< T_arg7 > _A_a7) const
| Triggers the emission of the signal in reverse order (see emit()). More...
bound_const_mem_functor7< result_type, signal7, type_trait_take_t< T_arg1 >, type_trait_take_t< T_arg2 >, type_trait_take_t< T_arg3 >, type_trait_take_t< T_arg4 >, type_trait_take_t< T_arg5 >, type_trait_take_t< T_arg6 >, type_trait_take_t< T_arg7 > > | make_slot () const
| Creates a functor that calls emit() on this signal. More...
result_type | operator() (type_trait_take_t< T_arg1 > _A_a1, type_trait_take_t< T_arg2 > _A_a2, type_trait_take_t< T_arg3 > _A_a3, type_trait_take_t< T_arg4 > _A_a4, type_trait_take_t< T_arg5 > _A_a5, type_trait_take_t< T_arg6 > _A_a6, type_trait_take_t< T_arg7 > _A_a7) const
| Triggers the emission of the signal (see emit()). More...
signal7& | operator= (const signal7& src)
signal7& | operator= (signal7&& src)
slot_list_type | slots ()
| Creates an STL-style interface for the signal's list of slots. More...
const slot_list_type | slots () const
| Creates an STL-style interface for the signal's list of slots. More...
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. More...
bool | blocked () const noexcept
| Returns whether all slots in the list are blocked. More...
void | clear ()
| Empties the list of slots. More...
bool | empty () const noexcept
| Returns whether the list of slots is empty. More...
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. More...
void | unblock () noexcept
| Unsets the blocking state of all slots in the list. More...
Public Member Functions inherited from sigc::trackable
| trackable () noexcept
| trackable (const trackable& src) noexcept
| trackable (trackable&& src)
| ~trackable ()
void | add_destroy_notify_callback (void* data, func_destroy_notify func) const
| Add a callback that is executed (notified) when the trackable object is detroyed. More...
void | notify_callbacks ()
| Execute and remove all previously installed callbacks. More...
trackable& | operator= (const trackable& src)
trackable& | operator= (trackable&& src)
void | remove_destroy_notify_callback (void* data) const
| Remove a callback previously installed with add_destroy_notify_callback(). More...

## Additional Inherited Members

Public Types inherited from sigc::signal7< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator >
typedef slot_list_type::const_iterator | const_iterator
typedef slot_list_type::const_reverse_iterator | const_reverse_iterator
typedef internal::signal_emit7< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator > | emitter_type
typedef slot_list_type::iterator | iterator
typedef emitter_type::result_type | result_type
typedef slot_list_type::reverse_iterator | reverse_iterator
typedef slot_list< slot_type > | slot_list_type
typedef slot< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 > | slot_type
Public Types inherited from sigc::signal_base
typedef std::size_t | size_type
Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify | func_destroy_notify
Protected Types inherited from sigc::signal_base
typedef internal::signal_impl::iterator_type | 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. More...
iterator_type | erase (iterator_type i)
| Removes the slot at the given position from the list of slots. More...
internal::signal_impl* | impl () const
| Returns the signal_impl object encapsulating the list of slots. More...
iterator_type | insert (iterator_type i, const slot_base& slot_)
| Adds a slot at the given position into the list of slots. More...
Protected Attributes inherited from sigc::signal_base
internal::signal_impl* | impl_
| The signal_impl object encapsulating the slot list. More...

## Detailed Description

### template<class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil>
template <class T_accumulator>
class sigc::signal< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >::accumulated< T_accumulator >

Convenience wrapper for the numbered sigc::signal# templates.

Like sigc::signal but the additional template parameter T_accumulator defines the accumulator type that should be used.

An accumulator is a functor that uses a pair of special iterators to step through a list of slots and calculate a return value from the results of the slot invokations. The iterators' operator*() executes the slot. The return value is buffered, so that in an expression like

a = (*i) * (*i);

the slot is executed only once. The accumulator must define its return value as `result_type`.

Example 1:
  This accumulator calculates the arithmetic mean value:
  struct arithmetic_mean_accumulator
  {
  typedef double result_type;
  template<typename T_iterator>
  result_type operator()(T_iterator first, T_iterator last) const
  {
  result_type value_ = 0;
  int n_ = 0;
  for (; first != last; ++first, ++n_)
  value_ += *first;
  return value_ / n_;
  }
  };

Example 2:
  This accumulator stops signal emission when a slot returns zero:
  struct interruptable_accumulator
  {
  typedef bool result_type;
  template<typename T_iterator>
  result_type operator()(T_iterator first, T_iterator last) const
  {
  for (; first != last; ++first, ++n_)
  if (!*first) return false;
  return true;
  }
  };

## Constructor & Destructor Documentation

template <class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil>
template <class T_accumulator >

sigc::signal< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >::accumulated< T_accumulator >::accumulated | ( |  | ) |

inline

template <class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil>
template <class T_accumulator >

sigc::signal< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 >::accumulated< T_accumulator >::accumulated | ( | const accumulated< T_accumulator >& | src | ) |

inline