Design Patterns in Modern C++ - Dmitri Nesteruk (Springer, 2018)