Class SchemaMapperImpl¶
Defined in File SchemaMapperImpl.h
Nested Relationships¶
Class Documentation¶
-
class
SchemaMapperImpl
¶ A private implementation class to hide the messy details of SchemaMapper.
This class is very similar in spirit to SchemaImpl; look there for more information (though SchemaMapper is not copy-on-write).
Public Types
-
typedef boost::mpl::transform<FieldTypes, MakeKeyPair>::type
KeyPairTypes
¶ An MPL sequence of all the allowed pair templates.
-
typedef boost::make_variant_over<KeyPairTypes>::type
KeyPairVariant
¶ A Boost.Variant type that can hold any one of the allowed pair types.
-
typedef std::vector<KeyPairVariant>
KeyPairMap
¶ A std::vector whose elements can be any of the allowed pair types.
Public Functions
Friends
-
friend
lsst::afw::table::detail::SchemaMapperImpl::table::SchemaMapper
-
friend
lsst::afw::table::detail::SchemaMapperImpl::detail::Access
-
template<typename
F
>
structVisitorWrapper
: 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
>
voidoperator()
(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
-
typedef boost::mpl::transform<FieldTypes, MakeKeyPair>::type