Visual C++ に焦点を当てます。スローしない仕様を使用してthrow()
(つまり) C++ コードで大幅なパフォーマンスの向上を経験したことがありますか? __declspec(nothrow)
それは本当にオプティマイザーに役立ちますか? パフォーマンスの向上を示すベンチマークはありますか?
インターネットで別の (反対の) アドバイスを見つけました。
ブーストの例外仕様の理論的根拠はに反対 throw()
です。代わりに、Larry Ostermanは彼のブログ投稿でそれを支持しているようです: Why add a throw() to your methods?
(私は VC++ 固有のコードに興味があることを明確にしたいと思いthrow()
ます。GCC では、ランタイム チェックのために仕様が実際には「ペシミゼーション」になる可能性があることを知っています。)
PS ATLヘッダーを読んで、広く使用されていることがわかりましたthrow()
。さらに、この MSDN の記事で、同様に仕様を使用する便利な C++ RAIIunique_handle
クラスを見つけました。throw()