超載C++標準︰Boost庫導論

超載C++標準︰Boost庫導論
定價:239
NT $ 208
 

內容簡介

本書是市面上第一本專門討論Boost庫的著作。書中首先概括性地簡介了Boost的所有58個庫,然後全面深入地闡述了12個十分有用的Boost庫,展示了它們如何與C++標準庫配合以及如何擴展C++標準庫。本書不僅介紹了Boost庫的功能、使用方法及注意事項,而且還深入討論了Boost庫的設計理念、解決問題的思想和技巧以及待處理的問題。因此,本書是一本了解Boost庫並探索其機理的實用手冊。

Boost庫與C++

Boost庫最初是一個由C++標準委員會庫工作組成員發起,收錄人們因各種目的和想法而設計的一系列庫的組織。它對C++社區產生了重大的影響,這種影響在未來將更明顯。

數千名杰出的Boost志願者開發了許多C++98標準所沒有提供的庫。如今Boost庫是一個經過千錘百煉、可移植、提供源代碼的C++庫,作為標準庫的後備,是C++標準化進程的發動機之一。

Boost庫為我們帶來了最新、最酷、最實用的技術,是不折不扣的“準”標準庫。已經有不少Boost庫被寫成了C++的下一代標準C++0x的草案中,還有更多的Boost庫正在逐漸被C++0x所接受。
 

目錄

第Ⅰ部分 通用庫
第1章 Smart_ptr庫
1.1 Smart_ptr庫如何改進程序
1.2 何時需要智能指針
1.3 Smart_ptr庫如何適用于標準庫
1.4 智能指針scoped_ptr
1.4.1 頭文件
1.4.2 成員
1.4.3 自由函數
1.4.4 使用方法
1.4.5 不需要手動刪除
1.4.6 和智能指針auto_ptr幾乎一樣
1.4.7 智能指針scoped_ptr和pimpl慣用法
1.4.8 智能指針scoped_ptr不同于const auto_ptr
1.4.9 小結
1.5 智能指針scoped_array
1.6 智能指針shared_ptr
1.6.1 頭文件
1.6.2 成員
1.6.3 自由函數
1.6.4 使用方法
1.6.5 回顧Pimpl慣用法
1.6.6 智能指針shared_ptr和標準庫容器
1.6.7 智能指針shared_ptr和其他資源
1.6.8 使用自定義刪除工具的安全性
1.6.9 從this創建智能指針shared_ptr
1.6.10 小結
1.7 智能指針shared_array
1.8 智能指針intrusive_ptr
1.8.1 頭文件
1.8.2 成員
1.8.3 自由函數
1.8.4 使用方法
1.8.5 提供引用計數器
1.8.6 把this用作智能指針
1.8.7 支持不同的引用計數器
1.8.8 小結
1.9 智能指針weak_ptr
1.9.1 頭文件
1.9.2 成員
1.9.3 使用方法
1.9.4 一個常見的問題
1.9.5 兩種從weak_ptr創建shared_ptr的慣用法
1.9.6 小結
1.10 Smart_ptr庫小結
第2章 Conversion庫
2.1 Conversion庫如何改進程序
2.2 polymorphic_cast轉型函數
2.2.1 頭文件
2.2.2 使用方法
2.2.3 向下轉型和交叉轉型
2.2.4 dynamic_cast和polymorphic_cast的對比
2.2.5 polymorphic_cast並不總是正確的選擇
2.2.6 小結
2.3 polymorphic_downcast轉型函數
2.3.1 頭文件
2.3.2 使用方法
2.3.3 小結
2.4 numeric_cast轉型函數
2.4.1 頭文件
2.4.2 使用方法
2.4.3 將圈套的類型賦值給較小的類型
2.4.4 特殊情況︰目標類型是無符號整數
2.4.5 有符號和無符號整數類型的混用
2.4.6 浮點類型
2.4.7 小結
2.5 lexical_cast轉型函數
2.5.1 頭文件
2.5.2 使用方法
2.5.3 使lexical_cast函數工作的方法
2.5.4 用lexical_cast函數進行泛型編程
2.5.5 使類適用于lexical_cast函數
2.5.6 小結
2.6 Conversion庫小結
第3章 Utility庫
3.1 Utility庫如何改進程序
3.2 BOOST_STATIC_ASSERT斷言
斷言
3.2.1 頭文件
3.2.2 使用方法
3.2.3 函數使用域中的BOOST_STATIC_ASSERT
3.2.4 小結
3.3 checked_delete函數
3.3.1 頭文件
3.3.2 使用方法
3.3.3 到底發生了什麼問題
3.3.4 使用checked_delete解決問題
3.3.5 小結
3.4 noncopyable類
3.4.1 頭文件
3.4.2 使用方法
3.4.3 使類無法復制的方法
3.4.4 使用noncopyable類
3.4.5 記住Big Three定律
3.4.6 小結
3.5 addressof函數
3.5.1 頭文件
3.5.2 使用方法
3.5.3 快速了解一下懷有惡意的人
3.5.4 其他問題的迅速解決方法
3.5.5 小結
3.6 enable_if函數
3.6.1 頭文件
3.6.2 使用方法
3.6.3 小結
3.7 Utility庫小結
第4章 Operators庫
4.1 Operators庫如何改進程序
4.2 Operators庫如何適用于標準庫
4.3 Operators庫
4.3.1 頭文件
4.3.2 解引用運算府
4.3.3 復合算術運算府
4.4 使用方法
4.4.1 對比較運算符的支持
4.4.2 Barton-Nackmann技巧
4.4.3 嚴格弱序
4.4.4 避免對象膨脹
4.4.5 運算符和各種類型
4.4.6 相等和等價之間的差別
4.4.7 算術類型
4.4.8 該使用運算符時再使用運算府
4.4.9 理解Operators庫的工作機制
4.4.10 其他內容
4.5 Operators庫小結
第5章 Regex庫
5.1 Regex庫如何改進程序
5.2 Regex庫如何適用于標準庫
5.3 Regex庫
5.3.1 頭文件
5.3.2 成員
5.3.3 自由函數
5.4 使用方法
5.4.1 輸出驗證
5.4.2 查找
5.4.3 替換
5.4.4 使用者常見的誤解
5.4.5 關于重復和貪婪
5.4.6 regex_iterator簡介
5.4.7 通過regex_token_iterator分割字符串
5.4.8 更多的正則表達式
5.4.9 無效的正則表達式
5.5 Regex庫小結
5.5 Regex庫小結
第Ⅱ部分 容器和數據結構
第6章 Any庫
第7章 Variant庫
第8章 Tuple庫
第Ⅲ部分 函數對象和高階編程
第9章 Bind庫
第10章 Lambda庫
第11章 Function庫
第12章 Signals庫
 

Boost是一套開放源代碼的、高度可移植的C++庫,其中大量的組件已經基本成熟並可供應用。在C++社區中將Boost稱為“準標準庫”,即相當于STL的延續和擴展,它的設計理念和STL比較接近,都是利用泛型讓復用達到最大化。不過與STL相比,Boost更加實用。STL集中在算法部分,而Boost包含了不少的工具類,可以完成比較具體的工作。

Boost是由C++標準委員會類庫工作組成員發起的,致力于為C++開發新的類庫,許多C++專家都投身于Boost的開發中。

在編程界流傳著這樣一個說法︰要想成為高手,一定要多讀高手編寫的代碼。哪些代碼比較好呢?是C++標準庫的源代碼嗎?不是,如果您讀過這些代碼,就會發現這些代碼要麼是各種實現獨特的表達方式讓人摸不著頭腦,要麼是恐怖的代碼風格(例如到處是下劃線)憋得讓人難受。Boost庫的代碼則相當清晰、注釋合理、命名規範,絕對是適合閱讀的典範。同時,Boost庫內容廣泛,包括數值計算、泛型編程、元編程、智能指針、類型轉換等眾多內容,所以可以從中選擇自己感興趣的部分,細細品味。

本書是市面上第一本全面深入介紹Boost的著作,因此對于那些勇于探索的C++開發先鋒來說,本書無疑是值得一讀的。特別是Boost中已有一些庫和特性為C++標準庫技術報告所接受,成為C++標準庫的內容,所以廣大的編程愛好者閱讀本書也會獲益匪淺。

在閱讀本書的過程中,讀者需要注意本書的排版風格,作者在寫作過程中,大量使用了函數名和關鍵字,例如,“刪除”使用了函數名“delete”,“綁定”使用了函數名\〃bind”,“類型定義”使用了關鍵字“typedef”等等。因此在本書的翻譯過程中,也盡量保持了原書的風格,讀者可能剛開始不習慣,但是經過一段時間後,將會發現使用這種方式更容易理解代碼。

感謝清華大學出版社為我們引進了這本優秀的圖書,感謝清華大學出版社的編輯和相關人員的精心組織、認真指導、大力協助,使本書的翻譯最終得以完成。

本書主要由張杰良翻譯,在翻譯過程中肖國尊做了不少協助工作。敬請廣大讀者提供反饋意見,讀者可以將意見E-mail至[email protected],我們會仔細查閱讀者發來的每一封郵件,以求進一步提高今後譯著的質量。

譯者
2006年10月
網路書店 類別 折扣 價格
  1. 新書
    87
    $208