James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, Massachusetts. ISBN: 0-201-54855-0