在d中,策略思想可扩展至函数
策略思想不仅可应用至类,还应可应用至函数,甚至可以是变量!
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++中,就不能实现策略函数,任何时候,想实现策略,都要包装在构中,实在是非常不方便!
浙公网安备 33010602011771号