0

重複の可能性:
GCC の RTTI 名を文字化けできますか?

私は gcc で code::blocks を使い始めました (もう VS2010 に耐えられませんでした)。全体的には満足していますが、gcc で確実にうまくいかないことの 1 つは、typeid を使用したい場合です。 m は正確な型名ではなく、いくつかの記号表記を取得します (なぜ? なぜ型名を使用できなかったのですか?) とにかく、c++filt がこの種の問題に役立つと聞いたことがありますが、今はどのようにすればよいかわかりませんそれを使用する (またはインストールします。ダウンロードする必要がありますか?)。

4

1 に答える 1

2

typeidインスタンスへの参照を返すstd::type_infoので、そのname()メソッドを使用していると思います。

「正確な」型名を取得できない理由についての質問に答えるにname()は、実装で定義された文字列を返すため、意味があることに依存しないでください。特に、型に固有である必要さえありません。

C++11 をサポートしている場合は、またはを組み合わせてstd::type_infoオブジェクトを直接比較する必要があります。==!=.before().hash_code()

于 2011-10-22T10:54:46.103 に答える