[C++] 実行環境の差異によるintワーニングが出ない書き方
C++のワーニングを放置していたのですが、そっと @srz_zumix さんが教えてくれてました
忘れないうちに”φ(・ェ・o)~メモメモ
x86環境とx64環境が混在してる場合にエラーが出やすい
こんなやつとか出ます…
|
|
これは x86環境だと warning は出ないのですが x64 環境想定でコンパイルすると、ワーニングが出ます
(Clangの例)
warning: Implicit conversion loses integer precision: ‘std::__1::vector>::size_type’ (aka ‘unsigned long’) to ‘u_int32_t’ (aka ‘unsigned int’) [-Wshorten-64-to-32]
( ̄□ ̄;
ええ、ええ、判っていますとも…
int 型が処理系によって異なるのは…
そこで、やっつけで修正するならこれ
|
|
なのですが、もっとスマートは方法があります
|
|
エレガントになりました…!素晴らしい(^^♪
警告のコンパイラー対応表がある
[C++] 警告のコンパイラー対応表を作り始めました - ブログズミ
https://srz-zumix.blogspot.com/2020/09/c.html
@srz_zumix さんが最近始められたプロジェクトらしいです
ワーニング対応表欲しいな…と思っていたところなので、結構良いかもしれない…
そして今日もC++修練は続く…