在MSVC中使用多字符常量时是否可能出现警告? (类似于 gcc 中的 -Wmultichar
)。或者,如果有任何替代解决方案可以帮助查找如下代码,请告诉我。
使用 W4
对此代码进行编译未能产生任何警告,而使用 gcc 则可以生成 -Wmultichar
和 -Wtype-limits
:
int main()
{
std::string s = "hello";
if (s[0] == 'he') {}
}
(我知道 Wall
但它会产生很多警告,我没有理会它。)
最佳答案
仅在有限的上下文中 - 对于以下代码,有两个警告:
#include <iostream>
int main()
{
char x = 'he';
std::cout << x << '\n';
}
warning C4305: 'initializing' : truncation from
'int'
to'char'
warning C4309: 'initializing' : truncation of constant value
可以单独启用这些警告,而无需启用 /W4
或 /Wall
。
但是,对于您问题中的代码,即使使用 /Wall
也没有适用的警告。
关于c++ - MSVC 在 gcc 中提供类似 -Wmultichar 的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289401/