当函数未在默认返回路径上显式返回值时强制发生错误?

时间:2009-10-19 13:28:48

标签: c++ compiler-errors return-path

在VC ++(VSTS 2008)中,有没有办法解决在默认返回路径上没有显式返回值的函数的编译器错误(或任何其他快速定位它们的方法)?

在同一个问题上,是否存在关于这些功能实际返回的任何人?

3 个答案:

答案 0 :(得分:2)

我不完全知道警告编号,但您可以使用#pragma警告强制将特定警告视为错误:

示例:

#pragma warning( error: 4001)

会将警告4001视为错误

答案 1 :(得分:1)

如果您启用了最高警告级别,并将警告视为错误,那么您一定会找到您要查找的内容。 猜测,否则将返回什么:函数返回类型的默认构造对象。

答案 2 :(得分:0)

VC会警告这个问题的很多实例,但是没有发现一些问题。我一再发现它在函数模板中缺少这个问题,但我也看到了一些普通函数中的int。将警告视为错误(所有警告的编译器切换或特定警告的编译指示)将使其无法忽略它找到的那些警告。

对于那些VC忽视,你必须使用更全面的工具。在VSTS中的AFAIK,你也可以为编译器抛出一个/analyze开关,让它找到更多问题。

还有许多类似lint的程序版本。

使用其他一些编译器也有帮助。首次将VS项目移植到GCC可能非常困难,但我认为英特尔的编译器可以作为VC的直接替代品并立即编译VC项目。 Comeau C++也有与VC兼容的交换机,并且具有非常好的错误消息。