anrxhzh 2002年10月31日
《Modern C++ Design》Loki库读解四
我在CSDN上的账号被冻结了,无法发表评论,谁能待发一下,相赠50分。


--------------------------------------------------------------------------


学而不思则惘,思而不学则怠。


从技术上看,loki的基石是typelist,这一个非常简单的概念:
template <class H, class T>
struct typelist
{
typedef H head;
typedef T tail;
};
typelist并不是loki的首创,它来自于Metaprogramming,但是把它运用于设计模式则是Andrei Alexandrescu的天才。
在我看来,loki是Generic Programming的实作,它和STL有亲缘关系。有的人把STL称作参数化的过程和类,我觉得这只是表面现象,没有人会把OO称作vtable,因为这里面蕴含着新的方法论。

STL解决了数据结构和算法的抽象问题,这是传统OO的难题。loki试图解决模式的抽象问题,这是一项创举,STL和loki都有自己的一系列术语,OO中的类在这里被泛化了。以“我爱你”为例,OO能够很好地表达我和你的概念,不能很好地表达爱这个概念,这就是GP的用武之地。HierarchyGenerators可以运用在abstrct factory中,实际上就是表达了“创建”这个概念。我觉得loki和STL的不同就是后者存储和操纵的是数据,前者存储和操纵的是类型;后者是运行时,前者是编译时。
...全文
439 点赞 收藏 41
写回复
41 条回复

还没有回复,快来抢沙发~

发动态
发帖子
工具平台和程序库
创建于2007-09-28

8236

社区成员

2.7w+

社区内容

C/C++ 工具平台和程序库
社区公告
暂无公告