在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++中,就不能实现策略函数,任何时候,想实现策略,都要包装中,实在是非常不方便!

posted @ 2022-10-25 11:19  zjh6  阅读(124)  评论(0)    收藏  举报  来源