3

在 boost 图形库中,使用了属性映射。例如,考虑这个关于 properties 的链接。您可以添加多个属性列表,例如:

typedef property<vertex_distance_t, float, 
    property<vertex_name_t, std::string> > VertexProperty;

我的问题是:

  • 这个“模板列表”概念是否有名称,所以我可以用谷歌搜索它?
  • 是否有类似的高级模板结构,如数组或树?
  • 你有解释它的好书或网络链接吗?

注意:我需要一个没有 C++11 的解决方案,尽管 C++11 也会很有趣。

4

2 回答 2

3

这种类型的模板组合称为基类链接

它特别适用于

  • 从空基类优化中获利
  • 使得支持开放式mixins列表变得相对容易, 即使在不直接支持可变参数的编译器上也是如此

    编辑事实上,这确实是在 (c++0x) 可变参数(现代 C++ 设计)出现之前通常实现类型列表的方式

参考:

有关的:

于 2012-10-11T09:23:02.633 回答
1

这也是一个类型列表,未连接到 C++11。是对类型列表的一个很好的解释

于 2012-10-11T09:31:29.887 回答