[問題] refactor convert endian 的 template

看板C_and_CPP作者 (Ar藤)時間12年前 (2012/03/15 16:10), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/1
http://ideone.com/FEhKR 有一些用來作big-endian little-endian轉換的function 希望可以避免掉copy paste的code 但目前不知怎麼refactor 遇到的問題: 沒辦法把 inline BinaryFileReader & operator>>( uint64 & value ) 移到 inline BinaryFileReader & operator>>( T & value ) 之中 移過去的話 compiler會報「具象化int版時 shift bit運算子超過位數」 (所以其中sizeof(value)==2的情況不會跑到) 此問題的限制: 這function會用來跑10G以上大小的file,所以速度至少要和現在的版本一樣快 希望refactor完的結果: 速度至少一樣,並且這3個function合成一個, 請問有什麼較好的寫法呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.192.162.252 ※ 編輯: Arton0306 來自: 203.192.162.252 (03/15 16:10) ※ 編輯: Arton0306 來自: 203.192.162.252 (03/15 16:12)

03/15 20:16, , 1F
為何我想到 MFC 的作法 Orz
03/15 20:16, 1F

03/15 22:45, , 2F
用迴圈吧...如果還嫌太慢就開O3吧...
03/15 22:45, 2F

03/16 00:22, , 3F
不確定是不是最快解法
03/16 00:22, 3F

03/16 00:22, , 4F
03/16 00:22, 4F
文章代碼(AID): #1FOQFsfg (C_and_CPP)