maa*_*tdd 6 c++ boost ocaml variant
我需要创建一个union,但是union的2个成员将具有相同的类型,因此我需要一种方法来识别它们.例如在OCaml中:
type A =
| B of int
| C of float
| D of float
Run Code Online (Sandbox Code Playgroud)
Boost.Variant似乎不支持这种情况,是否有一个已知的库支持它?
如果你想这样做,我认为你最好的选择是将相同但不同的类型包装到一个结构中,然后让boost变体访问正确的结构:
struct Speed
{
float val_;
};
struct Darkness
{
float val_;
};
Run Code Online (Sandbox Code Playgroud)
您可以使用BOOST_STRONG_TYPEDEF
自动执行此操作,但我不确定它是否可以保证生成合法用于联合的类型(尽管在变体中可能会很好).
归档时间: |
|
查看次数: |
2242 次 |
最近记录: |