【发布时间】:2011-10-08 17:26:59
【问题描述】:
不使用typeid 的原因有很多。除了使用 type_info 的成员(实现定义的行为)之外,通常(总是?)可以使用其他 C++ 语言特性来提供类似的功能,例如:重载、虚函数等。
那么,除了依赖于实现定义的行为的使用之外,有没有人有一个真实的例子,typeid 是最好的解决方案?
【问题讨论】:
-
好问题;没有我能想到的:-)
-
作为一个非 C++ 开发人员,我一直很想知道为什么它会是实现定义的行为,而不是仅仅返回完全限定的类名...
-
@Christopher:对于模板,完全限定的类名可能会变得相当复杂。在我当前的应用程序中,我有大约 20 种类型的模板向量,这是一个相当大的名字(发生错误时,我的控制台上有几行)。规范为实现提供了一些回旋余地来防止这种爆炸。