→ djshen: 你有查過那段warning的意思? 02/05 16:32
→ bhbbbbb: 那段意思丟google翻譯是:隱式轉換失去了整數精度 02/05 18:06
→ bhbbbbb: 大概懂他的意思,不過我不懂為何會這樣 02/05 18:06
→ outofyou: size()<2的時候? 02/05 18:08
→ skyrimrvks: 表達式同時用了無符號跟有號變數 02/05 19:22
→ Raymond0710: seq.size()-2結果unsigned 會導致overflow 02/05 20:14
推 LPH66: 根本原因是 size() 回傳的型態是無號的 size_t 02/06 00:25
→ b98901056: 朝聖一樓<_ _> (離題 02/06 01:26
謝謝大家 我回去翻了我的primer,發現我的基本觀念還真是糟糕
但若我今天想要拿一個假設string::size_type型別的數拿去跟型別為int的數做運算
是否勢必要做型別轉換,例如:
string::size_type ix = 1024 ;
int ival = ix ; // 這樣會跳出警告,因為long unsigned 大於 int
如果我確定那個變數ix並不會超過int的範圍,是否應該這樣寫
int ival2 = static_cast<string::size_type>(ix);
但我的Xcode仍跳出警告,請問是否我的理解錯誤了?
※ 編輯: bhbbbbb (59.120.178.253), 02/06/2018 10:12:14
推 steve1012: size type 通常是 sizet 你static cast 還是 cast 成 s 02/06 11:10
→ steve1012: izet不是 02/06 11:10