。嫦蜻^程編程
。瓟祿橄
。面向對象編程
我認為模板是對數據抽象的支持。在試用了STL一段時間之后,我提出第四種樣式:
。盒途幊
以使用模板為基礎的技術,以及從功能性編程中獲取大量靈感的技術與傳統的數據抽象有本質的不同。人們只是認為類型、對象和資源不同。新的C++類庫是使用模板技術編寫的,才獲得了靜態類型安全和高效率。模板技術對于嵌入式系統編程和高性能數學運算也是很關鍵的,在這些環境中,資源的管理和正確性是關鍵。在這些領域中STL并非總是理想的。例如,它沒有直接地支持線性代數,而且在緊湊的實時系統中(在這種環境下一般會禁止自由地使用存儲)也很難使用它。但是,STL證明了在模板的幫助下可以實現什么樣的功能,并提出了一些有效的技術示例。例如,利用迭代子(和分配器)把邏輯內存訪問與實際內存訪問分離開來,對于很多高性能數字運算就是很關鍵的;使用小型的、簡單的內聯、對象對于嵌入式系統編程中最佳地使用硬件也是很關鍵的。這類技術有一些記載在標準委員會關于性能的技術報告中了。這是對當前過度地使用過分依賴于類層次和虛擬函數的"面向對象"技術的這種趨勢的一種大范圍的反擊--也是一種有建設意義的替代方案。
很明顯,STL并不完美。相對來說沒有完美的東西。但是,它開辟了新天地,而且它擁有的影響力甚至于超過了巨大的C++群體。使用C++時,當人們試圖推動STL所倡導的技術來超越STL技術的時候,它們討論"模板元數據編程"。我們中有些人也會考慮STL迭代子的限制(使用generator和range是不是更好?),以及C++如何更好地支持這些使用(概念、初始化器)。
文章來源于領測軟件測試網 http://www.kjueaiud.com/