最近我一直在尝试boost::variant
。我正在尝试将算术应用于类型为<int, float>
的两个变量对象,例如:
typedef boost::variant<int, float> VariableValue;
VariableValue var1 = 2;
VariableValue var2 = 5;
VariableValue var3 = var1 + var2;
std::cout << "Result: " << var3 << std::endl; //expected 7
这应适用于其他变体,例如:
VariantValue var1 = 2;
VariantValue var2 = 1.234;
VariantValue var3 = var1 + var2;
std::cout << "Result: " << var3 << std::endl; //expected 3.234
但是这种方法不起作用。我一直在研究此问题,并且看到有人使用boost::apply_visitor
和template
来达到类似的结果。我如何实现我的目标?