您可以显示如下的值类型:
cout << val.type() << end;
并打印一个数字。
如何将此数字映射回实际类型?
除了在头文件中偷看之外,当然,它揭示了所有......
enum Value_type {
obj_type,array_type,str_type,bool_type,int_type,real_type,null_type
};
答案 0 :(得分:0)
不,这似乎是规范的方式:
switch(v.type()) {
case obj_type: pp_obj(v, lev+1); break;
case array_type: pp_array(v, lev+1); break;
case str_type: pp<string>(v, lev+1); break;
case bool_type: pp<bool>(v, lev+1); break;
case int_type: pp<int>(v, lev+1); break;
case real_type: pp<double>(v, lev+1); break;
case null_type: pp_null(v, lev+1); break;
}
答案 1 :(得分:0)
价值val; 读(是,val); 对象o = val.get_obj();
然后创建一个Pair,假设它是0。 配对= o [1];
其中1是迭代值。我花了很长时间才弄清楚,所以我试图节省其他需要稍后查看的人的时间。使用sizeof(o)/ sizeof(int)迭代,以及++ i而不是i ++。