Modern design : generic programming and design patterns applied. - Alexandrescu, Andrei (In-Depth Series)