注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

暇隙读书(8)——模板的发展方向  

2013-07-09 22:09:11|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

暇隙读书(8)——模板的发展方向

这节是插入的,看了看博客,发现少了第八节,只好硬插入一节。不好意思。

在《c++模板》第13章里,可以看到,在c++模板中,有许多让初学者或者说没用过模板的人会觉得非常惊讶和不可理解的事情。举一个简单的例子:

Typedef std::vector<std::list<int>  > LineTable;//ok  说明:最后两个>中间有空格,下面无。

Typedef std::vector<std::list<int> > LineTable; //error

这就是常说的尖括号hack,这个在初学C++时,在网上看到过,但由于自己没怎么大规模的用过模板,所以这个问题没遇到过。其实主要还是编译器会把没有两个尖括号处理好,和右移“>>”混淆了。

大家还可以看这本书P200中的另外一个类似的例子,这里就不再赘述了。

第二个就是typename的使用,在模板中有些让人不可琢磨,模板元素就可以使用,但是特化后就不允许使用:

Template <typename T>

Class Array

{

 Public:

         Typedef  T  ElementT;

    ….

};

Template <typename  T>

Void clear (typename Array<T>::ElementT&p);//ok

 

Template < >

Void clear (typename Array<int>::ElementT&p);//error

第三个是模板类可以有默认参数,但模板函数没有,这个东东就让人不爽了,领导干部搞特殊化历来是人们最痛恨的。

第四个,对于字符串和浮点不可以做为实参,其实也是为程序员们不满,前者是因为指针地址的问题,后者则干脆是C++标准犯懒,据说很快就支持浮点了,这个没有什么太大的难度。

第五个是模板的参数匹配目前太严格了,需要在新的模板库中放松对其的要求。

还有就是对typedef的支持也不是太好,

所以说,有很长的一段路需要走,模板需要一个不断渐变的过程,让大家一起看看最终它会走到什么地步。

  评论这张
 
阅读(391)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017