如何添加到标准::变体?



所以我有:

typedef std::variant<int,float,std::string> VarType;

我希望能够做到:

VarType a = 1;
VarType b = 1;
VarType c = a + b;

当类型混合时,它扔起来很酷。

VarType c = std::get<int>(a) + std::get<int>(b);

更一般:

VarType c = std::visit([](auto x, auto y) -> VarType 
{ 
if constexpr(!std::is_same_v<decltype(x), decltype(y)>)
{
throw;
}
else
{
return x + y; 
}
}, a, b);

wandbox.org 上的现场示例

相关内容

  • 没有找到相关文章

最新更新