Main Page Groups Namespaces

# Slots
[Functors]

Collaboration diagram for Slots:

Slots are type-safe representations of callback methods and functions. More...

## Classes

class | sigc::slot0<T_return>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot1<T_return, T_arg1>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot2<T_return, T_arg1, T_arg2>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot4<T_return, T_arg1, T_arg2, T_arg3, T_arg4>
| Converts an arbitrary functor to a unified type which is opaque. More...
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. More...
class | sigc::slot6<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot7<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>
| Converts an arbitrary functor to a unified type which is opaque. More...
class | sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>
| Convenience wrapper for the numbered sigc::slot# templates. More...
class | sigc::slot_base
| Base type for slots. More...

## Detailed Description

Slots are type-safe representations of callback methods and functions.

A Slot can be constructed from any function, regardless of whether it is a global function, a member method, static, or virtual.

Use the sigc::mem_fun() and sigc::ptr_fun() template functions to get a sigc::slot, like so:

     sigc::slot<void, int> sl = sigc::mem_fun(someobj,& SomeClass::somemethod);

or

     sigc::slot<void, int> sl = sigc::ptr_fun(&somefunction);

or

     m_Button.signal_clicked().connect( sigc::mem_fun(*this, &MyWindow::on_button_clicked) );

The compiler will complain if SomeClass::somemethod, etc. have the wrong signature.

You can also pass slots as method parameters where you might normally pass a function pointer.