c++11 (一)

lambad ?
decltype和auto类型推导有什么关系?
什么是移动语义,以及(右值引用)是如何解决转发问题的?
default/deleted函数以及override是怎么回事?
异常描述符被什么替代了?noexcept是如何工作的?
什么是原子类型以及新的内存模型?
如何在c++11中做并行编程?
 

 

-----

C++11是一种新语言的开端。虽然设计C++11的目的是为了要取代C++98/03,不过相比于C++03标准,C++11则带来了数量可观的变化,这包括了约140个新特性,以及对C++03标准中约600个缺陷的修正。因此,从这个角度看来C++11更像是从C++98/03中孕育出的一种新语言。正如当年C++98/03为C++引入了如异常处理、模板等许多让人耳目一新的新特性一样,C++11也通过大量新特性的引入,让C++的面貌焕然一新。

 

C++98/03的设计目标如下:
❑比C语言更适合系统编程(且与C语言兼容)。
❑支持数据抽象。
❑支持面向对象编程。
❑支持泛型编程。

C++11的整体设计目标如下:
❑使得C++成为更好的适用于系统开发及库开发的语言。
❑使得C++成为更易于教学的语言(语法更加一致化和简单化)。
❑保证语言的稳定性,以及和C++03及C语言的兼容性。

C++11相对于C++98/03有哪些显著的增强呢?
❑通过内存模型、线程、原子操作等来支持本地并行编程(Native Concurrency)。
❑通过统一初始化表达式、auto、declytype、移动语义等来统一对泛型编程的支持。
❑通过constexpr、POD(概念)等更好地支持系统编程。
❑通过内联命名空间、继承构造函数和右值引用等,以更好地支持库的构建。

c++11 (一)

c++11 (一)