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