RTTI的实现
如何获取一个类型T的name或者唯一ID, 对于这个问题, 最常规的方式应该是借助C++的rtti了, 比如如ponder中所使用的方式:
namespace ponder {
namespace..., ponder中大量依赖这种方式进行 T -> std::type_index的转换, 作为常规实现, 它具有以下特点:
它确实能够比较好的生成一个自带hash实现的std::type_index,...可以很好的用它作为key来索引类型相关的对象....利用相同的方法也可以很容易的获取类型T的字符串名称.
在rtti开启的情况下, 功能直接可获取....通过constexpr, 很好的解决了编译期获取类型T的唯一字符名称和64位hash的问题, 而且不依赖rtti, 比较优雅的解决了T->name和T->id的问题.