libsigc++  2.10.2
Classes | Functions
compose()

sigc::compose() combines two or three arbitrary functors. On invokation, parameters are passed on to one or two getter functor(s). The return value(s) are then passed on to the setter function. More...

Classes

struct  sigc::compose1_functor< T_setter, T_getter >
 Adaptor that combines two functors. More...
 
struct  sigc::compose2_functor< T_setter, T_getter1, T_getter2 >
 Adaptor that combines three functors. More...
 

Functions

template<class T_setter , class T_getter >
compose1_functor< T_setter, T_getter > sigc::compose (const T_setter& _A_setter, const T_getter& _A_getter)
 Creates an adaptor of type sigc::compose1_functor which combines two functors. More...
 
template<class T_setter , class T_getter1 , class T_getter2 >
compose2_functor< T_setter, T_getter1, T_getter2 > sigc::compose (const T_setter& _A_setter, const T_getter1& _A_getter1, const T_getter2& _A_getter2)
 Creates an adaptor of type sigc::compose2_functor which combines three functors. More...
 

Detailed Description

sigc::compose() combines two or three arbitrary functors. On invokation, parameters are passed on to one or two getter functor(s). The return value(s) are then passed on to the setter function.

Examples:
float square_root(float a) { return sqrtf(a); }
float sum(float a, float b) { return a+b; }
std::cout << sigc::compose(&square_root, &sum)(9, 16); // calls square_root(sum(3,6))
std::cout << sigc::compose(&sum, &square_root, &square_root)(9); // calls sum(square_root(9), square_root(9))

The functor sigc::compose() returns can be passed directly into sigc::signal::connect().

Example:
some_signal.connect(sigc::compose(&square_root, &sum));

Function Documentation

◆ compose() [1/2]

template <class T_setter , class T_getter >
compose1_functor<T_setter, T_getter> sigc::compose ( const T_setter &  _A_setter,
const T_getter &  _A_getter 
)
inline

Creates an adaptor of type sigc::compose1_functor which combines two functors.

Parameters
_A_setterFunctor that receives the return value of the invokation of _A_getter.
_A_getterFunctor to invoke from operator()().
Returns
Adaptor that executes _A_setter with the value returned from invokation of _A_getter.

◆ compose() [2/2]

template <class T_setter , class T_getter1 , class T_getter2 >
compose2_functor<T_setter, T_getter1, T_getter2> sigc::compose ( const T_setter &  _A_setter,
const T_getter1 &  _A_getter1,
const T_getter2 &  _A_getter2 
)
inline

Creates an adaptor of type sigc::compose2_functor which combines three functors.

Parameters
_A_setterFunctor that receives the return values of the invokation of _A_getter1 and _A_getter2.
_A_getter1Functor to invoke from operator()().
_A_getter2Functor to invoke from operator()().
Returns
Adaptor that executes _A_setter with the values return from invokation of _A_getter1 and _A_getter2.
sigc::signal
Convenience wrapper for the numbered sigc::signal# templates.
Definition: signal.h:4013
sigc::compose
compose1_functor< T_setter, T_getter > compose(const T_setter &_A_setter, const T_getter &_A_getter)
Creates an adaptor of type sigc::compose1_functor which combines two functors.
Definition: compose.h:288
sigc::signal7< T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, nil >::connect
iterator connect(const slot_type &slot_)
Add a slot to the list of slots.
Definition: signal.h:3871