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
Public Member Functions | Private Attributes | List of all members
lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F > Struct Template Reference

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

#include <SchemaMapperImpl.h>

Inheritance diagram for lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >:

Public Member Functions

template<typename T >
void operator() (std::pair< Key< T >, Key< T > > const &pair) const
 Call the wrapped function. More...
 
void operator() (KeyPairVariant const &v) const
 Invoke the visitation. More...
 
 VisitorWrapper (F func)
 Construct the wrappper. More...
 

Private Attributes

_func
 

Detailed Description

template<typename F>
struct lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >

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

See SchemaImpl::VisitorWrapper for discussion of the motivation.

Definition at line 59 of file SchemaMapperImpl.h.

Constructor & Destructor Documentation

template<typename F>
lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >::VisitorWrapper ( func)
inlineexplicit

Construct the wrappper.

Definition at line 81 of file SchemaMapperImpl.h.

Member Function Documentation

template<typename F>
template<typename T >
void lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >::operator() ( std::pair< Key< T >, Key< T > > const &  pair) const
inline

Call the wrapped function.

Definition at line 63 of file SchemaMapperImpl.h.

63  {
64  _func(pair.first, pair.second);
65  }
template<typename F>
void lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >::operator() ( KeyPairVariant const &  v) const
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 76 of file SchemaMapperImpl.h.

76  {
77  boost::apply_visitor(*this, v);
78  }

Member Data Documentation

template<typename F>
F lsst::afw::table::detail::SchemaMapperImpl::VisitorWrapper< F >::_func
private

Definition at line 84 of file SchemaMapperImpl.h.


The documentation for this struct was generated from the following file: