recently I have been experimenting with boost::variant
. I am attempting to apply arithmetic to two variant objects of types <int, float>
as such:
typedef boost::variant<int, float> VariableValue;
VariableValue var1 = 2;
VariableValue var2 = 5;
VariableValue var3 = var1 + var2;
std::cout << "Result: " << var3 << std::endl; //expected 7
This should work for either alternative of the variant such as:
VariantValue var1 = 2;
VariantValue var2 = 1.234;
VariantValue var3 = var1 + var2;
std::cout << "Result: " << var3 << std::endl; //expected 3.234
However this approach is not working. I have been researching this issue and I have seen people using boost::apply_visitor
and template
to achieve similar results. How can I achieve my goal?