【发布时间】:2012-02-16 14:33:50
【问题描述】:
我想构造包含默认构造值的boost::variants,使用类型索引指定 - 无需在类型索引上编写我自己的 switch 语句。
我认为这必须以某种方式通过 MPL 实现?
为了澄清,索引不是编译时常量表达式。
用例是我需要构造一个变体,稍后将替换为包含正确值的变体,但此时我只知道类型索引。将其视为一个惰性反序列化问题。
【问题讨论】:
-
既然你提到了 MPL,我认为
N(类型索引)在编译时是已知的,但是惰性反序列化表明它可能只在运行时可用 --> 它是什么? -
@MatthieuM。后者是不可能的。我希望是第一个,否则我的答案也毫无价值。
-
@MatthieuM。啊,好点:它只在运行时可用。
-
@Autopulated 这是否为您赢得了“本月检查的最奇怪的代码”奖或为什么获得赏金?
-
@pmr,事实上,我最终避免了创建空变体,这可能是明智的做法 - 我很感激你为解决我的疯狂问题付出的努力!跨度>
标签: c++ boost boost-variant