![](/img/trans.png)
[英]How to allow custom return types of member functions for type erasure in C++?
[英]Does C++ allow default return types for functions?
在C中,以下恐怖是有效的:
myFunc()
{
return 42; // return type defaults to int.
}
但是,在C ++中呢? 无论如何我都找不到它的参考...
我的编译器(Codegear C ++ Builder 2007)目前在没有警告的情况下接受它,但我已经注意到这是 C ++中的错误。
它是病态的在C ++中。 这意味着它不能使用标准的符合编译器进行编译。 标准附件C第7.1.5 / 4段解释了“禁止隐含int”的变化。
隐式返回类型在C89中有效,但许多编译器都对此提出警告。
它们在C ++和C99中都无效。
所以,它肯定是“形成错误的”C ++,但似乎许多编译器最多只接受警告。
请添加/更正此列表!
这不是合法的C ++,但是一些编译器会以静默方式或使用诊断方式接受它。
如发布,它是不正确的。 MSVC 8给出以下错误:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.