libsigc++ 2.12.0
Classes | Functions
hide(), hide_return()

sigc::hide() alters an arbitrary functor in that it adds a parameter whose value is ignored on invocation of the returned functor. More...

Classes

struct  sigc::hide_functor< I_location, T_functor >
 Adaptor that adds a dummy parameter to the wrapped functor. More...
 
struct  sigc::hide_functor< 0, T_functor >
 Adaptor that adds a dummy parameter to the wrapped functor. More...
 
struct  sigc::hide_functor<-1, T_functor >
 Adaptor that adds a dummy parameter to the wrapped functor. More...
 

Functions

template<int I_location, class T_functor >
hide_functor< I_location, T_functor > sigc::hide (const T_functor & _A_func)
 Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. More...
 
template<class T_functor >
hide_functor<-1, T_functor > sigc::hide (const T_functor & _A_func)
 Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. More...
 
template<class T_functor >
retype_return_functor< void, T_functor > sigc::hide_return (const T_functor & _A_functor)
 Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed functor. More...
 

Detailed Description

sigc::hide() alters an arbitrary functor in that it adds a parameter whose value is ignored on invocation of the returned functor.

Thus you can discard one argument of a signal.

You may optionally specify the zero-based position of the parameter to ignore as a template argument. The default is to ignore the last parameter. (A value of -1 adds a parameter at the end so sigc::hide<-1>() gives the same result as sigc::hide().)

The type of the parameter can optionally be specified if not deduced.

Examples:
void foo(int, int);
// single argument hiding ...
sigc::hide(&foo)(1,2,3); // adds a dummy parameter at the back and calls foo(1,2)
sigc::hide<-1>(&foo)(1,2,3); // same as sigc::hide(&foo)(1,2,3) (calls foo(1,2))
sigc::hide<0>(&foo)(1,2,3); // adds a dummy parameter at the beginning and calls foo(2,3)
sigc::hide<1>(&foo)(1,2,3); // adds a dummy parameter in the middle and calls foo(1,3)
sigc::hide<2>(&foo)(1,2,3); // adds a dummy parameter at the back and calls foo(1,2)
hide_functor< I_location, T_functor > hide(const T_functor &_A_func)
Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.
Definition: hide.h:1061

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

Example:
void foo();
some_signal.connect(sigc::hide(&foo));
iterator connect(const slot_type &slot_)
Add a slot to the list of slots.
Definition: signal.h:3875
Convenience wrapper for the numbered sigc::signal# templates.
Definition: signal.h:4019

sigc::hide() can be nested in order to discard multiple arguments.

Example:
// multiple argument hiding ...
sigc::hide(sigc::hide(&foo))(1,2,3,4); // adds two dummy parameters at the back and calls foo(1,2)

sigc::hide_return() alters an arbitrary functor by dropping its return value, thus converting it to a void functor.

Function Documentation

◆ hide() [1/2]

template <int I_location, class T_functor >
hide_functor< I_location, T_functor > sigc::hide ( const T_functor &  _A_func)
inline

Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.

The optional template argument I_location specifies the zero-based position of the dummy parameter in the returned functor (-1 stands for the last parameter).

Parameters
_A_funcFunctor that should be wrapped.
Returns
Adaptor that executes _A_func, ignoring the value of the dummy parameter.

◆ hide() [2/2]

template <class T_functor >
hide_functor<-1, T_functor > sigc::hide ( const T_functor &  _A_func)
inline

Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.

This overload adds a dummy parameter at the back of the functor's parameter list.

Parameters
_A_funcFunctor that should be wrapped.
Returns
Adaptor that executes _A_func, ignoring the value of the last parameter.

◆ hide_return()

template <class T_functor >
retype_return_functor< void, T_functor > sigc::hide_return ( const T_functor &  _A_functor)
inline

Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed functor.

Parameters
_A_functorFunctor that should be wrapped.
Returns
Adaptor that executes _A_functor dropping its return value.