注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)深入理解C++11:C++ 11新特性解析與應用

深入理解C++11:C++ 11新特性解析與應用

深入理解C++11:C++ 11新特性解析與應用

定 價:¥69.00

作 者: Michael Wong IBM XL編譯器中國開發(fā)團隊
出版社: 機械工業(yè)出版社
叢編項:
標 簽: C C++ C# VC VC++ 程序設(shè)計 計算機/網(wǎng)絡(luò)

ISBN: 9787111426608 出版時間: 2013-06-01 包裝: 平裝
開本: 16 頁數(shù): 328 字數(shù):  

內(nèi)容簡介

  國內(nèi)首本全面深入解讀C++11新標準的專著,由C++標準委員會代表和IBM XL編譯器中國開發(fā)團隊共同撰寫。不僅詳細闡述了C++11標準的設(shè)計原則,而且系統(tǒng)地講解了C++11新標準中的所有新語言特性、新標準庫特性、對原有特性的改進,以及如何應用所有這些新特性。《深入理解C++11:C++ 11新特性解析與應用》一共8章:第1章從設(shè)計思維和應用范疇兩個維度對C++11新標準中的所有特性進行了分類,呈現(xiàn)了C++11新特性的原貌;第2章講解了在保證與C語言和舊版C++標準充分兼容的原則下增加的一些新特性;第3章講解了具有廣泛可用性、能與其他已有的或者新增的特性結(jié)合起來使用的、具有普適性的一些新特性;第4章講解了C++11新標準對原有一些語言特性的改進,這些特性不僅能讓C++變得更強大,還能提升程序員編寫代碼的效率;第5章講解了C++11在安全方面所做的改進,主要涵蓋枚舉類型安全和指針安全兩個方面的內(nèi)容;第6章講解了為了進一步提升和挖掘C++程序性能和讓C++能更好地適應各種新硬件的發(fā)展而設(shè)計的新特性,如多核、多線程、并行編程方面的新特性;第7章講解了一些顛覆C++一貫設(shè)計思想的新特性,如lambda表達式等;第8章講解了C++11為了解決C++編程中各種典型實際問題而做出的有效改進,如對Unicode的深入支持等。附錄中則介紹了C++11標準與其他相關(guān)標準的兼容性和區(qū)別、C++11中棄用的特性、編譯器對C++11的支持情況,以及學習C++11的相關(guān)資源。

作者簡介

  Michael Wong,C++11標準委員會(WG21)委員,WG21加拿大代表團團長及IBM公司代表(投票人),WG21 SG5(transactional Memory study group)學習小組組長。除此之外,Michael還是OpenMP委員會的CEO,SCC(Standards Council of Canada)的副主席。Michael是多個C++11/OpenMP/STM新特性的合作編寫者,活躍于各種技術(shù)會議,而且為Programming Committee of Boost以及IWOMP等國際會議服務。Michael也是IBM公司的高級技術(shù)專家,領(lǐng)導IBM XL C++編譯器、XL C編譯器的開發(fā)工作,當前致力于IBM編譯器的C++11新特性部署。Michael在并行編程、C++基準測試、對象模型、泛型編程、模板元編程等多個技術(shù)領(lǐng)域均有涉獵,并且在對象模型以及事務內(nèi)存等方面取得過多個專利。早年Michael于多倫多大學獲取得了天體物理學的學士學位,并在滑鐵盧大學獲得了碩士學位。在加入IBM之前,Michael曾先后供職于大衛(wèi)?鄧祿普天文臺(David Dunlap Observatory),CDC公司(Control Data Corporation),BMO Nesbitt Burns公司等。IBM XL編譯器中國開發(fā)團隊,IBM擁有悠久的編譯器開發(fā)歷史(始于上世紀80年代),在全球有將近400名高素質(zhì)工程師組成的研發(fā)團隊,其中包括許多世界知名的研究學者和技術(shù)專家。IBM一直以來都是編程語言的制定者和倡導者之一,并將長期在編譯領(lǐng)域進行研發(fā)和投資。IBM編譯器中國開發(fā)團隊于2010年在上海成立,現(xiàn)擁有編譯器前端開發(fā)人員(C/C++)、后端開發(fā)人員、測試人員,以及性能分析人員共16人。團隊與IBM北美編譯器團隊緊密合作,共同開發(fā)、測試和發(fā)布基于POWER系統(tǒng)的AIX及Linux平臺下的XL C/C++ 和XL Fortran系列產(chǎn)品,并對其提供技術(shù)支持。雖然團隊成立時間不長,但已于2012年成功發(fā)布最新版本的XL C/C++ for Linux V12.1 & XL Fortran for Linux V14.1,并獲得7項發(fā)明專利。團隊成員擁有較豐富的編譯器開發(fā)經(jīng)驗,對編譯技術(shù)、編程語言、性能優(yōu)化和并行計算等各領(lǐng)域都有一定的研究,也對C++11標準的各種新特性有較早的研究和理解,并正在實際地參與C++11新特性的開發(fā)工作。

圖書目錄

目  錄
免責聲明

前言
第1章 新標準的誕生 1
1.1 曙光:C++11標準的誕生 1
1.1.1 C++11/C++0x(以及C11/C1x)—新標準誕生 1
1.1.2 什么是C++11/C++0x 2
1.1.3 新C++語言的設(shè)計目標 3
1.2 今時今日的C++ 5
1.2.1 C++的江湖地位 5
1.2.2 C++11語言變化的領(lǐng)域 5
1.3 C++11特性的分類 7
1.4 C++特性一覽 11
1.4.1 穩(wěn)定性與兼容性之間的抉擇 11
1.4.2 更傾向于使用庫而不是擴展語言來實現(xiàn)特性 12
1.4.3 更傾向于通用的而不是特殊的手段來實現(xiàn)特性 13
1.4.4 專家新手一概支持 13
1.4.5 增強類型的安全性 14
1.4.6 與硬件緊密合作 14
1.4.7 開發(fā)能夠改變?nèi)藗兯季S方式的特性 15
1.4.8 融入編程現(xiàn)實 16
1.5 本書的約定 17
1.5.1 關(guān)于一些術(shù)語的翻譯 17
1.5.2 關(guān)于代碼中的注釋 17
1.5.3 關(guān)于本書中的代碼示例與實驗平臺 18
第2章 保證穩(wěn)定性和兼容性 19
2.1 保持與C99兼容 19
2.1.1 預定義宏 19
2.1.2 __func__預定義標識符 20
2.1.3 _Pragma操作符 22
2.1.4 變長參數(shù)的宏定義以及__VA_ARGS__ 22
2.1.5 寬窄字符串的連接 23
2.2 long long整型 23
2.3 擴展的整型 25
2.4 宏__cplusplus 26
2.5 靜態(tài)斷言 27
2.5.1 斷言:運行時與預處理時 27
2.5.2 靜態(tài)斷言與static_assert 28
2.6 noexcept修飾符與noexcept操作符 32
2.7 快速初始化成員變量 36
2.8 非靜態(tài)成員的sizeof 39
2.9 擴展的friend語法 40
2.10 final/override控制 44
2.11 模板函數(shù)的默認模板參數(shù) 48
2.12 外部模板 50
2.12.1 為什么需要外部模板 50
2.12.2 顯式的實例化與外部模板的聲明 52
2.13 局部和匿名類型作模板實參 54
2.14 本章小結(jié) 55
第3章 通用為本,專用為末 57
3.1 繼承構(gòu)造函數(shù) 57
3.2 委派構(gòu)造函數(shù) 62
3.3 右值引用:移動語義和完美轉(zhuǎn)發(fā) 68
3.3.1 指針成員與拷貝構(gòu)造 68
3.3.2 移動語義 69
3.3.3 左值、右值與右值引用 75
3.3.4 std::move:強制轉(zhuǎn)化為右值 80
3.3.5 移動語義的一些其他問題 82
3.3.6 完美轉(zhuǎn)發(fā) 85
3.4 顯式轉(zhuǎn)換操作符 89
3.5 列表初始化 92
3.5.1 初始化列表 92
3.5.2 防止類型收窄 96
3.6 POD類型 98
3.7 非受限聯(lián)合體 106
3.8 用戶自定義字面量 110
3.9 內(nèi)聯(lián)名字空間 113
3.10 模板的別名 118
3.11 一般化的SFINEA規(guī)則 119
3.12 本章小結(jié) 121
第4章 新手易學,老兵易用 123
4.1 右尖括號>的改進 123
4.2 auto類型推導 124
4.2.1 靜態(tài)類型、動態(tài)類型與類型推導 124
4.2.2 auto的優(yōu)勢 126
4.2.3 auto的使用細則 130
4.3 decltype 134
4.3.1 typeid與decltype 134
4.3.2 decltype的應用 136
4.3.3 decltype推導四規(guī)則 140
4.3.4 cv限制符的繼承與冗余的符號 143
4.4 追蹤返回類型 145
4.4.1 追蹤返回類型的引入 145
4.4.2 使用追蹤返回類型的函數(shù) 146
4.5 基于范圍的for循環(huán) 150
4.6 本章小結(jié) 153
第5章 提高類型安全 155
5.1 強類型枚舉 155
5.1.1 枚舉:分門別類與數(shù)值的名字 155
5.1.2 有缺陷的枚舉類型 156
5.1.3 強類型枚舉以及C++11對原有枚舉類型的擴展 160
5.2 堆內(nèi)存管理:智能指針與垃圾回收 163
5.2.1 顯式內(nèi)存管理 163
5.2.2 C++11的智能指針 164
5.2.3 垃圾回收的分類 167
5.2.4 C++與垃圾回收 169
5.2.5 C++11與最小垃圾回收支持 170
5.2.6 垃圾回收的兼容性 172
5.3 本章小結(jié) 173
第6章 提高性能及操作硬件的能力 174
6.1 常量表達式 174
6.1.1 運行時常量性與編譯時常量性 174
6.1.2 常量表達式函數(shù) 176
6.1.3 常量表達式值 178
6.1.4 常量表達式的其他應用 180
6.2 變長模板 183
6.2.1 變長函數(shù)和變長的模板參數(shù) 183
6.2.2 變長模板:模板參數(shù)包和函數(shù)參數(shù)包 185
6.2.3 變長模板:進階 189
6.3 原子類型與原子操作 196
6.3.1 并行編程、多線程與C++11 196
6.3.2 原子操作與C++11原子類型 197
6.3.3 內(nèi)存模型,順序一致性與memory_order 203
6.4 線程局部存儲 214
6.5 快速退出:quick_exit與at_quick_exit 216
6.6 本章小結(jié) 219
第7章 為改變思考方式而改變 220
7.1 指針空值—nullptr 220
7.1.1 指針空值:從0到NULL,再到nullptr 220
7.1.2 nullptr和nullptr_t 223
7.1.3 一些關(guān)于nullptr規(guī)則的討論 225
7.2 默認函數(shù)的控制 227
7.2.1 類與默認函數(shù) 227
7.2.2 “= default”與“= deleted” 230
7.3 lambda函數(shù) 234
7.3.1 lambda的一些歷史 234
7.3.2 C++11中的lambda函數(shù) 235
7.3.3 lambda與仿函數(shù) 238
7.3.4 lambda的基礎(chǔ)使用 240
7.3.5 關(guān)于lambda的一些問題及有趣的實驗 243
7.3.6 lambda與STL 247
7.3.7 更多的一些關(guān)于lambda的討論 254
7.4 本章小結(jié) 256
第8章 融入實際應用 258
8.1 對齊支持 258
8.1.1 數(shù)據(jù)對齊 258
8.1.2 C++11的alignof和alignas 261
8.2 通用屬性 267
8.2.1 語言擴展到通用屬性 267
8.2.2 C++11的通用屬性 268
8.2.3 預定義的通用屬性 270
8.3 Unicode支持 274
8.3.1 字符集、編碼和Unicode 274
8.3.2 C++11中的Unicode支持 276
8.3.3 關(guān)于Unicode的庫支持 280
8.4 原生字符串字面量 284
8.5 本章小結(jié) 286
附錄A C++11對其他標準的不兼容項目 287
附錄B 棄用的特性 294
附錄C 編譯器支持 301
附錄D 相關(guān)資源 304

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號