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