Я работаю со старым кодом, и при компиляции с использованием более нового стандарта C++ я получаю ошибку на каждом -1
.
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}
};
Я попытался изменить код и скобки на круглые скобки после предупреждения: сужение преобразования С++ 11 , но я все еще получаю ту же ошибку. Есть ли решение без возврата к старому стандарту С++?
signed char x, y, v, w;
? - person Eljay   schedule 22.01.2021char
подписанным или использованным. - person molbdnilo   schedule 22.01.2021