Maybe Monad
E) if constexpr
std::variant & std::visit
Non-Circulating Visitors
Traditional Visitor Pattern
Dispatch
Reflective Print
Invasive Visitor
Game Simulation
Static Strategy
Dynamic Strategy
State machine with Boost.MSM
State machine with enum
State base State transition
Observer with Boost::Signals2
Reentrancy
Unsubscribe & MTSafe
Dependency Problem
Connection Between Observer & Observervable
Observable
Observer
Property Observer
Implied Null Object
Better Design
shared_ptr is not Null Object
Null Object
Scenario
Undo & Redo
Mediator & Event
Chatting Room
Coroutine
Binary Search-iterator
STL Iterator
Parsing with Boost.Spirit
Lexing & Parsing
Interpreter Design Pattern
Command Query Separation, CQS
Composite Command
Undo
Command Design Pattern
Broker Chain
Pointer Chain
Communication Proxy
Virtual Proxy
Property Proxy
Smart Pointer
Implement Flyweight design pattern
Fault Access
String Range
Boost.Flyweight
Façade
Advance Terminal
Terminal
Functional Decorator
Static Decorator
Dynamic Decorator
Neural Network with Composite
Grouping for Graphic Object
Array Base Composite
Bridge
Pimpl
Temporary Adapter
Adapter
Structural Patterns
Monostate
Singleton & Inversion of Control
E) Unit Test
Problem of Singleton
Multithread-Safe, MT-Safe
Traditional Singleton Pattern
Global Object Singleton
Prototype Factory
Serialization
Copy Constructor
Simple Copy
Generate Object
Functional Factory
Abstract Factory
Inner Factory
Factory(class)
Factory Method
Composite Builder
Groovy-Style Builder
Indicate Intentions
Fluent Interface Builder
Simple Builder
SOLID Principle
attribute
Mixin hertitance
CRTP