对typeid(T).name()的多次调用是否会返回相同的指针?

sha*_*oth 6 c++ rtti typeid typeinfo visual-c++

在C++中,我可以使用typeid运算符来检索任何多态类的名称:

const char* name = typeid( CMyClass ).name();
Run Code Online (Sandbox Code Playgroud)

const char* 只要存在相应的类,返回的指向的字符串将可用于我的程序.

多次调用会typeid(T).name()返回相同的指针值class T还是允许返回不同的指针?

Mar*_*ork 3

不,他们不需要返回相同的指针。

我在野外系统中也见过没有的。
每个 DLL 都有自己的包含 nmae 的类型对象副本,因此调用共享库 A 和共享库 B 中的 typeid(N).name 将产生不同的指针(尽管底层字符串相同)。