0
点赞
收藏
分享

微信扫一扫

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


举报

相关推荐

0 条评论