繁体   English   中英

当函数未在默认返回路径上显式返回值时,是否强制出错?

[英]Forcing an error when a function doesn't explicitly return a value on the deafult return path?

在VC ++(VSTS 2008)中,是否有一种方法可以针对未在默认返回路径上显式返回值的函数(或其他用于查找它们的快速方法)引发编译器错误?

在同一个问题上,这些职能实际上返回什么呢?

我不知道确切的警告编号,但是您可以使用#pragma warning强制将特定警告视为错误:

例:

#pragma warning( error: 4001)

将警告4001视为错误

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

VC会警告有关此问题的许多实例,但无法检测到某些情况。 我一再发现它在函数模板中遗漏了这个问题,但是我在一些普通函数中也看到过int。 将警告视为错误(对所有警告使用编译器开关或对特定警告使用编译器)将无法忽略发现的警告。

对于那些忽略VC的人,您必须使用更全面的工具。 在VSTS中的AFAIK中,您还可以为编译器抛出一个/analyze开关,让它发现更多问题。

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

使用其他编译器也有帮助。 第一次将VS项目移植到GCC可能非常困难,但是我认为Intel的编译器可以用作VC的直接替代品,并可以立即编译VC项目。 Comeau C ++也具有与VC完全兼容的开关,并且具有非常好的错误消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM