"Modern C++ Design" (Andrei Alexandrescu) takes this extra step and attempts to implement patterns using templates. If you thought C++ had already gone too far then this book should confirm this. stephen