泛型編程雜談
摘要: 有些人說GP的抽象能力高于OO,這個觀點我并不認同,我感覺只是他們的抽象方式不一樣,OO是基于接口, 而GP是基于concept。OO的基于接口的抽象,在源代碼和最終運行時都能體現,源代碼中是接口,運行時是虛表,所以他們是一致的, 符合普通人的思維習慣。GP基于concept的抽象, 主要體現在源代碼中 ,只是你用來告訴編譯器你的思維方式, 在運行時他可能是一個完全不同的世界,所以比較難理解。
閱讀全文
posted @
2012-11-10 14:25 Richard Wei 閱讀(3256) |
評論 (7) 編輯
C++模板會使代碼膨脹嗎
摘要: 通過上面的分析 ,相信我們知道了為什么ATL/WTL大量使用模板,但是生成的exe還是這么小的原因 :
不是模板不會使代碼膨脹,而是ATL/WTL在設計時就關注了這個問題 ,它避免了在可能生成很多模板實例的模板類中編寫大量代碼(有些拗口,不知道你有沒有讀懂^_^)
總結下 ,如果你想用模板,但是又不想 讓自己最終的可執行文件變的很大, 有2種方式:
(1)你的模板類不會生成很多模板實例,這樣寫成模板類還有意義嗎?
(2)你的模板類的代碼量或是函數個數很少,你可以仿照ATL的方式把模板無關的東西逐層剝離。
閱讀全文
posted @
2012-11-08 22:37 Richard Wei 閱讀(4047) |
評論 (2) 編輯