我有一個適用於x86的現有C代碼庫。在x64上沒有溢出溢出
我現在編譯它爲x64。
我想要做的是將size_t轉換爲DWORD,並在數據丟失時拋出異常。
問題:有沒有一個成語呢?
這也是爲什麼我這樣做:
一堆的Windows API的接受DWORD值作爲參數,並且代碼目前假設的sizeof(DWORD)==的sizeof(爲size_t)。這個假設適用於x86,但不適用於x64。因此,編譯x64時,傳遞size_t代替DWORD參數,會生成編譯時警告。
在幾乎所有這些情況下,實際大小不會超過2^32。但我想要防守和明確地進行編碼。
這是我的第一個x64項目,所以...要溫柔。
你知道,升壓是像1.43版本了,對不對? – 2010-05-29 21:14:27
是的..歡迎編輯鏈接 – 2010-05-29 21:32:18
http://www.boost.org/doc/libs/1_43_0/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html – smerlin 2010-05-29 22:17:12