C++ 'throw(…)`语法从何而来?

C++ 'throw(…)`语法从何而来?,c++,history,C++,History,在我们的应用程序中,有几个(成员,但这不重要)函数声明为 void SomeFunction(Type argument) throw (...); VisualC++,编译得很好。但是现在我尝试用GCC编译它,它拒绝使用…作为语法错误。我记得很久以前就听说过这个构造,但是看看规范C++03和C++11似乎都不允许…,我不记得从哪里得到它。有人知道这个(显然毫无意义的)构造的起源吗?来自以下文章: Visual C++在ANSI标准中的实现 例外规范。” 我不知道他们为什么支持它,但可能选择

在我们的应用程序中,有几个(成员,但这不重要)函数声明为

void SomeFunction(Type argument) throw (...);
<微软> VisualC++,编译得很好。但是现在我尝试用GCC编译它,它拒绝使用
作为语法错误。我记得很久以前就听说过这个构造,但是看看规范C++03和C++11似乎都不允许
,我不记得从哪里得到它。有人知道这个(显然毫无意义的)构造的起源吗?

来自以下文章:

Visual C++在ANSI标准中的实现 例外规范。”


我不知道他们为什么支持它,但可能选择的语法是为了镜像
catch(…)
语法;一个意思是“可以抓住任何东西”,另一个意思是“可以扔任何东西”。我想我们都应该责怪小组中那些Java粉丝。为什么这个话题被否决了?这是怎么回事?也注意到C++ 11在函数声明中不赞成<代码>投掷< /Cult>符号。@ WooClegig:java在C++已经存在(尽管它被完全标准化之前)出来了。我总是开玩笑地称遵循GCC方法遵循规范“NASIS”。(特别是当规范过于严格时),但我真的,真的,真的更喜欢它,而不是MSVC的免费扩展。