投稿日
2012/12/17 月曜日
とりあえずメモ。
Apple LLVM compiler 4.1のC++ Language DialectをGNU++11にすると次のようなC++のコードで16進リテラル部分を0x7FFFFFFF以上にするとコンパイルエラーが発生する。
int test[] = {0xFFFFFF9C};
エラー内容は次のような感じで、どうもリテラルをunsigned intと解釈したとして、それがintの範囲を超える場合に起きるみたい。
Constant expression evaluates to 4294967196 which cannot be narrowed to type 'int'
ちなみに次のように配列じゃなければエラーにはならない。
int test = 0xFFFFFF9C;
手っ取り早い解決方法は、C++ Language DialectをCompiler Defaultにする事。
もうひとつは、C++ Language DialectはGNU++11のままで次のようにキャストしてしまう事。
int test[] = {(int)0xFFFFFF9C};
もしくは
int test[] = {static_cast<int>(0xFFFFFF9C)};
PVRTMathTable.h でエラーが出まくって気づいた。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…