2008最重要的事情是什麼?北京奧運?台灣選總統?都不是!!是C++ 2.0要發布了!!
程式設計師是喜新厭舊的,對一個語言,大概兩年就該有個新版刺激,C#、Java都是如此,C++ 1.0在1998年公佈(C++98),2.0卻是10年後的事情了(C++ 0x),這期間語言變化太大,C#、Java搶走了C++大部分的丰采與市場,預估2008年全球會再次掀起C++學習風潮。
回顧C++ 1.0 (C++98),其標準程式庫主要內容為
名稱 | 說明 |
STL,Standard Template Library標準模板庫 | containers, algorithms, iterators, function objects, adapters, allocators. |
iostream 輸入/輸出串流 | user-defined buffering, internationalized IO, predefined objects cin, cout, cerr, clog. |
internationalization 國際化支援 | multiple active locales, wchar_t and wstring facilitate working with Unicode. |
unmeric processing 數值處理 | complex, valarray |
exception hierarchy 異常階層體系 | base class exception及其derived classes logic_error和runtime_error,以及衍生下去的各種classes. |
C89's standard library C89標準程式庫 | 包含1989 C語言標準程式庫的每一部份。 |
C++ 2.0 (C++ 0x) 的TR1 (Technical Report 1)已經確定的部份
名稱 | 說明 |
Polymorphic Function Object Wrapper | 針對callable entities而設計的各種設施,擁有令人驚訝的彈性。 |
Tuple Types | pair的新一代成品。pair只能持有兩個物件,tuple可持有任意個數的物件。 |
Mathematical Special Functions | 包括Lagueree多項式、Bessel函數、完全橢圓積分(complete elliptic integrals)...。 |
Type Traits | 提供types的編譯期資訊。給予一個type T,這個設施可指出T是否為一個內建type、是否提供virtual dtor、是否為empty class、可否隱式轉換為另一type U...等等。 |
Regular Expressions | 正規運算式,一種允許帶有萬用字元如'*' 或 '?'的字串搜尋和比對運算。我們在作業系統文字模式下的檔案搜尋如dir *.exe就是一種正規運算。 |
General Purpose Smart Pointers | 提供多種智慧型指標。shared_ptr尤其有用。 |
Extensible Random Number Facility | 隨機數(random number)生成工具,其功能大大超越C/C++的rand()函式。 |
Reference Wrapper | 讓references的行為更像object。造成容器猶如持有references,而容器實際上只能持有objects或pointers。 |
Uniform Method for Computing Function Object Return Types | 用來推導函式呼叫後的回返型別。函式(或函式模板)被呼叫後傳回的物件的型別有可能以複雜的方式取決於函式的參數型別;result_of使的『指涉函式回返型別』變的十分容易。 |
Enhanced Binder | 能做STL binders(bind1st和bind2nd)所做的每一件事而又更多。函式呼叫前再不必使用令人混亂的ptr_fun,mem_fun或mem_fun_ref。是第二代binding工具,比第一代好用很多。 |
Hash Tables | 用以實現sets, multisets, maps和multi-maps。這些容器早就出現在市面各標準程式庫中,可能的名稱(例如SGL STL中)是hast_set, hash_multiset, hash_map和hash_multimap。新命名則式unordered_set,unordered_multiset,unorder_map,unorder_multimap,突顯出它們案以RB-tree為基礎的各個兄弟的不同:以hash為基礎的這些容器的元素無任何預期次序。 |
TR2則仍在進行中,若有新的資訊我會隨時補上。
Reference RunPC 2007年四月號,Boost綜覽、建置與安裝,侯捷