int() なんて書いたもんだからいらん混乱を招いちまったみたいだね。
すまん。んで、>>892 のように、

> void foo(){ throw int(); }

ならコンパイルできるわけです。つまり、throw (int()); と書くと、

void foo() throw( int …

のような例外指定とカンチガイして解析してしまうので、パースエラー
になるのかな、と。