コピーの省略
言語標準によると、例外として投げられるオブジェクトにも、同じような最適化が適用される。 しかし、投げられたオブジェクトから例外オブジェクトへのコピー、そして例外オブジェクトから例外宣言のcatch節へのコピーのどちらも、最適化されるかもしれないし、されないかもしれない。これは、一時オブジェクトでも、名前付きオブジェクトでも同様である。 例:
言語標準に準拠したコンパイラは、上記のコードから"Hello World!"と二度出力するプログラムを生成しなければならなかった。C++11では、名前付きオブジェクトの例外オブジェクトへのコピーと、例外ハンドラで宣言されたオブジェクトへのコピーを省略することを本質的に許したことで、その問題は対処された。
GCCは-fno-elide-constructorsオプションを提供して、コピーの省略を無効化できるようにしている。このオプションは戻り値最適化の効果を発見(あるいは見逃し!)するのに有用である。平時にこの重要な最適化を無効化することは推奨しない。