私は以下のコードを持っています。例外仕様に基本型がある場合、関数は派生クラス例外をスローできますか?
class Base{};
class Derived: public Base{};
class Test
{
public:
void fun() throw(Base)
{
throw Derived();
}
};
int main()
{
Test ob; ob.fun();
}
例外仕様リストに基本型がある場合、fun()は派生型の例外をスローできますか?
"正しい"答えは、例外仕様が残念ながらそれを標準にしたという悪い考えであるということです。実際のコードは 'throw()'だけを使います。 – MSalters
'throw()'はいつ有用ですか?私は標準的なアドバイスが例外仕様、たとえ 'throw()'を使うことは決してないと考えました。 –
@Tim: 'throw()'は最適化を可能にし、C++ 0xが出てコンパイラは新しい 'noexcept'キーワードとして' throw() 'を扱い、関連する最適化を実行できます。 –