QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

6010

积分

升级  20.2%

  • 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 编辑 1 v9 d9 |! T" V3 S; c) y- z, C

    3 q( M, w2 k* @7 P( U- b" P* t内容简介
    ( Q( F. t& [* R6 h( K0 X深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。- Q/ ~2 W! p: K0 P, ^
    深入理解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的相关资源。7 I; Y, M/ [9 D) h6 S

    , l" C1 T& V8 s! }编辑推荐8 x; _# _, @% }( i+ ]2 J7 W
    深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    - y1 S9 @* |: S7 R6 l- C! f
    9 N1 `; p1 @5 A+ N) J. f" |作者简介
    ; e0 B' ~8 M8 b6 T* q作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
      t2 ^2 t8 d% U5 L( b. U0 S& p+ o/ I0 v! |9 x9 K  y$ a$ f8 Z
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。8 R( d; k* f9 c6 E; h6 R
    Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    . m: q9 V* a9 F7 k8 ]/ c$ z6 O- n早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。1 H- E: k+ U, Y/ u; O
    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新特性的开发工作。
    # G" _9 b9 ^/ m2 L2 l- P# d5 Q1 H$ }* r7 n- H- k! V  N" u  x8 i
    目录免责声明# K; T, B- m4 A) ]- g. T2 @" S
    9 q$ f5 I4 n4 c9 F3 |( w
    前言5 g; s8 @4 Z' v# R4 Y: [
    第1章新标准的诞生1
    ) X/ o" C% z4 D3 M1 |7 E- _; m1.1曙光:C++11标准的诞生1
      }* p! K# ?# X6 T7 k1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    $ W0 \$ E) V& c* u1.1.2什么是C++11/C++0x2
    * j3 _# Q1 p4 P" T1 }/ ?1.1.3新C++语言的设计目标3
    % T3 K' X* b0 A# q1.2今时今日的C++5
    4 @. ~- V* E$ Q3 H( w  A$ A  {8 W* c1.2.1C++的江湖地位5
    0 i9 M* [; a7 n- W1 p; A# R5 N0 O' ~1.2.2C++11语言变化的领域5
    ; @; z$ ^8 @# r9 p5 g) z  J1.3C++11特性的分类7
    7 M) ]& ~' N4 [* i$ X1.4C++特性一览11% L  L9 R+ F2 K. H. j+ B
    1.4.1稳定性与兼容性之间的抉择11
    " m. ~; S+ I2 j9 C# u) A( U& i1.4.2更倾向于使用库而不是扩展语言来实现特性12
    ) u5 Q3 x, L. U+ |8 Q1.4.3更倾向于通用的而不是特殊的手段来实现特性13) @$ F7 w5 i6 n( m4 P2 ]
    1.4.4专家新手一概支持130 a' ?4 D6 B7 V) S; s$ [
    1.4.5增强类型的安全性14
    ; j& B& W( l4 y; `2 f1.4.6与硬件紧密合作14
    * q5 B. |8 S" O9 x9 ?1 ?+ |& ^+ y1.4.7开发能够改变人们思维方式的特性156 j: y8 O1 E: V. G
    1.4.8融入编程现实16, n& u9 D( T: _% }6 C+ |! x; e; [
    1.5本书的约定17
    4 s5 F, n/ R, D  J0 u4 w7 g/ D1.5.1关于一些术语的翻译17& a- z/ E5 p5 R. m9 F
    1.5.2关于代码中的注释17
    ) w: K; c. l5 e% f  g$ ?1.5.3关于本书中的代码示例与实验平台18
    6 g9 x5 d. s3 ~+ [; h9 i% z9 h$ [第2章保证稳定性和兼容性19
    - F$ l6 v# S! n7 r: I2 \2.1保持与C99兼容19) l7 L' F1 n) E1 h7 Q
    2.1.1预定义宏19
    / k& |' i( U$ L+ O8 z0 Y2.1.2_func_预定义标识符20
    6 u" \4 w4 U% F/ X8 _+ q2.1.3_Pragma操作符229 w2 C3 p, O# H( F/ Q0 |
    2.1.4变长参数的宏定义以及_VA_ARGS_22
    & e* o! k2 J& J0 G' {. U: f2.1.5宽窄字符串的连接23
    / z8 Y& S4 p( z7 h0 B2.2longlong整型23
    $ A! j3 b9 N9 t2.3扩展的整型25. b, E8 x4 W8 m7 ]# k
    2.4宏_cplusplus262 p* [% d( X6 @8 u, o
    2.5静态断言27* F9 ]% ]% _' b: Q) B; }" `# ?. t
    2.5.1断言:运行时与预处理时27/ |$ t1 J! ?6 c4 b1 E- ]
    2.5.2静态断言与static_assert28
    0 k5 C; e8 T+ K7 j- x2.6noexcept修饰符与noexcept操作符32
    4 G( H( H: h- x5 ~5 w3 X2.7快速初始化成员变量367 G6 K' r/ \1 ?" T* v, ?! ^+ b
    2.8非静态成员的sizeof393 {! j6 \& ^+ z- U" l3 q" C1 k
    2.9扩展的friend语法402 [  F- _7 N& [" ?0 ^9 Q' v0 H+ X
    2.10final/override控制44. p: u1 N1 w0 J+ }7 i
    2.11模板函数的默认模板参数48
    % K' U9 ?' H; C# Z9 s- X# ~4 }! n2.12外部模板50
    . f( @. i2 n3 U, h* }# x: @2.12.1为什么需要外部模板504 L3 P/ T0 z  N. m" L8 M
    2.12.2显式的实例化与外部模板的声明521 [1 E* p) ^8 K1 d8 B
    2.13局部和匿名类型作模板实参54
    . `1 E. O: H/ s3 d2.14本章小结55
    / ~4 P  C" a' M2 ^第3章通用为本,专用为末57
    6 o7 v! }1 Y' g. Y% ~3.1继承构造函数57
    : J7 U2 D  j5 V) V5 Z/ ^4 U3.2委派构造函数62+ D8 z. b% V9 e. z9 |
    3.3右值引用:移动语义和完美转发68
    . R& U8 ?; c; ]5 _. @3.3.1指针成员与拷贝构造68
    ( L3 j7 o& ^; D  S- O8 n3.3.2移动语义69
    6 d+ j4 B( V* c3 T. R3.3.3左值、右值与右值引用752 W7 a4 t% ~( R0 {8 l) E
    3.3.4std:move:强制转化为右值80( \8 E/ L# w3 }
    3.3.5移动语义的一些其他问题82
    * I+ V( g( a, H& X8 b3.3.6完美转发85
    % @9 |, d/ K: S/ z( I( V4 r) E- B3.4显式转换操作符893 b/ [* ]( Q( \6 k0 `, o% n4 U7 v
    3.5列表初始化92
    , G" N! D7 |7 A; s# j# C' h/ B3.5.1初始化列表92; p3 _& e) J  S% n; ]
    3.5.2防止类型收窄96# e% ~7 V; ]9 Z9 i1 J, ]) e' k
    3.6POD类型98
    # h3 O- i  o+ e+ p+ C! P" q3.7非受限联合体106
    & @) E8 _! U$ i! n: @+ g3.8用户自定义字面量110, Z& K! z, w6 _9 [$ {- [$ |' T$ }
    3.9内联名字空间113
    ! L2 P# @& ]$ ?3.10模板的别名1187 ^! U$ b! L* ^# S4 N* M  P
    3.11一般化的SFINEA规则119
    4 C& d/ j6 T$ u$ u3.12本章小结121- ?) e/ z- Z; ^' F
    第4章新手易学,老兵易用123
    4 E) x6 ]1 Q  `4.1右尖括号>的改进123
    % m4 X/ E8 @0 n% h/ @4.2auto类型推导124
    ( j3 A4 A+ E4 [1 x7 l# q* E4.2.1静态类型、动态类型与类型推导124
    4 q" b3 }6 N/ U- |4.2.2auto的优势126* o7 |' K  G- h
    4.2.3auto的使用细则1307 @3 X5 X% E6 t7 r* g- j
    4.3decltype134
    " l# X" s) z' c1 r, [" d4.3.1typeid与decltype1346 S' `1 _2 l' ]% R- A& n7 Y2 L" Y
    4.3.2decltype的应用136" H+ [/ w: p& Y/ D
    4.3.3decltype推导四规则140- a( H2 H! ~1 R, Z* o$ E5 P% `
    4.3.4cv限制符的继承与冗余的符号143& P5 `1 U3 u' Z  c/ g
    4.4追踪返回类型145; Y: Q9 h, M$ N6 y1 A
    4.4.1追踪返回类型的引入1455 S! O/ |, Q/ E( I8 o9 s$ n. s
    4.4.2使用追踪返回类型的函数146/ B6 K  _3 m# y  T% c, K
    4.5基于范围的for循环150* z+ O' g6 @( `: p# I$ M; [
    4.6本章小结153) ~# j* T9 B$ q+ q2 l
    第5章提高类型安全1551 |, O' m0 |3 g' D/ B9 l7 J! ?$ ^
    5.1强类型枚举155
    # Y- ~/ C* t6 t; J/ `$ u0 o2 X5.1.1枚举:分门别类与数值的名字155
    . {$ [9 v" S; D' [! z& d5.1.2有缺陷的枚举类型156
    " q+ I" L7 Z0 f6 y! ]9 Z5.1.3强类型枚举以及C++11对原有枚举类型的扩展160' V0 n! O# P, n! Q+ j
    5.2堆内存管理:智能指针与垃圾回收163
    8 Q. ?" M5 c. A" I9 m2 S  ]# a6 e1 s. r5.2.1显式内存管理163
    3 A! j# {# P& B2 k5.2.2C++11的智能指针164
    0 p6 B: F- Q- n- K; ]% J) j5.2.3垃圾回收的分类167
    1 {5 v5 c2 z+ M5.2.4C++与垃圾回收169
    6 }+ Y9 j/ a6 W2 L9 L# u7 b* d5.2.5C++11与最小垃圾回收支持1704 t" P: W# C. {( C% E! [
    5.2.6垃圾回收的兼容性172  `6 A8 I! l; s  j
    5.3本章小结1736 D3 {7 Z1 B' P4 K
    第6章提高性能及操作硬件的能力174
    6 [. ?  S. {* C7 h. I1 v6.1常量表达式1746 \4 \1 S6 ?, x0 x# u0 V& i& l* Z
    6.1.1运行时常量性与编译时常量性174$ ?) I' B  P9 F; G6 q$ r7 u3 E
    6.1.2常量表达式函数176
    + s& T5 a% H* t5 }) D- g6.1.3常量表达式值178
    $ u' U& R- _; d( y: _6.1.4常量表达式的其他应用180
    : s6 R3 a; z, W4 I0 z6.2变长模板183
    $ G" G" e  t, v; S6.2.1变长函数和变长的模板参数1838 a9 s0 V1 U* ?) \
    6.2.2变长模板:模板参数包和函数参数包185
    3 Y/ X3 [* h' k3 x1 o# N2 Z0 c6.2.3变长模板:进阶189
    . ^5 |! I: g) }# n: w6.3原子类型与原子操作196$ p" J. h4 W7 Y5 y' T
    6.3.1并行编程、多线程与C++11196
    9 E+ v! N- ~% L! L( W6.3.2原子操作与C++11原子类型197( q) d* N6 O$ P  i
    6.3.3内存模型,顺序一致性与memory_order203( I, ~& E2 D$ P7 ]+ L
    6.4线程局部存储2140 w3 b  V+ U% y$ y# N: l* c
    6.5快速退出:quick_exit与at_quick_exit2167 M% x7 M) B3 O8 C
    6.6本章小结219
    ; ^& t  @# k2 I$ t9 Q第7章为改变思考方式而改变220) c! M9 n; }; @, q
    7.1指针空值—nullptr220
    ' W8 D9 O7 e7 u$ r9 N+ a7.1.1指针空值:从0到NULL,再到nullptr220
      }0 p; G. X& N+ I7.1.2nullptr和nullptr_t2232 I* X+ ~. c1 ^* @! ?5 q
    7.1.3一些关于nullptr规则的讨论225: \$ _9 T+ C8 h! L4 S9 v! F2 @
    7.2默认函数的控制227
    ( \# R; M4 w9 s& j8 y6 ~' J' R# H7.2.1类与默认函数2273 p) `/ @! b, t- A6 _  v/ W# Q
    7.2.2“=default”与“=deleted”230
    8 o4 s6 u$ B' F: G& F7.3lambda函数2348 l( V0 A& F+ u2 I  I
    7.3.1lambda的一些历史234
    # r( B- h9 P3 V' P: X+ q& r' t, m7.3.2C++11中的lambda函数235
      y" ]- V7 ^# r$ w% Z3 v' S) h8 j, q7.3.3lambda与仿函数238
    : k7 m- s! A. H9 W7.3.4lambda的基础使用2408 u" b4 U- B, T; D6 p; j, p
    7.3.5关于lambda的一些问题及有趣的实验243; @" e/ p, x% @: E
    7.3.6lambda与STL247
    % {/ W! L; A' t7.3.7更多的一些关于lambda的讨论254, V$ T0 ?9 {, c
    7.4本章小结256
    + k& K7 }4 z$ S- r' S* J6 R7 w第8章融入实际应用2587 i0 b5 P0 R1 v9 F
    8.1对齐支持258
    / Y+ [- m. b6 i( W3 S2 }' }0 j8.1.1数据对齐258
      K0 X& f+ l* P4 }( F8.1.2C++11的alignof和alignas2610 J3 v) X' j; o7 }* d  V) Y, ^' _
    8.2通用属性2678 Q( A5 I6 K9 u/ }/ Z4 x' y
    8.2.1语言扩展到通用属性267
    6 C3 C* K; s2 N# y: f8.2.2C++11的通用属性268: f' i# m) }/ {4 J- M8 m+ M
    8.2.3预定义的通用属性2705 b/ ?; I( [/ T9 D" F4 h! |
    8.3Unicode支持2749 d$ T6 Y6 I/ ]; ?, c9 r0 t
    8.3.1字符集、编码和Unicode274, Y% }( T9 l* f/ S( M! X
    8.3.2C++11中的Unicode支持276  W/ @3 V1 k. _# E' U- t9 f! s
    8.3.3关于Unicode的库支持280
    1 g$ S$ k) ~2 ?+ q" z* ^5 x! o' i8 T8.4原生字符串字面量284' B7 {8 E# m# v% S/ ?6 h( k$ s
    8.5本章小结286
    9 ?. r( t: T- A9 v' N/ e( X附录AC++11对其他标准的不兼容项目287
    + a& Z! U; U: I0 F% H& d* ]附录B弃用的特性294$ n5 g3 m# w* I
    附录C编译器支持3010 f7 a. A! r1 s) }
    附录D相关资源304+ w7 E3 o$ v# |! P9 J: q
    0 q+ A/ C* z7 T

    ! t6 _+ c+ ~9 a2 |$ [封面! u3 O0 k- H' O
    1.jpg 8 y) Q6 b* e$ y
    7 d* D6 g. ]1 }2 C: U! ^
    截图
      x1 S  a5 L$ S6 I3 | 2.jpg
    ; x/ H6 j& Q- u0 \4 e
    游客,如果您要查看本帖隐藏内容请回复
    4 A  M% r$ x. f. p' C  f6 R

      Y1 y: s+ E5 j" M2 ?
    # f( g! F' Y4 ^! m
    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-9-4 20:11 , Processed in 0.499781 second(s), 108 queries .

    回顶部