RTTI (Run-Time Type Infomation), 就是用来知道,运行时一个对象真实的类型,其中一种实现如下。
// Own implementation of rtti-subset to avoid depending on rtti and its costs.
template<typename T>
static OptionIdentifier identifier() {
static char id_placeholder;
return &id_placeholder;
}
(摘抄自 webrtc 工程)
特点:
1. 依赖于运行时,静态变量只有单一实例,可以得到相同地址;
2. 使用一个无意义的占位符来完成占位地址的功能;
其实 RTTI 的实现有很多种,这种方式虽不得调试,但性能尚佳,不失为一种方法,也可以把占位符换成更得调试的字符串信息来表征类信息。