0

次のように値のタイプを表示できます。

cout << val.type() << end;

そしてそれは数を印刷します。

この番号を実際のタイプにマップするにはどうすればよいですか?

もちろん、ヘッダーファイルを覗くだけでなく、すべてが明らかになります...

enum Value_type {
    obj_type,array_type,str_type,bool_type,int_type,real_type,null_type
};
4

2 に答える 2

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;
    }
于 2010-04-22T05:30:36.080 に答える
0

値val; read(is、val); オブジェクトo=val.get_obj();

次に、タイプ0と仮定して、ペアを作成します。ペアペア= o [1];

ここで、1は反復値です。これは私が理解するのに永遠にかかったので、後でこれを調べる必要がある他の誰かの時間を節約しようとしています。sizeof(o)/ sizeof(int)を使用して、i++の代わりに++iを繰り返します。

于 2011-04-11T22:13:33.303 に答える