Qtが変数型を認識し、人間が判読可能な形式でその名前を取得するために、typeidに代わるものを提供しているのだろうかと思います。 私の具体的な問題は以下の通りです:Qt:typeid alternative
struct gArgument{
QString type;
void* arg;
};
void gargConverter(gArgument* oArg, T data){
oArg->type = typeid(data).name();
oArg->arg = static_cast<void*> (&data);
}
アイデアは関数への入力として使用する変数を一般のものとなります。 は、私がしようとした場合、(私は、Windows 7上でのMinGWを使用しています)私のシステム上で正しく動作していないようだtyeinfo側ノードとして:
int i; std::cout << typeid(i).name() << std::endl;
QString s; std::cout << typeid(s).name() << std::endl;
double d; std::cout << typeid(d).name() << std::endl;
float f; std::cout << typeid(f).name() << std::endl;
私は
i
7QString
d
f
どれでも提案を取得しますか?
私はあなたのプログラムの出力が期待される出力だと思います。変数 'i'、' d'、 'f'の名前を変更しても、それらの文字列は私に与えられます。 'typeid :: name()'の出力の正確なスペルは実装定義されており、その型のC++マングル化された名前に関連する名前を与えているようです。それは実際にはある程度の意味を持っています。 –
Typeinfoは、ご使用のシステムで正しく動作しています。なぜあなたは問題があると思いますか? –
これにはQtは必要ありません。ほとんどのC++実装は、ある程度のコンパイラ固有ですが、必要なものを提供します。 –