Design Patterns in Modern C++ : Reusable Approaches for Object-Oriented Software Design /: Reusable Approaches for Object-Oriented Software Design. (2018)