LSST Applications  22.0.1,22.0.1+01bcf6a671,22.0.1+046ee49490,22.0.1+05c7de27da,22.0.1+0c6914dbf6,22.0.1+1220d50b50,22.0.1+12fd109e95,22.0.1+1a1dd69893,22.0.1+1c910dc348,22.0.1+1ef34551f5,22.0.1+30170c3d08,22.0.1+39153823fd,22.0.1+611137eacc,22.0.1+771eb1e3e8,22.0.1+94e66cc9ed,22.0.1+9a075d06e2,22.0.1+a5ff6e246e,22.0.1+a7db719c1a,22.0.1+ba0d97e778,22.0.1+bfe1ee9056,22.0.1+c4e1e0358a,22.0.1+cc34b8281e,22.0.1+d640e2c0fa,22.0.1+d72a2e677a,22.0.1+d9a6b571bd,22.0.1+e485e9761b,22.0.1+ebe8d3385e
LSST Data Management Base Package
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 >
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); }

◆ operator()() [2/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  }

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