C++ 相談室 part5
■ このスレッドは過去ログ倉庫に格納されています
0600デフォルトの名無しさん
NGNG> int DoSomething( Output& out , Input& in = Input::Null() );
こっちのNullは、その場で生成してその場で消滅する、
「テンポラリオブジェクト」もしくは「一時オブジェクト」ってやつ。
> Input::Null dummy;
> DoSomething( out , dummy );
こっちのNullは、dummyという「名前つきオブジェクト」。
どちらも人間の感覚では一時的なオブジェクトとして
違いはなさそうに思えるけど、これがコンパイラにとっては
大きな違いになるらしい。テンポラリオブジェクトの方が
最適化されやすかったりするし。
詳しいことは、 More Effective C++ の項目19,20あたりを読んで
勉強しましょう。
■ このスレッドは過去ログ倉庫に格納されています