template <typename T, template<typename> class FunObj>
class minimizer<T, FunObj<T> > {}
如果我们又重新定义了FuncObj, 上面的minimizer 定义则必须改变(改变模板参数)
template<tyepname T, int N>
class FunObj
{
}
,这个缺陷太重要,以至于我们不应该使用这种设计,除非:你确定FunObj非常稳定,模板参数(个数,顺序等)永远不会改变。
不然,会带来灾难性后果——改设计,一直改到最基本的那个设计。
更多参见:C++库研究笔记——使用函数模板还是类模板?+ 一个类型重复问题的两种解决方法
本文讨论了C++中模板参数稳定性的重要性,并通过一个具体例子说明了当模板参数发生变化时可能带来的问题。强调在设计之初需要考虑模板参数的稳定性,避免未来因修改而引发的设计变更。
9481

被折叠的 条评论
为什么被折叠?



