《深入理解C++11:C++ 11新特性解析与应用》——1.3 C++11特性的分类

1.3 C++11特性的分类

从设计目标上说,能够让各个特性协同工作是设计C++11/0x中最为关键的部分。委员会总希望通过特性协作取得整体大于个体的效果,但这也是语言设计过程中最困难的一点。因此相比于其他的各种考虑,WG21更专注于以下理念:

image

根据这些设计理念可以对新特性进行分类。在本书中,我们的核心章节(第2~8章)也会按照这样的方式进行划分。在可能的时候,我们也会为每个理念取个有趣一点儿的中文名字。

而从使用上,Scott Mayers则为C++11创建了另外一种有效的分类方式,Mayers根据C++11的使用者是类的使用者,还是库的使用者,或者特性是广泛使用的,还是库的增强的来区分各个特性。具体地,可以把特性分为以下几种:

image

那么我们可以结合这种分类再来看一下可以怎样来学习所有的特性。下面我们通过设计理念和用户群对C++11特性进行分类,如表1-3所示。

由于C++11的新特性非常多,因此本书不准备涵盖所有内容。我们粗略地将特性划分为核心语言特性和库特性。而从C++11标准的章节划分来看(读者可以从网站上搜到接近于最终版本的草稿,正式的标准需要通过购买获得),本书将涉及C++11标准中第1~16章的语言特性部分(在C++11语言标准中,第1~16章涵盖了核心语言特性,第17~30章涉及库特性),而标准库将不在本书中描述。当然,这会导致许多灰色地带,因为如同我们提到的,我们总是倾向于使用库而不是语言扩展来实现一些特性,那么实际上,讲解语言核心特性也必然涉及库的内容。典型的,原子操作(atomics)就是这样一个例子。因此,在本书的编写中,我们只是不对标准库进行专门的讲解,而与核心内容相关的库内容,我们还是会有所描述的。

image
image
image
image

而之前我们提到过的“更倾向于使用库而不是扩展语言来实现特性”理念的部分,如果有可能,我们会在另一本书或者本书的下一个版本中来进行讲解。下面列出了属于该设计理念下的库特性:

image
image

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
相比于 C++98 带来的面向对象的革命性,C++11 带来的 XIII  却并非“翻天覆地”式的改变。很多时候,程序员保持着“C++98 式”的观点来看待 C++11 代码也同样是合理的。因为在编程思想上,C++11 依然遵从了一贯的面向对象的思想,并深 入加强了泛型编程的支持。从我们的观察来看,C++11 更多的是对步入“成熟稳重”的中年 时期的 C++ 的一种改造。比如,像 auto 类型推导这样的新特性,展现出的是语言的亲和力 ; 而右值引用、移动语义的特性,则着重于改变一些使用 C++ 程序库时容易发生的性能不佳的 状况。当然,C++11 中也有局部的创新,比如 lambda 函数的引入,以及原子类型的设计等, 都体现了语言与时俱进的活力。语言的诸多方面都在 C++11 中再次被锤炼,从而变得更加合 理、更加条理清晰、更加易用。C++11C++ 语言改进的每一点,都呈现出了经过长时间技 术沉淀的编程语言的特色与风采。所以从这个角度上看,学习 C++11C++98 在思想上是 一脉相承的,程序员可以用较小的代价对 C++ 的知识进行更新换代。而在现实中,只要修改 少量已有代码(甚至不修改) ,就可以使用 C++11 编译器对旧有代码进行升级编译而获得新 标准带来的好处,这也非常具有实用性。因此,从很多方面来看,C++ 程序员都应该乐于升 级换代已有的知识,而学习及使用 C++11 也正是大势所趋。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值