以下是我有时会在学生代码中看到的模式的简化版本:
bool foobar(int a, int b)
{
if (a < b) return true;
}
实际代码当然更加复杂。Visual Studio 报告了一个警告 C4715 (not all control paths return a value),我想将所有 C4715 警告都视为错误。这是否可能?
以下是我有时会在学生代码中看到的模式的简化版本:
bool foobar(int a, int b)
{
if (a < b) return true;
}
实际代码当然更加复杂。Visual Studio 报告了一个警告 C4715 (not all control paths return a value),我想将所有 C4715 警告都视为错误。这是否可能?
#pragma warning (error: 4715)
。/we4715
命令行选项(请参见/w,/W0,/W1,/W2,/W3,/W4,/w1,/w2,/w3,/w4,/Wall,/wd,/we,/wo,/Wv,/WX(警告级别) (由Tom Sigerdas提供))。/we4715
对我有效。
在Visual Studio 2013中,UI界面在项目设置 -> 配置属性 -> C/C++ -> *高级 *-> 将特定警告视为错误 中添加 "4715"。
文档:http://msdn.microsoft.com/en-us/library/thxezb7y.aspx
(请注意,该页面列出了VS2013的错误UI属性。)
我将以下内容添加到(VB)项目文件中,然后它就能正常工作:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,41997</WarningsAsErrors>
</PropertyGroup>
将编译器警告级别设置为4级(在Visual Studio中),它将把所有警告视为错误。无论如何,让学生以没有警告和错误的方式编译代码是一个好习惯 :)
此外,打开/WX编译器选项。
/WX
结合在一起。 - Matthieu M.
-Werror
,并意识到它有一个缺点,就是在我开发代码时,将错误或警告分类是很有帮助的。我可以看到“啊哈,2个警告和1个错误”,并开始更好地预测我可能做错了什么,而不是只看到“3个错误”。实际上,-Werror
似乎只有在这是唯一的消除代码中警告的方法时才是必要的。 - orion elenzil