catch ブロックの引き数

C++catch ブロックの引き数に対してクラス型を指定する場合 (exception_declaration)、 コンパイラーはコピー・コンストラクターを使用して、その引き数を初期化します。 その引き数に名前が入っていなければ、コンパイラーは一時オブジェクトを初期化し、ハンドラーがあるときはそれを破棄します。

ISO C++ 仕様では、冗長と思われる場合にコンパイラーが一時オブジェクト を作成する必要はありません。コンパイラーは、この規則を利用してより効率的な最適化コードを作成します。 プログラムをデバッグする場合、特にメモリー問題のデバッグにおいては、このことを考慮に入れてください。

関連参照

IBM Copyright 2003