C++ Named Return Value Optimization
VC++2005の名前付き戻り値の最適化の紹介がされていた。
http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/nrvo_cpp05.asp
- 最適化が行われなくなるケース
- 複数の経路で異なる名前のinstanceを返す場合。
- EH stateを生じるような、戻り値を返す複数の経路がある場合。(同名のinstanceであっても)
- 名前付き戻り値がinline asmのブロックに参照されている場合。
EH stateって何だろう?Exception Handling?