1

在对我最后一个问题的有用答案之后,我开始对具有许多不同选项的类使用模板方法模式。在没有全部实现它们的情况下,我当前对该类对象的声明现在看起来像这样:

pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;

您如何处理长模板参数列表?我应该使用枚举/定义而不是真/假和数字吗?有没有常用的替代品?

4

4 回答 4

5

如果我有一个那么长的模板参数列表,我宁愿重新考虑我的设计。许多参数通常表明设计不佳。

于 2010-09-09T12:54:23.880 回答
4

是的,使用枚举(不是定义)而不是真/假。那样的话,如果你把参数弄乱了,编译器就会报错。此外,它对读者来说更清楚。

至于一般处理长参数列表 --- 将它们隐藏在 typedef 或修复某些模板参数的生成器后面,并让您改变其他参数。

于 2010-09-09T12:52:15.833 回答
2

我不做 c++,这可能不适用于模板,但是我会尝试使用具有长参数列表的普通方法来查找相关参数并尝试对它们进行合理分组并引入反映分组的参数对象,这样您就可以得到更复杂参数的更短列表。

于 2010-09-09T12:53:23.940 回答
1

我会评估一个参数,它是变体类型的集合,例如 std::vector。

于 2010-09-09T12:51:33.293 回答