QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5111|回复: 14
打印 上一主题 下一主题

深入理解C++11:C++11新特性解析与应用

[复制链接]
字体大小: 正常 放大

377

主题

148

听众

6001

积分

升级  20.02%

  • TA的每日心情
    奋斗
    2016-7-14 13:54
  • 签到天数: 219 天

    [LV.7]常住居民III

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2015年美赛冲刺

    群组高等数学串讲

    群组2014第三期英语写作

    群组SAS数据分析大赛冲刺

    群组2015美赛优秀论文解析

    跳转到指定楼层
    1#
    发表于 2014-7-25 10:30 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 数学中国—罂粟 于 2014-7-25 10:31 编辑
    ( n1 N8 K' z3 {1 E; E' Y( A$ `5 P* l/ N/ a' R9 D
    内容简介
    4 h: l4 k$ c3 S5 _深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。# k* a5 N1 o: r& \1 d
    深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计思维和应用范畴两个维度对C++11新标准中的所有特性进行了分类,呈现了C++11新特性的原貌;第2章讲解了在保证与C语言和旧版C++标准充分兼容的原则下增加的一些新特性;第3章讲解了具有广泛可用性、能与其他已有的或者新增的特性结合起来使用的、具有普适性的一些新特性;第4章讲解了C++11新标准对原有一些语言特性的改进,这些特性不仅能让C++变得更强大,还能提升程序员编写代码的效率;第5章讲解了C++11在安全方面所做的改进,主要涵盖枚举类型安全和指针安全两个方面的内容;第6章讲解了为了进一步提升和挖掘C++程序性能和让C++能更好地适应各种新硬件的发展而设计的新特性,如多核、多线程、并行编程方面的新特性;第7章讲解了一些颠覆C++一贯设计思想的新特性,如lambda表达式等;第8章讲解了C++11为了解决C++编程中各种典型实际问题而做出的有效改进,如对Unicode的深入支持等。附录中则介绍了C++11标准与其他相关标准的兼容性和区别、C++11中弃用的特性、编译器对C++11的支持情况,以及学习C++11的相关资源。
    & ~; T0 p7 B  P8 T2 u9 ]$ I( f  m; |* K1 I
    编辑推荐
    0 o7 A3 y" @5 x" X深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    8 U: d/ Y$ o' W9 A/ y4 V4 j. H  Z' U" [+ K! X# {
    作者简介8 z) m# H4 z6 c6 |1 `8 x: L, I7 N
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    + F( r( _( s! R! _# {4 R& k6 E; ^8 u( J' x! [2 O
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。6 E6 t/ N. v% o5 n7 o
    Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    / y; y9 _+ O# I" B* Y/ U早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。' k) O3 P& i9 H2 W
    IBM XL编译器中国开发团队,IBM拥有悠久的编译器开发历史(始于上世纪80年代),在全球有将近400名高素质工程师组成的研发团队,其中包括许多世界知名的研究学者和技术专家。IBM一直以来都是编程语言的制定者和倡导者之一,并将长期在编译领域进行研发和投资。IBM编译器中国开发团队于2010年在上海成立,现拥有编译器前端开发人员(C/C++)、后端开发人员、测试人员,以及性能分析人员共16人。团队与IBM北美编译器团队紧密合作,共同开发、测试和发布基于POWER系统的AIX及Linux平台下的XL C/C++和XL Fortran系列产品,并对其提供技术支持。虽然团队成立时间不长,但已于2012年成功发布最新版本的XL C/C++ for Linux V12.1 & XL Fortran for Linux V14.1,并获得7项发明专利。团队成员拥有较丰富的编译器开发经验,对编译技术、编程语言、性能优化和并行计算等各领域都有一定的研究,也对C++11标准的各种新特性有较早的研究和理解,并正在实际地参与C++11新特性的开发工作。* p1 \* h9 Q# C; P$ u) D& x/ t$ Z0 T

    & l; q* `8 I4 M+ J! l' m* z4 ~目录免责声明+ B, q# s9 t* G" F3 u
    ( w7 l3 B) l5 B
    前言  R7 m, U" N- L+ U
    第1章新标准的诞生1  s+ R% }! U- K# W. L
    1.1曙光:C++11标准的诞生11 \/ @$ A3 D2 i; {! d% ?6 G# ~; @, g
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1& ]# H8 O: L, M$ k( A9 @3 }+ Z
    1.1.2什么是C++11/C++0x25 V' c' n/ z9 V1 z9 h* w9 O( e
    1.1.3新C++语言的设计目标3. a0 F, A( l9 L% f2 j
    1.2今时今日的C++53 h" o& b/ z2 a7 _
    1.2.1C++的江湖地位5: {- k1 y( u6 S; L( k
    1.2.2C++11语言变化的领域56 v' V/ O8 J& F% n+ X! p7 b4 _
    1.3C++11特性的分类7: }  `! M: l1 p$ d
    1.4C++特性一览11# T5 b% E" I/ Y5 [9 R8 }
    1.4.1稳定性与兼容性之间的抉择11( R$ u. c  {3 z. A8 ?% _
    1.4.2更倾向于使用库而不是扩展语言来实现特性124 [# Z, D/ C  Q" X) ~
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    ' x: l. v8 {2 }1.4.4专家新手一概支持13, R* @8 E1 z9 n. I7 G8 r9 k# Q- G
    1.4.5增强类型的安全性14) H& E: b# v9 A1 O* ^9 l
    1.4.6与硬件紧密合作141 w. a2 C8 ^! h. k
    1.4.7开发能够改变人们思维方式的特性15
    ( s' g( \/ O/ _% A: X1.4.8融入编程现实16) J( j  g$ y) u! |" B
    1.5本书的约定175 j1 R8 E8 U' E" y0 A  F
    1.5.1关于一些术语的翻译17. U8 D$ _4 [& h6 d6 |
    1.5.2关于代码中的注释17
    * D6 ^8 Z' _' o9 H- \* R1 X1.5.3关于本书中的代码示例与实验平台18
    3 i& d5 ^* w; H) ^! t第2章保证稳定性和兼容性19( y* p% ?! S5 u5 w! r
    2.1保持与C99兼容19
    ; F/ X) v: I* T& ]) V+ f& {* u$ a2.1.1预定义宏19% p( h5 Y9 K" U& c  h# l0 n- P0 {
    2.1.2_func_预定义标识符20, _0 Y& I" r% I* d. s
    2.1.3_Pragma操作符22
    & z# ^9 A' e! M, V2.1.4变长参数的宏定义以及_VA_ARGS_222 @" o& q+ s' U1 e
    2.1.5宽窄字符串的连接23
    ) a2 I$ g( L/ `) O) u2.2longlong整型237 x0 B" l6 f( R( b
    2.3扩展的整型25; f) K9 `0 v! T
    2.4宏_cplusplus269 x- k/ \2 B9 N' y* Z0 |
    2.5静态断言27+ S( M5 D# R9 G0 k
    2.5.1断言:运行时与预处理时277 N* H; N& o: l9 B% R3 i
    2.5.2静态断言与static_assert28
    2 w; I" A5 c2 C/ y# z6 O9 a# X2.6noexcept修饰符与noexcept操作符32
    6 g0 i! M7 O8 f9 e  Q3 m2 `8 E0 c" }( `2.7快速初始化成员变量36
    ) F" s; |  G# A1 {2 {2.8非静态成员的sizeof39) s# Q! n6 n7 \% m  x# D
    2.9扩展的friend语法40
      U: x7 n. x7 ^; t. X6 k7 }2.10final/override控制44, Y" y& I6 y( M6 Q# ~
    2.11模板函数的默认模板参数48
    # G7 O! G, |4 [, h$ _+ ~) J2.12外部模板50/ \. h% S: l1 Y# f3 a. m3 V) y
    2.12.1为什么需要外部模板50
    ; C$ Z" M7 D; X+ X2.12.2显式的实例化与外部模板的声明52
    % ^8 A4 `- M" o$ s- L# {/ l/ V2.13局部和匿名类型作模板实参54; \/ B4 P/ o$ x9 l! L! p1 ?
    2.14本章小结55
    8 n( |/ R7 b& @& F" F第3章通用为本,专用为末57" t$ e7 z) d/ J0 E7 g) i' L4 H
    3.1继承构造函数57
    6 {$ Z3 l' g$ e0 q3.2委派构造函数62) [8 C+ ^, O* v* z
    3.3右值引用:移动语义和完美转发68# ^: b0 q5 P4 R/ i! n
    3.3.1指针成员与拷贝构造68
    ) L/ ?0 _6 Z2 B0 x' u' g4 {3.3.2移动语义69
    7 B" {3 x0 a1 P$ [/ |3.3.3左值、右值与右值引用75
    ' \9 b( o0 O3 X, ]6 p3.3.4std:move:强制转化为右值805 T$ ]' a# e# f$ X' {
    3.3.5移动语义的一些其他问题824 ]9 e1 P9 g! V* t
    3.3.6完美转发85
    4 Z$ v, s3 N5 i5 L. d3.4显式转换操作符89: N0 F+ ~$ `( S0 V5 s$ M# a
    3.5列表初始化92
    " v6 T) f4 a5 {" n! b3.5.1初始化列表92
    & l5 R) e# _6 {; H+ l; o1 ?8 ?3.5.2防止类型收窄96) B  J5 d# i' A5 K
    3.6POD类型98
    6 D8 S% v$ K( M: D, i5 c3.7非受限联合体106
    " Q! m) D" g/ T2 ]3.8用户自定义字面量110- ]6 X: F' l3 y, ~
    3.9内联名字空间1134 P, ?* k6 r- @0 A# ?* T
    3.10模板的别名118% V; V5 B/ e" J: e' `! {( [4 q
    3.11一般化的SFINEA规则1194 D( c  r7 q$ e- G
    3.12本章小结121* s- Y9 w5 {6 G
    第4章新手易学,老兵易用123
    % t( m7 |5 Q! b4.1右尖括号>的改进123
    4 ~" Z% o) G* B  B6 P4 m" h4.2auto类型推导1249 z& H  f" V0 {
    4.2.1静态类型、动态类型与类型推导124
    ; W, e' {7 h! c) X& u6 K6 w  l5 L4.2.2auto的优势126% A2 b( k, ^2 P( g" s: c0 }
    4.2.3auto的使用细则130
    ; R, w0 S' I' j4.3decltype134
    ; ?3 N6 n) D. K$ S4.3.1typeid与decltype134
    $ B9 C8 B+ x5 r  g0 Q4.3.2decltype的应用1367 D2 @% ^5 Y0 j6 R; F% \2 E, a
    4.3.3decltype推导四规则140
    8 \8 i6 W" e7 j4.3.4cv限制符的继承与冗余的符号143
    9 o  q) e  k4 J0 P/ C( m' b4.4追踪返回类型145+ k. |) l8 J5 G6 d( a0 t, N; Z
    4.4.1追踪返回类型的引入145
    ( Q: D* ~$ ?( s# u9 c; V) {, {4.4.2使用追踪返回类型的函数146
    # ]/ c: T  x2 L4.5基于范围的for循环150) ]2 O( O7 e) F8 u
    4.6本章小结1538 @( L1 R$ G: V' {
    第5章提高类型安全155
    3 [9 D* }' {$ U5.1强类型枚举155
    8 Q" B% d- K  Y% {5.1.1枚举:分门别类与数值的名字1559 s0 x* I  k2 w1 x4 ]( Q) V
    5.1.2有缺陷的枚举类型156$ C" u5 j% V; c' u2 S
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    ' t+ T! Z! d$ e) I9 G" V5.2堆内存管理:智能指针与垃圾回收163, M! p$ ~% A9 f; K( S. u
    5.2.1显式内存管理163+ f9 N2 A8 A' H$ `
    5.2.2C++11的智能指针164( B: t* k0 g$ @4 ]" V# Z
    5.2.3垃圾回收的分类167. p3 U2 A) b: O/ G- W$ d
    5.2.4C++与垃圾回收169
    ! C" t. i9 m) U. m5.2.5C++11与最小垃圾回收支持170
      p2 r/ ]- ~- C! \5 q: T" m" C5.2.6垃圾回收的兼容性172- j; D; r; o) e/ }& f
    5.3本章小结173
      v" h2 ]1 L7 d8 c9 f7 [6 a第6章提高性能及操作硬件的能力174
    9 S& D$ x- W9 I9 e8 O6.1常量表达式174- d# \- k) v) b/ q$ b
    6.1.1运行时常量性与编译时常量性174% w4 [; a7 v9 a8 P( Q6 C# a5 U
    6.1.2常量表达式函数176
    : c& S2 s  J; C* z" I6.1.3常量表达式值1785 O. o& i/ \9 f. b
    6.1.4常量表达式的其他应用180
    4 O# q' w6 q" S8 O6.2变长模板183  L7 f8 n0 ]) m! g
    6.2.1变长函数和变长的模板参数183
    5 e8 F* q9 H% p+ g  D# b6.2.2变长模板:模板参数包和函数参数包1852 o0 ~" u  n! I
    6.2.3变长模板:进阶189
    - K) X9 w* [4 d* W2 H6.3原子类型与原子操作196! A8 t3 P% h8 l
    6.3.1并行编程、多线程与C++11196
    - i% Q' J( m: D2 V2 V6.3.2原子操作与C++11原子类型197
    ( Y5 ?  A4 [; n6.3.3内存模型,顺序一致性与memory_order203( t  a% O. U" K. x3 S& P
    6.4线程局部存储214
    4 |' t! c6 f5 j% k6.5快速退出:quick_exit与at_quick_exit216
    ; C% A# Y# N8 _" |% V6.6本章小结219
    2 b& S! u; {' ^! V4 S; c+ m第7章为改变思考方式而改变220  g& y+ G# n# `- u; d4 J
    7.1指针空值—nullptr220
    6 Z4 X* t1 Q1 M* s& q4 y7.1.1指针空值:从0到NULL,再到nullptr220+ E# ?8 a3 `9 I' x
    7.1.2nullptr和nullptr_t2231 o- i3 W' _( ]
    7.1.3一些关于nullptr规则的讨论225: ^; R1 A, ~2 x1 G
    7.2默认函数的控制227
    3 u3 J  q. g. x# T( O, f7.2.1类与默认函数227* F7 o0 g+ o* e% i. W7 j
    7.2.2“=default”与“=deleted”230
    6 d+ d5 `' ^% M9 u$ K; n7.3lambda函数234  Z8 D3 s$ K, s, R
    7.3.1lambda的一些历史234
    1 X/ i7 w- X, Q7.3.2C++11中的lambda函数235$ A! e9 @( V  C& D
    7.3.3lambda与仿函数238
      j8 a! `5 o8 N7 o; e7.3.4lambda的基础使用240
    ) f% f- N$ e  |8 g7 P% e: k7.3.5关于lambda的一些问题及有趣的实验243+ e/ z* L: `5 }( G( m
    7.3.6lambda与STL247/ c" `5 V8 l1 S5 X  l6 I0 P* G+ h
    7.3.7更多的一些关于lambda的讨论254
    - S% C9 X+ W8 T) t2 k5 m; g' ~7.4本章小结256$ R* X+ Z& d5 D7 D& w. k" V
    第8章融入实际应用258
    6 r$ f& ~$ e8 ~( `9 ^) |2 \9 K8.1对齐支持258# d: z: A# u& m
    8.1.1数据对齐258* Q: z6 X! O& S7 q* q* F3 w
    8.1.2C++11的alignof和alignas2616 S* Y' T6 R5 }
    8.2通用属性267/ y0 a( _0 y( S2 P" W& i( T8 G; _
    8.2.1语言扩展到通用属性267
    8 Z/ L" Q, ^: r/ E8.2.2C++11的通用属性2686 I& o; S: B2 f
    8.2.3预定义的通用属性270
    0 `% v: P/ K, `$ D2 g& O# S8.3Unicode支持274
    ' l. n) A' E/ K2 c7 W5 T8.3.1字符集、编码和Unicode274: ~8 M& j# D! {2 }7 z
    8.3.2C++11中的Unicode支持276
    * D! ~% Q( w$ F, K$ H6 ~8.3.3关于Unicode的库支持280
    9 q& v- w1 o  ?7 N1 t1 o8.4原生字符串字面量284
    6 ], J, c) b& N8.5本章小结286" ]9 G6 ?! a0 P
    附录AC++11对其他标准的不兼容项目287: G6 Q( G' d0 M5 \
    附录B弃用的特性294  d7 A2 C5 q! h1 d9 T% ~6 ^5 F
    附录C编译器支持301; h3 q3 y. q% P/ M- J
    附录D相关资源304
    4 Y5 o9 z) {7 \2 T' s$ k9 C! @

    4 Z( Y9 I4 {6 S# c9 E# C' @: S4 f: U1 E1 l. ^! |, z0 w. d2 L
    封面3 o; m* m8 V+ P4 W6 c1 q
    1.jpg . ~4 u: G* @$ G+ [( U

    - V2 q5 Q; }5 G* F6 a截图6 B% {8 m( }: J: M8 o  f! A3 b+ O( W6 c( ?
    2.jpg
    $ S: m8 f2 c9 x# s# d7 h
    游客,如果您要查看本帖隐藏内容请回复

    ) n! S/ L; ]1 r3 y3 L* k
    8 A5 u9 \/ L: ]% Y% t0 F
    0 t* R3 x4 t4 `6 x/ d( x* P6 M4 q
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    叶小伦        

    2

    主题

    10

    听众

    179

    积分

  • TA的每日心情
    开心
    2014-12-7 00:20
  • 签到天数: 65 天

    [LV.6]常住居民II

    自我介绍
    数学爱好者

    社区QQ达人

    群组第六届国赛赛前冲刺培

    群组全国大学生数学建模竞

    群组数学建摸协会

    群组数模专题强化培训

    群组建模思维养成培训

    回复

    使用道具 举报

    0

    主题

    13

    听众

    284

    积分

    升级  92%

  • TA的每日心情
    开心
    2015-10-12 13:02
  • 签到天数: 77 天

    [LV.6]常住居民II

    自我介绍
    我是一个大一学生

    社区QQ达人

    回复

    使用道具 举报

    2

    主题

    7

    听众

    102

    积分

    升级  1%

  • TA的每日心情
    无聊
    2017-1-13 09:17
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    自我介绍
    将来想用MATLAB做东西

    社区QQ达人

    群组国赛讨论

    回复

    使用道具 举报

    0

    主题

    16

    听众

    666

    积分

    升级  16.5%

  • TA的每日心情
    无聊
    2018-8-4 15:30
  • 签到天数: 77 天

    [LV.6]常住居民II

    自我介绍
    爱数学

    群组数模专题强化培训

    群组2014年地区赛数学建模

    群组国赛讨论

    群组第二届数模基础实训

    回复

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

  • TA的每日心情
    无聊
    2014-11-26 09:41
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    在学习中进步
    回复

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

  • TA的每日心情
    无聊
    2014-11-26 09:41
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    在学习中进步
    回复

    使用道具 举报

    风树        

    1

    主题

    11

    听众

    151

    积分

    升级  25.5%

  • TA的每日心情

    2014-12-30 19:19
  • 签到天数: 48 天

    [LV.5]常住居民I

    自我介绍
    yyyy

    社区QQ达人

    回复

    使用道具 举报

    7

    主题

    8

    听众

    317

    积分

    升级  5.67%

  • TA的每日心情
    慵懒
    2016-10-11 09:39
  • 签到天数: 173 天

    [LV.7]常住居民III

    自我介绍
    想学习数学建模

    社区QQ达人

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组数学建模培训课堂1

    回复

    使用道具 举报

    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

    2015-5-31 00:30
  • 签到天数: 432 天

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

    群组2013电工杯A题讨论群组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-18 19:26 , Processed in 0.729834 second(s), 107 queries .

    回顶部