3
我想用C++代表使用变体的PDF对象类型。甲PDF目的是下列之一:C++相互递归变体类型
Boolean
Integer
Real
String
Name
Stream
Array<Object>
Map<Object, Object>
正如你所看到的,Object
类型是相互递归的,因为Array
类型将需要Map
类型这将需要Array
类型的声明的声明。我怎么能在C++中表现这种类型?如果一个变体不是最好的方法,那是什么?
这是我迄今为止尝试,但它并没有因为要求编译std::unordered_map
(我认为)http://coliru.stacked-crooked.com/a/699082582e73376e
问题是数组和字典类型之间存在相互递归。这个例子只显示了如何在其自身的变体中嵌套'int_tree_t',但是我需要引用尚未定义的typedef – Ell
@Ell:我没有看到这样的递归。两者都提到'Object',这是(我猜)你正在定义的变体,但我会认为'typedef boost :: make_recursive_variant,Map > :: type Object;'会工作得很好。 –
当然啊。我很抱歉,我没有看到我可以如何使用它,但我当然不需要typedef。非常感谢,并且我第一次没有看到这是解决方案的道歉! – Ell