如何在 -Werror=conversion 选项下使从 'int' 到 'char' 的转换合理? C++11
How to make the conversion from 'int' to 'char' reasonable under -Werror=conversion option? c++11
error: conversion from ‘int’ to ‘char’ may change value [-Werror=conversion]
构建命令示例:
g++ -std=c++11 test.cpp -o a.out -Werror=conversion
auto index = 3;
char singleChar = 'A' + index; // I want to get A-Z
希望sigleChar是动态赋值的。
你能帮我在不使用开关的情况下解决这个错误报告吗?
怎么写代码比较好?
您必须将其类型转换为 char
:
auto index = 3;
char singleChar {static_cast<char>('A' + index)};
'A' + index; // I want to get A-Z
仅适用于 ASCII,不适用于 EBCDIC。
一个更便携的解决方案(不涉及 int 到 char 的转换)是数组索引:
char singleChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[index];
error: conversion from ‘int’ to ‘char’ may change value [-Werror=conversion]
构建命令示例:
g++ -std=c++11 test.cpp -o a.out -Werror=conversion
auto index = 3;
char singleChar = 'A' + index; // I want to get A-Z
希望sigleChar是动态赋值的。 你能帮我在不使用开关的情况下解决这个错误报告吗? 怎么写代码比较好?
您必须将其类型转换为 char
:
auto index = 3;
char singleChar {static_cast<char>('A' + index)};
'A' + index; // I want to get A-Z
仅适用于 ASCII,不适用于 EBCDIC。
一个更便携的解决方案(不涉及 int 到 char 的转换)是数组索引:
char singleChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[index];