|
|
1
19
类型列表是类型的通用编译时集合。如果使用dynamic_cast,则会缺少该点,因为不需要它,因为它是一个静态的编译时概念。
不能使任何现有类型继承任何所需的类型。这是不可行的,因为现有类型可能是内置类型或库中的类型。 将类型列表视为任何合理数量的类型(而不仅仅是2)的类型列表扩展(例如,在std::pair中)。 类型列表可用于创建一个工具,以便将一组参数传递给函数。这是一个代码,调用5个参数的广义函子(从现代C++设计的另一个概念)与TUPE(另一个)中提供的参数与类型定义器一起定义,这些类型定义了元组中保存的对象的类型:
请注意,只有在使用诸如元组或函数之类的其他概念时,类型列表才开始有用。 另外,在一个项目中,我已经经历了大约2年的loki,由于模板代码(很多模板代码),调试版本中可执行文件的大小往往很大(我的记录是35MB左右)。此外,编译速度也受到了一些影响。还记得C++0x可能会包含一些等价的机制。结论:如果你不需要的话,尽量不要使用排版。 |
|
|
2
4
类型列表是一种将“参数列表”传递给模板元程序的方法,这些元程序作为编译过程的一部分“执行”。 因此,它们可以用于生成某种“联合”类型,但这只是一种可能的用途。 对于“真实世界”示例:我们使用类型列表作为在 Comet 图书馆。 它允许您编写这样的代码:
在本例中,“make_list”是用于生成“type list”的模板,实现_qi模板随后可以“枚举”到 generate the appropriate QueryInterface code . |