Template Struct SchemaMapperImpl::VisitorWrapper

Nested Relationships

This struct is a nested type of Class SchemaMapperImpl.

Inheritance Relationships

Base Type

  • public boost::static_visitor<>

Struct Documentation

template<typename F>
struct VisitorWrapper : public boost::static_visitor<>

A functor-wrapper used in the implementation of SchemaMapper::forEach.

See SchemaImpl::VisitorWrapper for discussion of the motivation.

Public Functions

template<typename T>
void operator()(std::pair<Key<T>, Key<T>> const &pair) const

Call the wrapped function.

void operator()(KeyPairVariant const &v) const

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.

template<typename T>
VisitorWrapper(T &&func)

Construct the wrappper.