对RTTI raw_name()的好奇
curiosity about RTTI raw_name()
查看C++RTTI和type_info类,有时我会发现一个名为raw_name()
的方法的描述,该方法用于返回类的解映射名称。我在g++中找不到任何实现,只能找到方法name()
。你知道这是否是一个只针对VisualStudio/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
不是标准定义的类成员。
快速的谷歌将向您显示raw_name()
仅由Microsoft提供文档。它不是C++的一部分。
相关文章:
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- C++中"dependent name"的定义是什么?
- 将系数存储在头文件的数组中("does not name a type"错误)
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- C++初学者:为什么我的编译器根据我的循环返回"name not found"?
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- 如何解决"'mutex' in namespace 'std' does not name a type"?
- 在 C++ 中使用命名空间时出现"does not name a type"错误
- 已声明时"Does not name a type"错误
- 嵌套类"does not name a type"
- C++ "Using Uninitialized Memory.. (variable name) "
- 在反转字符串'my.name.is'时,我得到的输出为"is@.name.my"。我不明白'@'是从哪里来的
- C++错误:"class name"之前的预期类型说明符
- 好奇的混合与可变参数构造函数
- C++从"NameBase"类到模板"Name"类的相互关系的成语(或模式)
- 错误 C6011:取消引用空指针"NAME"。C++
- 无法构建 RcppArmadillo.package.skeleton 测试包:"R_init_"的多重定义<name>
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- "char const * name() const _WEBSOCKETPP_NOEXCEPT_TOKEN_ {"剂量是什么意思
- 为什么 std::locale( " " ).name() 在 clang 和 gcc 上给出不同的结果?