什么是typeid运算符返回的对象的生命周期?

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

如果我调用typeid并检索返回的地址type_info:

const type_info* info = &( typeid( Something ) );
Run Code Online (Sandbox Code Playgroud)

返回的对象的生命周期是什么typeid,指向该对象的指针有效期是多久?

CB *_*ley 10

但是实现实现它们,typeid表达式的结果是左值,并且这些左值引用的对象的生命周期必须持续到程序结束.

来自ISO/IEC 14882:2003 5.2.8 [expr.typeid]:

typeid表达式的结果是左值[...]左值引用的对象的生命周期延伸到程序的末尾.


Arm*_*yan 5

从C++ 2003标准的5.2.8.1开始:

typeid表达式的结果是静态类型const std :: type_info(18.5.1)和动态类型const std :: type_info或const name的左值,其中name是从std :: type_info派生的实现定义类,它保留了18.5.1.61中描述的行为) 左值引用的对象的生命周期延伸到程序的末尾.是否在程序末尾为type_info对象调用析构函数是未指定的.