Как использовать C++ Filter

Возможный дубликат:
Могу ли я отключить имена RTTI GCC?

Я начал использовать code::blocks с gcc (просто не мог больше выдерживать VS2010), и хотя я доволен всем, одно, что определенно не так хорошо сделано в gcc, это то, что когда я хочу использовать typeid I ' я получаю не точное имя типа, но некоторые символические обозначения (почему? почему они не могут идти с именами типов?) в любом случае, я слышал, что C++ Filt может помочь с такого рода проблемами, но я не знаю, как использовать его (или установить - нужно ли его скачивать?).

1 ответ

typeid возвращает ссылку на std::type_info экземпляр, поэтому я предполагаю, что вы используете его name() метод.

Чтобы ответить на ваш вопрос о том, почему вы не получаете "точные" имена типов: name() возвращает строку, определенную реализацией, поэтому вы не должны полагаться на то, что она имеет какое-либо значение. В частности, он даже не должен быть уникальным для данного типа.

Вы должны сравнить std::type_info объекты, непосредственно использующие ==, != или же .before()возможно, в сочетании с .hash_code() если у вас есть поддержка C++11.

Другие вопросы по тегам