LSST Applications
22.0.1,22.0.1+01bcf6a671,22.0.1+046ee49490,22.0.1+05c7de27da,22.0.1+0c6914dbf6,22.0.1+1220d50b50,22.0.1+12fd109e95,22.0.1+1a1dd69893,22.0.1+1c910dc348,22.0.1+1ef34551f5,22.0.1+30170c3d08,22.0.1+39153823fd,22.0.1+611137eacc,22.0.1+771eb1e3e8,22.0.1+94e66cc9ed,22.0.1+9a075d06e2,22.0.1+a5ff6e246e,22.0.1+a7db719c1a,22.0.1+ba0d97e778,22.0.1+bfe1ee9056,22.0.1+c4e1e0358a,22.0.1+cc34b8281e,22.0.1+d640e2c0fa,22.0.1+d72a2e677a,22.0.1+d9a6b571bd,22.0.1+e485e9761b,22.0.1+ebe8d3385e
LSST Data Management Base Package
|
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... | |
template<typename T > | |
VisitorWrapper (T &&func) | |
Construct the wrapper. More... | |
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 158 of file SchemaImpl.h.
|
inlineexplicit |
Construct the wrapper.
Definition at line 178 of file SchemaImpl.h.
|
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 174 of file SchemaImpl.h.
|
inline |
Call the wrapped function.
Definition at line 161 of file SchemaImpl.h.