我注意到typeid(T)
调用提供了一种很好的constexpr兼容方法,可以在编译时检索给定类的唯一标识符。这非常有用,但我注意到type_info
对象之间的关系运算符在编译时未启用。这是有道理的,因为实际ID可能在运行时有所不同。但是,我想在类型之间强加一个排序:
通过显式定义每种类型的ID,这在编译时非常可行。但是,我想知道是否有更合理的方法来生成每种类型的编译时,constexpr兼容的ID,允许进行关系操作。
谢谢!
答案 0 :(得分:2)
总结评论:
boost::fusion::set<>
具有您需要的功能,其中元函数可以模拟标准库中的大多数算法,包括插入和删除。所有Fusion容器都是完全基于堆栈的,因为所有容器都是基于算法元函数的元组。
(Boost.Fusion概述here。)