Keywords: Nov97 C C++ ctype iterator exception coverage Bezier multithreading 

The code listings for the November 1997 issue of C/C++ Users Journal
include source code for Jim Beveridge's article, "Moving Templates out
of Header Files," Chuck Allison's tutorial on C++ Exceptions, J. David
Wendel's triangulation algorithms, Bruce Montrose's thread-local storage
classes, Curtis Bartley's article on forward difference calculation of
Bezier curves, Paolo Argenton's technique for coverage testing with the
gcc profiler, Vladimir Batov's makefile maker, and Kevin S. Van Horn's
article, "Rolling Your Own Input Iterators."  Also include is cource
code for P.J. Plauger's column, Standard C/C++, and Pete Becker's
column, Questions and Answers.

*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------
beveridg                Jim Beveridge   Moving Templates Out of Header
                                        Files

    set.h        - Listing 1, Declarations for Set template class
    set.cpp      - Listing 2, Implementation of Set template class
    main.cpp     - Listing 3, Sample test program

allison                 Chuck Allison   Error Handling with C++
                                        Exceptions, Part 1

    ddir.c       - Listing 1, A program that deletes an entire directory
                              subtree
    ddir2.c      - Listing 2, Same as Listing 1, but with return codes
    ddir3.c      - Listing 3, The Delete Directory program using the
                              setjmp/longjmp mechanism
    destroy.c    - Listing 4, Illustrates objects left undestroyed by
                              longjmp
    destroy2.cpp - Listing 5, Illustrates stack unwinding
    terminat.cpp - Listing 6, Illustrates set_terminate
    ddir4.cpp    - Listing 7, Illustrates an exception class

wendel                  J. David Wendel Triangular Tiling with
                                        Real-Time Searches

    intersec.cpp - Listing 1, The intersect function
    between.cpp  - Listing 2, See if colinear points overlap
    createtr.cpp - Listing 3, Create the problem-world triangulation
    compare.cpp  - Listing 4, The function used for sorting d_array
    postfix.cpp  - Listing 5, Search d_array for the next segment
    findtri.cpp  - Listing 6, The search algorithm
    tri.h        - not listed, Header file for triangulation code
    tri.cpp      - not listed, Implementation of triangulation algorithms
    run.cpp      - not listed, Sample application program


montrose                Bruce Montrose  A Thread-Local Storage Class for
                                        Win32

    tls.h        - Listing 1, Abstract base class for MyTls
    demo.cpp     - Listing 2, Program demonstrating ThreadLocalStoragePtr
                              class usage

    tls.cpp      - not listed, Implementation of thread-local storage class 


bartley                 Curtis Bartley  Forward Difference Calculation of
                                        Bezier Curves

    compfwd.c    - Listing 1, Computing a cubic polynomial and its
                              forward differences
    bezier.c     - Listing 2, A function to compute points on a Bezier
                              curve


argenton                Paolo Argenton  Coverage Testing with a C/C++ Profiler

    test01.c     - Listing 1, test01, the program to be tested
    filter1.awk  - Listing 2, Simple gprof output filter
    pblock.awk   - Listing 3, An awk program to print out only untested
                              blocks

batov                   Vladimir Batov  Creating Makefiles with the
                                        Korn Shell

    created.mak - Listing 1, A makefile created by mkmk
    mkmk.ksh    - not listed, mkmk -- the Korn shell script to automatically
                              create makefiles

vanhorn                 Kevin S.        Rolling Your Own Input Iterators
                        Van Horn

    date.h      - Listing 1, date.h
    cdbbtree.h  - Listing 2, const_db_btree.h
    usecdbt.cpp - Listing 3, Using const_db_btree.h
    ptraits.h   - Listing 4, pointer_traits.h
    inpiter.h   - Listing 5, input_iterator.h
    refcnt.h    - Listing 6, refcnt_ptr.h
    fib.h       - Listing 7, fib.h
    cdbbtree.c  - Listing 8, const_db_btree.C
    

becker                  Pete Becker     Questions and Answers: Why No
                                        Wide-Char Filenames?

    multid1.c   - Listing 1, Typical "Programmers Guide" implementation
                             of multidimensional arrays
    multid2.c   - Listing 2, Reader's implementation of multidimensional
                             arrays
    
plauger                 P.J. Plauger    Standard C/C++: The Facet
                                        <ctype>

    ctbase.h    - Listing 1, Class ctype_base
    ctype.h     - Listing 2, Template class ctype
    ctypech.h   - Listing 3, Class ctype<char>
    ctbname.h   - Listing 4, Template class ctype_byname


