QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5971

积分

升级  19.42%

  • 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 编辑
    9 K3 a" k; @/ C+ o2 j1 ?
    ) Q3 i, ?: Q/ O% u- D. T内容简介# Y. C! c7 J6 u& ?) c, X# S
    深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。9 C+ w$ t+ F, P+ E! R0 ~, J* B. [
    深入理解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的相关资源。9 i: j3 d$ \, |0 W/ ]
    - _+ S& N/ X. U
    编辑推荐
    + j# m- t6 \8 c深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。' s* b# L& X0 I( _3 u( A' H! U

    7 ?6 Y- g1 |. }: \) g作者简介% z0 q4 D% y; }) X: N0 W1 D
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    8 o- P7 e* D5 S1 K7 z3 R2 `: A1 H& r7 K) V
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    " C1 I7 R5 J# ^Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。
    3 \, J. ~9 N+ E% @早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。* {( X( c+ M% _$ `. V
    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新特性的开发工作。! v; ?+ j9 d, w$ d
    : j; \# k4 w$ J
    目录免责声明
    4 x  Z. ^& E6 {0 P. i: l3 n9 y' |* r: [* W4 W& k  L8 o
    前言) k; n8 Y& {! x
    第1章新标准的诞生1
    5 C( q, l  {; n1.1曙光:C++11标准的诞生1. W8 ~2 E* z4 [! V0 L
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    $ c1 Q. g! S$ U! p) _1.1.2什么是C++11/C++0x2# ^# j# f7 I0 n# }
    1.1.3新C++语言的设计目标3
    & V) b* p" l5 V1 ^1 k1.2今时今日的C++59 Z' g: e# _- S- |
    1.2.1C++的江湖地位5" O' f0 v# s8 m- Y1 ]
    1.2.2C++11语言变化的领域5
    / y, U# W/ z. V, M9 b1.3C++11特性的分类7
    ; J* X/ B! H/ g9 m! p/ h8 }; J1.4C++特性一览11
    8 P, Q4 l1 L& ^& Q, F) M1.4.1稳定性与兼容性之间的抉择11
    9 r$ s  k. S+ g& j0 e1.4.2更倾向于使用库而不是扩展语言来实现特性12# R' J& y; R, [6 ]( \
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    , X" m! o# q$ P9 W1 [: l1 c1.4.4专家新手一概支持13
    8 O/ J* G& t1 X) r- X1.4.5增强类型的安全性14
    ; B4 m% q. v' `: e1.4.6与硬件紧密合作142 @. z! A- m8 l2 ~5 @
    1.4.7开发能够改变人们思维方式的特性156 X7 H4 [9 B4 o1 R
    1.4.8融入编程现实169 i  x3 k. W# \- O6 b* }- h1 T% X# H" v
    1.5本书的约定17; e* U0 M' d" ]  w
    1.5.1关于一些术语的翻译17
    - ]9 u4 w* k- }1 t1.5.2关于代码中的注释17! F$ n) l. e5 O! N$ A( y2 x5 H6 H6 K
    1.5.3关于本书中的代码示例与实验平台18; G2 ?' R8 w2 r& Q
    第2章保证稳定性和兼容性194 M) C' w; h( l, j. V) P
    2.1保持与C99兼容19
      v5 z- Y( U1 Z% l! ?1 U5 Q2 P8 J2.1.1预定义宏19
    - M: q/ x4 N, \* t4 n+ x2.1.2_func_预定义标识符20
    ' c9 z5 H  y+ e; S2.1.3_Pragma操作符22
      f# |& ?9 ^5 c( s. B2.1.4变长参数的宏定义以及_VA_ARGS_22
    * z: K9 ^$ Q8 T" q2.1.5宽窄字符串的连接23
    9 O7 h( x- a$ Y. U& P2.2longlong整型237 P; R9 m3 s: k1 t8 A5 u
    2.3扩展的整型25
    . v! a# N( V1 [) t" }8 D( c4 Q2.4宏_cplusplus264 H6 U! c+ [0 T( S; u6 D
    2.5静态断言27
    4 z1 P/ W1 S6 O! K( m2.5.1断言:运行时与预处理时27
    - C, ]# p4 |, d% g( O) \; `, N2.5.2静态断言与static_assert28
    5 d; t& h& V. m5 S5 E5 T3 i! n2.6noexcept修饰符与noexcept操作符32
    " e$ M* Q, C2 a  j9 S! D6 t/ ~2.7快速初始化成员变量36
    $ I* e; p! g! P9 V2.8非静态成员的sizeof39( M8 Z3 O# Q. P  s. t1 x4 o0 H& b7 o
    2.9扩展的friend语法400 G5 R# c" M: g& E
    2.10final/override控制44
    & K. h! m  i$ Y) C2.11模板函数的默认模板参数48
    3 P& ?6 U' R7 }2.12外部模板50
    ; ?9 J: K% u0 t2.12.1为什么需要外部模板50
    $ W7 r- i% T( ?8 f. r* d2.12.2显式的实例化与外部模板的声明52+ a; g  ^( M) e$ |2 ~( B, [
    2.13局部和匿名类型作模板实参544 m8 ?1 n5 z3 c8 W0 y" t
    2.14本章小结55
    ( ]+ i4 G3 X9 r" `6 Z* F1 Q* B第3章通用为本,专用为末57
    3 |& O8 J3 p4 ?3.1继承构造函数572 K8 I- _) N9 g3 U0 a
    3.2委派构造函数62
    0 v) k5 d- ~/ A& }4 ^, u+ O  ^3.3右值引用:移动语义和完美转发68
    1 S  v- |6 s1 J% @& O; d# e3 \$ A6 p3.3.1指针成员与拷贝构造68
    9 c9 n4 E- L: V5 ?: i3.3.2移动语义69/ }- f% J. q; s
    3.3.3左值、右值与右值引用75
    5 }; Q) g1 G( f. X' B* c9 S. {! a3.3.4std:move:强制转化为右值80
    4 e  U: k! ~* Y% [/ z; F3.3.5移动语义的一些其他问题82
    : T$ B4 i7 {$ t7 }3.3.6完美转发852 H3 R. Z# \# z* l
    3.4显式转换操作符89
    # |5 D5 C3 @. B3.5列表初始化92: g! H% I3 i! j
    3.5.1初始化列表92/ A, X. I4 m/ V8 l
    3.5.2防止类型收窄962 k: O6 m) G' I; D
    3.6POD类型98% k3 s1 ]7 N! F- B8 L2 {5 r, `0 j
    3.7非受限联合体106
    / H7 T2 o: X! m% _0 k1 ~) o3.8用户自定义字面量1101 L9 @) R: w: N/ a7 X. Y# m/ D! l
    3.9内联名字空间113
    4 P  u" x% @' T3.10模板的别名118
    8 {3 G' s5 {& a0 y7 {- }3.11一般化的SFINEA规则119$ a. a$ X8 a9 Q4 y+ z
    3.12本章小结121
    ; v) z- F4 H0 U1 g6 X第4章新手易学,老兵易用123- T9 z' J+ D) V2 G& x7 s5 s
    4.1右尖括号>的改进1239 n% T# d, g& {& A+ _& M
    4.2auto类型推导124
    1 [' J' ?- E/ D0 }" O" w4.2.1静态类型、动态类型与类型推导124
    0 {9 R) D) w8 w4.2.2auto的优势126
    2 P: q  s% I# f% S" Z4.2.3auto的使用细则130
    $ w, y. {0 V& |9 P$ q4.3decltype1342 O3 ^0 M* B* l$ H
    4.3.1typeid与decltype134' t8 a. `: J3 C& }+ |, G* y
    4.3.2decltype的应用136
    ) s% X. c" d+ V) ]4.3.3decltype推导四规则140
    * }5 _% u" q, O* D7 {4.3.4cv限制符的继承与冗余的符号143
    2 K$ k8 |- g* ?% j: D* d! @4.4追踪返回类型145
    , d& K# {  @$ S1 B1 j; @4.4.1追踪返回类型的引入145
    - Q8 g  ^( W, q6 W, r3 b4.4.2使用追踪返回类型的函数146
    2 E- C. _# p2 f6 m. o4 Z. D4.5基于范围的for循环150
    * T) n) D7 Q% Z2 j6 N  @! l' q4.6本章小结153
    ; p4 l' N% A" e; n. U2 b第5章提高类型安全155
    / R$ H  U- t$ P# [" {5.1强类型枚举1552 H+ S! g5 {9 m2 {; c0 f
    5.1.1枚举:分门别类与数值的名字155: Q0 |: u, Z+ [0 \3 w
    5.1.2有缺陷的枚举类型156
    . T8 ?# f0 B0 B4 L6 E6 K/ @5.1.3强类型枚举以及C++11对原有枚举类型的扩展160: h3 p7 n9 z0 g3 C- }7 S" ~
    5.2堆内存管理:智能指针与垃圾回收1634 x  K: |: {; l, h6 C( T
    5.2.1显式内存管理163
    & H9 w, S) |$ G) R6 F: D5.2.2C++11的智能指针1642 X, h7 s, Z$ n
    5.2.3垃圾回收的分类167' L( j& N( F/ j2 g% Z8 P& p, j
    5.2.4C++与垃圾回收169
    0 N" B+ X9 }, F# u, M5.2.5C++11与最小垃圾回收支持170
    " W, V/ s5 a: H" y! s$ ]5.2.6垃圾回收的兼容性172, w% A% N8 P% g: M  D* |
    5.3本章小结173
    : c6 p: t9 k& @9 j3 ~& t7 H第6章提高性能及操作硬件的能力174  ^% n0 ~" T: X6 L& S; g+ }
    6.1常量表达式174$ A% f, [9 T. b: \
    6.1.1运行时常量性与编译时常量性174
      @0 d% K' `. ]' l( O. o/ H6.1.2常量表达式函数1761 d3 u4 V! E- u% d* o8 D8 o, f
    6.1.3常量表达式值178
    0 e) B3 [* o2 A6 e% l0 @1 c8 Q6.1.4常量表达式的其他应用180
    3 V" S- g# O; a6.2变长模板1830 p9 e: `4 r( C
    6.2.1变长函数和变长的模板参数183
    , Y! p" X; _# Y9 n3 K6.2.2变长模板:模板参数包和函数参数包185
      D* k! i+ E: ?  T+ Z6.2.3变长模板:进阶189# w0 N- B1 m0 l6 j* ]5 S
    6.3原子类型与原子操作196
    2 q! ]0 u& v, f6.3.1并行编程、多线程与C++111964 n! x2 l' y! d  k7 }
    6.3.2原子操作与C++11原子类型197/ f- s+ s' w- d1 g: E7 R
    6.3.3内存模型,顺序一致性与memory_order203# v% a6 \2 V$ \+ x! l; c
    6.4线程局部存储214
    6 Z0 v& x9 k( ?( C; A0 }6.5快速退出:quick_exit与at_quick_exit216' M) n; G- d% I( m4 {4 u
    6.6本章小结219* j2 X* ^6 ~' p; J2 G6 x
    第7章为改变思考方式而改变220+ t7 [8 X0 f7 P& f, @3 c; b! L
    7.1指针空值—nullptr220$ B. `5 q2 X& `+ O
    7.1.1指针空值:从0到NULL,再到nullptr220
    8 e# W3 l8 {" ~. z7.1.2nullptr和nullptr_t223
    ' N$ l0 N7 C2 x, R% T7.1.3一些关于nullptr规则的讨论225+ D, _3 R( |- P" z
    7.2默认函数的控制227
    ( [: I  F/ U6 f& r7.2.1类与默认函数227
    - F5 G( G" _' @( W3 t0 k& {7.2.2“=default”与“=deleted”2306 s: L  h0 ^0 E' ]$ I. C4 A2 m) t( F9 _
    7.3lambda函数234
    . y4 i% C8 d% \# p; I4 ^- X7 m+ M; {7.3.1lambda的一些历史234
    ! v# w7 \, @/ |, r6 n7.3.2C++11中的lambda函数235! G+ a6 t9 A( K* _8 P' ]/ x
    7.3.3lambda与仿函数238. C+ ^7 C# s& N0 M+ m
    7.3.4lambda的基础使用2406 Z8 x% |. u3 J; S4 ]
    7.3.5关于lambda的一些问题及有趣的实验243
    - d! `7 P( \8 `  A) O8 E$ E7.3.6lambda与STL247
    ' K5 c: [( Z" W. i, h6 [7.3.7更多的一些关于lambda的讨论254
    % T# T* \6 g5 D$ ]0 w7.4本章小结256. u' ]' c6 }$ p. P  e9 X& r
    第8章融入实际应用258  d5 F( P: x3 i
    8.1对齐支持2587 A. v) B! a0 ~/ v! H, ?
    8.1.1数据对齐2582 q/ a2 _% p/ I
    8.1.2C++11的alignof和alignas261
    ! N8 R8 p" }7 p2 j2 l- s  C: @( ?6 s8.2通用属性267
    & N6 j% G" D" X" N0 G7 N8.2.1语言扩展到通用属性267
    ' E. k4 H9 x0 d+ n+ Z8.2.2C++11的通用属性268
      D9 M& O  s. x# H8.2.3预定义的通用属性270- J+ A; F; \1 z9 }& N" \3 _$ V
    8.3Unicode支持274& G, h9 n7 ^9 l6 h% j
    8.3.1字符集、编码和Unicode274
    5 c2 ]2 g" W3 Q  Y8.3.2C++11中的Unicode支持276% R: @( X$ b1 o5 S: e  t( Z' O" W
    8.3.3关于Unicode的库支持280
    % D7 k# Y5 b) ?6 ~& K8.4原生字符串字面量284! W- o; P5 [/ N' V
    8.5本章小结286' @  ?4 x6 p8 s3 L$ ~' l% q2 F
    附录AC++11对其他标准的不兼容项目287
    ! p& H' u: }# a3 _# Y+ M6 ?& p附录B弃用的特性294, L, q. U/ ]3 z$ E$ p) ^& X: o' F
    附录C编译器支持301. H8 N& ?( n5 O8 M+ h
    附录D相关资源304. h# L( y1 ^! L5 r( \& i, G
    / Z" B" K9 L3 c
    ' w) u5 Z6 s; `0 p2 ]
    封面4 a/ Q$ i6 N$ N) s1 E7 u
    1.jpg
    ; ]% j. D8 F7 r6 N
    6 T* V! f5 g4 j. F6 Z3 K截图% n5 M% w3 a3 a( y) p  G1 ^' E
    2.jpg # K) H2 e2 Z0 E0 |
    游客,如果您要查看本帖隐藏内容请回复
    - w: w$ D$ j6 i. z! g
    - l9 m! x$ q5 Y

    ) h7 b, z: f) q$ D2 s  P+ v- @
    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, 2025-12-1 05:05 , Processed in 0.834835 second(s), 108 queries .

    回顶部