libsigc++: 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... | |
Functions | |
template<int I_location, typename T_functor > | |
decltype(auto) | sigc::hide (const T_functor& func) |
Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. More... | |
template<typename T_functor > | |
decltype(auto) | sigc::hide (const T_functor& func) |
Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. More... | |
template<typename T_functor > | |
retype_return_functor< void, T_functor > | sigc::hide_return (const T_functor& 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)
The functor sigc::hide() returns can be directly passed into sigc::signal::connect().
- Example:
sigc::hide() can be nested in order to discard multiple arguments.
- Example:
- // multiple argument hiding ...foo(1,2)
sigc::hide_return() alters an arbitrary functor by dropping its return value, thus converting it to a void functor.
Function Documentation
|
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
-
func Functor that should be wrapped.
- Returns
- Adaptor that executes func, ignoring the value of the dummy parameter.
|
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
-
func Functor that should be wrapped.
- Returns
- Adaptor that executes func, ignoring the value of the last parameter.
|
inline |
Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed functor.
- Parameters
-
functor Functor that should be wrapped.
- Returns
- Adaptor that executes functor dropping its return value.