关于RTTI raw_name()的好奇心

时间:2013-02-11 12:01:17

标签: c++ visual-studio rtti typeinfo

查看C ++ RTTI和type_info类有时我会找到一个名为raw_name()的方法的描述,该方法用于返回类的demangled名称。我在g ++中找不到任何实现,但只找到方法name()。您是否知道这是否仅适用于Visual Studio / MS以及是否属于C ++标准?

2 个答案:

答案 0 :(得分:3)

快速Google会告诉您raw_name()仅由Microsoft记录。它不是C ++的一部分。

答案 1 :(得分:3)

具体实施type_info在标准中定义:

C ++ 03标准:18.7.1 Class 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 标准定义的类成员。