Main Page Groups Namespaces

# SigC::Slot3< T_return, T_arg1, T_arg2, T_arg3 > Class Template Reference
[Compatibility module]

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

Inheritance diagram for SigC::Slot3< T_return, T_arg1, T_arg2, T_arg3 >:

[legend]

List of all members.

## Public Types
typedef ::sigc::slot < T_return, T_arg1, T_arg2, T_arg3 > | parent_type
## Public Member Functions
| Slot3 ()
| Constructs an empty slot.
template<class T_functor>
| Slot3 (const T_functor& _A_func)
| Constructs a slot from an arbitrary functor.
| Slot3 (const parent_type& src)
| Constructs a slot, copying an existing one.
Slot3& | operator= (const parent_type& src)
| Overrides this slot making a copy from another slot.

## Detailed Description

### template <class T_return, class T_arg1, class T_arg2, class T_arg3>
class SigC::Slot3< T_return, T_arg1, T_arg2, T_arg3 >

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

Slot3 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()().
- T_arg2 Argument type used in the definition of operator()().
- T_arg3 Argument type used in the definition of operator()().

To use simply assign the slot to the desired functor. 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.

Example:

         #include <sigc++/slot.h>
         void foo(int) {}
         SigC::Slot1<void, long> s = SigC::slot(&foo);
         s(19);

Deprecated:
  Use the unnumbered template sigc::slot instead.

## Member Typedef Documentation

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

typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3> SigC::Slot3<T_return, T_arg1, T_arg2, T_arg3>::parent_type

Reimplemented from sigc::slot<T_return, T_arg1, T_arg2, T_arg3>.

## Constructor & Destructor Documentation

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

SigC::Slot3<T_return, T_arg1, T_arg2, T_arg3>::Slot3 | ( |  | ) | `[inline]`

Constructs an empty slot.

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

SigC::Slot3<T_return, T_arg1, T_arg2, T_arg3>::Slot3 | ( | 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.

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

SigC::Slot3<T_return, T_arg1, T_arg2, T_arg3>::Slot3 | ( | const parent_type& | src | ) | `[inline]`

Constructs a slot, copying an existing one.

Parameters:

  | src | The existing slot to copy.

## Member Function Documentation

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

Slot3& SigC::Slot3<T_return, T_arg1, T_arg2, T_arg3>::operator= | ( | const parent_type& | src | ) | `[inline]`

Overrides this slot making a copy from another slot.

Parameters:

  | src | The slot from which to make a copy.

Returns:
  `this`.

The documentation for this class was generated from the following file:

- slot.h