More c++ idioms
More C++ Idioms
Table of Contents[edit]
Note: synonyms for each idiom are listed in parentheses.
- Address Of

- Algebraic Hierarchy

- Attach by Initialization

- Attorney-Client

- Barton-Nackman trick

- Base-from-Member

- Boost mutant

- Calling Virtuals During Initialization

- Capability Query

- Checked delete

- Clear-and-minimize

- Coercion by Member Template

- Computational Constructor

- Concrete Data Type

- Construct On First Use

- Construction Tracker

- Copy-and-swap

- Copy-on-write

- Intrusive reference counting (Counted Body)

- Covariant Return Types TODO
- Curiously Recurring Template Pattern (CRTP)

- Empty Base Optimization (EBO)

- enable-if

- Erase-Remove

- Execute-Around Pointer

- Exploding Return Type TODO
- Export Guard Macro TODO
- Expression-template

- Fake Vtable TODO
- Fast Pimpl
TODO - Final Class

- Free Function Allocators

- Function Object TODO
- Generic Container Idioms

- Hierarchy Generation TODO
- Implicit conversions TODO
- Include Guard Macro

- Inline Guard Macro

- Inner Class

- Int-To-Type

- Interface Class

- Iterator Pair

- Making New Friends

- Metafunction

- Move Constructor

- Multi-statement Macro

- Member Detector

- Named Constructor

- Named External Argument TODO
- Named Loop (labeled loop)

- Named Parameter

- Named Template Parameters TODO
- Nifty Counter (Schwarz Counter)

- Non-copyable Mixin

- Non-member Non-friend Function
TODO - Non-throwing swap

- Non-Virtual Interface (NVI, Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals)

- nullptr

- Object Generator

- Object Template TODO
- Parameterized Base Class (Parameterized Inheritance)

- Pimpl (Handle Body, Compilation Firewall, Cheshire Cat)

- Policy Clone (Metafunction wrapper)

- Policy-based Design TODO
- Polymorphic Exception

- Polymorphic Value Types
TODO - Recursive Type Composition TODO
- Requiring or Prohibiting Heap-based Objects
- Resource Acquisition Is Initialization (RAII, Execute-Around Object, Scoped Locking)

- Resource Return

- Return Type Resolver

- Runtime Static Initialization Order Idioms

- Safe bool

- Scope Guard

- Substitution Failure Is Not An Error (SFINAE)

- Shortening Long Template Names TODO
- Shrink-to-fit

- Small Object Optimization TODO
- Smart Pointer

- Storage Class Tracker TODO
- Tag Dispatching
TODO - Temporary Base Class

- Temporary Proxy

- The result_of technique TODO
- Thin Template

- Traits
TODO - Type Erasure

- Type Generator (Templated Typedef)

- Type Safe Enum

- Type Selection

- Virtual Constructor

- Virtual Friend Function

Advanced idioms[edit]
These are some more advanced C++ idioms.
- Envelope Letter
TODO
Ref
https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms