質問: C++ の例外処理に関する質問です。 try, catch, throw による例外処理はメモリーの使用効率が悪いという理由で、C のように関数の復帰値による例外処理をしている(*1)人達がいるのですが、本当に関数の復帰値による例外処理よりもメモリーの使用効率は悪いのでしょうか? また、悪い場合どれくらい悪いのでしょうか? *1...例外内容は別途管理しています。
回答: 例外処理のオーバヘッドに関する話題は良く聞きますね http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja... 少なくとも,例外処理を使うと * 例外処理のためのコード * 例外処理のためのメモリ が必要になることは事実です.つまり処理時間とメモリ使用量が増加する可能性があります 後者のmsdnの記事でも > > このファイルは 23,040 バイトから 29,696 バイトになりました > > > と例外を使うと,バイナリのサイズが増加する実例が挙げられています. (この記事が書かれたのは1999年で少々古いデータですが,最近のコンパイラでも例外処理にはオーバヘッドが伴います) このオーバヘッドが多いとみるか,少ないと見るかは,状況によりますが, 少なくとも, * メリット 例外処理を上手につかうと生産性が向上する * デメリット 例外処理にはオーバヘッドが伴う という点はふまえておいた方が良いと思います.