2004-06-16から1日間の記事一覧

(続き) 仮想関数のインライン化

散々言われている事とは思うけども、仮想関数もインライン展開の対象に なる ので要注意です。 値オブジェクトのメソッドが呼ばれている場合は実行時に動的束縛する必要がないからインライン化できます。Foo::bar() が仮想関数として、 Foo f; f.bar(); はイ…

(続き) ctor/dtorに関する注意

コンストラクタ、デストラクタをコンパイラに自動生成させる場合、当然かもしれませんがそれらはインライン化されます。インライン化というか何も処理が発生しないというか。 しかしもちろん、 [foo.h] class Foo { public: Foo(); ~Foo(); }; [foo.cpp] Foo…

関数のインライン化基準

C++/C99言語では、"inline"キーワードが正式にサポートされており、コンパイラに対して関数を「インライン化してほしい」と要求することができます。しかし、良く知られていることですがこれはあくまでヒントなので、コンパイラの気分次第でインライン化が起…