警告:在 C++11 中,将“(stride * 4u)”从“unsigned int”缩小到“WORD {aka short unsigned int}”的转换在 C++11 中是错误的 [-Wnarrowing]
我无法弄清楚为什么我从 MinGW 编译以下代码时收到此警告:
unsigned stride = 3;
D3DVERTEXELEMENT9 NORMALELEMENT =
{ 0, stride * sizeof(gs_scalar), D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 };
if (useNormals) stride += 3;
它抱怨那些大括号内的stride * sizeof(gs_scalar)
(gs_scalar is float
) ,但我不明白这是如何缩小转换,因为sizeof
返回字节数。我尝试将stride
的数据类型更改为 WORD、DWORD、CHAR 等所有内容,但我不断收到相同或类似的警告。