c – 在运行时或编译时是否对typeid(T)进行评估?

我无法在任何地方找到这个看似简单的问题的答案.

以下C函数是否使用RTTI?它当然不必,但我想知道是否有保证在编译时确定typeid.

template <typename T>
const char *getName()
{
   return typeid(T).name();   // Resolved at compile time?
}

解决方法

由于typeid应用于类型而不是对象,因此没有运行时类型信息,因此开销不会成为问题.

另一方面:据我所知,标准对何时确定值没有要求,因此无法保证不存在运行时开销.

编辑:当然,(可能)没有保证的事实并不意味着它不是一个合理的假设.我无法想象有人会编写一个在编译时没有评估typeid(T)的编译器.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...