************************* MASTER CODE ***************************************

The name of the first file in this disk's directory identifies the volume,
issue number and revision of the disk. The format of this filename is:

    !CDmvvii.rrr

where

    ! = the '!' character
    m =   C for C Users Journal, W for Windows/DOS Developer's Journal
    vv =  volume
    ii =  issue
    rrr = revision (001 for initial release, 002 for next update, etc.)

The file UPDATE.DOC contains information about any additions or
corrections to material on the disk since the original magazine
publication.

If you have obtained this code from a floppy diskette or from CompuServe, the 
headings under the column "FILENAME" represent the names of .ZIP files.  All 
files listed under the filename are archived in the .ZIP file.

If you have obtained this code from UUNET, the headings under the column 
"FILENAME" represent the names of subdirectories.  All files listed under the
"filename" are included in a subdirectory of that name.

Keywords: Apr95 C C+ Cross-Platform Wildcard Custom fstream Mutable

The code listings for the April 1995 issue of C/C++ Users Journal
include source code for David Chapman's error manager with message text
replacement, Laszlo Zeke's article on a designing a cross-platform GUI,
Mike Cornelison's two wildcard matching utilities, Also included are
listings from P.J. Plauger's Standard C/C++ column, Chuck Allison's
column, Code Capsules, and Dan Saks' column, Stepping Up to C++.
*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------
plauger 		P.J. Plauger	Standard C/C++:	The Header	8
					<fstream>

    fstream	 - listing 1, The header <fstream>

chapman			David Chapman	An Error Manager with Message	23
					Text Replacement

    failhdlr.hpp - listing 2, Definition of class failure_handler
    failerr.cpp	 - listing 3, A sample member function of class
			      failure_handler
    errmgr.hpp	 - listing 4, Definition of class error_mgr -- fragment
    cfhmem.cpp	 - listing 5, Member functions of class
			      counting_failure_handler
    errmgr.cpp	 - listing 6, Member functions of class error_mgr
    utils.hpp	 - listing 7, Text and pointer utilities
    complain.hpp - listing 8, Definition of class complaint_dict
    complain.cpp - listing 9, Member functions of class complaint_dict

chapman2		David Chapman	An Error Manager with Message
					Text Replacement

   Contains complete source code, including code not listed in article

zeke			Laszlo Zeke	Designing a Cross-Platform GUI	41

    gui.h	 - listing 1, Platform-independent header file for
			      class library
    gui.c	 - listing 2, Implementation of platform-independent
			      functions
    demo.c	 - listing 3, Short demonstration program
    
zeke2			Laszlo Zeke	Designing a Cross-Platform GUI


    os2.zip	 - not listed in magazine, contains GUI code native to
                   OS/2
    win.zip	 - not listed in magazine, contains GUI code native to
		   Windows 3.1 and Windows NT
    aix.zip	 - not listed in magazine, contains GUI code native to
		   AIX
    native.doc	 - documentation for native code for OS/2, Windows,
		   and AIX

cornelis		Mike Cornelison	Two Wildcard Matching Utilities	55

    mtchwild.c	 - listing 1, String matching utility
    srchwild.c	 - listing 2, Directory search utility

allison			Chuck Allison	Code Capsules: A Better C	67


    convert1.c	 - listing 1, Illustrates the need for function
			      prototypes
    convert2.c	 - listing 2, Illustrates automatic conversion via
			      function prototypes
    convert3.cpp - listing 3, Illustrates an implicit user-defined
			      conversion
    convert4.cpp - listing 4, Shows that only one user-defined
			      conversion is allowed
    linkdem1.c	 - listing 5, Illustrates program linkage
    linkdem2.c	 - listing 6, A function intended to link with the
			      program in Listing 5
    swap.cpp	 - listing 7, A swap function that illustrates call-
			      by-reference
    retref.cpp	 - listing 8, Returns an object from a function by
			      reference
    swap2.c	 - listing 9, A function template for swap()
    operate.cpp	 - listing 10, operator+ and operator<< for a complex
			       number data type
    usecmplx.cpp - listing 11, Uses the complex number data type
    minutes.cpp	 - listing 12, Illustrates default arguments
    declare.cpp	 - listing 13, Shows that declarations are statements

saks			Dan Saks	Stepping Up to C++: Mutable	79
					Class Members

    array1.cpp	 - listing 1, A simple array class template
    array2.cpp	 - listing 2, A simple const-correct array class
			      template
    z1.cpp	 - listing 3, A rudimentary class for complex numbers
			      which recomputes the polar form on demand
    z2.cpp	 - listing 4, A rudimentary class for complex numbers
			      using "lazy" evaluation and caching for
			      polar form
    z3.cpp	 - listing 5, A rudimentary class for complex numbers
			      using a mutable member to implement
			      "lazy" evaluation and caching for polar
			      form

    
letters		   We Have Mail						104

    ldist.zip	 - not listed, R. Bruce Roberts code for inexact
			       string matching, contributed in response
			       to Soundex article

*******************************************************************************

If you have questions regarding to the disk, please call or write us.

-----------------------------------------------------------------------------
                           R&D Publications, Inc.
                        1601 W. 23rd St. Suite 200
                            Lawrence, KS 66046
                              (913) 841-1631
-----------------------------------------------------------------------------

