VC警告4365似乎不一致

时间:2013-05-28 14:34:42

标签: visual-c++ compiler-warnings

我的问题是:为什么VC只为下面的一条评论行发出警告4365,而不是另一条?

#pragma warning(1: 4365)

void test1(const unsigned short) {}

unsigned short test2() { return 0; }

int main()
{
    const unsigned short a = 0;
    const unsigned short b = 0;
    test1(a + b);       // This line gives no warning
    test1(test2() + b); // This line gives C4365
    return 0;
}

在VS2010和VS2012 Express下测试。

作为参考,完整的警告文本如下:

warning C4365: 'argument' : conversion from 'int' to 'const unsigned short', signed/unsigned mismatch

使用Clang 3.3(通过Clang-Win32和ClangVSx),此代码中未报告任何警告(当然除了未知的编译指示)。

0 个答案:

没有答案