More Effective C++

24項 仮想関数、多重継承、仮想基底クラスと実行時型識別のコストを理解する。

仮想関数、多重継承、仮想基底クラスと実行時型識別のコストを理解する。

23項 2つのライブラリーを使い分ける

2つのライブラリーを使い分ける同じ機能を持つライブラリーにも、速度を重視したものや安全性を重視するなどの特徴があります。 例えば、iostreamライブラリーは型の安全性や拡張性に優れますが、一般にstdioのほうが高速だそうです。 なので、ライブラリー…

22項 単独のopの代わりにop=を使うことを考える

単独のopの代わりにop=を使うことを考える

21項 暗黙的な型変換を避けるためのオーバーロード

暗黙的な型変換を避けるためのオーバーロード

20項 戻り値最適化の促進

戻り値最適化の促進

19項 テンポラリーオブジェクトの起源を理解する

テンポラリーオブジェクトの起源を理解する

18項 予想される計算のコストを償却する

予想される計算のコストを償却する積極評価についてです。

17項 遅延評価の使用を検討する

遅延評価の使用を検討する遅延評価とは、必要になるまで処理を遅らせるということです。

16項 80-20規則を覚えておこう

80-20規則を覚えておこう80-20規則とは、処理資源の80%は20%のコードによって使用されるという経験則です。 この20%のコードを見つけるために、プロファイラを使うべきです。

15項 例外処理のコストを理解する

例外処理のコストを理解する

14項 例外使用を賢く用いる

例外使用を賢く用いる

13項 参照で例外を捕まえる

参照で例外を捕まえる例外は参照で捕まえるべきです。ポインタで捕まえる場合は、ポインタの指すオブジェクトの存在を保証しなければならなくなり、値で捕まえると、引数に渡すときに無駄なコピーが起こるためです。

12項 例外の発生のさせ方と引数引き渡し・仮想関数呼び出しとの違いを理解する

例外の発生のさせ方と引数引き渡し・仮想関数呼び出しとの違いを理解する

11項 デストラクターから出る例外を抑える

デストラクターから出る例外を抑える

10項 コンストラクターでの資源の漏れを防ぐ

コンストラクターでの資源の漏れを防ぐ

09項 資源の漏れを防ぐためにデストラクターを使う

資源の漏れを防ぐためにデストラクターを使う

08項 new と deleteの別の意味を理解する

new と deleteの別の意味を理解する

07項 &&, ||, , をオーバーロードしない

&&, ||, , をオーバーロードしない

06項 インクリメント演算子とデクリメント演算子で前置形式と後置形式とを区別する

インクリメント演算子とデクリメント演算子で前置形式と後置形式とを区別する前置形式は"operator++()"で、後置形式は"operator++(0)"で呼び出されます。

05項 ユーザ定義の変換関数に気をつける

ユーザ定義の変換関数に気をつける

04項 根拠のない省略時コンストラクターを避ける

根拠のない省略時コンストラクターを避ける "省略時コンストラクター"とは"引数が必要ないコンストラクタ"のことです。この項のまとめでは、"引数が必要ないコンストラクタ"で記述を統一します。

03項 配列をポリモルフィズム的には扱わない

配列をポリモルフィズム的には扱わない

02項 C++スタイルのキャストを愛用する

C++スタイルのキャストを愛用するCのキャストと比べたC++のキャストの利点は、目的別に複数のキャストが用意されていることと、キャストが見分けやすいことです。

01項 ポインターと参照の違い

今日からMore Effective C++ を読みます。 24項まではブログにまとめ、それ以降は目を通すだけにします。1週間で読みきることを目標にします。ポインターと参照の違い