2011-02-15 67 views

回答

9

您所切換的數據類型取決於。如果它是一個密集的int範圍,則使用存儲函數指針的查找表。在其他情況下,使用從切換值到功能指針的std::map

2

我會說切換不是問題。

你的分支之間有很多代碼重複(我想你還有類似395的東西),所以你應該能夠通過抽象出通用部分來縮小你的DLL;唯一的區別是您正在檢索哪個字段以及您使用它執行的計算。如果您的代碼與您發佈的代碼完全相似,那麼絕大多數代碼可以在分支之間共享。
如果你的編譯器沒有對字符串進行任何合併,所以你有幾個查詢模板的實例,這也沒有幫助。

將所有條件,數據庫查詢和字符串連接因子分解爲函數,並查看需要的地方。

無論如何,您應該這樣做,因爲它會使維護和進一步擴展變得更容易。

0

開關盒的大小和Dll的大小應該沒有直接關係。除了編譯器提供的defalut優化選項外,唯一可以控制大小的方法是減少通用代碼並正確使用STL

相關問題