我想要类似-Wsign-compare
msvc的警告。例如,它应触发:
bool foo(){
int i = -1;
size_t j = 1;
return i == j;
}
有C4389,但仅在j
is时触发unsigned
,我不太了解:https : //godbolt.org/z/Yd5z1P IMO它应针对上述情况触发。
是否有其他警告适用于上述情况,但在其他情况下很少发生?例如https://docs.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4365?view=vs-2019会令人反感
有一个(显然)未记录的警告C4388将针对您的代码显示,与已记录的 C4389非常相似。
使用该/W4
开关编译的以下代码将生成以下两个警告中的每一个:
#pragma warning(default:4388)
#pragma warning(default:4389)
bool foo()
{
int i = -1;
unsigned j = 1;
size_t k = 1;
bool a = i == j; // warning C4389: '==': signed/unsigned mismatch
bool b = i == k; // warning C4388: '==': signed/unsigned mismatch
return 1;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句