I realize this is a ludicrous question for something that takes less than 2 seconds to implement. But I vaguely remember reading that one was introduced with the new standar
I use this as a drop-in no-op for cases where I expect a functor that does not return any value.
struct VoidNoOp {
void operator()() const { }
template
void operator()(A a) const { (void)(a); }
template
void operator()(A a, B b) const { (void)(a); (void)(b); }
template
void operator()(A a, B b, C c) const { (void)(a); (void)(b); (void)(c); }
};
Here is a C++11 variation for arbitrary numbers of parameters:
struct VoidNoOp {
void operator()() const { };
template
void operator()(P1 p1, Params... parameters) {
(void)(p1); // we do this just to remove warnings -- requires the recursion
operator()(parameters...);
}
};