C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。
       对左值和右值的一个最常见的误解是:等号左边的就是左值,等号右边的就是右值。左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则[……]

更多

  C++ 11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++ 98中的标识临时变量的语义,由于使用极少且多余,在C++ 11中已被删除。
      auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。
auto a;      &#160[……]

更多

C++11标准推出了很多有用的新特性。本文特别关注相比C++98更像是一门新语言的那部分特性,因为:

这些特性改变了编写C++程序使用的代码风格和习语[TODO],通常也包括你设计C++函数库的方式。例如,你会看到更多参数和返回值类型为智能指针(smart pointer),同时也会看到函数通过值传递返回大型对象

你将会发现在大多数的代码示例中充斥着新特性的身影。例如,几乎每5行现代C++代码示例都会使用到auto

C++11的其他特性也很棒。但是请先熟悉下面这些,正是因为这些特性的广[……]

更多