【发布时间】:2012-10-17 18:16:39
【问题描述】:
在我们的应用程序中,我们有一些(成员,但这无关紧要)函数声明为
void SomeFunction(Type argument) throw (...);
使用编译得很好的 Microsoft Visual C++。但现在我正在尝试用 GCC 编译它,它拒绝 ... 作为语法错误。我记得很久以前就听说过这个构造,但是看看规范,C++03 和 C++11 似乎都不允许... 在那里,我不记得我从哪里得到它。有人知道这个(显然毫无意义的)构造的起源吗?
【问题讨论】:
-
我不知道他们为什么支持它,但大概选择了语法来反映
catch(...)语法;一个意思是“可以抓住任何东西”,另一个意思是“可以扔任何东西” -
我认为我们都应该责备小组中的 Java 粉丝。
-
为什么这被选为题外话?这怎么可能远程跑题了?
-
另请注意,C++11 不赞成在函数声明中使用
throw表示法。 -
@WhozCraig:Java 出现在 C++ 已经存在之后(尽管在完全标准化之前)。