【发布时间】:2018-10-05 08:56:30
【问题描述】:
Visual C++ 2017 和 gcc 5.4 在此代码 sn-p 中为 Line B 生成 conversion from 'const unsigned char' to 'const float' requires a narrowing conversion 警告,但不为 Line A 生成警告:
#include <iostream>
int main() {
const unsigned char p = 13;
const float q = p; // Line A
std::cout << q << '\n';
const unsigned char c[3] = {0, 1, 255};
const float f[3] = {c[2], c[0], c[1]}; // Line B
for (auto x:f)
std::cout << x << '\n';
}
这个警告有效吗?为什么Line B 的处理方式与Line A 不同?
【问题讨论】:
标签: c++ c++11 gcc visual-c++ gcc-warning