Designing components with the C++STL a new approach to programming - Breymann (Addison-Wesley, 2000)