QQ登录

只需要一步,快速开始

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

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

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

377

主题

148

听众

5990

积分

升级  19.8%

  • 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 编辑
      M+ W8 u; d% h; J1 Z/ D: @- `: t2 O- k  T, d6 z( D8 ^! p) B7 u
    内容简介' M* @# H. }( I: k9 a
    深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。
    & C- v" B0 }% b) N% _深入理解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的相关资源。
    $ m, D/ ?6 H* n1 D3 j" T
    - p" n7 m/ ?' j: \+ v+ i编辑推荐3 `7 [; z- I/ j3 }
    深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。  X2 _$ c3 W  T3 t, n) D

    6 \0 l2 C- \9 x, _1 c2 p- Z作者简介
    4 T8 E) s4 c/ ?作者:(加拿大)Michael Wong IBM XL编译器中国开发团队
    8 D2 k! w4 P, ?6 m) {4 O' c9 h  j3 \! c5 Q
    Michael Wong,C++11标准委员会(WG21)委员,WG21加拿大代表团团长及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)学习小组组长。除此之外,Michael还是OpenMP委员会的CEO,SCC(Standards Council of Canada)的副主席。
    5 r. l7 ?8 \2 i: l* S% [Michael是多个C++11/OpenMP/STM新特性的合作编写者,活跃于各种技术会议,而且为Programming Committee of Boost以及IWOMP等国际会议服务。Michael也是IBM公司的高级技术专家,领导IBM XL C++编译器、XL C编译器的开发工作,当前致力于IBM编译器的C++11新特性部署。Michael在并行编程、C++基准测试、对象模型、泛型编程、模板元编程等多个技术领域均有涉猎,并且在对象模型以及事务内存等方面取得过多个专利。) n3 Q6 t* h& }2 r& ^  H  C! ?" v
    早年Michael于多伦多大学获取得了天体物理学的学士学位,并在滑铁卢大学获得了硕士学位。在加入IBM之前,Michael曾先后供职于大卫?邓禄普天文台(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。2 H& W) e% P- n& 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新特性的开发工作。1 g4 Q  X& b0 S+ l
    8 C+ Q. y7 m3 v) a3 ?
    目录免责声明. ~: z2 Q& v+ h$ s
    2 w7 X6 L/ U) d6 r6 n: x9 H
    前言9 h5 u: S" e1 s& _: V* A3 b
    第1章新标准的诞生1" t" Q' Y# [9 B: m% N/ w
    1.1曙光:C++11标准的诞生18 ?; @( v, ?+ V3 p9 Y+ F# W
    1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
    : ]8 b0 _9 v1 R% X$ n1.1.2什么是C++11/C++0x2; i2 G; ?0 J0 \& k/ _0 m8 W
    1.1.3新C++语言的设计目标38 U  ?, t& v  `5 j% L: X+ Z0 q, U6 y
    1.2今时今日的C++5
    : a' H# n- Q8 P4 l4 }9 _4 J8 A1.2.1C++的江湖地位5
    9 f' ^  r2 a$ Q. T% z( C1.2.2C++11语言变化的领域5; X# M4 ^9 D* L7 v
    1.3C++11特性的分类7
    # g, o9 l. l& T, b1.4C++特性一览11& Z- X( {0 o7 W* b$ M5 x8 `
    1.4.1稳定性与兼容性之间的抉择11
    * v( u& Q5 h9 o& Q) H, K1.4.2更倾向于使用库而不是扩展语言来实现特性129 I& F( j. s8 G) Y7 J' f9 U0 `! x
    1.4.3更倾向于通用的而不是特殊的手段来实现特性13
    4 `& r# @) U3 F$ L% W+ W$ k1.4.4专家新手一概支持13
    ( M9 q# {, c0 l( ~1.4.5增强类型的安全性14
    : \4 c6 K( y  d( b, g6 b( Q8 I1.4.6与硬件紧密合作14
    5 p( }6 V* f: d1.4.7开发能够改变人们思维方式的特性159 c2 z% [. q; ]; ?. W: L3 e
    1.4.8融入编程现实16. M, j8 n+ g6 w; s' t
    1.5本书的约定17
    / j9 ^7 D) ^7 S1.5.1关于一些术语的翻译17
    $ C' |2 e4 u' p1.5.2关于代码中的注释17' `7 k2 h7 ]5 u0 c8 f5 r
    1.5.3关于本书中的代码示例与实验平台18
    3 ?! {( ]1 ^5 o$ g! l第2章保证稳定性和兼容性19
    ; ?2 w1 Q5 R, `8 k2.1保持与C99兼容19
    . a* b/ ]9 x" f/ |- f2.1.1预定义宏190 g: m6 a5 @, a7 o# _0 l* F
    2.1.2_func_预定义标识符20& `8 X' a' C5 u$ H' s
    2.1.3_Pragma操作符22- Y9 O" ^0 @9 ~! Q; O* ~( P
    2.1.4变长参数的宏定义以及_VA_ARGS_22# K% x8 ^8 {. j% I% L
    2.1.5宽窄字符串的连接23& q3 ^% y. U& i
    2.2longlong整型23; I8 x" i- ^* X& p% G
    2.3扩展的整型25
    : ]" X- j$ }+ l% |2.4宏_cplusplus263 |# v6 h9 P- J3 {5 b% S
    2.5静态断言27
    % h7 s$ ~+ P$ V- }2.5.1断言:运行时与预处理时27# s/ \4 y( M% s- b* l5 m
    2.5.2静态断言与static_assert28
    % V9 Y6 @$ ~& F$ p9 ?. J2.6noexcept修饰符与noexcept操作符32  g, i0 j, j, j" f. x% j
    2.7快速初始化成员变量36
    $ e) e4 ?( r# q4 \2.8非静态成员的sizeof39! Y& s4 z3 n$ _$ H7 s& e8 ?6 q4 B5 e
    2.9扩展的friend语法40
    # \1 W0 \3 D$ ~9 B1 T% ]+ m4 {2.10final/override控制441 k( f! V8 U& D+ ~
    2.11模板函数的默认模板参数48
    ' l/ f0 l  `5 y# h2.12外部模板502 w( O* J, w& o
    2.12.1为什么需要外部模板50& y: Q/ ]8 }2 H  }! s
    2.12.2显式的实例化与外部模板的声明52; j& ^" g- `+ Z3 ~" n
    2.13局部和匿名类型作模板实参547 W& j7 J0 f3 t+ \; P# z
    2.14本章小结55. S! g* Z/ Z. }( J7 S
    第3章通用为本,专用为末57
    - U; w# ?6 N) {) z4 Q3.1继承构造函数57
    : k" j6 W6 r' F* O7 X3.2委派构造函数62+ t2 S  o( w# ]" d0 ~: w: Y7 w3 b
    3.3右值引用:移动语义和完美转发68
    ' j5 w! S6 B, K7 k* x( N, s% i- V- b3.3.1指针成员与拷贝构造68
    1 H8 n- s4 L; O" L; H# n% s! h9 t3.3.2移动语义69; r) \7 V( w/ c& e* C
    3.3.3左值、右值与右值引用75& |% c7 y2 N  F8 o1 H# g
    3.3.4std:move:强制转化为右值80
    : w( N8 z+ q6 w3 H. M# G3.3.5移动语义的一些其他问题82% p" N) R/ l1 m8 G! D( @! J- ^6 s
    3.3.6完美转发85
    + a5 h# S+ n: X  h3.4显式转换操作符89
    0 i& D4 U; E! _3.5列表初始化92
    9 i  W' H# s* {% r9 g; A3.5.1初始化列表92
    # ~+ b) Q: h: P' D3.5.2防止类型收窄96
    % P/ Z9 |% V$ y/ l* X, ]3.6POD类型98
    1 m  ~  x3 j' a, b! d. A3.7非受限联合体106
    7 B3 U% \" H1 S7 p3.8用户自定义字面量110; T9 a1 f! [2 E  I2 w% g! f
    3.9内联名字空间113" }$ B5 c& }+ ]$ f/ {
    3.10模板的别名118- w4 g( J, r5 b8 S' l/ c3 a
    3.11一般化的SFINEA规则119
    ; t0 j0 z8 W+ G) n# F, j* C: [3.12本章小结121+ U8 L6 c3 q" x3 r! @% U2 r" s
    第4章新手易学,老兵易用123
    ( W: d7 W2 [- o+ G. C  v4.1右尖括号>的改进123  t2 x7 K3 ^* N  C- Z; a
    4.2auto类型推导124
    ' Q, D5 ^! I- N& u4.2.1静态类型、动态类型与类型推导1248 W- q: j; a2 c4 K) o
    4.2.2auto的优势126' H( g0 {4 V/ @1 H
    4.2.3auto的使用细则1305 K: o; E0 ~3 l! }2 n5 b  J& s4 a
    4.3decltype1346 J! t1 H3 e8 l* Q4 ^6 P4 X
    4.3.1typeid与decltype134
    - A8 V8 G- J6 j  C4.3.2decltype的应用1367 `' d1 ?0 N9 A7 Z/ f( K: k) N- o6 ~
    4.3.3decltype推导四规则140
    - i1 `! G8 K  u5 r9 Z4.3.4cv限制符的继承与冗余的符号1434 ]1 f4 {$ O6 O# G8 s; g' M0 |
    4.4追踪返回类型1458 b0 R1 T: l/ z* q& C* e5 n
    4.4.1追踪返回类型的引入145
    & k6 Q5 ]( c/ C) d8 r6 w" w# V4.4.2使用追踪返回类型的函数146
    , j% l8 K4 }- Q8 S" |) R& ~$ L4.5基于范围的for循环150& u$ j  C# S# q$ B" n5 R+ |, O
    4.6本章小结1532 n/ F2 j6 W) m, @
    第5章提高类型安全155, e  F( U" g( [) g- S& j% l, i% `
    5.1强类型枚举155
    - v0 f0 Y, G# Y% \, T, q) x5 w5.1.1枚举:分门别类与数值的名字155
    " O" B+ @1 [! z9 V' ~4 A) X5.1.2有缺陷的枚举类型156
    0 A* n* }# I1 w* w5.1.3强类型枚举以及C++11对原有枚举类型的扩展1606 R- I' R5 e! i( L4 q; K7 G9 ^: w
    5.2堆内存管理:智能指针与垃圾回收1638 ~& `2 ?- D' @9 J0 s
    5.2.1显式内存管理163) M4 ~9 q/ |9 ~6 C$ b
    5.2.2C++11的智能指针164
    ! l6 D5 K, [' ~3 `6 H4 P0 s* F5.2.3垃圾回收的分类167
    ' B1 z+ F% ?! ~0 A* Y* a" n# D5.2.4C++与垃圾回收169
    % n: D6 M4 \0 G6 \& R5.2.5C++11与最小垃圾回收支持170
    7 ~, V% ^; f0 ]  H5.2.6垃圾回收的兼容性172
    0 l+ e- |" S" n5.3本章小结1737 m/ E6 b( \/ P' }/ F
    第6章提高性能及操作硬件的能力174
    " ?( j! P2 J! |3 C6.1常量表达式174
    3 S# x9 e( \  T7 V7 }6.1.1运行时常量性与编译时常量性174
    8 @: H. ]) t2 M+ ?6.1.2常量表达式函数176+ e' g4 I5 i2 K: q1 ~
    6.1.3常量表达式值178
    6 H. o  j7 ~3 D6 P5 k! `6.1.4常量表达式的其他应用180
    ! _' ~& _: }4 g/ h% m4 C6.2变长模板183% D* ]0 d! x! g4 w; {5 |  ?  S
    6.2.1变长函数和变长的模板参数183% `* K3 Z/ Y" r+ [  l. g7 ]
    6.2.2变长模板:模板参数包和函数参数包185+ ~& w7 n7 R  j* a
    6.2.3变长模板:进阶189
    ) h5 B  g8 O6 B* o4 ~) U8 R8 V+ d6.3原子类型与原子操作196
    & {. }% V7 x- P* T6.3.1并行编程、多线程与C++11196& A, M1 `; s; D0 O9 d/ f4 p$ g
    6.3.2原子操作与C++11原子类型197
    2 |( h8 M1 J4 m4 {% J+ E5 Y1 j" g8 i6.3.3内存模型,顺序一致性与memory_order203
    4 L! @% s; T' |6.4线程局部存储214
    7 d7 W5 Q8 z; I% Z3 L" M6.5快速退出:quick_exit与at_quick_exit216
    / {  t: U' m( }6.6本章小结219. s6 ]5 @% S# }& _9 K, ?4 h! C
    第7章为改变思考方式而改变220; ~  G7 A( R7 `$ k$ G: t# J
    7.1指针空值—nullptr220
    : {8 U) O9 f- x; U7.1.1指针空值:从0到NULL,再到nullptr2202 X# R2 @+ W1 b, z
    7.1.2nullptr和nullptr_t223
    7 ~/ m3 Z& {' @: u( Y6 t1 I7 D7.1.3一些关于nullptr规则的讨论225
    : z  o2 ~: Q5 o1 o2 z( H7.2默认函数的控制227
    % R- ?1 }8 s' ^( Y+ y6 d7.2.1类与默认函数2276 m+ N# X( O$ U/ y6 ?: P% C4 h
    7.2.2“=default”与“=deleted”230. J* j" f3 X5 k
    7.3lambda函数2347 S) }/ D: K. i# S/ h
    7.3.1lambda的一些历史234
    ! t: a( |8 Z' C. e7.3.2C++11中的lambda函数235! X3 U/ _! N" g7 k
    7.3.3lambda与仿函数238
    8 ~4 g5 G$ X/ f' U& K7.3.4lambda的基础使用240& t, [. o, L0 e8 n2 M7 Q0 K7 W
    7.3.5关于lambda的一些问题及有趣的实验243' F5 Y' P; Q! d$ I' h# l
    7.3.6lambda与STL247
    - s5 d  r/ `8 t2 P7.3.7更多的一些关于lambda的讨论254& H5 Z' i3 x; Z5 p" f
    7.4本章小结256/ }% U# w9 v" G" m5 u- u
    第8章融入实际应用258
    5 y0 k, N- V9 V$ Z9 j8 S8.1对齐支持258% e# U& w- @+ }7 k, o9 H6 a
    8.1.1数据对齐2588 V, C$ I) k3 r$ u" C, k/ Z
    8.1.2C++11的alignof和alignas261
    ) c/ {2 Q% J' ]6 l/ E' q8.2通用属性267
    - d# y. ^9 K' i' ]: w. E% m8.2.1语言扩展到通用属性267
    8 {% u& R- b$ [! Z$ y( I8.2.2C++11的通用属性2689 p0 F1 I( v* J/ e* K' x) T9 c9 l
    8.2.3预定义的通用属性270* x' v) y, `# y; V& m- d
    8.3Unicode支持274, x% j0 K8 ?3 E2 t
    8.3.1字符集、编码和Unicode274
    . y1 z, n, S, w! H9 x8.3.2C++11中的Unicode支持276  K( F6 \! B5 c- W
    8.3.3关于Unicode的库支持280
    & N1 U. B1 q. Q6 Q" z3 g/ l# [1 b8.4原生字符串字面量284
    . ^1 i0 r/ n' M, P, F8.5本章小结286
    0 `0 w+ U5 n+ W8 P, e- U附录AC++11对其他标准的不兼容项目287
    & @2 X5 |( \2 s$ W0 N0 B! `附录B弃用的特性294
    ' A9 f7 J3 c5 T/ ?% l1 }附录C编译器支持301
    2 r6 }, S- J3 k4 F4 d* q( L$ ]' p附录D相关资源304
    * M2 R4 n7 o: {
    & o2 }" A) ?3 H

    * a! q: p7 P' H/ {: e+ i封面# O3 F1 z! `4 n1 S
    1.jpg & e" F9 Y  Y% {% Y$ Q; M
    ) W, r  {; x/ V2 H
    截图
    $ r3 }4 L' H0 c# W% f" L9 m: C  b 2.jpg
    / K. m6 O& ]& Q6 h& a' z
    游客,如果您要查看本帖隐藏内容请回复
    / u. ?# W8 N$ y8 j# n, m

    / E# s$ a# x6 D8 z
    . i, \3 C' V) o' U6 X
    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-6-3 15:38 , Processed in 0.550792 second(s), 107 queries .

    回顶部