libsigc++
2.3.2
|
libsigc++ ships with basic lambda functionality and the sigc::group adaptor, which uses lambdas to transform a functor's parameter list. More...
Modules | |
group() | |
sigc::group() alters an arbitrary functor by rebuilding its arguments from one or more lambda expressions. | |
Classes | |
struct | sigc::lambda< T_type > |
Lambda type. More... | |
struct | sigc::lambda_base |
A hint to the compiler. More... | |
struct | sigc::lambda_group1< T_functor, T_type1 > |
lambda_group1 wraps a functor and rebuilds its arguments from 1 lambda expressions. More... | |
struct | sigc::lambda_group2< T_functor, T_type1, T_type2 > |
lambda_group2 wraps a functor and rebuilds its arguments from 2 lambda expressions. More... | |
struct | sigc::lambda_group3< T_functor, T_type1, T_type2, T_type3 > |
lambda_group3 wraps a functor and rebuilds its arguments from 3 lambda expressions. More... | |
struct | sigc::unwrap_lambda_type< T_type > |
Deduces the type of the object stored in an object of the passed lambda type. More... | |
struct | sigc::unwrap_lambda_type< lambda< T_type > > |
Deduces the type of the object stored in an object of the passed lambda type. More... | |
Functions | |
template<class T_functor , class T_type1 > | |
lambda< lambda_group1 < T_functor, typename unwrap_reference< T_type1 > ::type > > | sigc::group (const T_functor& _A_func, T_type1 _A_1) |
Alters an arbitrary functor by rebuilding its arguments from 1 lambda expressions. More... | |
template<class T_functor , class T_type1 , class T_type2 > | |
lambda< lambda_group2 < T_functor, typename unwrap_reference< T_type1 > ::type, typename unwrap_reference< T_type2 > ::type > > | sigc::group (const T_functor& _A_func, T_type1 _A_1, T_type2 _A_2) |
Alters an arbitrary functor by rebuilding its arguments from 2 lambda expressions. More... | |
template<class T_functor , class T_type1 , class T_type2 , class T_type3 > | |
lambda< lambda_group3 < T_functor, typename unwrap_reference< T_type1 > ::type, typename unwrap_reference< T_type2 > ::type, typename unwrap_reference< T_type3 > ::type > > | sigc::group (const T_functor& _A_func, T_type1 _A_1, T_type2 _A_2, T_type3 _A_3) |
Alters an arbitrary functor by rebuilding its arguments from 3 lambda expressions. More... | |
template<class T_type > | |
T_type& | sigc::unwrap_lambda_value (T_type& a) |
Gets the object stored inside a lambda object. More... | |
template<class T_type > | |
const T_type& | sigc::unwrap_lambda_value (const T_type& a) |
Gets the object stored inside a lambda object. More... | |
template<class T_type > | |
const T_type& | sigc::unwrap_lambda_value (const lambda< T_type >& a) |
Gets the object stored inside a lambda object. More... | |
template<class T_type > | |
lambda< T_type& > | sigc::var (T_type& v) |
Converts a reference into a lambda object. More... | |
template<class T_type > | |
lambda< const T_type& > | sigc::var (const T_type& v) |
Converts a constant reference into a lambda object. More... | |
libsigc++ ships with basic lambda functionality and the sigc::group adaptor, which uses lambdas to transform a functor's parameter list.
The lambda selectors sigc::_1, sigc::_2, ..., sigc::_7 are used to select the first, second, ..., seventh argument from a list.
Operators are defined so that, for example, lambda selectors can be used as placeholders in arithmetic expressions.
If your compiler supports C++11 lambda expressions, they are often a good alternative to libsigc++'s lambda expressions. The following examples are equivalent to the previous ones.
lambda<lambda_group1<T_functor, typename unwrap_reference<T_type1>::type> > sigc::group | ( | const T_functor & | _A_func, |
T_type1 | _A_1 | ||
) |
Alters an arbitrary functor by rebuilding its arguments from 1 lambda expressions.
lambda<lambda_group2<T_functor, typename unwrap_reference<T_type1>::type, typename unwrap_reference<T_type2>::type> > sigc::group | ( | const T_functor & | _A_func, |
T_type1 | _A_1, | ||
T_type2 | _A_2 | ||
) |
Alters an arbitrary functor by rebuilding its arguments from 2 lambda expressions.
lambda<lambda_group3<T_functor, typename unwrap_reference<T_type1>::type, typename unwrap_reference<T_type2>::type, typename unwrap_reference<T_type3>::type> > sigc::group | ( | const T_functor & | _A_func, |
T_type1 | _A_1, | ||
T_type2 | _A_2, | ||
T_type3 | _A_3 | ||
) |
Alters an arbitrary functor by rebuilding its arguments from 3 lambda expressions.
T_type& sigc::unwrap_lambda_value | ( | T_type & | a | ) |
Gets the object stored inside a lambda object.
Returns the object passed as argument, if it is not of type lambda.
const T_type& sigc::unwrap_lambda_value | ( | const T_type & | a | ) |
Gets the object stored inside a lambda object.
Returns the object passed as argument, if it is not of type lambda.
const T_type& sigc::unwrap_lambda_value | ( | const lambda< T_type > & | a | ) |
Gets the object stored inside a lambda object.
lambda<T_type&> sigc::var | ( | T_type & | v | ) |
Converts a reference into a lambda object.
sigc::var creates a 0-ary functor, returning the value of a referenced variable.
If your compiler supports C++11 lambda expressions, and you use the macro SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE, you can replace
in the example by
lambda<const T_type&> sigc::var | ( | const T_type & | v | ) |
Converts a constant reference into a lambda object.