LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
|
A functor-wrapper used in the implementation of Schema::forEach. More...
#include <SchemaImpl.h>
Public Member Functions | |
template<typename T > | |
void | operator() (SchemaItem< T > const &x) const |
Call the wrapped function. More... | |
void | operator() (ItemVariant const &v) const |
Invoke the visitation. More... | |
VisitorWrapper (F func) | |
Construct the wrapper. More... | |
Private Attributes | |
F | _func |
A functor-wrapper used in the implementation of Schema::forEach.
Visitor functors used with Boost.Variant (see the Boost.Variant docs) must inherit from boost::static_visitor<> to declare their return type (void, in this case). By wrapping user-supplied functors with this class, we can hide the fact that we've implemented SchemaImpl using Boost.Variant (because they won't need to inherit from static_visitor themselves.
Definition at line 156 of file SchemaImpl.h.
|
inlineexplicit |
|
inline |
|
inline |
Invoke the visitation.
The call to boost::apply_visitor will call the appropriate template of operator().
This overload allows a VisitorWrapper to be applied directly on a variant object with function-call syntax, allowing us to use it on our vector of variants with std::for_each and other STL algorithms.
Definition at line 171 of file SchemaImpl.h.
|
private |
Definition at line 179 of file SchemaImpl.h.