バリアントを使用して、C++ で PDF オブジェクト型を表現しようとしています。PDF オブジェクトは次のいずれかです。
Boolean
Integer
Real
String
Name
Stream
Array<Object>
Map<Object, Object>
ご覧のとおり、型は型の宣言を必要とする型の宣言を必要とするObject
ため、型は相互に再帰的です。この型をC ++で表現するにはどうすればよいですか? バリアントが最善の方法ではない場合、それは何ですか?Array
Map
Array
これは私がこれまでに試したことですが、std::unordered_map
(私が思うに)http://coliru.stacked-crooked.com/a/699082582e73376eの要件のためにコンパイルされません