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< variant< BOOST_VARIANT_ENUM_PARAMS(T)>, Op, boost::mpl::na > Struct Template Reference

Meta-function that takes a boost::variant type and an MPL lambda expression 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< variant< BOOST_VARIANT_ENUM_PARAMS(T)>, Op, boost::mpl::na >:
Collaboration diagram for boost::geometry::transform_variant< variant< BOOST_VARIANT_ENUM_PARAMS(T)>, Op, boost::mpl::na >:

Public Types

typedef variant
< detail::variant::over_sequence
< mpl::transform< variant
< BOOST_VARIANT_ENUM_PARAMS(T)>
::types, Op >::type > > 
type
 

Detailed Description

template<BOOST_VARIANT_ENUM_PARAMS(typename T), typename Op>
struct boost::geometry::transform_variant< variant< BOOST_VARIANT_ENUM_PARAMS(T)>, Op, boost::mpl::na >

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

Example
typedef variant<int, float, long> variant_type;
typedef transform_variant<variant_type, 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< variant< BOOST_VARIANT_ENUM_PARAMS(T)>::types, Op >::type > > boost::make_variant_over< mpl::transform< variant< BOOST_VARIANT_ENUM_PARAMS(T)>::types, Op >::type >::type
inherited

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