LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
Public Member Functions | 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...
 
template<typename T >
 VisitorWrapper (T &&func)
 Construct the wrappper. More...
 

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 54 of file SchemaMapperImpl.h.

Constructor & Destructor Documentation

◆ VisitorWrapper()

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

Construct the wrappper.

Definition at line 74 of file SchemaMapperImpl.h.

74 : _func(std::forward<T>(func)) {}

Member Function Documentation

◆ operator()() [1/2]

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 57 of file SchemaMapperImpl.h.

57  {
58  _func(pair.first, pair.second);
59  }

◆ operator()() [2/2]

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 70 of file SchemaMapperImpl.h.

70 { boost::apply_visitor(*this, v); }

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