Откуда появился синтаксис `throw (...)`?

В нашем приложении у нас было несколько (членов, но это не имеет значения) функции, объявленные как

void SomeFunction(Type argument) throw (...);

С Microsoft Visual С++, который компилируется просто отлично. Но теперь я пытаюсь скомпилировать его с GCC и отклоняет ... как синтаксическую ошибку. Я помню, как давно слышал об этой конструкции, но, глядя на спецификацию, ни С++ 03, ни С++ 11, похоже, не позволяют ..., и я не могу вспомнить, откуда я ее получил. Кто-нибудь знает что-либо о происхождении этой (явно бессмысленной) конструкции?