Глядя на C ++ RTTI и класс type_info, иногда я нахожу описание метода, называемого raw_name()
это используется, чтобы возвратить demangled имя класса. Я не могу найти реализацию в g ++, но только метод name()
, Знаете ли вы, является ли это специфической реализацией только для Visual Studio / MS и является ли она частью стандарта C ++?
это конкретная реализация, type_info
определяется в стандарте по адресу:
Стандарт C ++ 03: 18.7.1 Класс type_info:
namespace std {
class type_info {
public:
virtual ~type_info();
bool operator==(const type_info& rhs) const noexcept;
bool operator!=(const type_info& rhs) const noexcept;
bool before(const type_info& rhs) const noexcept;
size_t hash_code() const noexcept;
const char* name() const noexcept;
type_info(const type_info& rhs) = delete; // cannot be copied
type_info& operator=(const type_info& rhs) = delete; // cannot be copied
};
}
Как вы видите raw_data
является не стандартный определенный член класса.
Быстрый Google покажет вам, что raw_name()
зарегистрировано только Microsoft. Это не часть C ++.