Notes on the C++ code for "Advanced C++ Programming Styles and Idioms" by James O. Coplien, Addison-Wesley, 1992, ISBN 0-201-54855-0. ............................. The Layout ............................. Most figures are contained in individual files named for their figure designation in the book. Examples outside of figures can be associated with the chapter in which they appear by the leading digit in their name. Each file is a clear ASCII file (that is, the files are not archived in any way). You can send individual files like this: send 2-4.c from c++/idioms send 2-2a.c from c++/idioms send 5-2.c from c++/idioms send fbubble.c from c++/idioms The complete list of files is: 10-1.c 3-15.c 5-15.c 7-5.c emptr.h 10-2.c 3-16.c 5-16.c 8-1.c erect.c 11-2.c 3-18.c 5-17.c 8-2.h erect.h 2-2a.c 3-19.c 5-18.c 8-3a.c eshape.c 2-2b.c 3-2.c 5-19.c 8-3b.c eshape.h 2-4.c 3-3.c 5-2.c 8-5.c eshaprp.c 2-5.c 3-4.c 5-20.c 9-10.c eshaprp.h 2-8.c 3-6.h 5-21.c 9-11.c etop.c 2angle.h 3-7.c 5-22.c 9-13.c etringl.c 2const.c 3-8.c 5-23.c 9-2.c etringl.h 2funcp.c 3-9.c 5-5.c 9-3.h ev2tri.c 2pi1.c 3ctdstk.c 5-7.c 9-4.h ev2tri.h 2pi2.c 4-1.c 5-8.c 9-5.h ev3tria.c 2smf.c 4-2.c 5-9.c 9-6.h ev3tri.h 2table.c 4-3.c 5nmarow.c 9-7.h ev3trib.c 3-1.c 4-4.c 5nmatom.c 9-8.h ev3tric.c 3-10.c 4-5.c 5num.c appa.c ev3trim.c 3-10.h 5-10.c 6-4.c ecoord.h fbubble.c 3-11.h 5-11.c 7-1.c ek.c fvideo.c 3-12.c 5-12.c 7-2.c ek.h fvideo2.c 3-13.c 5-13.c 7-3.c eload.c 3-14.h 5-14.c 7-4.c emain.c Many of these files are simply text for figures presenting code fragments, and are not intended to be compilable without additional surrounding context. Where it is reasonable to do so, I have provided enough context for the code to pass compilation. Many examples are frameworks which may be fleshed out by the reader as exercises. ................... Notes on platform dependencies ................... Much of the code was written assuming the existence of basic libraries to support iostreams (iostream.h), Strings (String.h), and others. Most systems provide header files and library code for these abstractions. In some cases, minor modifications to the code provided here may be necessary for the code to work on a given platform. Much of the code of Chapter 9 and of Appendix E is environment-dependent. ........................... Closing Remarks .......................... I provide this code with the hope it can be of use as a model for building richer, application-specific abstractions in your own domain. Much of the code can be compiled and run for pedagogical purposes. I have compiled and run all of the complete, self-contained examples provided. If you have problems compiling an example you think should compile, please let me know and I will try to be of assistance. I will keep this archive up-to-date on research!netlib, to reflect fixes as well as incorporation of additional code from the book. James O. Coplien cope@research.att.com