0

古いコードを使用していますが、-1新しい C++ 標準を使用してコンパイルするたびにエラーが発生します。

constant expression evaluates to -1 which cannot be narrowed to type 'char' [-Wc++11-narrowing]

ここにスニペットコードがあります

typedef struct {
    //short     len;
    //unsigned short cw;
    char        x, y, v, w;
} testStruct;

const testStruct testArr[] = {
    {   1,  -1,   0,   0},
    {  -1,   1,   0,   0},
    {   0,   0,  -1,   1},
    {   0,   1,  -1,   0},
    {   0,  -1,   1,   0},
    {   0,   0,   1,  -1},
    {   1,   1,   0,   0},
    {   0,   0,  -1,  -1},
    {  -1,  -1,   0,   0},
    {   0,  -1,  -1,   0},
    {   1,   0,  -1,   0},
    {   0,   1,   0,  -1},
    {  -1,   0,   1,   0},
    {   0,   0,   1,   1},
    {   1,   0,   1,   0},
    {   0,  -1,   0,   1},
    {   0,   1,   1,   0},
    {   0,   1,   0,   1},
    {  -1,   0,  -1,   0},
    {   1,   0,   0,   1},
    {  -1,   0,   0,  -1},
    {   1,   0,   0,  -1},
    {  -1,   0,   0,   1},
    {   0,  -1,   0,  -1}
};

警告: 変換 C++11 を狭めるに続いて、コードとブラケットを括弧に変更しようとしましたが、それでも同じエラーが発生しました。古い C++ 標準に戻らない解決策はありますか?

4

1 に答える 1