libsigc++: sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > Class Template Reference

libsigc++ 2.12.2

Public Types | Public Member Functions | List of all members
sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > Class Template Reference
Functors » Slots

Converts an arbitrary functor to a unified type which is opaque. More...

`#include <sigc++/functors/slot.h>`

Inheritance diagram for sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >:
[legend]

## Public Types
typedef type_trait_take_t< T_arg1 > | arg1_type_
typedef type_trait_take_t< T_arg2 > | arg2_type_
typedef type_trait_take_t< T_arg3 > | arg3_type_
typedef type_trait_take_t< T_arg4 > | arg4_type_
typedef type_trait_take_t< T_arg5 > | arg5_type_
typedef T_return | result_type
Public Types inherited from sigc::slot_base
typedef trackable::func_destroy_notify | func_destroy_notify

## Public Member Functions
| slot5 ()
| slot5 (const slot5 &src)
| Constructs a slot, copying an existing one.
template <class T_functor >
| slot5 (const T_functor &_A_func)
| Constructs a slot from an arbitrary functor.
| slot5 (slot5 &&src)
| Constructs a slot, moving an existing one.
T_return | operator() (arg1_type_ _A_a1, arg2_type_ _A_a2, arg3_type_ _A_a3, arg4_type_ _A_a4, arg5_type_ _A_a5) const
| Invoke the contained functor unless slot is in blocking state.
slot5 & | operator= (const slot5 &src)
| Overrides this slot, making a copy from another slot.
slot5 & | operator= (slot5 &&src)
| Overrides this slot, making a move from another slot.
Public Member Functions inherited from sigc::slot_base
| slot_base () noexcept
| Constructs an empty slot.
| slot_base (const slot_base &src)
| Constructs a slot, copying an existing one.
| slot_base (rep_type *rep) noexcept
| Constructs a slot from an existing slot_rep object.
| slot_base (slot_base &&src)
| Constructs a slot, moving an existing one.
| ~slot_base ()
void | add_destroy_notify_callback (void *data, func_destroy_notify func) const
| Add a callback that is executed (notified) when the slot is detroyed.
bool | block (bool should_block=true) noexcept
| Sets the blocking state.
bool | blocked () const noexcept
| Returns whether the slot is blocked.
void | disconnect ()
| Disconnects the slot.
bool | empty () const noexcept
| Returns whether the slot is invalid.
| operator bool () const noexcept
| Tests whether a slot is null, because the default constructor was used.
slot_base & | operator= (const slot_base &src)
| Overrides this slot, making a copy from another slot.
slot_base & | operator= (slot_base &&src)
| Overrides this slot, making a move from another slot.
void | remove_destroy_notify_callback (void *data) const
| Remove a callback previously installed with add_destroy_notify_callback().
void | set_parent (void *parent, void *(*cleanup)(void *)) const noexcept
| Sets the parent of this slot.
bool | unblock () noexcept
| Unsets the blocking state.

## Additional Inherited Members
Public Attributes inherited from sigc::slot_base
bool | blocked_
| Indicates whether the slot is blocked.
rep_type * | rep_
| Typed slot_rep object that contains a functor.

## Detailed Description

template <class T_return, class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
class sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >

Converts an arbitrary functor to a unified type which is opaque.

sigc::slot itself is a functor or to be more precise a closure. It contains a single, arbitrary functor (or closure) that is executed in operator()().

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

- T_return The return type of operator()().
- T_arg1 Argument type used in the definition of operator()(). The default `nil` means no argument.
- T_arg2 Argument type used in the definition of operator()(). The default `nil` means no argument.
- T_arg3 Argument type used in the definition of operator()(). The default `nil` means no argument.
- T_arg4 Argument type used in the definition of operator()(). The default `nil` means no argument.
- T_arg5 Argument type used in the definition of operator()(). The default `nil` means no argument.

To use simply assign the desired functor to the slot. If the functor is not compatible with the parameter list defined with the template arguments compiler errors are triggered. When called the slot will invoke the functor with minimal copies. block() and unblock() can be used to block the functor's invocation from operator()() temporarily.

You should use the more convenient unnumbered sigc::slot template.

Deprecated:
  Please use the syntax similar to that used by std::function<>:

sigc::slot<void(bool, int)> some_slot;
sigc::slot
Convenience wrapper for the numbered sigc::slot# templates.
Definition slot.h:1685
sigc::bind
bind_functor< I_location, T_functor, T_bound1 > bind(const T_functor &_A_func, T_bound1 _A_b1)
Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor.
Definition bind.h:2114

## Member Typedef Documentation

## ◆ arg1_type_

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef type_trait_take_t<T_arg1> sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::arg1_type_

## ◆ arg2_type_

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef type_trait_take_t<T_arg2> sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::arg2_type_

## ◆ arg3_type_

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef type_trait_take_t<T_arg3> sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::arg3_type_

## ◆ arg4_type_

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef type_trait_take_t<T_arg4> sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::arg4_type_

## ◆ arg5_type_

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef type_trait_take_t<T_arg5> sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::arg5_type_

## ◆ result_type

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

typedef T_return sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::result_type

## Constructor & Destructor Documentation

## ◆ slot5() [1/4]

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::slot5 | ( |  | ) |
| inline

## ◆ slot5() [2/4]

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >
template <class T_functor >

sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::slot5 | ( | const T_functor & | _A_func | ) |
| inline

Constructs a slot from an arbitrary functor.

Parameters

  _A_func | The desired functor the new slot should be assigned to.

## ◆ slot5() [3/4]

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::slot5 | ( | const slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > & | src | ) |
| inline

Constructs a slot, copying an existing one.

Parameters

  src | The existing slot to copy.

## ◆ slot5() [4/4]

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::slot5 | ( | slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > && | src | ) |
| inline

Constructs a slot, moving an existing one.

If `src` is connected to a parent (e.g. a signal), it is copied, not moved.

Parameters

  src | The existing slot to move or copy.

## Member Function Documentation

## ◆ operator()()

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

T_return sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::operator() | ( | arg1_type_ | _A_a1,
|  | arg2_type_ | _A_a2,
|  | arg3_type_ | _A_a3,
|  | arg4_type_ | _A_a4,
|  | arg5_type_ | _A_a5
| ) |  | const
| inline

Invoke the contained functor unless slot is in blocking state.

Parameters

  _A_a1 | Argument to be passed on to the functor.
  _A_a2 | Argument to be passed on to the functor.
  _A_a3 | Argument to be passed on to the functor.
  _A_a4 | Argument to be passed on to the functor.
  _A_a5 | Argument to be passed on to the functor.

Returns
  The return value of the functor invocation.

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

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

slot5 & sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::operator= | ( | const slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > & | src | ) |
| inline

Overrides this slot, making a copy from another slot.

Parameters

  src | The slot from which to make a copy.

Returns
  `this`.

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

template <class T_return , class T_arg1 , class T_arg2 , class T_arg3 , class T_arg4 , class T_arg5 >

slot5 & sigc::slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 >::operator= | ( | slot5< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5 > && | src | ) |
| inline

Overrides this slot, making a move from another slot.

If `src` is connected to a parent (e.g. a signal), it is copied, not moved.

Parameters

  src | The slot from which to move or copy.

Returns
  `this`.