策略
思想不仅可应用至类
,还应可应用至函数
,甚至可以是变量
!
C++
没有函数模板
作为插件
的功能,非常不方便
!
但是,D
中是有的!这样策略类
思想不仅可应用至类
,还可应用至函数
!
导入 标.标口;
整 h(整 I,T)(T b){中 I*b.长度;}
空 g(用 h,整 I,T...)(T t){
每一(p;t)写行(h!I(p));
}//h为策略函数,
空 主(){
串 a="ab",b="cd";
g!(h,2)(a,b);
}
h
模板函数,用作插件
,非常方便!
策略
可以说是模板
的核心
!函数模板/类模板
作为策略
插件提供多态,这样的能力是无与能比
的!
抽象出来函数模板
与类模板
,作为单独的插件
,这样的功能
是非常强大的!
而这里,C++
是无能为力的,C++
一直不重视函数模板
,函数模板
的功能就是个半吊子
!
因为你不能像D:
用 T=h!2;
这样,C++
中这样:
用 T=h<2>;
因而,在C++
中,就不能实现策略
函数,任何时候,想实现策略
,都要包装
在构
中,实在是非常
不方便!