Templates of common Design Patterns in C++11