QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5950

积分

升级  19%

  • 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 编辑
    3 h! A  y% V: e) e! S
    : p& B3 x/ C6 g  f/ Y- j内容简介. U8 K6 o/ ]) g8 _
    深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    $ r# C8 d6 H' M9 Q/ Q' H1 u  O深入理解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 a8 N+ K2 }: @, ^) ^$ t5 C
    * ]* P) t1 z2 H5 s* g! L+ ?编辑推荐
    / ]& D2 I' ]: O! z) m1 z深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。
    ( E9 n5 g  s2 T9 U' H6 H
    7 K4 z* P3 ~) K; N作者简介% p# ], o# Y6 m7 B" ?
    作者:(加拿大)Michael Wong IBM XL编译器中国开发团队$ F8 q5 Z! k; P) g8 n) `$ `

    4 U) j% [: B  d4 E( LMichael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    5 T/ E0 d+ A; ~Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。" M$ W- f# i6 _- Q  z
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。5 i& P2 r; I3 F6 e4 h
    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新特性的开发工作。9 R: L1 H: O4 a: s; S$ O, u1 G

      X4 k5 Q# o3 T$ |目录免责声明
    , O2 l" D& [; m$ W- E6 A
    # B8 q; {; J% \0 h; z! M3 T3 E0 S' H前言
    1 |! r! p1 g+ \7 v# _+ ]第1章新标准的诞生1
    3 F, f3 H- a2 @! v& ~7 C, ?1.1曙光:C++11标准的诞生1' X* n8 ?8 C, {8 ~& H2 q% R
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1) ]2 k" g* q$ \( e; z
    1.1.2什么是C++11/C++0x2& c, F4 l' d0 o
    1.1.3新C++语言的设计目标3
    # ]. @6 X' x6 V1.2今时今日的C++5
    # \0 @! g0 j" T& \6 z( o1.2.1C++的江湖地位5
    0 \5 E/ Q7 d. v% L, o& ~1.2.2C++11语言变化的领域5
    ; ?! ?) l/ q9 A' X6 |1 J0 ]# V1.3C++11特性的分类7
    1 r' i& E- Q- i0 d$ ~1.4C++特性一览11
    ' U: Q0 v& F% p; ^1.4.1稳定性与兼容性之间的抉择11
    " `) T) _1 x3 B0 J9 r1.4.2更倾向于使用库而不是扩展语言来实现特性12
    & D% x4 K- x+ _: W! i1.4.3更倾向于通用的而不是特殊的手段来实现特性13) N/ O3 k4 r7 c1 D+ D
    1.4.4专家新手一概支持135 q+ D8 A  b7 ~) s$ P9 V( w
    1.4.5增强类型的安全性14
    ; Y& K/ h; w  ~- `1.4.6与硬件紧密合作14- {: ]$ [3 N2 }& @: {
    1.4.7开发能够改变人们思维方式的特性15/ F. U  y3 x7 T: y5 Z4 Z3 R4 }
    1.4.8融入编程现实160 |/ ?- R  I2 q
    1.5本书的约定17$ |4 A$ A4 v" t; F
    1.5.1关于一些术语的翻译17
    : \+ U- X3 P- t) P5 i1.5.2关于代码中的注释17
    6 p1 Y3 _; y# M& K. k0 `1.5.3关于本书中的代码示例与实验平台18
    ) W: d# a' @; j5 z2 f$ Z第2章保证稳定性和兼容性19
    & C6 ?+ x! Z7 j7 N8 y' p2.1保持与C99兼容195 x2 j+ F: n/ V4 M) V) B# e6 U
    2.1.1预定义宏19
    " i1 y) v; z7 i' S2 {$ ?" H; G$ U2.1.2_func_预定义标识符20; x; ^' S" W1 e, b1 \2 X
    2.1.3_Pragma操作符22
    : O$ z0 |) F) R% S% k2.1.4变长参数的宏定义以及_VA_ARGS_22
    3 x0 J- J1 C6 l, g, T; P, ~3 `/ t( c2.1.5宽窄字符串的连接23. Y! z; A' y$ o( O& q( l$ p& z
    2.2longlong整型23  V0 b& v2 g  A: B. g& w, K
    2.3扩展的整型25
    . h" h& ]9 s1 P6 |) M$ U+ M9 I  ^1 I2.4宏_cplusplus26) U. W$ [6 L1 [6 \
    2.5静态断言27
    . ~' u+ H: \7 i7 [2.5.1断言:运行时与预处理时27
    7 `2 @: ?9 Q4 c" ?  b' u2.5.2静态断言与static_assert282 a9 T, @" ]- Q
    2.6noexcept修饰符与noexcept操作符32
    ( B) |( O& c8 E2.7快速初始化成员变量36
    2 s7 h: }, `  k2 v+ A8 U2.8非静态成员的sizeof39' q, Z8 A) v. F4 K
    2.9扩展的friend语法40
    % P; f/ i  ~, X( H& [/ X2.10final/override控制44  Z" \% r% r. X* u, L
    2.11模板函数的默认模板参数488 U3 b& m4 I( E& R
    2.12外部模板50- ^/ L/ S# p7 A9 I: ^  q- [
    2.12.1为什么需要外部模板50" b* }3 [& A+ C7 E1 {7 G. V" x
    2.12.2显式的实例化与外部模板的声明52. q& s+ _5 C" Q6 V
    2.13局部和匿名类型作模板实参549 A) C4 @  n7 K2 Z$ }! p
    2.14本章小结55: A3 E2 ~  s" w* A0 e. o7 f5 _
    第3章通用为本,专用为末57
    " Y- v( z0 `$ n5 @3.1继承构造函数57& {. q* U8 |: c, m) t: m: `
    3.2委派构造函数62
    , S' {# b/ I4 e- @: y+ X6 y3.3右值引用:移动语义和完美转发68* q) \( t* f1 }
    3.3.1指针成员与拷贝构造68, V$ G2 m1 b) d" ?; c( r
    3.3.2移动语义69
    ) u" V/ Y1 e/ l" {8 B3.3.3左值、右值与右值引用75
    3 a$ k! X, S" d% n4 b" V- F+ l+ O3.3.4std:move:强制转化为右值80( T/ S3 E. m$ L$ q
    3.3.5移动语义的一些其他问题829 j+ t0 m% V$ ?: H, _+ f
    3.3.6完美转发85; O3 _) B  s4 ^; A' e# b
    3.4显式转换操作符89
    2 k1 T. M9 ~1 B3 {  d0 |; X1 h3.5列表初始化92
    % c, N, L& Z) B' ~3.5.1初始化列表92
    ' Y/ T( }+ j, s# |9 g3.5.2防止类型收窄96  y. Z& F1 G, t
    3.6POD类型98
    & W1 \8 ]" D  g3 K' t/ w) @% x3.7非受限联合体106% _/ N3 Z) A* J1 `4 B$ l" O6 ^
    3.8用户自定义字面量110
    6 g  v. e( g& E+ N( S/ @0 N3.9内联名字空间113
    % P" ^; o/ [4 V& W; w* U) V3.10模板的别名118
    3 Q! g' J3 ^  V: E9 X+ Y3.11一般化的SFINEA规则119
    ( z: n0 N: {- u; z  u3.12本章小结121; S; G' g1 h! U3 Z9 D
    第4章新手易学,老兵易用1239 y* ^; ?6 U5 M
    4.1右尖括号>的改进123
      |4 l! N3 `5 h6 J4.2auto类型推导124/ q1 ^( W* ?& }. I$ f% I
    4.2.1静态类型、动态类型与类型推导1244 j! A: E" g. K
    4.2.2auto的优势126& _4 l9 s0 m3 }, {
    4.2.3auto的使用细则1307 x8 I) ?8 a* I
    4.3decltype134
    & n. y* N$ w, p0 \4.3.1typeid与decltype134. x6 B5 P" F% A/ v
    4.3.2decltype的应用136# h+ g+ e: l* D( v$ R* s
    4.3.3decltype推导四规则140
    * G/ H2 [% x) f7 O3 X* X, ?& _4.3.4cv限制符的继承与冗余的符号143
    : i4 g0 T0 p9 Q3 a/ T; U8 T' K! ~4.4追踪返回类型1453 l+ m) H8 E+ s: P. W2 K3 ~  `
    4.4.1追踪返回类型的引入145) I5 ^  [1 O, ~# O; d
    4.4.2使用追踪返回类型的函数146
    ( L  H4 N; x* T& w7 T# Z! z) D4.5基于范围的for循环150
    + y! ?9 {9 d0 M4 D& _4.6本章小结153
    ) \+ J5 _4 L0 H% t第5章提高类型安全1550 t  w" B1 P) j' b
    5.1强类型枚举155( l! [9 i' j) C. C1 G6 e
    5.1.1枚举:分门别类与数值的名字155* R/ S6 |' C! R; U1 }+ N# w; u
    5.1.2有缺陷的枚举类型1567 r8 `0 k/ g9 b. b! b' B# r" ^
    5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
    ' i5 Z7 v  }+ O5 R& c5.2堆内存管理:智能指针与垃圾回收163: Y* @! e) Z5 k
    5.2.1显式内存管理163
    1 ~! o5 j' o& j# q* a5.2.2C++11的智能指针164
    8 ]( H7 x2 ]4 m* a5.2.3垃圾回收的分类167
    $ J) I3 K0 @& E, d  x+ Q. ?0 k5.2.4C++与垃圾回收169
    7 J# Z) @( \7 P: T& e5 p$ K5.2.5C++11与最小垃圾回收支持170. R4 d: t4 I5 s# |7 m6 ~; G
    5.2.6垃圾回收的兼容性172: Q3 q; _' l" {5 a
    5.3本章小结173
    . d; K# e$ A  {第6章提高性能及操作硬件的能力174
    ; N7 T6 w4 Z9 c# X$ ^& e6.1常量表达式174, p* O- b; u0 G5 A( o7 w: y( |
    6.1.1运行时常量性与编译时常量性174
    ( c& a8 x5 g2 \# i6.1.2常量表达式函数176
    ' I9 i) t% H3 ~) _# Q6.1.3常量表达式值178) N0 Z& C0 B0 G/ H5 ?- [& V' d: h
    6.1.4常量表达式的其他应用180$ c# G+ w( a, ]9 k) u9 G% b: y
    6.2变长模板183* A* a% z- e4 t! J2 Z1 ]1 r  j
    6.2.1变长函数和变长的模板参数183
    $ h% U, K0 E# X* }( X6.2.2变长模板:模板参数包和函数参数包185
    & Z2 l. K! ]5 o# h5 u6.2.3变长模板:进阶1894 w7 O( [2 i; a
    6.3原子类型与原子操作196
    1 {6 m& I: ?7 Z: e/ m7 [1 o6.3.1并行编程、多线程与C++11196# J/ e* o" |4 j6 S3 [' o, l
    6.3.2原子操作与C++11原子类型197# ?: q4 a! u7 l3 o; l
    6.3.3内存模型,顺序一致性与memory_order203% g/ d% z* l- j! ~! M+ y3 U
    6.4线程局部存储214! U& d# @( |, r- y+ j; n+ b
    6.5快速退出:quick_exit与at_quick_exit216
    + P! i$ X6 w9 T% M6.6本章小结219
    ! w9 y$ O% P+ A3 h& x第7章为改变思考方式而改变2202 {% R% w4 `9 q1 N+ H2 K+ [$ Z# h
    7.1指针空值—nullptr2207 ]8 w1 `, Z# T4 c9 b$ ~: C
    7.1.1指针空值:从0到NULL,再到nullptr220
    / o9 v) y2 U! ?4 X9 G% K7.1.2nullptr和nullptr_t223
    . U% h1 F; L0 l( b3 g9 L7.1.3一些关于nullptr规则的讨论225
    . d6 {/ v& S1 @* G8 M9 w7.2默认函数的控制2271 {; U9 H: c3 m' K; `
    7.2.1类与默认函数227
    9 p3 T0 ~+ i0 t8 d& Q7.2.2“=default”与“=deleted”230+ K5 R! v" N8 r' |
    7.3lambda函数234
    1 N( |2 T) E5 x# n! v2 u7.3.1lambda的一些历史234& W  V3 y8 v) ^/ H3 `$ @
    7.3.2C++11中的lambda函数235' G4 s' s# H+ P0 {1 |- C
    7.3.3lambda与仿函数238
    # A7 S, e+ b+ R8 q, a7.3.4lambda的基础使用240
    & b( q: N; S: e8 F/ `7.3.5关于lambda的一些问题及有趣的实验243
    % M2 f. E5 Z% z2 _. j9 U3 m7.3.6lambda与STL247" o3 o. m) t% Q8 ?
    7.3.7更多的一些关于lambda的讨论254' z/ y+ A/ H8 z4 X. d
    7.4本章小结2562 K2 V! K5 |  [, V
    第8章融入实际应用258" @) y* e& g: k& K: F' S  @
    8.1对齐支持258& f9 w( H- g( q9 V& \/ w( O% w
    8.1.1数据对齐258* n; V4 @# L; G& I4 S7 g% H) H
    8.1.2C++11的alignof和alignas261, [- `' g1 _/ [
    8.2通用属性267
    / ^( D1 Y+ ^! m/ t1 e" N! d8.2.1语言扩展到通用属性267
    ) m+ q; c5 Q: S# u; ^8.2.2C++11的通用属性268
    0 \3 ]8 F, }6 Q$ i' I  x8 y1 Y8.2.3预定义的通用属性270
    . r/ I& Z1 P" J, U$ a+ `1 D8.3Unicode支持274
    0 q+ N9 c( @- ^( Q; a, a- \8.3.1字符集、编码和Unicode274
    8 L# L( m$ T. {) G9 {8.3.2C++11中的Unicode支持276
    & `) W4 D2 E5 J) q, r5 B8.3.3关于Unicode的库支持280
    , g- O& a& B- ?; E- o( I8.4原生字符串字面量284) @% S: R: v/ ~* \% P* F5 \5 I7 N
    8.5本章小结286
    ' e  e# B2 W4 ?) N) x( ^附录AC++11对其他标准的不兼容项目287
    & p+ K5 `- e9 [7 P, F- m6 A. q附录B弃用的特性294
    6 A! X' ~6 B1 z4 P; Q附录C编译器支持301
      i9 r$ R7 i& G0 k0 A附录D相关资源3043 X5 R2 ~% X$ z3 Y; ^% N" h- }1 @! f4 _2 G
    ; @5 C2 g! P% v4 ?2 @6 B

    3 h8 t9 O( i$ Q0 b; j6 H封面
    " r( Z4 ^; H. F. A 1.jpg
    8 `+ [5 _7 C7 h( z  l* U, }& e$ i$ R5 r. D
    截图
    2 ~$ E1 B+ x: w; Q7 M: | 2.jpg 6 T$ R2 J$ [; l5 n2 t1 e( t
    游客,如果您要查看本帖隐藏内容请回复

    2 I! [" Q0 C5 d1 n0 I( h7 H4 K/ R! Z/ @5 \' A

    ; P% |' {. C' f0 D4 |
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    LYJA        

    20

    主题

    3

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    开心
    2017-8-27 23:29
  • 签到天数: 61 天

    [LV.6]常住居民II

    社区QQ达人

    回复

    使用道具 举报

    jiay        

    0

    主题

    11

    听众

    51

    积分

    升级  48.42%

  • TA的每日心情
    奋斗
    2015-2-8 22:05
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    自我介绍
    开朗活泼,热爱建模。

    邮箱绑定达人

    回复

    使用道具 举报

    jiangtai        

    0

    主题

    10

    听众

    112

    积分

    升级  6%

  • TA的每日心情
    无聊
    2016-2-4 12:43
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    邮箱绑定达人 社区QQ达人

    回复

    使用道具 举报

    zszzsz111        

    2

    主题

    11

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    无聊
    2016-1-29 20:52
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    社区QQ达人

    回复

    使用道具 举报

    慢跑20 实名认证       

    60

    主题

    8

    听众

    3684

    积分

  • TA的每日心情
    开心
    2017-2-22 14:21
  • 签到天数: 271 天

    [LV.8]以坛为家I

    群组2014年美赛冲刺培训

    群组物联网工程师考试

    群组2013年电工杯B题讨论群

    群组物联网工程师培训

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

    回复

    使用道具 举报

    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

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

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

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

    回复

    使用道具 举报

    7

    主题

    8

    听众

    317

    积分

    升级  5.67%

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

    [LV.7]常住居民III

    自我介绍
    想学习数学建模

    社区QQ达人

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组数学建模培训课堂1

    回复

    使用道具 举报

    风树        

    1

    主题

    11

    听众

    151

    积分

    升级  25.5%

  • TA的每日心情

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

    [LV.5]常住居民I

    自我介绍
    yyyy

    社区QQ达人

    回复

    使用道具 举报

    drrile        

    0

    主题

    12

    听众

    117

    积分

    升级  8.5%

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

    [LV.5]常住居民I

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

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-30 05:53 , Processed in 0.842433 second(s), 109 queries .

    回顶部