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

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

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

Inheritance diagram for sigc::slot< T_return(T_arg...)>:

Public Member Functions

 slot ()=default
 
template<typename T_functor >
 slot (const T_functor& func)
 Constructs a slot from an arbitrary functor. More...

 
 slot (const slot& src)=default
 Constructs a slot, copying an existing one. More...

 
 slot (slot&& src)
 Constructs a slot, moving an existing one. More...

 
T_return operator() (type_trait_take_t< T_arg >...a) const
 Invoke the contained functor unless slot is in blocking state. More...

 
slotoperator= (const slot& src)=default
 Overrides this slot, making a copy from another slot. More...

 
slotoperator= (slot&& src)
 Overrides this slot, making a move from another slot. More...

 
- Public Member Functions inherited from sigc::slot_base
 slot_base () noexcept
 Constructs an empty slot. More...

 
 slot_base (rep_type* rep) noexcept
 Constructs a slot from an existing slot_rep object. More...

 
 slot_base (const slot_base& src)
 Constructs a slot, copying an existing one. More...

 
 slot_base (slot_base&& src)
 Constructs a slot, moving an existing one. More...

 
 ~slot_base ()
 
void add_destroy_notify_callback (notifiable* data, notifiable::func_destroy_notify func) const
 Add a callback that is executed (notified) when the slot is destroyed. More...

 
bool block (bool should_block=true) noexcept
 Sets the blocking state. More...

 
bool blocked () const noexcept
 Returns whether the slot is blocked. More...

 
void disconnect ()
 Disconnects the slot. More...

 
bool empty () const noexcept
 Returns whether the slot is invalid. More...

 
 operator bool () const noexcept
 Tests whether a slot is null, because the default constructor was used. More...

 
slot_baseoperator= (const slot_base& src)
 Overrides this slot, making a copy from another slot. More...

 
slot_baseoperator= (slot_base&& src)
 Overrides this slot, making a move from another slot. More...

 
void remove_destroy_notify_callback (notifiable* data) const
 Remove a callback previously installed with add_destroy_notify_callback(). More...

 
void set_parent (notifiable* parent, notifiable::func_destroy_notify cleanup) const noexcept
 Sets the parent of this slot. More...

 
bool unblock () noexcept
 Unsets the blocking state. More...

 

Additional Inherited Members

- Public Types inherited from sigc::slot_base
using func_destroy_notify = notifiable::func_destroy_notify
 
- Public Attributes inherited from sigc::slot_base
bool blocked_
 Indicates whether the slot is blocked. More...

 
rep_type* rep_
 Typed slot_rep object that contains a functor. More...

 

Detailed Description

template<typename T_return, typename... T_arg>

class sigc::slot< T_return(T_arg...)>

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()():

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

sigc::slot<void(bool, int)> some_slot;

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 then 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.

Constructor & Destructor Documentation

template <typename T_return , typename... T_arg>
sigc::slot< T_return(T_arg...)>::slot ( )
inlinedefault
template <typename T_return , typename... T_arg>
template <typename T_functor >
sigc::slot< T_return(T_arg...)>::slot ( const T_functor &  func)
inline

Constructs a slot from an arbitrary functor.

Parameters
funcThe desired functor the new slot should be assigned to.
template <typename T_return , typename... T_arg>
sigc::slot< T_return(T_arg...)>::slot ( const slot< T_return(T_arg...)> &  src)
default

Constructs a slot, copying an existing one.

Parameters
srcThe existing slot to copy.
template <typename T_return , typename... T_arg>
sigc::slot< T_return(T_arg...)>::slot ( slot< T_return(T_arg...)> &&  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
srcThe existing slot to move or copy.

Member Function Documentation

template <typename T_return , typename... T_arg>
T_return sigc::slot< T_return(T_arg...)>::operator() ( type_trait_take_t< T_arg >...  a) const
inline

Invoke the contained functor unless slot is in blocking state.

Parameters
aArguments to be passed on to the functor.
Returns
The return value of the functor invocation.
template <typename T_return , typename... T_arg>
slot& sigc::slot< T_return(T_arg...)>::operator= ( const slot< T_return(T_arg...)>&  src)
default

Overrides this slot, making a copy from another slot.

Parameters
srcThe slot from which to make a copy.
Returns
this.
template <typename T_return , typename... T_arg>
slot& sigc::slot< T_return(T_arg...)>::operator= ( slot< T_return(T_arg...)>&&  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
srcThe slot from which to move or copy.
Returns
this.