C++是否允许函数的默认返回类型?

Rod*_*ddy 6 c c++

在C中,以下恐怖是有效的:

myFunc()
{
  return 42;  // return type defaults to int.
}
Run Code Online (Sandbox Code Playgroud)

但是,在C++中呢?无论如何我都找不到它的参考...

我的编译器(Codegear C++ Builder 2007)目前在没有警告的情况下接受它,但我有评论说这 C++中的错误.

Joh*_*itb 19

它是病态的在C++中.这意味着它不能使用标准的符合编译器进行编译.标准附件C 第7.1.5/4段解释了"禁止隐含int"的变化.


Jam*_*kin 9

隐式返回类型在C89中有效,但许多编译器都对此提出警告.

它们在C++和C99中都无效.


Rod*_*ddy 5

因此,它肯定是“格式错误的” C ++,但似乎许多编译器充其量都带有警告。

  • Codegear C ++ Builder 2007:完全没有错误或警告
  • G ++:需要-W -Wall生成警告,或-pedantic生成错误(Piotr)
  • MSVC 8:产生错误(tfinniga
  • 其他...?

请添加到/更正此列表!