Meta-function that takes a boost::variant type and tries to minimize it by doing the following:
More...
template<typename Variant>
struct boost::geometry::compress_variant< Variant >
Meta-function that takes a boost::variant type and tries to minimize it by doing the following:
- if there's any duplicate types, remove them
- if the result is a variant of one type, turn it into just that type
- Example
typedef variant<int, float, int, long> variant_type;
typedef compress_variant<variant_type>::type compressed;
typedef boost::mpl::vector<int, float, long> result_types;
BOOST_MPL_ASSERT(( boost::mpl::equal<compressed::types, result_types> ));
typedef variant<int, int, int> one_type_variant_type;
typedef compress_variant<one_type_variant_type>::type single_type;
BOOST_MPL_ASSERT(( boost::equals<single_type, int> ));