любопытство по поводу RTTI raw_name ()

Глядя на C ++ RTTI и класс type_info, иногда я нахожу описание метода, называемого raw_name() это используется, чтобы возвратить demangled имя класса. Я не могу найти реализацию в g ++, но только метод name(), Знаете ли вы, является ли это специфической реализацией только для Visual Studio / MS и является ли она частью стандарта C ++?

1

Решение

это конкретная реализация, 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 является не стандартный определенный член класса.

3

Другие решения

Быстрый Google покажет вам, что raw_name() зарегистрировано только Microsoft. Это не часть C ++.

3

По вопросам рекламы [email protected]