Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::geometry::transform_variant< Sequence, Op, In > Struct Template Reference

Meta-function that takes a Sequence type, an MPL lambda expression and an optional Inserter and returns a variant type over the same types as the initial variant type, each transformed using the lambda expression. More...

#include <transform_variant.hpp>

Inheritance diagram for boost::geometry::transform_variant< Sequence, Op, In >:
Collaboration diagram for boost::geometry::transform_variant< Sequence, Op, In >:

Public Types

typedef variant
< detail::variant::over_sequence
< mpl::transform< Sequence, Op,
In >::type > > 
type
 

Detailed Description

template<typename Sequence, typename Op, typename In = boost::mpl::na>
struct boost::geometry::transform_variant< Sequence, Op, In >

Meta-function that takes a Sequence type, an MPL lambda expression and an optional Inserter and returns a variant type over the same types as the initial variant type, each transformed using the lambda expression.

Example
typedef mpl::vector<int, float, long> types;
typedef transform_variant<types, add_pointer<_> > transformed;
typedef variant<int*, float*, long*> result;
BOOST_MPL_ASSERT(( equal<result, transformed> ));

Member Typedef Documentation

typedef variant< detail::variant::over_sequence< mpl::transform< Sequence, Op, In >::type > > boost::make_variant_over< mpl::transform< Sequence, Op, In >::type >::type
inherited

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