C++未来会是怎样


  在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)

  };

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

  • 1
  • 2
  • 下一页
【内容导航】
第1页:C++未来会是怎样 第2页:C++未来会是怎样

相关内容