【发布时间】:2019-12-28 09:02:15
【问题描述】:
我正在阅读Alexandrescu 的现代 C++ 设计的第 3 章。它解释了 HierarchyGenerators.h 的实现,但是从那时起对库进行了更改。
我无法理解 ScatterHierarchyTag 如何解决解析 Field 函数中的歧义(该函数允许我们访问由特定 Base<type> 定义的成员,例如 Field<int>(Object) 将让我们获得 &Base<int> 到Object),当用于生成层次结构的类型列表有重复时。 (例如:GenScatterHierarchy<TYPELIST_4(int,int,string,Widget), Base> Object)我看到它在每个分支中添加了一个唯一的“类型/标签”,就在根 Base<type> 类之前,但仍然存在歧义,对吗?
提前谢谢你。
编辑:
图表显示类型列表中重复类型的多重继承问题。 GSH = GenScatterdHierarchy
我相信,对于到Base<int> 的两个连接中的每一个(用蓝线标记一个),唯一的标签都是单独插入的(根目录下的其他基类也是如此)
另外,为了方便大家理解,我插入了图片。如果它不符合 stackoverflow 的指南,请告诉我,我将删除它。
【问题讨论】: