使用模板标签的决定
Decisions using Template Tags
我有一个模板类,需要根据命令行参数实例化。
一定有比我能想到的更好的办法:
if (optionA == 1){
if (optionB == 2){
myclass <Option1, Option2, Option3> object;
}
}
else if (optionA == 2){
// a whole big if-else ladder
}
这甚至不允许我在if语句的作用域之外使用我的模板对象!顺便说一下,所有的选项都是标签
您的挑战是希望编译时决策(选项类型选择)基于运行时数据(args)。我可以想象一个宏/模板解决方案,生成一个"解析树",将选项代码映射到标签。但是这将导致生成模板类型的组合爆炸,从而减慢编译速度(可能还有运行时)。另一种方法是对每个选项使用工厂方法,将选项对象传递给myclass构造函数。没有纯编译时生成那么高效,但我没有看到其他选择。
相关文章:
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 如何正确指定 goto 语句的标签?
- 使用g++静态初始化带有命名标签的嵌套C++结构
- C++递归来决定数组中的两个值
- 通过水平滚动条更改标签
- 从 QFontDatabase 设置 QFont 将所有标签设置为等宽字体?Qt C++
- 在C++中存储要输入的标签列表
- 如何在等效列表中查找最小的连接标签
- 你如何决定将C++和/或 python 中的成员函数表示为静态?
- 标签检测鼠标单击 c++
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 如何根据C++中的标签运行特定函数?
- C++ Expat 仅打印元素的第一个字母和标签中的数据
- 默认标签显然在 switch 语句中不起作用
- 在 gcc/clang (C++) 中获取函数范围之外的标签地址
- 在"printf"中使用标签"h"或"hh"是否涉及未定义的
- GTK 3 C++按钮中带有标签的图标
- 我的随机生成器是否不工作,或者我决定人/骨架是否击中对手的方式是否有错误
- 使用模板标签的决定