您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
C++的明天——以及明天的明天
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北师大IT 软件工程与测试实战班电话预约北京师范大学¥1800
北师大IT 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000

   7月15日-20日,标准委员会在Toronto开了一次会,IBM做的东。从会后的文档来看,除了把一些已经基本成熟的提案加入草案,进一步明确了打算C++0x的新特性,以及留到再下一版本的C++标准的提案。从中我们可以清晰地看到C++未来,以及未来的未来的发展趋势。文档“State of C++ Evolution”(http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2336.html)包含了最新的发展情况。本文便是基于这篇文档。

  首先,是一个清单,包含已经投票通过,合并到working paper的提案。从编程技术的角度来讲,比较主要的内容包括:

  A Proposal to Add an Rvalue Reference to the C++ Language

  Template aliases for C++

  Variadic Templates

  Delegating Constructors

  Decltype

  Rvalue Reference为C++提供了检测右值引用的能力,使C++具备了move语义和完美转发。

  Template aliases完善了C++的别名体系:

  template

  using MyVector=vector>;

  Vec v; // same as vector> v;

  使我们可以更灵活地创建类型别名。非常有用。(真想立刻得到它,我急等着用呢)。

  Variadic Template则进步更大。提供了可变的模板类型参数,也就是说,同一个模板的参数的数量是可变的:

  template

  class array { /* implementation */ };

  array rotation_matrix; // 3x3 rotation matrix

  array 3d_array; //3x3x3 array

  Variadic Template使得我们可以拥有真正任意结构的tuple,类型安全的printf()等崭新的基础设施。

  Delegating Constructors使我们可以“复用”一个“基本”的构造函数:

  class X {

  int i_;

  public:

  X( int i ) : i_(i) { }

  X() : X(42) { } // “复用”X(int i)

  };

  这个新特性可以大幅减少构造函数上的重复代码,提高效率。

  Decltype可以使我们提取一个表达式的类型:

  int a=1; float b=2;

  typedef decltype(a+b) result_t;

  typedef decltype(string::c_str) cstr_t;

  其他还有一些非常有用的特性,诸如static_assert、Generalized Constant Expressions等都非常实用,只是不如上述几大特性影响大。

  接下来是一大堆正在审查的提案。分成了7大部分:

  Voting at next meeting。下次会议打算投票表决的提案。目前只有一个Universal Character Names in Literals。

  Proposed wording under review in Core。正在核心语言小组(标准委员会的一个小组,负责核心语言特性相关提案的审查)中审查的提案。这些提案都已经有的wording,并都在做最终的详细审查。比较出名的包括:

  <!--[if !supportLists]-->1. <!--[endif]-->A name for the null pointer: nullptr;C++终于可以不需要再用0来代表null指针了。

  <!--[if !supportLists]-->2. <!--[endif]-->Initializer lists;一种通用的初始化列表(即{1,2,3,4,5})方案,扩展到了几乎所有类型。

  <!--[if !supportLists]-->3. <!--[endif]-->Explicit Conversion Operators;类型转换操作符是个麻烦制造者,主要因为它是默认implicit转换的。现在,可以为它加上explicit关键字,迫使其必须执行explicit转换。就像explicit constructor一样。

  <!--[if !supportLists]-->4. <!--[endif]-->Inheriting Constructors;可以直接复用基类的构造函数了。通过using default关键字。

  <!--[if !supportLists]-->5. <!--[endif]-->Proposal for new for-loop;想要foreach关键字的人可以满意了,只是依旧使用for关键字:for(int& a : array){…}。

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:Vista后,C++ Builder 2007托管还是原生?
下一篇:山东省2007年下半年计算机技术与软件技术资格考试通知
 相关新闻
·软件资格和水平考试的业界评价·河南郑州:计算机资格考试3月10日报名
·计算机技术与软件资格考试5日报名·今年IT培训市场测试3G唱主角
·计算机软件考试开始报名5月26日进行考试·全国计算机软件考试将于5月26日举行
·海南:2007年下半年报名时间及软考工作安排·河北省2007年下半年软考工作安排
·安徽省2007年下半年软考工作安排·浙江省2007年下半年软考工作安排
·辽宁省2007年下半年软考工作安排·湖南省2007年下半年软考工作安排
·福建省2007年下半年软考工作安排·黑龙江2007年下半年软考工作安排
·江苏:2007年下半年软考工作安排·山东省2007年下半年计算机技术与软件技术资格考试通知
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2008年云南公务员考试专业试卷之科技环保
·2008年云南公务员考试试卷之教育文化类专
·2008年云南公务员考试试卷参考答案之科技
·2008年云南公务员考试试卷参考答案之教育
·2008年公务员考试科教管理类专业试卷参考
·2008年公务员考试科教管理类专业试卷(云
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例