Ell*_*Ell 4 c++ recursion types mutual-recursion boost-variant
我试图用变体表示c ++中的PDF对象类型.PDF对象是以下之一:
BooleanIntegerRealStringNameStreamArray<Object>Map<Object, Object>如您所见,Object类型是相互递归的,因为Array类型需要声明Map类型,这需要声明Array类型.我怎么能在c ++中代表这种类型呢?如果变体不是最好的方式,那是什么?
以下是我到目前为止所尝试但由于std::unordered_map(我认为)http://coliru.stacked-crooked.com/a/699082582e73376e的要求而无法编译
既然你正在使用它boost::variant,使用它的递归包装有什么问题?
您可以在教程中看到一个简短示例:
typedef boost::make_recursive_variant<
int
, std::vector< boost::recursive_variant_ >
>::type int_tree_t;
std::vector< int_tree_t > subresult;
subresult.push_back(3);
subresult.push_back(5);
std::vector< int_tree_t > result;
result.push_back(1);
result.push_back(subresult);
result.push_back(7);
int_tree_t var(result);
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
| 归档时间: |
|
| 查看次数: |
1629 次 |
| 最近记录: |