inline関数・・・
余談ですが。。。
りょーさんから読むことを勧めていただいたBoost::assignや、Protocol Bufferesのprotocコンパイラが生成するC++のコードを眺めると、そこここにインライン関数が使われています。
- (参考)インライン関数 http://www33.ocn.ne.jp/~loreley/FSB/cpp05.html
一方、ストラウストラップ先生の鈍器(『ストラウストラップのプログラミング入門』)では、19章の時点で、まだインライン関数は出てきません。
これはどういうことだろう?
少なくともこれまで、鈍器本のコードでは「クラスのメンバ関数にする必要がないものは、極力ただの関数として定義する」という方針が貫かれています。
インライン関数を使わないこともまた、クラス定義をシンプルに保とうとする趣味の現れでしょうか。
あるいは、、、オーバーヘッドを気にする必要があるシステムの話になった時に、登場するのかもしれません。鈍器では、メモリ使用量やパフォーマンスに厳しい要件があるシステムと、そうでないシステムとで要求されるプログラミングを、分けて考えるよう繰り返し示唆されます。初心者が無用な速度神話に囚われないようにとの配慮なのだろうと思います。
そんなことをふと思いました。(早く続き読もう)