C++ 模板:奇特递归模板模式(Curiously Recurring Template Pattern -CRTP)和 静多态(Static polymorphism)
2013-05-12 19:22
986 查看
C++: Prefer Curiously Recurring Template Pattern (CRTP) to Template Pattern:http://www.codeproject.com/Tips/537606/Cplusplus-Prefer-Curiously-Recurring-Template-Patt
静多态(Static polymorphism):http://en.wikipedia.org/wiki/Template_metaprogramming#Static_polymorphism
在“GoF”的设计模式一书中定义的“模板模式”,与C++模板无关,它是一种行为模式。
“奇特递归模板模式(CRTP)”是基于模板模式的改良,它是这样一种C++ idiom: 类 X 继承于基类模板实例,而该模板实例以 X 作为模板参数。此idiom名称由Jim Coplien创造,他曾在一些早期的C++模板代码中观察到此模式。此技巧可以实现如同使用虚函数那样的效果,但是没有(运行时期)动态多态的额外损耗(以及一些弹性的损失)。CRTP可作为模板模式的替代,提供动态多态--而并不要求在运行时期实现。此模式在Windows ATL/WTL 库中广泛使用。
静多态(Static polymorphism):http://en.wikipedia.org/wiki/Template_metaprogramming#Static_polymorphism
在“GoF”的设计模式一书中定义的“模板模式”,与C++模板无关,它是一种行为模式。
“奇特递归模板模式(CRTP)”是基于模板模式的改良,它是这样一种C++ idiom: 类 X 继承于基类模板实例,而该模板实例以 X 作为模板参数。此idiom名称由Jim Coplien创造,他曾在一些早期的C++模板代码中观察到此模式。此技巧可以实现如同使用虚函数那样的效果,但是没有(运行时期)动态多态的额外损耗(以及一些弹性的损失)。CRTP可作为模板模式的替代,提供动态多态--而并不要求在运行时期实现。此模式在Windows ATL/WTL 库中广泛使用。
相关文章推荐
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- 递归模板模式--The curiously recurring template pattern
- templates — C++模板的应用<奇特的递归模板模式>
- C++设计模式十--TemplatePattern(模板方法模式)
- 关于c++ template多态——CRTP 模式
- 模板与继承之艺术——奇特的递归模板模式(CRTP)
- 行为模式之模板方法模式(Template Pattern)C++实现
- C++惯用法:奇特的递归模板模式
- templates — C++模板的应用<奇特的递归模板模式>
- STL源码剖析 05 基础-CRTP奇特的递归模式模板 子类作为父类的模板参数
- 模板方法模式 - Template Method Pattern
- 模板方法模式(Template Method Pattern)
- 模板模式(Template Pattern)
- 设计模式【模板模式Template Pattern】
- 设计模式——模板方法模式( Template Method Pattern)
- 模板模式(Template Pattern)
- 模板方法模式(Template Method Pattern