Boost logo

Boost :

Subject: [boost] variant with shrink
From: Niitsuma Hirotaka (hirotaka.niitsuma_at_[hidden])
Date: 2013-03-03 02:13:38


boost::variant should be

variant<int,int>
=> int

variant<int,double>
=> double

variant<int,boost::rational<int> >
=> boost::rational<int>

variant<int,double,std::string>
=> variant<double,std::string>

I wrote such extension

https://github.com/niitsuma/variant_shrink

Default generalize order is
int < boost::rational<int> < float < double < std::complex<double>

You can use other custom generalize relation by defining function object
is_generalizable_to<Type,TypeTo>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk