|
1
4
如果你想要这样的一代,我只能推荐你读一读亚历山德雷斯库的书 Modern C++ Design . 有一整章专门讨论从类型列表生成层次结构。您也可以在Loki的网站上找到: Hierarchy Generators 对于您这个特殊的问题,这似乎非常简单。
当然,这只是一个草图。这里的主要问题是可扩展性。如果你读了Alexandrescu的书,你会学到更多,如果你没有时间,一定要在源代码上达到顶峰,这可能正是你所需要的。
有很多方法可以直接从
在这里,我选择不在策略级别增加复杂性(它们没有模板化),而是在每个级别依赖MI(dual)。您可以将其完全线性化,但模板化策略意味着您无法在源文件中定义它们。
|
|
|
2
3
如注释中所述,您需要链接构造函数调用。为此,派生链中的每个类型都必须知道其派生自什么类型-为了允许任意派生序列,我们需要使该类型成为模板,以便它们的基可以是任何类型。
我列举了一个基本示例,但最终没有使用boost,因为
|
|
|
3
3
我忍不住想看看如何用它来做
不过有一个警告:将引用传递给未初始化的成员(如在主机中所做的操作)是非常脆弱的。 例如,如果编写的策略如下所示:
不好的事情会发生,因为ExpensiveType的copy-ctor将被一个未初始化的对象调用。 |
|
|
4
-2
创建一个参数化构造函数并将参数传递给它。这样你可以同时完成两件事。 2) 避免调用默认构造函数。 |
|
SpeakX · 从模板参数类型构造类类型元组 2 年前 |
|
|
Astor · 简化编译时二进制树类型的创建 3 年前 |
|
|
Ryan · 更改JS中数字的功能(出于教育目的) 3 年前 |
|
|
Janilson · 如何解决这种多变的模板歧义 3 年前 |
|
|
C_Rod · 在模板方法中确定STL容器中项目的数据类型 4 年前 |
|
|
chenyuandong · Elixir中的元编程 8 年前 |
|
|
Marcos Felipe · 基于存储的变量进行比较 8 年前 |