C ++ boost :: variant-对变量应用算术的最简单方法

问题描述 投票:0回答:1

最近我一直在尝试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_visitortemplate来达到类似的结果。我如何实现我的目标?

c++ math boost boost-variant
1个回答
0
投票
我从问题How to simplify the plus action on boost variant?中找到了解决方案,并为我的目的对其进行了简化:
© www.soinside.com 2019 - 2024. All rights reserved.