Modern C++ design : generic programming and design patterns applied - Alexandrescu, Andrei (Addison-Wesley Publishing Company, Inc, 2001)