在查看 C++ RTTI 和 type_info 类时,有时我会发现一个名为 raw_name()
的方法的描述,该方法用于返回类的 demangled 名称。我在 g++ 中找不到任何实现,只能找到方法 name()
。您是否知道这是否是仅针对 Visual Studio/MS 的特定实现以及是否是 C++ 标准的一部分?
最佳答案
它是具体实现,type_info
在标准中定义:
C++03 标准:18.7.1 类类型信息:
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
不是标准定义的类成员。
关于c++ - 对 RTTI raw_name() 的好奇心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14811401/