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