2 #ifndef AFW_TABLE_DETAIL_SchemaMapperImpl_h_INCLUDED 3 #define AFW_TABLE_DETAIL_SchemaMapperImpl_h_INCLUDED 8 #include "boost/variant.hpp" 9 #include "boost/mpl/transform.hpp" 59 _func(pair.first, pair.second);
71 void operator()(KeyPairVariant
const& v)
const { boost::apply_visitor(*
this, v); }
94 #endif // !AFW_TABLE_DETAIL_SchemaMapperImpl_h_INCLUDED VisitorWrapper(T &&func)
Construct the wrappper.
Defines the fields and offsets for a table.
A functor-wrapper used in the implementation of SchemaMapper::forEach.
SchemaMapperImpl(Schema const &input, Schema const &output)
Constructor from the given input and output schemas.
void operator()(KeyPairVariant const &v) const
Invoke the visitation.
A mapping between the keys of two Schemas, used to copy data between them.
A private implementation class to hide the messy details of SchemaMapper.
A base class for image defects.
std::pair< Key< T >, Key< T > > type
void operator()(std::pair< Key< T >, Key< T > > const &pair) const
Call the wrapped function.
std::vector< KeyPairVariant > KeyPairMap
A std::vector whose elements can be any of the allowed pair types.
boost::make_variant_over< KeyPairTypes >::type KeyPairVariant
A Boost.Variant type that can hold any one of the allowed pair types.
A class used as a handle to a particular field in a table.
boost::mpl::transform< FieldTypes, MakeKeyPair >::type KeyPairTypes
An MPL sequence of all the allowed pair templates.