More C++ Idioms/Contents
目次
[編集]進捗状況の凡例
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/00%25.svg/9px-00%25.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/34/25%25.svg/9px-25%25.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/50%25.svg/9px-50%25.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/49/75%25.svg/9px-75%25.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/24/100_percent.svg/9px-100_percent.svg.png)
注意: 各イディオムの別名は括弧内に列挙されている。
- Adapter Template
- Address Of
- 代数的階層(Algebraic Hierarchy)
- Attach by Initialization
- Barton-Nackman トリック(Barton-Nackman trick)
- メンバによる基本クラスの初期化(Base-from-Member)
- Boost mutant
- 初期化中の仮想関数呼び出し(Calling Virtuals During Initialization)
- 能力照会(Capability Query)
- チェック付きdelete(Checked delete)
- 空にして最小化(Clear-and-minimize)
- メンバテンプレートによる型変換(Coercion by Member Template)
- コンパイル時制御構造(Compile Time Control Structures)
- Computational Constructor
- 具象データ型(Concrete Data Type)
- Const auto_ptr
- 初回使用時生成(Construct On First Use)
- 生成の追跡(Construction Tracker)
- コピーして swap(Copy-and-swap)
- Copy-on-write
- 計数ボディ(侵襲的参照回数計測)(Counted Body (intrusive reference counting))
- 奇妙に再帰したテンプレートパターン(Curiously Recurring Template Pattern)
- 独立計数ボディ(非侵襲的参照回数計測)(Detached Counted Body (non-intrusive reference couting))
- Empty Base Optimization
- Emulated Exception
- enable-if
- 封筒・便箋(Envelope Letter)
- 消去・削除(Erase-Remove)
- Examplar
- ポインタ参照前後での実行(Execute-Around Pointer)
- Export Guard Macro
- 式テンプレート(Expression-template)
- Fake Vtable
- 高速 Pimpl(Fast Pimpl)
- Final Class
- Forward Declare First
- Free Function Allocators
- Friendship and the Attorney-Client
- Function Object
- 汎用コンテナ作成用イディオム(Generic Container Idioms)
- Pimpl (ハンドル・ボディ(Handle Body), コンパイル防壁(Compilation Firewall), チェシャ猫(Cheshire Cat))
- インクルードガードマクロ(Include Guard Macro)
- inline ガードマクロ(Inline Guard Macro)
- 内部クラス(Inner Class)
- 整数から型(Int-To-Type)
- インタフェースクラス(Interface Class)
- 反復子対(Iterator Pair)
- friend 関数の生成(Making New Friends)
- メタ関数(Metafunction)
- 所有権移動コンストラクタ(Move Constructor)
- 複文マクロ(Multi-statement Macro)
- Multiple Member Initialization
- 名前付きコンストラクタ(Named Constructor)
- Named External Argument
- Named Loop
- 名前付きパラメータ(Named Parameter)
- 名前付きテンプレートパラメータ(Named Template Parameters)
- 小粋なカウンタ(Nifty Counter) (シュワルツカウンタ(Schwarz Counter))
- コピー禁止ミックスイン(Non-copyable Mixin)
- Non-member get
- 非メンバ非フレンド関数(Non-member Non-friend Function)
- throw しない swap(Non-throwing swap)
- 非仮想インタフェース(Non-Virtual Interface) (public な多重定義非仮想関数による protected な非多重定義仮想関数の呼び出し(Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals))
- nullptr
- オブジェクト生成器(Object Generator)
- Object Template
- Overload Set Creation
- パラメータ化された基本クラス(Parameterized Base Class) (パラメータ化された継承(Parameterized Inheritance))
- メタ関数ラッパ(Meta-function wrapper)
- ポリシーの複製(Policy Clone) (メタ関数ラッパ(Meta-function wrapper))
- ポリシーに基づくクラス設計(Policy-based Class Design)
- 多態的例外(Polymorphic Exception)
- Recursive Type Composition
- リソース獲得は初期化である(Resource Acquisition Is Initialization) (RAII, オブジェクト生存期間前後での実行(Execute-Around Object), スコープ内ロック(Scoped Locking))
- リソースの返値(Resource Return)
- Return Type Resolver
- 実行時の静的初期化順序に関するイディオム(Runtime Static Initialization Order Idioms)
- 安全な bool(Safe bool)
- スコープ防壁(Scope Guard)
- 置き換え失敗はエラーにあらず(Substitution Failure Is Not An Error(SFINAE))
- Shortening Long Template Names
- 縮めて合わせる(Shrink-to-fit)
- Small Object Optimization
- スマートポインタ(Smart Pointer)
- Storage Class Tracker
- タグによる分配(Tag Dispatching)
- Temporary Base Class
- The result_of technique
- 薄いテンプレート(Thin Template)
- Trailing Parens for Method Chaining for Named parameter
- 特性(Traits)
- Type Erasure
- 型生成器(Type Generator) (テンプレート化された typedef(Templated Typedef))
- Type Safe Enum
- Type Selection
- 仮想コンストラクタ(Virtual Constructor)
- 仮想フレンド関数(Virtual Friend Function)