Newsgroups: comp.lang.c++,comp.answers,news.answers
Subject: Available C++ libraries FAQ
Supersedes: <C++-faq/libraries_799682188@rtfm.mit.edu>
Followup-To: poster
Date: 5 Jun 1995 09:12:38 GMT
Organization: Trumphurst Ltd.
Summary: Contains a list of available C++ libraries, both PD and commercial.

Archive-name: C++-faq/libraries
Comp-lang-c++-archive-name: C++-faq/libraries

---------------------------------------------------------
CHANGES SINCE LAST POSTING

As most of the last 12 months postings never reached comp.lang.c++, or 
the rtfm.mit.edu archive, there have been many changes. Future issues will
summarise the changes here.

---------------------------------------------------------

Here is the latest draft of a list of available C++ libraries I am 
compiling. I intend to post this once a month or so (unless there are any
complaints). Sorry about the long gap since the last posting.

It is also submited to news.answers, and is available for public ftp
(along with all the other Usenet FAQ lists) at rtfm.mit.edu (18.70.0.209), 
in pub/usenet-by-group/comp.lang.c++/C++_FAQ/libraries.

Rtfm.mit.edu also has a mail server - send a mail message containing 
"usenet-by-group/comp.answers/C++-faq/libraries" to mail-server@rtfm.mit.edu.
If you want to find out more about the mail server, send a message to it
containing "help". 

Marshall Cline's C++ FAQ is also available from rtfm - the files are
called _posting_#1_4, _posting_#2_4, _posting_#3_4 and _posting_#4_4, and
they are in the same directory. 

I have not included a credits list, because it would be nearly as large as
the rest of the file! Many thanks to all those who contributed, and I 
hope you won't be offended that I haven't mentioned you. 

Entries are in the order I received them, i.e. totally random. Some future
version might have the entries in alphabetical order, but don't hold your 
breath :-)

If your library isn't mentioned, or you wish to update your entry in this 
list, feel free to mail me the new entry.  Please note that entries will 
be restricted to a couple of paragraphs - if you send me a 100k text file 
giving minute details, I will have to summarise it. It is much easier for 
me if you just send me an entry which is the right size to start with.

Suggested points to include in your entry are ...

Name of package.
Brief summary of purpose.
Short list of features.
Supported compilers, operating systems etc.
Licence restrictions. Vendors may care to give an idea of prices.
E-mail addresses for more details.
Ftp site(s).
Postal address/telephone/FAX numbers.

Please mail comments, criticisms, additions and amendments to me at
cpplibs@trmphrst.demon.co.uk. However, please DO NOT mail me with requests
for assistance in finding files mentioned in the list. I am unable to 
provide such a service. Definite information such as "file xyz is no 
longer at site xxx" IS welcome - even better if you can tell me an 
alternative site where it can be found. If you are new to the Internet, 
try to find out about tools such as archie, whois, www, gopher etc. I 
recommend the newsgroups "news.announce.newusers" and "news.answers" 
for starters.

*** *** *** *** *** NOTE TO VENDORS *** *** *** *** ***
This FAQ contains details of both free and commercial libraries. Vendors
who have sent me details of their libraries for inclusion in the FAQ have
been pleasantly surprised by the level of interest generated. Please
remember, I only allow 2 or 3 paragraphs describing the product, and no
advertising hype ! 

Libraries available via ftp
~~~~~~~~~~~~~~~~~~~~~~~~~~~

---------------------------------------------------------
Types 1.0

Types is a Shareware library used to support the creation of reusable
software components in C++.

Full source code and documentation and examples are included.

Types provides:Garbage Collector,recursive data estructures,encode and decode
of polymorfic objects,encode and decoding to and from files or memory using 
external or local data representation, exceptions,...

Types also include some classes implemented using types a double linked 
list, stack, btree, storage class, string and others.

You can use and XDR representation for encode and decode objects this feature
enable your data to be ported to other plataforms.

This version is for Borland C++ 4.0  but it can be ported to
other C++ compilers that fully implement templates and exceptions.

	E-mail: malpica@mailer.main.conacyt.mx

	ftp://oak.oakland.edu/SimTel/msdos/cpluspls/typesc10.zip
---------------------------------------------------------
Diffpack is a large and comprehensive C++ package aiming at quick
prototyping of simulators solving partial differential equations by FEM.
Under development at SINTEF Applied Mathematics and the University of
Oslo, Norway. 

Version 1.0 of Diffpack is released for free non-commerical use and is
distributed by netlib. For further details refer to the Diffpack WWW
home page 

	http://www.oslo.sintef.no/avd/33/3340/diffpack

---------------------------------------------------------
YACL - Yet Another Class Library

YACL includes data type classes (String, Date, TimeOfDay), container classes
(Sequence, Set, Map, Tree, BTree), data storage and retrieval classes,
and GUI classes based on the Model-View-Controller  paradigm. The data type,
container and storage classes do not rely on any particular platform, and have
been tested under DOS/Windows, OS/2 and several flavors of Unix. The GUI
classes are available under Microsoft Windows and X windows with the Motif
toolkit.

	ftp from ftp.cs.scarolina.edu (129.252.131.11)
	in directory /pub/sridhar

Contact:
	M. A. Sridhar
	Department of Computer Science
	University of South Carolina
	Columbia, SC 29208
	USA
	e-mail: sridhar@usceast.cs.scarolina.edu
	Phone: (803) 777-2427
	Fax: (803) 777-3767
---------------------------------------------------------
CBMT - Collaborative BioMolecular Tools

	CBMT provides a number of easy-to-use fundamental classes for
biologists, chemists and crystallographers.  They include:  Molecular
Structure, Sequence, Standard Formats (PDB, CIF, GCG, etc), Geometry,
Statistics, TextParsing, and a single container class (a dynamic 
Array).  All documentation is in HTML, and member functions have *.c
examples.  I hope that the system can be extended as a communal effort and
am piloting this idea in the C++ course at the Globewide Network Academy
(http://info.desy.de/gna/html/cc/index.html)
	Version 1.3 will be posted shortly including an experimental
script language (generated automatically from the *.h files) providing
support for persistent objects manipulatable by other languages such as
tcl or csh. 

Free, but not resellable.

	email: Peter Murray-Rust (pmr1716@ggr.co.uk or mbglx@seqnet.dl.ac.uk)

	Extensive WWW documentation: http://www.dl.ac.uk/CBMT/HOME.html

	ftp from s-ind2.dl.ac.uk
	in /cbmt/democ12.tar.Z
---------------------------------------------------------
ISC366.ZIP -- Interrupt Service Class (v. 3.66)

Allows hooking of interrupts (software and hardware) into classes, comes
with classes for staying resident, for serial communication (interrupt
driven), and like-wise classes. Comes with full source code! Is DOS
specific (current version works only under BC++ 3.0 and higher). 

This class in PD, current version for registered users is version 4.

	ftp from oak.oakland.edu
	in /pub/msdos/cplusplus
	or /pub/msdos/cluspls ?
---------------------------------------------------------
Objtran and Objdce

Objtran is a set of C++ class libraries that provide a higher-level
abstraction for programmers developing applications using OSF's DCE
and Transarc's Encina. Objtran actually consists of two separate
libraries -- Objdce and Objtran.

Objdce makes it easier to write DCE applications by abstracting some
of the more complex aspects of DCE. A class is included that can
manage an RPC server, interacting with the DCE Name Service and
Security Service as desired. Another class manages a client's binding
to a server and encapsulates Name Service lookups.  Other classes
allow the programmer to use threads and various forms of
mutual-exclusion locks, report errors consistently, utilize Access
Control Lists, handle timestamps from the DCE Time Service, and
perform UUID manipulation.

Objtran is built on top of Objdce, and adds support for the Encina
distributed transaction service. It is intended to be used with C++
programs instead of the "Transactional C" macro package. It fully
encapsulates the Encina TRAN and TRPC facilities with a few
easy-to-use classes. It also provides an efficient recovery service
for proper control of distributed transactions, and has support for
the TM/XA service, allowing interoperability with XA-compliant
databases. Support for the Encina Monitor is being implemented so
programs may, with very few code changes, use either the smaller and
more efficient bare Objtran environment or the more sophisticated
Monitor.

This software is Copyright 1993-1994 by Citibank, N.A. Permission is
granted to use, copy, modify and distribute the software and its
documentation without fee. The software is distributed with no
warranty of any kind.

	mail: objtran-comment@fig.citib.com

	ftp from wilma.cs.brown.edu
	in /pub/Objtran.tar.Z
---------------------------------------------------------
RTTI library

Till RTTI becomes a part of regular compilers (BC 4.0 is the sole implementor
I think) these RTTI libraries provide an excellent tool for the same purpose. 

The library is claimed to be portable. No licence restrictions.

	Arindam Banerji

	(219)-631-5273 (Voice)
	(219)-631-9260 (FAX)

	mail: axb@defender.dcrl.nd.edu
	      axb@cse.nd.edu

	ftp from invaders.dcrl.nd.edu
	in /pub/software/rtti.tar.Z
---------------------------------------------------------
Aisearch - a package to make writing problem solving programs easier.

Offers the programmer a set of search algorithms that may be used to
solve all kind of different problems. The following search algorithms
have been implemented: 

    - depth-first tree and graph search.
    - breadth-first tree and graph search.
    - uniform-cost tree and graph search.
    - best-first search.
    - bidirectional depth-first tree and graph search.
    - bidirectional breadth-first tree and graph search.
    - AND/OR depth tree search.
    - AND/OR breadth tree search.

Although this package is meant as a tool for developing problem solving 
software it is not meant exclusively for programmers that are familiar with
the concept of problem representation and search techniques. The document
accompanying this package first describes (though condensed) the theory of
problem solving in AI and next explains how the search class library must be
used. Furthermore, as the source code is richly commented and as also some
demo programs are included the package should also prove useful to people that
want to get acquainted with the subject.

	ftp from obelix.icce.rug.nl
	in /pub/peter/aisearch.zip
	or /pub/peter/aisearch.tar.Z
---------------------------------------------------------
Source to the Book: Object-Oriented Software in C++

by      Michael A. Smith  (mas@unix.brighton.ac.uk)
ref    "Object-Oriented Software in C++", Chapman & Hall,
        London. 1993. ISBN 0 412 55380 5.

	ftp from unix.brighton.ac.uk
	in /pub/mas
---------------------------------------------------------
DOSTmUit - DOS Text Mode User Interface Toolkit

Enables C++ programmers to add a CUA-compliant user interface to their
DOS programs without getting involved in screen coordinates and other
messy details. The programmer merely states which interface objects are
required, and how they are to be placed on the screen in relation to each
other. Those familiar with the ET++ toolkit for the X windows system
under Unix will get the general idea. 

Includes a class documentation facility (DocClass) which will generate a
large text file from the source code giving details of every class,
structure, enum and extern in the toolkit. This program will also work on
your own C++ source code. Source is provided. 

Supported compilers are Zortech C++ 3.0r4, Borland C++ 3.1.

The toolkit is free for non-commercial use. Commercial licences may be 
obtained from the author.

	mail: uit@trmphrst.demon.co.uk

	ftp from ftp.demon.co.uk[158.152.1.65]
	in pub/trumphurst/dosuit??.zip
	Also uitbor??.zip for Borland C++ users
---------------------------------------------------------
Lapack++

Description : C++ version of some of lapack fortran code.
Author      : J. Dongarra, R. Pozo, D. Walker
Version     : 0.9 beta
Comments    : Developmental version of proposed C++ version of lapack.
              Contains blas.h++ etc, but needs Fortran library to link.
Documents   : Overview paper (9 pages postscript), release notes (7 page ps)

	ftp from netlib2.cs.utk.edu
	in lapack++/*
---------------------------------------------------------
MatClass

Description : a C++ class for numerical computation
Author      : Chris Birchenhall (chris.birchenhall@mailhost.mcc.ac.uk}
Comments    : Very complete.
              *  Offers a general purpose dense, real matrix class
              *  Has a family of decomposition classes based on
                 LU, Cholesky, Householder QR and SVD
              *  Has a family of OLS regression classes based on
                 above decompositons
              *  A family of special function classes
              *  Random number class
              *  Has a simplified I/O structure
Documents   : Very thorough tex manual, with discussion of design philosophy.
              Currently the manual does not cover all the features of the I/O.

	ftp from ftp.mcc.ac.uk
	pub/matclass/pc and pub/matclass/unix
---------------------------------------------------------
Blas.cpp.shar.z

Author      : Damian McGuckin (damianm@eram.esi.com.au)
Description : a BLAS in C++

	ftp from usc.edu
	in pub/C-numanal
---------------------------------------------------------
Texas Persistant Store

Paul R. Wilson and Sheetal V. Kakkad
Object-Oriented Programming Systems research group (oops@cs.utexas.edu)
Computer Sciences Dept., University of Texas at Austin

Texas is a free persistent store that can be used with standard C++ compilers,
and works efficiently with very little modification to most C++ programs.
It runs on several varieties of UNIX and should be very easy to port to most
modern operating systems, such as OS/2, Windows NT, Mach, Windows 4.0, etc.
(If things we hear are correct, Linux will provide the necessary virtual
memory features soon, too, and Texas will be ported about fifteen minutes 
later. :-)

Texas uses "pointer swizzling at page fault time", an address translation
techique that converts pointers from an abstract format to actual virtual
memory addresses when pages are first touched and brought into memory.
(A similar technique, invented independently, is used in the market-leading
persistent store/OODB, ObjectStore from Object Design Inc.)  This allows
Texas to be highly portable, avoiding any assumptions about where a page
of data will be an a process' virtual memory address space; it can also
support very large addresses spaces efficiently on stock 32-bit hardware.
(It could also be used to efficiently provide shared address spaces across
networked heterogenous machines with different hardware address sizes, e.g.,
across 32- and 64-bit machines.)

mailing list : oops@cs.utexas.edu

	ftp from cs.utexas.edu
	in pub/garbage/texas
	More info in pub/garbage/swizz.ps
	and pub/garbage/texaspstore.ps
---------------------------------------------------------
wxWindows is a C++ class library for building Motif, Open Look,
Windows 3.1 and NT applications from the same source code. One simple
API is provided for all platforms. wxWindows supports objects such as
frames, subwindows, buttons, list boxes, icons, and bitmaps, and
supports drawing into canvases, PostScript files, Windows printers,
metafiles and bitmaps using the same drawing primitives.

wxWindows provides a hypertext help facility, and a utility for
maintaining documentation in printed and three hypertext formats. It
also provides an interprocess communication API based on DDE, that
works under both Windows 3.1 and UNIX. Documentation is available in
PostScript, RTF, Windows Help, wxHelp and HTML formats.

	Julian Smart
	Artificial Intelligence Applications Institute
	University of Edinburgh
	80 South Bridge
	Edinburgh
	Scotland
	EH1 1HN
	EMAIL: J.Smart@ed.ac.uk
	TEL:   031 650 2746

	ftp from skye.aiai.ed.ac.uk (192.41.104.6),
	in directory pub/wxwin.
---------------------------------------------------------
CNCL

Universal classes:
	* Tree structured class hierarchy, similar to NIHCL.
	* Classes for general purposes such as arrays, linked lists,
	  strings.
	* Interface classes for UNIX system calls: pipes, select.
Simulation:
	* Event driven simulation.
	* Statistical evaluation.
	* Random number generators and distributions.
Fuzzy logic:
	* Fuzzy sets, fuzzy variables, fuzzy rules and inference
	  engine for building fuzzy controllers and expert systems.
EZD:
	* Interface classes for DEC's ezd graphics server.

This version of CNCL is known to compile and run on the following
systems:
	* SUN SPARCstation, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5,
	  libg++ 2.3/2.4
	* SUN 3/60, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5,
	  libg++ 2.3/2.4
	* LINUX 0.99.13, GNU g++ 2.4.5, libc 4.4.1, libc 4.4.4 +
	  libg++ 2.4

Distributed under the GNU Library General Public License.

	Communication Networks
	Aachen University of Technology
	D-52056 Aachen
	Germany
	Email: mj@dfv.rwth-aachen.de (Martin Junius)

	ftp from ftp.dfv.rwth-aachen.de  (137.226.4.111)
	in directory pub/CNCL
---------------------------------------------------------
RTTI implementation

	ftp from invaders.dcrl.nd.edu (129.74.18.54)
	in /pub/software/rtti.tar.Z

	Arindam Banerji 
	axb@cse.nd.edu 

	384 FitzPatrick Hall
	Dept. of Computer Science & Engg. 
	University of Notre Dame
	Notre Dame, IN 46556
	(219)-631-5273
	(219)-631-5772
---------------------------------------------------------
Lily (LIsp LibrarY) C++ class library which gives C++ programmers the
capability to write LISP-style code. 

I think Lily will be useful in academia for instructors who
want to teach artificial intelligence techniques with C++.  The
garbage collection mechanism employed by Lily is slow which will make it
unattractive for commercial use.

Documentation is minimal.  The "Lily User's Guide" (in file lily.txt) provides
a good overview of the architecture of Lily -- the document is unfinished.  
All of the example programs are from Winston's book "LISP Second Edition" so
you will be much better off if you have a copy.  Steele's "Common LISP" 
describes the behavior of the LISP functions.  

Lily uses the GNU Library General Public License.

Lily works well with GNU g++ version 2.4.5 (and probably earlier releases).

Lily works with Turbo C++ for Windows but not with Turbo C++ (though the
current version hasn't been tested with Turbo C++ for Windows).

Lily does *not* work with AT&T's cfront because cfront does not handle 
temporary objects very well.

	ftp from sunsite.unc.edu (152.2.22.81)
	in /pub/packages/development/libraries/lily-0.1.tar.gz 
---------------------------------------------------------
DiamondBase is a library of C++ routines and utilities that allow you 
to add Relational Database functionality to your C++ programs. It
is written entirely in C++, and great pains have been taken to
ensure it compiles under a variety of compilers including gcc,
cfront and Borland's C++ compiler for OS/2. It runs on a wide
variety of Unix platforms and OS/2. There are no plans to support
DOS or Windows at the moment. It comes with a 47 page manual.

Contact:
	darrenp@dibbler.cs.monash.edu.au
	kevinl@bruce.cs.monash.edu.au
	davison@molly.cs.monash.edu.au

	ftp from pippin.cs.monash.edu.au
	in pub/export/?
---------------------------------------------------------
GINA++ - An O-O application framework for C++, X11R5, and OSF/Motif

Requires:  AT&T 3.0 based C++ compiler (Sun C++ 2.0.1), X11R5, Motif 1.2
Platforms supported:    Sun Sparc, HP

GINA++ (The Generic INteractive Application for C++) is an object-
oriented application framework that facilitates the development of
applications with a graphical user interface. It is written in C++ and
uses OSF/Motif and X for the user interface parts. GINA++ comes as a
library of C++ classes, 10 small to medium demo applications, and it is
fully documented. 

Components of GINA++ are: (1) A C++ encapsulation of OSF/Motif providing
easy-to-use mechanisms for deriving new widget classes completely in C++,
(2) Support for object-oriented graphics (rectangles, arrows, circle,
etc), (3) An unlimited undo/redo history mechanism, (4) supporting
classes for data structures (list, arrays, etc), run-time type
information, and a notification mechanism. 

The classes of GINA++ constitute an executable program - the generic
application - which possesses the basic functionality and the user
interface components common to all interactive graphical applications,
but lacks any application-specific behavior. The predefined functionality
and behavior is inherited by deriving subclasses from the existing GINA++
classes. Application specific behavior is implemented by adding new
classes and member functions. Differences to the standard application are
coded by refining virtual member functions inherited from GINA++. 

Author: Andreas Baecker (baecker@gmd.de), 
	GMD, 
	P.O. Box 1316, 
	D-53731 Sankt Augustin

	ftp from ftp.gmd.de:
	in /gmd/ginaplus
	or ftp.x.org:
	in /contrib
---------------------------------------------------------
Motif++ - Ronald van Loon.
A wrapper-library, that encapsulates Motif widgets in C++ classes. All
resources of these Widgets can now be set through member-functions, while
objects can be used in callback-functions. 

The July 93 release offers:
- Easy configuration (even for non-imake-gurus)
- Full support for X11R4 as well as X11R5
- Full support for Motif 1.1 and Motif 1.2 (including Drag and Drop)
- Support for Xbae widgetset 
- Support for the xpm library
- Percentage widgets
- Generic Widget
- Support for WCL Table Widget
- A library for easy manipulation of Visuals 
- A library that reads PBMPLUS files, as well as providing an extension to 3D
  of the format.
- Lots of demos and testfiles (even somewhat useful programs)
- An article I wrote on the usage of Motif, X and C++, previously posted
  on Usenet.
- all filenames smaller than 14 characters

Requires:
	X11R4 or any later version
	Motif 1.1 or any later version
	C++ compiler, compatible with cfront 2.0 or later
	imake
	a bourne shell (sh, bash, ksh ...) that supports shellfunctions.
	sed

	mail "rvloon@motif.hacktic.nl".
	Tel: +31 33 758 293 (if desparate !)

	mailing list : motif++@motif.hacktic.nl
	subscriptions : motif++-request@motif.hacktic.nl

	ftp from decuac.dec.com: 
	in /pub/X11/motif++.28.jul.93.tar.gz
	or from nrcnet0.nrc.ca (132.246.160.2): 
	in /pub/motif++/motif++.28.jul.93.tar.gz
	or from ftp.wg.omron.co.jp: 
	in /pub/X11/misc/MOTIF.AND.WIDGETS/Motif++.tar.Z 
	or from src.doc.ic.ac.uk:
	in /packages/motif++/motif++.28.jul.93.tar.gz
---------------------------------------------------------
OATH (Object-oriented Abstract Type Hierarchy) was designed
as an experiment in increasing object-oriented reuse.
It has a fairly high learning curve, but potentially 
higher gains if you are looking for a more flexible and
robust abstraction.  It is completely unsupported.

	ftp from csc.ti.com (192.94.94.1)
	in pub/oath.tar.Z
---------------------------------------------------------
NIHCL (National Institute of Health's C++ Library) is
essentially a mapping of part of Smalltalk's library
into C++.  It lies somewhere between OATH and COOL.
It is a little better supported and there is a textbook
by the author, Keith Gorlen, that is fairly good documentation.
However, the Smalltalk hierarchy is not completely 
consistent (IMO) with the C++ strong typing nature.
It is weakly supported.

	ftp from alw.nih.gov (198.231.128.251)
	in pub/nihcl.tar.Z
---------------------------------------------------------
libg++ (GNU's C++ library) is probably only relevant if
you are using g++; and if so, you already know about it.
It does have some good implementations of bignum's and
of regular expressions and strings.

	ftp from aeneas.mit.edu (18.71.0.38)
	in pub/gnu/libg++-*
---------------------------------------------------------
InterViews is an excellent GUI class library developed by Stanford
University. Make sure you get v3.1 or later. This library contains
excellent examples of multiple inheritance used profitably. I understand
that InterViews development will not continue past the current version;
author Mark Linton is concentrating his efforts on the X Consortium
Fresco project, which should show up in X11R6. 

	ftp from interviews.stanford.edu
---------------------------------------------------------
Unidraw is a graphical editor building library based on top
of InterViews.

	ftp from interviews.stanford.edu
---------------------------------------------------------
ET++ is a large GUI library and other C++ tools developed
in Europe.

The Authors of the Library are Andre Weinand and Erich Gamma both with
Taligent now.

	ftp from ftp.inria.fr
	in gnu/et++-2.0.tar.Z
	or from ftp.ubilab.ubs.ch
---------------------------------------------------------
LEDA, A Library of Efficient Data Types and Algorithms, by Stefan N"aher
from Germany. It is available for educatioal purposes but its NOT in the
public domain. 

Provides basic data-types like lists, stacks, queues, trees, sets,
partitions, priority queues and a few others. These are parameterizable
classes, you may add your own datatype and have a priority queue ...
An important datatype is a graph, these are also parameterizable and there
are useful algorithms for them like shortest path, transitive closure,
matching, maximum flow, spanning tree and others, we have implemented a few
algorithms for dealing with perfect graphs, but these ar not part of the
standard library. The latest part deals with computational geometry.

It can be used with C++ compilers which understand templates, such as 
cfront 3.0 and g++ 2.4.5.

	Stefan Naeher
	Max-Planck-Institut fuer Informatik
	Im Stadtwald, 
	6600 Saarbruecken, 
	Germany
	(stefan@mpi-sb.mpg.de)

	ftp from ftp.mpi-sb.mpg.de
	in /pub/LEDA/LEDA-<version>.tar.Z
---------------------------------------------------------
Code from Hansen's C++ Answers book
by      Tony L. Hansen
ref     "The C++ Answer Book", Addison-Wesley, 1990, ISBN 0-302-11497-6

	ftp from netlib@research.att.com
	in c++/answerbook
---------------------------------------------------------
Code from Coplien's, "Advanced C++ Programming Styles and Idioms"
by      James O. Coplien
ref     "Advanced C++ Programming Styles and Idioms", Addison-Wesley, 1992, ISBN

	ftp from netlib@research.att.com
	in c++/idioms
---------------------------------------------------------
Brent's univariate minimizer and zero finder.
by      Oleg Kiselyov <oleg@ponder.csci.unt.edu, oleg@unt.edu>
ref     G.Forsythe, M.Malcolm, C.Moler, Computer methods for
        mathematical computations.
prec    double
see     c++/serv_cc.shar

	ftp from netlib@research.att.com
	in c++/brent_cc.shar
---------------------------------------------------------
Radix-2 Fast Fourier Transform
by      Oleg Kiselyov <oleg@ponder.csci.unt.edu, oleg@unt.edu>
prec    single/double
see     c++/lin_alg.shar, c++/serv_cc.shar

	ftp from netlib@research.att.com
	in c++/fft.shar
---------------------------------------------------------
High level vector operations
        Contains the Aitken-Lagrange interpolation over the table of uniform or
        arbitrary mesh, and the Hook-Jeevse multidimensional minimizer.
by      Oleg Kiselyov <oleg@ponder.csci.unt.edu, oleg@unt.edu>
prec    single/double
see     c++/lin_alg.shar, c++/serv_cc.shar

	ftp from netlib@research.att.com
	in c++/hl_vector.shar
---------------------------------------------------------
basic linear algebra classes
by      Oleg Kiselyov <oleg@ponder.csci.unt.edu, oleg@unt.edu>
prec    single/double
see     c++/serv_cc.shar

	ftp from netlib@research.att.com
	in c++/lin_alg.shar
---------------------------------------------------------
A couple of functions that ought to be in the standard
C++ environment;
- Updated G++ class File that allows now for the file name to
  include pipes, say,
    File in_file("zcat aaa.Z |","r");
- Resource facility, or managing global "private" parameters
  that specify various program "options". It helps keep
  reasonable number of arguments in function calls.
by      Oleg Kiselyov <oleg@ponder.csci.unt.edu, oleg@unt.edu>

	ftp from netlib@research.att.com
	in c++/serv_cc.shar
---------------------------------------------------------
C++ implementation of differential algebra
by      Leo Michelotti <michelotti@adcalc.fnal.gov>
This is temporarily unavailable while we resolve the question of whether
inclusion of codes from Numerical Recipes makes distribution illegal. 

	ftp from netlib@research.att.com
	in c++/mxyzptlk.shar
---------------------------------------------------------
ParLib++, Parallel Programming Classes for C++:

	David Greco
	David.Greco@crs4.it
---------------------------------------------------------
P++, Parallel Programming Classes for C++:

	Dan Quinlan
	danq@lemond.colorado.edu
---------------------------------------------------------
"C* in C++", Parallel Programming Classes for C++:

	Terry Bossomaier
	terry@arp.anu.edu.au
---------------------------------------------------------
pC++ is a preprocessor for C++ that implements a data parallel
extension. Machines currently supported are CM5, paragon, KSR-1,
sequent, BBNTC2000 (and soon ibm sp1, and cray t3d), as well as in
uniprocessor mode on most workstations.

	gannon@cs.indiana.edu
---------------------------------------------------------
DoPVM - a class built on PVM, for message passing environments.

	Skip Hartley
	skip@mathcs.emory.edu
---------------------------------------------------------
The SPLASH c++ class library

(Small Perl-like List And String Handling class library)

SPLASH is a c++ class library that implements many of the Perl
constructs and data types, including extensive regex regular expression 
pattern matching.

For those not familiar with Perl, it is an excellent scripting language
by Larry Wall and is available for most platforms.

This Class library provides List, String, Regular Expression, and text
manipulation handling capabilities based on those provided in Perl.

This is available as a compressed tar file, shar file, .zoo or .zip format
with MSDOS compatible names.

contact: morris@netcom.com

	ftp from netcom.com
	in pub/morris/splash.tar.Z
	and pub/morris/splash.shar.Z
	and pub/morris/splash.zip (DOS)
	and pub/morris/splash.zoo (DOS)
---------------------------------------------------------
OSE is a collection of programming tools and class libraries for C++. The
core of the environment is the C++ class libraries, of which three are
provided. These are:

  OTCLIB - A library of generic components, including support for error
  handling, error message logging, error recovery, program debugging,
  memory management, resource management, generic collections, text
  manipulation, operating system interfacing and event driven systems.

  OUXLIB - A library of components which primarily extends classes in the
  OTCLIB library to support features specific to the UNIX operating
  system.

  OTKLIB - A library of components which builds on the OTCLIB and OUXLIB
  libraries to allow integration of the TCL/TK library into applications
  using the event driven systems framework provided by the OTCLIB
  library.

The C++ libraries are portable to a wide range of C++ compilers on the UNIX
platform. Supported C++ compilers include those from USL (CFRONT), DEC, HP,
IBM, Lucid, SGI, SUN, CenterLine and ObjectStore, as well as the freely
available GNU C++ compiler. If your C++ compiler does not support
templates, it is possible to use a template preprocessor which is supplied
with OSE. Portability to all the major variants of UNIX has been achieved.
Supported platforms include BSD, HPUX, IRIX, Linux, OSF, SCO, Solaris,
SunOS, SYSV and Ultrix. In addition to being available under UNIX, the
OTCLIB library is portable to DOS and OS/2 using Borland and Watcom C++
compilers.

OSE was winner of CODA'94, the ComputerWorld Object Developer Awards which
is held in conjunction with ObjectWorld in Sydney, Australia. The category
in which OSE was a winner was "Best implementation of a reusable development
environment for company deployment".

OSE can be obtained via anonymous ftp from:

  Europe:

    ftp.th-darmstadt.de [130.83.55.75]
    directory pub/programming/languages/C++/class-libraries/OSE

  United States

    straylight.acs.ncsu.edu [152.1.65.11]
    directory /pub/ose

  Australia:

    csis.dit.csiro.au [192.41.146.1]
    directory pub/SEG/ose

Documentation for OSE is available online via WWW at:

  http://www.tansu.com.au/Docs/ose/doc/ose-home.html

Questions about OSE can be directed to the author (Graham Dumpleton) at:

  ose@nms.otc.com.au

A mailing list for discussion of OSE, and a mail server providing a list of
known problems and fixes is also available.
---------------------------------------------------------
COOL - Texas Instrument's "C++ Object Oriented Library".

COOL includes classes like AVL_Tree, Association, Bignum, Binary_Tree,
Bit_Set, Complex, Date_Time, Envelope, Gen_String, Handle, Hash_Table,
Iterator, List, M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random,
Range, Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector.

COOL uses a special "template" syntax which is preprocessed by a special 
cpp (distributed with COOL). This enables it to be used with compilers 
which do not support templates.


	fto from csc.ti.com
	in ~ftp/pub/COOL.tar.Z
---------------------------------------------------------
GECOOL 2.1 is a reworking and enhancement of Texas Instrument's "C++
Object Oriented Library" (at csc.ti.com in ~ftp/pub/COOL.tar.Z) by some
programmers at General Electric. 

Also available is JCOOL. Its main difference from COOL and GECOOL is that
it uses real C++ templates instead of a similar syntax that is
preprocessed by a special 'cpp' distributed with COOL and GECOOL. 

	ftp from cs.utexas.edu
	in pub/COOL
---------------------------------------------------------
SOCKET++

C++ iostream like library for sockets and pipes.

	ftp from from uvaarpa.virginia.edu:
	in /public_access/socket++-XX.tar.gz (XX - version no)
	or from cs.ucl.ac.uk [128.16.5.31]
	in coside/gnu/sockets++.tar.z
---------------------------------------------------------
PDBlib is a class library written in C++ for modeling a macromolecular
structure at the level of detail (excluding symmetry information) found
in a Protein Data Back (PDB) file. A class is supplied to read a PDB file
into a PDBlib representation. This class is independent of the actual
representation and other forms of input, for example from a relational
database like SESAM, are possible. 

The library is made extensible by a close coupling between intrinsic and
external classes. By writing only to the external classes you will remain
compliant with future versions of the library. 

You don't get source code. This is a temporary situation while we attempt
to centralize bug fixes and additions to the library. If you find this
situation unworkable source code is available by signing a copyright
agreement which is available with the distribution. 

Platforms:

PDBLib.1.0.SGI.tar.Z    Compressed tar file of PDB object classes library
                        and header files for SGI.  AT&T C++ release 2.1 & 3.0
                        compatible.

PDBLib.1.0.Sun.tar.Z    Compressed tar file of PDB object classes library
                        and header files for Sun Sparc station.  AT&T C++
                        release 2.1 & 3.0 compatible.

PDBLib.1.0.Cvx.tar.Z    Compressed tar file of PDB object classes library
                        and header files for Convex.  AT&T C++ release 2.1
                        compatible.

PDBLib.1.0.Alpha.tar.Z  Compressed tar file of PDB object classes library
                        and header files for Dec 3000 (Alpha AXP) with OSF1.
                        Dec C++ (cxx) release 1.2 compatible.

Address specific programming questions on PDBlib to Weider Chang, the
author of most of the code (weider@cuhhca.hhmi.columbia.edu). 

Address questions concerning PDBview to Ilya Shindyalov
(shindyal@cuhhca.hhmi.columbia.edu)

Address general comments, criticisms, questions about future directions
etc. to Phil Bourne (system@cuhhca.hhmi.columbia.edu). 

	ftp from cuhhca.hhmi.columbia.edu (128.59.98.1)
	in pub/programs/PDB/PDBlib
---------------------------------------------------------
molbio++ is a C++ library for molecular biosequence analysis.  Major 
features include:

classes and services for
  reading and writing sequence data in the following formats:
    Genbank Flatfile
    EMBL / SwissProt
    GCG / Wisconsin
    Fasta / Pearson
    PIR
    NCBI Retrieve Server (read-only)
  limited parsing of fields and features in biosequence files
  storing amino acid or nucleic acid sequences
  iterating over a biosequence
  calculating and storing counts or frequencies of amino acids
    or nucleotides
  device-independent graphics, via GCG's FIGURE program
  translating nucleotide sequences into proteins using
    the universal genetic code or modifications thereof.
  parsing BLAST output
  calculating pI and molecular weight of proteins
  amino acid hydropathy values of Kyte & Doolittle

	ftp from golgi.harvard.edu  (128.103.161.55)
	pub/CONTRIBUTIONS/molbio++
---------------------------------------------------------
SESAME, by C. Tietz, Neural net software ?

	ftp from ftp.gmd.de
	in /gmd/as/sesame.
---------------------------------------------------------
TOLKIEN (TOoLKIt for gENetics-based applications).

The tool contains objects for both GA and classifier system applications."
It's in some kind of alpha-status.

	tang028@cs.cuhk.hk
---------------------------------------------------------
GAME - Parallel Genetic Algorithms Theory and Applications

Edited by: J. Stender
Publisher: IOS Press
Frontiers in Artificial Intelligence and Applications series
1993, 225 pp; hard cover; w/ disk
ISBN: 90 5199 087 1
Price: $85, 59 pounds sterling

The first version of the GAME Virtual Machine software and two examples
that come with the book can be obtained also by ftp.

	ftp from bells.cs.ucl.ac.uk
	in papagena/game/version1 directory
---------------------------------------------------------
The Generic Linked List Package is a package to define, create, update
query and delete one or more (nodes of) linked lists, to sort linked
lists, and so on. The user doesn't have to take care of allocating a
number of bytes for a node, inserting on the right place, deleting and
freeing a node and so on.

	ftp from ftp.tno.nl or hermes.bouw.tno.nl
	in /pub/TNO/BOUW/Bouwinf/linkedlist0.10.shar
---------------------------------------------------------
Newmat : a very thorough matrix class

Author      : Robert Davies (robertd@kauri.vuw.ac.nz)

This library supports classes Matrix, UpperTriangularMatrix,
LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix, BandMatrix,
UpperBandMatrix, LowerBandMatrix, SymmetricBandMatrix, RowVector,
ColumnVector. Only one element type is supported. It includes the
operations *, +, -, concatenation, elementwise product, inverse,
transpose, conversion between types, submatrix, determinant, Cholesky
decomposition, QR triangularisation, singular value decomposition,
symmetric eigenvalue analysis, fast Fourier transform, sort, print, an
interface to "Numerical Recipes in C" programs, and an emulation of
exceptions.  It works with Borland, Watcom, Microsoft and Gnu C++
compilers.

	ftp oak.oakland.edu (or any Simtel mirror)
	in /SimTel/msdos/cpluspls/newmat08.zip
---------------------------------------------------------
nlmdl : a library for estimation of nonlinear models

Nonlinear maximisation, estimation, includes a real matrix class

Systems     : Unix, MS-DOS (Turbo C++)
Author      : A. Ronald Gallant, arg@ccvr1.cc.ncsu.edu

	ftp from ftp.uu.net
	in /usenet/comp.sources.misc/volume16/nlmdl
	or from ccvr1.cc.ncsu.edu (128.109.212.20)
	in pub/arg/nlmdl
---------------------------------------------------------
Octave : Matlab-like interactive system for numerical computations

Includes C++ classes for matrix manipulation, numerical integration, and
the solution of systems of nonlinear equations, ODEs and DAEs.
Distributed under the GPL. 

Systems     : Compiles and runs on SPARC, RS/6000, DEC/Ultrix,
              i386/Linux and probably most Unix-like systems that have
              a working g++/libg++.
Author      : John W. Eaton <jwe@che.utexas.edu>

	ftp from ftp.che.utexas.edu
	in /pub/octave/octave-M.N.tar.Z
---------------------------------------------------------
Andy Register <andy@cerl.gatech.edu> has a matrix library ...

It is still under development so there is no documentatin and some
functions have not been throughly tested. It is a departure from most
matrix libs in that it includes things like UpperTriangular different
>from Diagonal, from Row, from Col, etc. 

	ftp from ftp.cerl.gatech.edu
	in pub/c++/gtmatrix
---------------------------------------------------------
Awesime : a C++ task library explicitly designed for simulation.

Author      : Dirk Grunwald (grunwald@foobar.cs.colorado.edu)

	ftp from ftp.cs.colorado.edu
	in pub/cs/misc/Awesime
---------------------------------------------------------
BLAS in C++

Author      : Damian McGuckin (damianm@eram.esi.com.au)

	ftp from usc.edu
	in pub/C-numanal/blas.cpp.shar.z
---------------------------------------------------------
Cvmath.cc
An include file to make complex math look like regular math.

Author      : Leonard Kamlet, lik@engin.umich.edu
Comments    : The file uses a lot of operator overloading, so that
              if x=a+ib and y=c+id, the code for multiplying the two
              together looks like z = x*y;  Also, the file includes nrutil
              from Numerical Recipes, and adds the complex versions for
              vectors and matrices.

	ftp from usc.edu
	in pub/C-numanal/cvmath.cc
---------------------------------------------------------
Gnans : Simulation of stochastic and deterministic dynamical systems

System      : SunOS 4.1.x, IRIX, AIX; X11 Release 4-5 incl. Athena Widgets
Author      : Bengt Martensson <bengt@mathematik.uni-Bremen.de>
Comments    : A program (and language) for dynamical systems. Includes
              simple scripting language. Graphical user interface. Copyleft.

	ftp from ftp.mathematik.uni-Bremen.de
	in /pub/gnans
---------------------------------------------------------
Kalman : A class library for Kalman filtering

Author      : Skip Carter (skip@taygeta.oc.nps.navy.mil)
Description : A class library for Kalman filtering
Comments    : Contains lumatrix.c++ etc.
Language    : g++ 2.4.2 tested OK.

	ftp from usc.edu
	in pub/C-numanal/kalman.tar.gz
---------------------------------------------------------
Matrix

A C++ Matrix class, including a matrix implementation of the backward
error propagation (backprop) algorithm for training multi-layer, feed-
forward artificial neural networks 
Author      : E. Robert (Bob) Tisdale, edwin@cs.ucla.edu
Comments    : A C++ interface to existing C and FORTRAN matrix libraries.
Documents   : LaTeX manual.

	ftp from ftp.cs.ucla.edu
	in pub/Matrix.tar.Z
---------------------------------------------------------
Presto : C++ routines for fine-grained parallel programming (lightweight
threads) on multiprocessors. Tuned for the Sequent machines, but highly
adaptable and customizable. 

Systems : Unix-like OS on (moderate) multiprocessor machines 
Author : Brian N. Bershad, Edward D. Lazowska, Henry M. Levy 

	frp from cs.washington.edu
	in pub/presto1.0.tar.Z 
---------------------------------------------------------
Range : C++ class for range arithmetic. 

Associated with article in TOMS, Dec 1992 title "Precise computation
using range arithmetic, via C++" 
Author      : Oliver Aberth and Mark J. Schaefer

	ftp from math.tamu.edu
	in pub/range/range.tar.Z
---------------------------------------------------------
SA : library for simulated annealing

Author      : Skip Carter (skip@taygeta.oc.nps.navy.mil)

	ftp from usc.edu
	in pub/C-numanal/sa.zoo
---------------------------------------------------------
Sdeint

A Runge-Kutta like class for integrating systems of Stochastic
Differential Equations 

Author      : Skip Carter, skip@taygeta.oc.nps.navy.mil

	ftp from usc.edu
	in pub/C-numanal/sdeint.tar.z
---------------------------------------------------------
Simpack : tools for writing simulations with a EECS bias

Author      : Paul A. Fishwick, fishwick@cis.ufl.edu

	ftp from bikini.cis.ufl.edu
	in pub/simdigest/tools/simpack
	See also cis/tech-reports/tr92/tr92-022.ps.Z
---------------------------------------------------------
PARODY : C++ DATABASE LIBRARY

Al Stevens has written a book on the subject called
`Database programming in C++' or something. An article
on the subject was printed in Doctor Dobbs Journal
some time ago.

The nice thing is that Stevens also wrote a C++ library
adding persistence to C++, and the source is available.
The library is called PARODY and compiles under most
DOS-based C++ compilers. A slight rewrite of the GUI-
routines has to be done to make it compile under GNU C.

	ftp from ftp.mv.com
	in pub/ddj/1992.12/parody.zip 
	   pub/ddj/1992.12/parody.dir (directory of zip)
---------------------------------------------------------
SMURPH : A C++ library which could be useful for building a network
simulator.It comes withextensive documentation and examples.

	ftp from menaik.cs.ualberta.ca (129.128.4.241)
	in /pub/smurph*
---------------------------------------------------------
C++ FEM (Finite Element Method) Library 

In addition to FEM related classes, this library also has:

        1) Some simple garbage collection stuff
        2) An automatic differentiation library
        3) A sparse matrix library

This is an initial release and people should *expect* to have to do some
work to get it running on their system. If you have gcc-2.3.3, libg++-2.
3[.1], Gnu make and makedepend you shouldn't have too much difficulty
however. The code is unsupported, and is distributed under the terms of
the GNU Public License. 

	Michael Tiller
	University of Illinois (Urbana-Champaign)
	(tiller@solace.me.uiuc.edu)

	ftp from usc.edu
	int /pub/C-numanal/femlib-1.1.tar.gz
---------------------------------------------------------
Ode Object database v2.0

Ode is an object-oriented database based on the C++ database model.
The primary interface to Ode is the database programming language O++
which is based on C++.

Ode is now available to Universities. The current version of Ode runs on
Sun (Sparc) workstations and users must have C++ release 2.0 or a later
release. If you are interested in using Ode and giving us feedback on
your experience with Ode, please send mail to nhg@research.att.com with
the appropriate information. 

	Narain Gehani
	AT&T Bell Labs 3D-414
	600 Mountain Ave
	Murray Hill, NJ 07974

	ftp from research.att.com.
	in dist/ode2.0/2.0.oppbin.tar.Z
---------------------------------------------------------
C++SIM 1.0  - a simulation package written in C++. 

C++SIM provides discrete process based simulation similar to that
provided by the simulation class and libraries of SIMULA. The linked list
manipulation facilities provided by SIMSET are also included in the
package. 

The simulation package requires the use of a threads package and
currently only works with Sun's lightweight process library or the Gnu
thread package (which *is* included in the distribution). The package has
been used on Sun workstations, and, with the exception of the thread
library requirement, contains no system specific code which should make
porting to other systems relatively easy. The code has been compiled
with Cfront 2.1 and Cfront 3.0.1 and g++ 2.3.3

	ftp from arjuna.ncl.ac.uk
---------------------------------------------------------
ADAPTIVE Communication Environment (ACE) C++ IPC wrappers (C++Wrapper).

This release contains contains the source code, documentation, and
example test drivers for a number of C++ wrapper libraries and higher-
level distributed application frameworks developed as part of the
ADAPTIVE project at the University of Calfornia, Irvine. 

The C++ wrappers encapsulate many of the user-level BSD and System V
Release 4 IPC facilities such as sockets, TLI, select and poll, named
pipes and STREAM pipes, the mmap family of memory-mapped file commands,
System V IPC (i.e., shared memory, semaphores, message queues), and
explicit dynamic linking (e.g., dlopen/dlsym/dlclose) using type-secure,
object-oriented interfaces. 

The higher-level distributed application frameworks integrate and enhance
the lower-level C++ wrappers to support the configuration of concurrent
network daemons composed of monolithic and/or stackable services 

A relatively complete set of documentation and extensive examples are
included in the release. A mailing list is available for discussing bug
fixes, enhancements, and porting issues regarding ACE. Please send mail
to ace-users-request@ics.uci.edu if you'd like to become part of the
mailing list. 

	ftp from ics.uci.edu (128.195.1.1) 
	in gnu/C++_wrappers.tar.Z
---------------------------------------------------------
CB++ (CommonBase Database Access Library for C/C++)

This library was written in 1989 as a basis for storing C++ objects in
a relational database. The development of such a system was stopped in
1990 because of problems with the MS-DOS environment used in this time.
My involvement in various user interface projects here in the institute
and otherwhere made it sleep until last week.

Okay, here is it. It is only the database access layer of the projected
object storage system but it has some useful features which are provided
by commercial tools out there:

* Builds on the C language interface of a database, there is no need
  for a precompiler (like embedded SQL - which is totally unusable in
  combination with C++, at least it was three years ago...)
* Very simple to use. Unlike the native C interfaces of the databases
  it is as simple as embedded SQL or some 4th generation languages.
* Makes applications portable among different SQL databases. The library
  itself is relatively easy to port as the database vendor specific code


	ftp from ftp.x.org 
	in /contrib/CB++.0.1.*
---------------------------------------------------------
OBST - persistent object management system 

The persistent object management system OBST was developed by
Forschungszentrum Informatik (FZI) as a contribution to the STONE
project. 

Sites interested in getting information about new OBST developments
are welcome to register in their mailing list by sending a mail with
subject "obst-mailing-list" to stone@fzi.de.

	Forschungszentrum Informatik FZI
	STONE Projekt
	Haid-und-Neu-Strasse 10-14
	D-7500 Karlsruhe 1
	Germany
	Tel : ++49-721-9654-601
	Fax : ++49-721-9654-609
	Teletex : 721 190 fziKA
	email : stone@fzi.de

	ftp from gate.fzi.de [141.21.4.3]. 
	in /pub/OBST.
---------------------------------------------------------
GRAS - A Graph-Oriented Database System for SE Applications
Copyright (C) 1987-1992  Lehrstuhl Informatik III, RWTH Aachen
This library is free software under the terms of the GNU Library 
General Public License.

The system GRAS with interfaces for the programming languages Modula-2
and C is available as public domain software for Sun3/Sun4 workstations
(the GRAS system itself is implemented in Modula-2 and consists of many
layers which might be reusable for the implementation of other systems): 

  There are several files contain documentation, sources, binaries,
  and libraries. All binaries are for Sun/4 machines. Sun/3 binaries
  are shipped only if explicitly requested.

	Lehrstuhl f"ur Informatik III
	University of Technology Aachen (RWTH Aachen),
	Ahornstr. 55,
	D-5100 Aachen
	Contact : Dr. Andy Sch"urr (or Richard Breuer),
	andy@rwthi3.informatik.rwth-aachen.de
	ricki@rwthi3.informatik.rwth-aachen.de (for technical support)

	ftp from tupac-amaru.informatik.rwth-aachen.de (137.226.112.31) 
	in /pub/unix/GRAS522_3
---------------------------------------------------------
MTL110JE.ZIP -- multithreading class library

DOS PC/Borland C++ specific.

	ftp from oak.oakland.edu
	in /pub/msdos/cplusplus
	or garbo.uwasa.fi
	in /pc/c-lang
---------------------------------------------------------
CCL110JE.ZIP -- coroutine class library

DOS PC/Borland C++ specific.

	ftp from oak.oakland.edu
	in /pub/msdos/cplusplus
	or garbo.uwasa.fi
	in /pc/c-lang
---------------------------------------------------------
TSR100JE.ZIP -- TSR class library

DOS PC/Borland C++ specific.

	ftp from oak.oakland.edu
	in /pub/msdos/cplusplus
	or garbo.uwasa.fi
	in /pc/c-lang
---------------------------------------------------------
XMS200JE.ZIP -- XMS array class library

Wrapper classes to access XMS, UMBs and the HMA, as well as a templated
XMS array class. Test suites and timing programs provided for each class.
Source included. Free. DOS PC/Borland C++ specific. 

	ftp from oak.oakland.edu
	in /pub/msdos/cplusplus
	or garbo.uwasa.fi
	in /pc/c-lang
---------------------------------------------------------

Useful ftp sites
~~~~~~~~~~~~~~~~
If you don't have ftp access, send email to ftpmail@decwrl.dec.com
saying "help".  You will get instructions on how to do ftp via email.

European users might like to try ftpmail@grasp.insa-lyon.fr instead.
---------------------------------------------------------
ftp.th-darmstadt.de

A major repository of C++ stuff, mostly under the directory tree starting 
at /pub/programming/languages/C++. Includes a product list (from which
some of the information in this document was taken) in various formats in 
sub-directory c++-products.

	/pub/programming/languages/C++/...
---------------------------------------------------------
ftp.luth.se

	/pub/languages/c++/ClassLibs/...
---------------------------------------------------------
netlib@research.att.com.

send mail with the text "send index" or "send index from C++"
---------------------------------------------------------
Simtel

The primary Simtel site is oak.oakland.edu, but there are many mirror 
sites all over the world.

	msdos/cplusplus
---------------------------------------------------------
Current CUG Library Catalog

The CUG CD-ROM file listing offers the most comprehensive look at the
programming tools and utilities available from CUG. The complete
annotated listing (about 1 megabyte) is available through anonymous ftp
as follows: 

	ftp from cdrom.com
	in /pub/cdrom/cdroms/cug/capsule.txt
---------------------------------------------------------
source-code newsgroups:
        ftp.uu.net  (e.g. usenet/comp.sources.reviewed archives the
        comp.sources.reviewed newsgroup).
---------------------------------------------------------
Netlib:
        research.att.com     email, ftp
        ornl.gov             email, xnetlib
        nac.no               email, xnetlib for Europe
           (e.g. send email to netlib@ornl.gov to access by email)
        unix.hensa.ac.uk is a mail server useful for Europe.
        ci.cs.uow.edu.au (130.130.64.3) in Australia
---------------------------------------------------------

Libraries for which I don't know an ftp site
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---------------------------------------------------------
DCE++: A C++ API for Programming Distributed Systems

William Leddy, Arjun Khanna (arjun@hal.com)
HaL Computer Systems, Austin, Texas.

DCE++ is a set of ANSI C++ classes that enable the rapid prototyping of
distributed programs. The goal of DCE++ is to provide a platform
independent C++ API to the significant components used in distributed
computing. Namely: RPC, threads, Security and Naming across the widely
used distributed computing platforms such as DCE, ONC and WNT. 

It is expected that by encapsulating platform dependencies inherent in
setting up rpcs, security etc. in DCE++ base classes, program development
time can be drastically reduced. Moreover, a foundation can be provided
for developing *portable* distributed program development tools. 

The second *evaluation* version of DCE++, version 0.4, has been released
on Dec 2'93. The release includes C++ bindings for remote procedure calls
over DCE and ONC. A C++ threads api for programming DCE threads. A C++
threads api for programming DCE distributed Time Service. The release is
available free of charge upon signing a very liberal license agreement. 

The license agreement is obtainable by anonymous ftp from hal.com. It is
in the directory dce++. The same directory also contains the release
notes for the 0.4 version and plans for 0.5 features. To obtain the code,
please send the signed license agreement to: 

Arjun Khanna, FAX (U.S country code) 512-794-8737
---------------------------------------------------------
GenTools: A Computational Genomic Tool Suite

The University of Texas System CHPC and collaborators are addressing the
problems of high performance platforms by developing GenTools, an
interactive, distributed, loosely integrated, set of tools for DNA and
protein sequence data analysis, phylogenetic analysis, and restriction
mapping which combines different algorithm implementations, machines, and
databases through a "bio-user" friendly set of graphical user interfaces.

	Sarah Barron
	GenTools Project Leader
	Computational Molecular Biology and Genetics Group
	University of Texas System Center for High Performance Computing
	Balcones Research Center, CMS 1.154
	10100 Burnet Road
	Austin, TX 78758-4497

	Internet:  sarah@chpc.utexas.edu
	Bitnet:    s.barron@uthermes
	Voice:     (512)471-2434
	FAX:       (512)471-2445
---------------------------------------------------------

Commercial libraries
~~~~~~~~~~~~~~~~~~~~

---------------------------------------------------------
WinSockets++ 1.1: A C++ class library for WinSockets.

The poster sent me the following paragraph. It has a little too much hype 
for my taste. (S)he also included a complete copy of the Programmers Guide
- I am afraid I don't have time to read and summarise it here.

This is more than just a wrapper for the WinSockets calls. It provides
higher-level functions that make reading/writing to sockets very easy.
Additionally, the Async aspect of the library makes using the
asynchronous functionality of WinSockets *very* easy and your code *very*
clean. 

It costs $50 which includes full source.

	email: troy@cais.com.
---------------------------------------------------------
Distinct TCP/IP for Windows Software Development Kit

C++ Class Libraries for FTP, Telnet and Windows Sockets.

Allows developers to develop TCP/IP applications without making calls
directly to a C Dynamic Link Library (DLL). Applications are created
using the Distinct C++ Class Libraries, which take care of establishing
the connection between the client and server side of the application. All
functionality normally associated with calling a TCP/IP application is
taken care of by setting data members and by handling upcall events.
Applications are notified of errors, connection changes and incoming data
by an upcall posted by the library to the applications window, by
providing a callback function to the library or by making polling calls
to the library at frequent intervals. 

Supported compilers: Microsoft C++ version 7 and Visual C++ 1.0 and 1.5.

Standard Edition:$495.00
Professional Edition:$695.00
Distinct TCP/IP Run Time: $100.00

	Distinct Corporation
	12901 Saratoga Avenue, #4
	Saratoga, CA 95070

	Tel: (408) 366-8933
	Fax: (408) 366-0153
	Fastfacts: (408) 366-2101
	email: mktg@distinct.com
---------------------------------------------------------
Generic++

Class library with container classes and basic data types for the 
development of portable, object-oriented applications

This C++ library is completely new. It is aimed at commercial users 
and implements a generous selection of application-independent 
basic classes. Its use frees the user from error-prone and time-con-
suming specific tasks (e.g. main memory management). 
All libraries previously available on the market are targeted more or 
less specifically on a particular system environment. However, it is 
becoming more and more urgent to make as many application mod-
ules as possible independent of a specific target platform. What 
gives Generic++ its competitive edge is the portability of its com-
ponents and the way it takes account of other software engineering 
aspects.

Advantages: * Implementation of the most important application-
independent basic classes * Availability on all standard operating 
systems and platforms * Accommodation of the latest C++ exten-
sions such as templates and exception handling * Co-existence with 
other libraries * High degree of runtime efficiency and low resource 
consumption * Integrated debugging support * Template-based, 
typesafe container classes with interchangeable implementation 
data structures * Suitability for use in the development of client/
server applications in heterogeneous networks. 
Unix (cfront, IBM xlC), WindowsNT, OS/2 (Watcom, IBM CSet++), Windows/DOS
(Borland, Watcom, Symantec)

(Price: 782 DM)
Contact:
	Paul.Micke@mch.sni.de

	Paul Micke
	SNI SU AP 443 MchP/Lz
	Siemens Nixdorf Informationssysteme AG
	Otto-Hahn-Ring 6
	D-81739 Muenchen
	Tel.: (49) 89 636-42756
	Fax.: (49) 89 636-43461
---------------------------------------------------------
DiaViews++

Class library for the development of graphical user interfaces 
(GUI) in OSF/Motif and C++

This library combines the power of the OSF/Motif toolkit with the 
advantages of the C++ language by means of completely encapsu-
lating the Motif objects (widgets/gadgets). This means there is a 
C++ class for every Motif object. 
DiaViews supports the structured, object-oriented development of 
Motif interfaces. 
C++ features such as rigorous type checks and virtual functions, etc. 
enhance the efficiency of the development process. 

Advantages: * Uniform C++ interface with OSF/Motif * Frame-
work for generating reusable UI components * Use of callback 
objects * Interface with Dialog Builder, the interactive tool from 
Siemens Nixdorf for OSF/Motif user interfaces * Simple and relia-
ble handling of Motif resources * Automatic generation of make-
files * Minimal training overhead.
(Price: 1750 DM)

Contact:
	Paul.Micke@mch.sni.de

	Paul Micke
	SNI SU AP 443 MchP/Lz
	Siemens Nixdorf Informationssysteme AG
	Otto-Hahn-Ring 6
	D-81739 Muenchen
	Tel.: (49) 89 636-42756
	Fax.: (49) 89 636-43461
---------------------------------------------------------
BCM

Class library for the support of inter-process communication (IPC)

The class library BCM (Base Communication Module) supports 
both general communication (local and network-wide) and an inte-
grated name service. BCM implementation is based on Internet 
Sockets, which use the TCP/IP protocol. This means that the C++ 
input/output streams can be made transparent for use in inter-proc-
ess communication. 

Advantages: * The user does not have to bother about platform-spe-
cific details * Classes are available for transport, the dispatcher, 
data representation, the message header and the name service.
(690 DM)

Contact:
	Paul.Micke@mch.sni.de

	Paul Micke
	SNI SU AP 443 MchP/Lz
	Siemens Nixdorf Informationssysteme AG
	Otto-Hahn-Ring 6
	D-81739 Muenchen
	Tel.: (49) 89 636-42756
	Fax.: (49) 89 636-43461
---------------------------------------------------------
OSQLIF

Class library for the development of SQL database applications

This library connects an SQL database with an application written 
in C++. The new options offered by the object-oriented language 
make it possible to implement a considerably more efficient user 
interface than is possible with the traditional `embedded' SQL. The 
aim is to set up a simple and efficient connection between an SQL 
database and an application developed in C++. SQL data types and 
both dynamic and static SQL are supported. This means that all the 
features of an SQL database can be accessed from a C++ applica-
tion.

Advantages: * The user can forget about a large number of data-
base-specific details with regard to communication * Secure inte-
gration in object-oriented C++ applications * When ANSI-SQL is 
used, the application can be ported between various databases.

Contact:
	Paul.Micke@mch.sni.de

	Paul Micke
	SNI SU AP 443 MchP/Lz
	Siemens Nixdorf Informationssysteme AG
	Otto-Hahn-Ring 6
	D-81739 Muenchen
	Tel.: (49) 89 636-42756
	Fax.: (49) 89 636-43461
---------------------------------------------------------
Extended C++ Standard Components

Foundation class library for the development of object-oriented 
software

This standard library for C++ programming consists of C++ Stand-
ard Components Rel. 3.0 (UNIX System Laboratories) and SNI 
Extensions. It contains universal classes that can be used under 
UNIX by any C++ programmer. 

Advantages: * The generic container classes were implemented 
using templates * Systematic approach: "you get what you need" * 
Efficient memory managementu The generated code is fast and 
concise and can be compiled 
quickly.

Contact:
	Paul.Micke@mch.sni.de

	Paul Micke
	SNI SU AP 443 MchP/Lz
	Siemens Nixdorf Informationssysteme AG
	Otto-Hahn-Ring 6
	D-81739 Muenchen
	Tel.: (49) 89 636-42756
	Fax.: (49) 89 636-43461
---------------------------------------------------------
SOFTPRO TOUCH-GUI C++ class library for OS/2:

SOFTPRO GmbH has announced its new 32bit C++ class library TOUCH-GUI 2.1
for OS/2 2.x. The product contains more than 140 classes which support
windows, menu bars, multi-threading, controls (including all OS/2 2.x
controls: slider, value set, notebook, container), dialog boxes, graphics,
printer control, MDI, DDE, Drag and Drop, loadable resources, and
management of profiles (.INI files). Other features include auxiliary
classes for data manipulation and storage management. Additionally, TOUCH-
GUI 2.1 contains high-level classes like formatted entry fields, tables,
and complete NLS. Furthermore, TOUCH-GUI 2.1 is fully integrated in STAR
CASE++, an OOA/OOD case tool (method: Coad/Yourdon), and Intersolv's PVCS
(a version control system).  

Supported C++ compilers are: Borland, GNU (emx), IBM, and WATCOM

The product includes online (.INF) and printed documentation, a demo
program, and samples. 

Planned availability: April, 1994

TOUCH-GUI 2.1 costs DM 1.720,00 excl. VAT (ca. US $990), the runtime
DLL's may be distributed royalty free. For upgrade prices and special
project licenses (including source code of TOUCH-GUI) contact the
supplier. NOTE: TOUCH-GUI 2.1 single license will be available at a
special price of DM 199,00 excl. VAT (ca. US $120) during 04/01/94 -
06/30/94. Printed documentation is not shipped with the special price
product, it is available for another DM 99,00 excl. VAT (ca. US $60).
However, full online documentation is included. 

	SOFTPRO GmbH, Stadtgrabenstr. 21, 
	D-71032 Boeblingen, 
	Germany,
	Tel.: +49 7031 6606-0 Mr. Frank Fuchs (extension -50)
	Fax: +49 7031 6606-66,

email:
	ffu@softpro.de,
	IBMMAIL (IEA): DEJP9SK9
---------------------------------------------------------
Persistence is supposed to give access to a relational database from 
a C++ object model.

	Persistence Software Inc
	1700 Sourth Amphlett Blvd, Suite 250
	San Mateo, Ca 94402
	415.341.7733
---------------------------------------------------------
Tools.h++ is the basic Rogue Wave tools library.

Tools.h++ consists mostly of a large and rich set of concrete classes
that are usable in isolation and do not depend on other classes for their
implementation or semantics. 

Components include Collections, String processing, Time & date handling, File space
manager, B-Tree disk retrieval, bit vectors, virtual I/O streams, caching
managers, virtual arrays, etc. 

email:	info@roguewave.com

	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	Corvallis
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650
---------------------------------------------------------
Matrix.h++ includes all the functionality of Math.h++.  For example:
general matrices, vectors, statistics, complex numbers, Fast Forier
Transformation (FFT's), etc.  Matrix.h++ adds specialized matrix classes
such as banded, symmetric, positive-definite, Hermitian, tridiagonal, etc.
Because Matrix.h++ includes Math.h++, it can take advantage of
Math.h++'s highly optimized low-level assembly routines, making it fast
as well as graceful.

Prices range from $199 to $995

email:	info@roguewave.com

	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	Corvallis
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650
---------------------------------------------------------
Linpack.h++ is the jewel of C++ math classes.  Linpack.h++ includes all
of Matrix.h++, plus all of the functionality in the original and well-
established Fortran version; including solutions of systems of equations
for a variety of matrix types, solutions of over- and under-determined
systems of equations, incremental least squares solvers, etc.  But,
Linpack.h++ is a tru object-oriented library, not just a C version that
compiles under C++:  the traditional messiness of the Fortran version has
been replaced with high-level, yet efficient, objects that make code far
easier to write and maintain.

Prices range from $299 to $1195

email:	info@roguewave.com

	Rogue Wave Software, Inc., 
	1325 NW 9th Street
	Corvallis
	OR, 97330
	(503) 754-2311
	Fax: (503) 757-6650
---------------------------------------------------------
Classix

In addition to Rogue Wave, Empathy offers a good general-purpose
library called Classix.  

I do not have confirmed information, but I have been told that this 
library is no longer available.

	Empathy
---------------------------------------------------------
Formerly developed and marketed by AT&T Bell Laboratories and UNIX System
Laboratories, these are now developed and marketed by Novell's UNIX Systems
Group.  A binary version will be bundled with the UnixWare Release 2.0 SDK;
a source version is available for all other platforms (usually UNIX-based).

C++ Standard Components include :
 
Args - argc/argv command line parser.
Bits - bit manipulation to arbitrary-length bitstrings.
Block - dynamic arrays.
Array_alg - efficient algorithms for searching, sorting, inserting etc.
Fsm - finite state machines.
G2++ - message formatting for inter-process communication. 
Graph - maintain arbitrary relationships between arbitrary entities.
Graph_alg - including searching, cycle and component detection.
ipcstream - inter-process streams.
List - doubly-linked lists.
Map - like arrays, except that the subscripts can be non-integral.
Objection - like UNIX software signals.
Path - facilities for manipulating UNIX path names and UNIX search paths.
Pool - optimise memory allocation.
Regex - regular expressions.
Set - including Sets, Bags, and pointer sets.
Stopwatch - for timing critical sections of code
String - variable-length character strings.
Strstream - iostreams for Strings.
Symbol - efficient symbol table handling & sorting.
Time - Time, Duration (time difference) and Place (geographical location).

Also included are the following tools :

c++filt  - demangles C++ names in standard input.
dem  - demangles C++ names in an argument list.
demangle  - demangles C++ names in a.out for easier debugging.
fs  - a tool and library to help find freestore bugs.
g2++comp  - compiles G2++ record definitions.
hier  - displays the inheritance hierarchy in a program.
incl  - displays the hierarchy of include files used in a program.
publik  - displays the public interface of a class.

For product, sales, and licensing information about C++ Standard Components:

US Domestic:

        Novell, UNIX Systems Group
        190 River Road
        Summit, NJ  07901-1400

        Telephone: 1-800-828-UNIX 

	or try Rina Infante directly at 908-522-6010

    International:

        Novell, UNIX Systems Group
        190 River Road
        Summit, NJ  07901-1400
	USA

	attn: 	Bill Murphy
	phone:	+1 908-522-6304
	fax:	+1 908-522-6166
	e-mail:	license@summit.novell.com
---------------------------------------------------------
Booch Components

Rational markets the C++ Booch objects which are a somewhat bizarre,
but possibly quite innovative, set of library objects.

It appears quite complete (unless you have some specific, uncommon
needs); Booch may have an edge in supporting concurrency. USL may have
more installations and greater maturity.

	Rational OO products
	408-496-3700
---------------------------------------------------------
StarView - A Portable C++ Class Library for Graphical User Interfaces

StarView is a portable C++ Class Library for Graphical User Interfaces.
StarView is one of the major parts of our total Object Oriented
programming environment (we call it SOLAR system). 

-   portability between the operating systems MS-DOS, OS/2, Macintosh
    and different UNIX flavours
-   at  least portable between  the  GUI's MS-WINDOWS, MS-Presentation
    Manager, MacApp and OSF/Motif
-   fulfillment of the requirements of the different GUI Style
    Guide's
-   data  exchange and direct communication between the applications in
    homogeneous and heterogeneous networks (groupware approach)

StarView will support the following GUI's / Compilers:

Windows 3.x
        Borland C++
        Zortech C++

Presentation Manager
        Zortech C++

OSF Motif
        Sun C++
        Zortech C++
        Glockenspiel C++

Macintosh
        MPW C++

Author:     Andreas Meyer, STAR DIVISION

	STAR DIVISION GmbH
	Andreas Jahnke
	Sachsenfeld 4
	D-20097 Hamburg
	Germany

	Phone: ++49 40 23646 500
	Fax:   ++49 40 23646 550
	Email: svinfo@stardiv.de

	Star Division
	2180 Sand Hill Road, Suite 320
	Menlo Park, CA 94025
	(800) 888-8527
	(415) 233-0142 (fax)

	svinfo@starlab.uucp
---------------------------------------------------------
Open Dialogue

	HP/Apollo
---------------------------------------------------------
MacApp (application development toolkit)

	Apple
---------------------------------------------------------
ICpak101, ICpak201

	Stepstone
---------------------------------------------------------
NeXTStep (application development toolkit)

	NeXT
---------------------------------------------------------
CommonView (Iconic user interface)

	Glockenspiel
---------------------------------------------------------
CommonView Glockenspiel

This is a C++ UI library. In addition, it comes with container classes.
The down-side is that some of the features are not supported across all
platforms. 

	Computer Associates International
	One CA Plaza
	Islandia, NY 11788
	(516) 342-2308
	(516) 342-6947 (fax)
---------------------------------------------------------
Galaxy

This is a C UI library, but it's written in an object-oriented style and
is type safe for C++ use. The package includes a WYSIWYG GUI builder. 

The tools are, reportedly, pretty full-featured. User-interface items
have extensive abstraction (for example, they have a confirmation-type
dialog that resolves to a push-pin and 'apply' button under openlook, but
'ok', 'apply', 'cancel' buttons under motif). Objects can be positioned
relative to each other (rather than merely absolute position on the
screen). Also, errors are handled with an abstract exception handling
framework. They support internationalization of fonts (at least Japanese),
money, and data formatting. 

Some extra-cool features include memory leak detection and C-language
objects for text (multi-styled, multi-font text with embedded graphics),
list (spreadsheet-like for handling up to 2^31 x 2^31 cells with
customizable displays), and graphics processing. 

	Visix
	11440 Commerce Park Drive
	Reston, Virginia 22091
	(800) 832-8668
	(703) 758-2711
	galaxy@visix.com
---------------------------------------------------------
Guild

This is a C-language UI library, but they're type-safe for C++
compatibility. The package includes a GUI builder and an event occurrence
monitor. 

Additional features in the library includes support for international
character sets, portable file system support and nifty C-language classes
for pie-charts, 3d bars, x-y plots, and the like. 

OPTIONS:
    Graphic Modeling        $995
    Oracle Database Bridge  $395
    ODBC Database Access    $495

	Guild
	1710 S. Amphlett
	2nd Fl.
	San Mateo, California 94402
	(415) 513-6650
	(415) 349-4908 (fax)
---------------------------------------------------------
MainWin

	Machine Independent Software
---------------------------------------------------------
ObjectViews

I believe this is a commercial version of InterViews.

	Quest Windows
---------------------------------------------------------
Open Interface Version 3.0

This is a C-based UI library, but type-safe for C++ compatibility. The
software also comes with a WYSIWYG GUI builder. 

They include tons of extra widgets like business graphics (bar, pie, and
line charts), images (all standard formats), and hypertext help. 

Other software in Open Interface includes international character support,
multi-font support, full printer support, memory management, file I/O
support as well as Windows DDE support (the latter is, of course, non-
portable). 

They also have a product called Nexpertobject, which is an expert systems
tool intended for GUI development. 

	Neuron Data
	156 University Avenue,
	Palo Alto, California 94301
	(800) 876-4900
	(415) 321-4488
---------------------------------------------------------
Wind/U-MFC

Wind/U-MFC - A Unix version of the popular Microsoft Foundation
Classes shipped with Visual C++ (a 16-bit MFC 2.5 and a 32-bit MFC 2.1).

	Bristol Technology Inc.
	241 Ethan Allen Highway
	Ridgefield, CT 06877 USA
	phone: (203) 438-6969
	fax:   (203) 438-5013
	email: info@bristol.com
	URL: http://www.bristol.com
---------------------------------------------------------
WNDX

	WNDX
	1550 8th Street S.W. Suite 305
	Calgary, Alberta Canada T2R 1K1
	(403) 244-0995
---------------------------------------------------------
XVT Portability Toolkit

This is a C-language library of functions (although, you can pay extra
for C++). They have a WYSIWYG GUI builder, but they charge for that, too.


OPTIONS:
    C++ capability                      $200
    XVT-Design (a WYSIWYG GUI builder)  $1200 ($2900 for non-PC UNIX)
    Source Code                         (call)

	XVT Software Incorporated
	4900 Pearl East Circle
	Box 18750
	Boulder, CO 80308
	(800) 678-7988
	(303) 443-4223 (phone)
	(303) 443-0969 (fax)

	info@xvt.com
---------------------------------------------------------
zApp Developer's Suite V2.2

The zApp Developer's Suite is a set of libraries and a designer 
containing over 300 object classes that provide GUI and other 
capabilities. It is the single solution to the problem of quickly 
writing commercial quality applications that run on multiple 
platforms. The zApp Developer's Suite consists of zApp, the industry 
leading C++ application framework; zApp Factory, a visual designer and 
code generator for the zApp environment; and the zApp Interface Pack, 
a set of powerful custom controls for zApp. Applications generated 
using the zApp Developer's Suite are single source portable to 
Windows, Win32 (Windows NT, NT on the DEC Alpha, and Chicago), DOS 
Text, DOS Graphics, OS/2 and X/Motif (Sun Solaris 2.x, Sun SunOS 
4.1.x, IBM RS/6000 AIX, HP HPUX 9.x, SCO UNIX, SGI IRIX 5.2, Unixware 
and Sun Solaris x86.)

The software comes with about 2500 pages of documentation and complete 
on-line help. It costs between $1,000 and $5,000 per developer, 
depending on the platforms needed.

	Inmark
	2065 Landings Drive, 
	Mountainview, CA 94043 
	(800) 3-inmark 
	(415) 691-9000 
	(415) 691-9099 (fax) 
	sales@inmark.com 
---------------------------------------------------------
Zinc V3.5

This is a full C++ class library that comes with the Zinc Designer (a
WYSIWYG GUI builder). Their classes include some graphic capabilities, a
rather nice error system, and a portable, if rudimentary, help system.
Also included is the source for the library (and for the Designer!). 

In addition to the usual GUI stuff, Zinc also provides international
character support (an extended version, for extra bux, is in the works),
some container classes, and filesystem portability. They also allow you
to incorporate platform-specific stuff (e.g., system messages) into their
API; but, of course, you're on your own when it comes to porting any
additions. 


	ZINC Software Incorporated
	405 South 100 East 2nd Floor
	Pleasant Grove, UT 84062
	(800) 638 8665
	(801) 785-8900
	(801) 785-8996 (fax)
	(801) 785-8997 (bbs)

	tech@zinc.com
---------------------------------------------------------
OpenUI is another GUI builder

This interface supports C, Pascal, and (ish) COBOL.

	Open Software Associates
	P.O. Box 3599
	Sunnyvale, CA 94088-3599
	(408) 730-2626
---------------------------------------------------------
NetClasses++, C++ classes for message passing environments:

NetClasses is a set of C++ class libraries that is organized as an object-
oriented software toolkit for distributed, message-passing based
programming. 

Facilities include :

Transporting objects over a network. NetClasses can transport: Arbitrary
C++ objects derived from PostModern's TransObject class, arbitrary NIH-
derived objects, and NetClasses Typed Objects. 

NetClasses Typed Objects provide an object-oriented data transport in
which the structure and organization of objects is specified externally
in configurable files using a simple, programming language independent
abstract syntax notation, the NetClasses Abstract Syntax Notation (NASN).

Remote method invocations (RMI). Using RMI, an application on machine B
can invoke a method on machine A. RMI makes fault tolerance and
connection management transparent to the application programmer. The RMI
layer is built on top of the distributed services package that is
described below. 

Reading and writeing all three varieties of NetClasses-transportable
objects on streams using machine-independent external representations. 

Currently available on Sun SPARC; currently testing on HP workstations.

NetClasses Development License          $1995
NetClasses Runtime License               $495
NetClasses Source Code License          $7995
(includes 3 runtime licenses)
NetClasses training class               $2000
NetClasses consulting and porting services (ask for quote)

	Qualix Group
	1900 S. Norfolk St. Suite 224
	San Mateo, CA 94403
	info@qualix.com
	1-800-245-UNIX (voice)
	(415) 572-1300 (fax)
	(415) 572-0200 (voice)
---------------------------------------------------------
Aspect

This is a C library, though they're type safe for C++ compatibility. A
GUI builder is provided with the library. They're coming out with a C++
class library soon. 

	OPEN Inc.
	655 Southpointe Court, Suite 200
	Colorado Springs, CO 80906
	(719)527-9700 (sales, customer service, tech support)
	(719)576-3835 (fax)
---------------------------------------------------------
C++/Views

This is a C++ library based on the smalltalk model (all classes come from
one superclass, and they have a smalltalk-like class browser). They do
not have a WYSIWYG GUI builder. 

Additional features include various container classes.

	Liant Software Corp.
	959 Concord St.,
	Framingham, MA 01701 USA
	(800) 237-1873
	(508) 875-2246.
	support@lpi.liant.com
---------------------------------------------------------
Presentation Services Manager UI library

No WYSIWYG GUI builder exists, but they do include a script language. 

	Lancorp Pty Ltd
	33 Nott St
	Port Melbourne 3207
	Australia
	+61 3 646 7100 (phone)
	+61 3 646 8610 (fax)
---------------------------------------------------------
ILOG C++ Software Components

ILOG VIEWS 2:C++ library and editor to design Very Graphical User Interfaces

ILOG VIEWS 2 high-level C++ class library is fully extensible and 
portable across Windows, OS/2, and Unix platforms.  It includes:
- portable resources, event management, and PostScript support
- a portable multi-look gadget library
- extensive 2D graphic object library including charts and gauges
- PowerObjects such as graph layout, spreadsheet, and Gantt chart  
- management of multiple views & layers (for cartographic applications)
- double buffering, infinite undo, zooming, and other editing operations
  
The development of portable VGUI applications is accelerated through 
ILOG PowerEdit, an extensible VGUI builder that generates standard C++ 
code.  PowerEdit reusable components are provided with ILOG VIEWS 2 so 
that developers can create and distribute their own custom editors.  

ILOG VIEWS 2 Dynamic Variable mechanism offer an interpretor for 
writing C formulae between variables to control the attributes of 
objects.  This allows for code-free animation and control of graphics 
objects.

ILOG VIEWS 2 provides a message translation mechanism so that messages 
used in the interfaces may be translated dynamically. The look and feel 
of ILOG VIEWS 2 applications can be changed dynamically from Motif to 
Windows on all platforms.

Platforms: DEC OSF/1, HP, IBM, Silicon Graphics, and Sun workstations
(both SunOS and Solaris) as well as on PCs running Microsoft Windows 3.1,
Windows NT, and OS/2 Presentation Manager. Demonstration CD-ROM available
upon request. 

ILOG BUILDER:
  is a GUI builder that generates OSF/Motif interfaces in C and C++.  It
  offers UIL read/write capabilities and tight integration with ILOG
  VIEWS.

ILOG DB LINK:
  is a C++ library to connect RDBMS such as Sybase, Oracle, Ingres,
  Informix, or SQLBase to C++ applications.

ILOG SERVER: C++ object server implementing real-time groupware applications

ILOG SERVER is a C++ library and preprocessor for building reactive
servers of C++ objects. It offers a client-independent external
abstraction of the data, which ensures the coherence of the shared
objects. Each client: 
- has its own API (Application Programming Interface) 
- only has to be concerned with the objects it manipulates
- does not have to worry about other clients sharing the same objects 

ILOG SERVER is an extension of the SmallTalk Model View Controller (MVC)
architecture to manipulate custom C++ objects instead of fundamental data
types. Developers describe object models by annotating their header files
using about 15 predefined keywords. Once the header files have been
annotated, ILOG SERVER's C++ preprocessor automatically generates the
appropriate C++ code. 

By extending the notion of a C++ pointer as a data member, ILOG SERVER
makes it possible to easily build relationships with cardinalities 
between C++ classes that will automatically be maintained.  This 
extension to C++ supports inheritance and relationships based on smart 
pointers.

Platforms: DEC OSF/1, HP, IBM, Silicon Graphics, and Sun workstations
(both SunOS and Solaris) 

Cost: $5,000 per Unix-based development license. Preferred university
rates available upon request. Demonstration CD-ROM available 

ILOG BROKER: C++ library and preprocessor that extend the C++ language 
to transparently support Distributed Object Computing environments.  

Developers can make any existing linked C++ application distributed, by
minimally changing their header files. A set of about 15 keywords enable
ILOG BROKER's preprocessor to generate standard C++ code. 

Once the header files have been annotated, the preprocessor automatically
generates the C++ source code to build the distributed application.
Communication between objects is performed through the use of local
surrogates calling methods on the real implementation objects across a
network. The current implementation relies on RPC for the transportation
layer. ILOG BROKER annotations have also been designed to generate IDL
code for CORBA 2 specifications. 

ILOG BROKER does not impose the use of a dedicated server.  Each object 
in the distributed application can be both a client and a server to and 
for other objects, therefore providing a true peer-to-peer programming 
tool.

Platforms: DEC OSF/1, HP, IBM, Silicon Graphics,
and Sun workstations (both SunOS and Solaris)

Cost: $5,000 per Unix-based development license. Preferred university
rates available upon request. 

ILOG SOLVER: 
  is a C++ constraint reasoning library for solving complex resource
  management problems such as scheduling, configuration, and planning.

ILOG SCHEDULE:
  is an add-on library to ILOG SOLVER dedicated to solving scheduling
  problems.

ILOG RULES: 
  is a C++ tool for data monitoring in real-time environments.  ILOG
  RULES embeddable inference engine applies rules directly on native C++
  application objets.

ILOG TALK: 
  is an object-oriented dynamic language offering a seamless integration
  with C++ class libraries.

Contact:
	ILOG, Inc., 
	2105 Landings Drive, 
	Mountain View, 
	CA 94043, USA
	tel: +1 415-390-9000, 
	fax: +1 415-390-0946, 
	net: info@ilog.com.  
	url: http://www.ilog.fr

Europe:
	ILOG SA, 
	12 avenue Raspail
	BP 7  94251 Gentilly Cedex
	France
	tel: +33 1 47 40 80 00
	fax: +33 1 47 40 04 44
	net: info@ilog.fr.

Asia:
	ILOG ASIAN HEADQUARTERS
	02-05 Cintech Building
	73 Science Park Drive
	SINGAPORE 0511
	tel: +65 773 06 26
	fax: +65 773 04 39
	net: ilogsin@solomon.technet.sg
---------------------------------------------------------
ImageSoft's Object/Engineering C++ class library supports simulation.

The library provides a natural approach to solving discrete-event
simulation problems. Modularity is reinforced by implementing the
process objects as concurrent tasks. Support is provided for dynamic
systems; transaction operators; transaction messages; as well as
queuing network thread with polymorphic scheduler (timer for
discrete-event simulation; tracer for simulation run; processes
in discrete-event simulation with services delay;
conventional/unconditional blocking, pre-emption, etc.;
shared queues/links in network with LIFO, FIFO & arbitrary
queuing discipline; producing node and source; consuming node
and sink; generic queuing network nodes and servers.

And full source code is provided together with extensive
documentation, examples and tutorial. There are also an
enourmous number of other class libraries included with
source that are of interest to the scientific and engineering community.

	ImageSoft Inc.
	2 Haven Avenue
	Port Washington, NY 11050
	(516) 767-2233
	(516) 767-9067 (Fax)
	(516) 767-9074 (BBS)
	email: mcdhup!image!object
---------------------------------------------------------
POET : Object Oriented Database

POET runs on the SPARC, NeXT, DOS, MS-Windows, Novell, OS/2, and
Macintosh. Other ports are in the works. Pricing starts at about $500. 00
for the DOS version, to a little over $1000.00 for the Unix versions. 

	BKS Software
	One Kendall Square
	Suite 2200
	Cambridge, MA 02139
	Phone: 617 / 621 7047
	Fax:   617 / 621 7097

In Germany : BKS Software
             Guerickestr. 27 
             1000 Berlin 10
             Germany
             Phone: +49 30 / 342 3066
             Fax:   +49 30 / 342 8413

	BKS Software
	4633 Old Ironsides Drive
	Suite 110
	Santa Clara, CA 95054
	Tel:	408 / 748 - 3403
	Fax:	408 / 748 - 9060

European Office:
	BKS Software
	Fo_redder 12
	2000 Hamburg 67
	Germany
	Tel:	+49 40 / 60 99 011
	Fax:	+49 40 / 60 39 851
	Internet: poet@bks.de

UK Office:
	Silicon River, Ltd.
	106-108 Powis Street
	London, SE18 6LU
	England
	Tel:	+44 81 / 317 7777
	Fax:	+44 81 / 316 7778
	BBS:	+44 81 / 317 2310
	Internet:  acourt@cix.compulink.co.uk
---------------------------------------------------------
ORION/ITASCA - Object Oriented Database

	Itasca Systems, Inc.  
	2850 Metro Drive
	Suite 300
	Minneapolis, MN  55425
	Tel: 612-851-3158
	Fax: 612 851 3157

A slightly different address from another poster ...

	Itasca Systems, Inc.
	7850 Metro Parkway
	Minneapolis, Minn 55425 
	Tel: (612) 851-3155
	Technical Contact : Doug Barry (doug@itasc.com)
---------------------------------------------------------
OS Object Oriented Database

	O2 technology
	Suite 2200
	1 Kendall Square
	Cambridge MA 02139
	U.S.A.
	Tel: +1 617 621 7041
	Fax: +1 617 577 1209

France : 
	O2 Technology
	7, Rue du Parc de Clagny
	78035 Versailles Cedex
	France
	Tel: +33 1 30 84 77 91
	Fax: +33 1 30 84 77 90
	Email: o2@o2tech.fr
	Contact: Didier Plateau
	Email: didier@o2tech.fr
---------------------------------------------------------
G-BASE/GTX (MATISSE) Object Oriented Database

	ODB, an Intellitic Intl Co.
	238 Broadway
	Cambridge, MA 02139
	phone: 	(617) 354-4220
	fax:	(617) 547-5420
	e-mail: info@odb.com
	Contact: Christina Bernard, Marketing and Communications
---------------------------------------------------------
OBJECTSTORE Object Oriented Database

email address for their distributor in France: bchavonnet@elsa.fr

	Object Design
	Main office	 		 California address
	One New England Executive Park	 101 El Camino Real, Suite 300
	Burlington, MA  01803		 Menlo Park, CA 94025
	Tel: 617-270-9797              (415) 327 - 5191
	Fax: 617-270-3509

UK Office:
	Object Design (UK) Ltd.
	604 Delta Business Park
	Welton Road
	Swindon
	Wiltshire SN5 7XP
	44-793-486111
	44-793-491177 (fax)
---------------------------------------------------------
Objectivity/DB Object Oriented Database

Objectivity/DB runs on the SPARC, as well as all sun platforms, all dec
platorms (and operating systems), hp 9000 series (68k and risc), ibm risc,
sgi, and some others, all in a mixed fully distributed and heterogeneous
environment.

Objectivity Inc.
	West coast                      East coast
	800 El Camino Real		67 South Bedford Street
	Fourth Floor			Suite 400W
	Menlo Park, CA  94025		Burlington, MA 01803
	Tel: 415-688-8000		Tel: 617 229 5817
	Fax: 415-325-0939		Fax: 617 272 0558

	11050 Strathmore Dr., #316/300B
	Los Angeles, CA  90024
	(310) 208-6117
	(310) 208-5677 fax

	email: info@objy.com
	European General Manager : Remy Malan (remy@objy.com)

For Germany:
	Dr. Matthias Frei
	Micram Microelectronic GmbH & Co. KG
	Universitatsstrabe 142
	4630  Bochum
	Germany
	ph:	+49  234  97 08-304
	fax:	+49  234  97 08-301
	e-mail:	frei@micram.de

For Sweden, Norway, Finland and Denmark:
	Mr. Kjell Hegerin
	Norsys Technology AB
	Finlandsgatan 12
	Box 1239
	S-164 28 Kista
	Sweden
	phone:	+46 8 750 75 75
	fax:	+46 8 703 92 72

For The United Kingdom:

	Valbecc Object Technology Ltd.
	115 Wilmslow Road
	Handforth, Wilmslow
	Cheshire  SK9 3ER
	United Kingdom
	contact:	Fred Peel
	ph:	+44  625  539903
	fax:	+44  625  539905
---------------------------------------------------------
ONTOS Object Oriented Database

	Ontologic, Inc.
	Three Burlington Woods
	Burlington, MA  01803
	Tel: 617-272-7110
	Fax: 617-272-8101 

UK distributor:
	VALBECC SOFTWARE
	Mr. Fred Peel
	115 Wilmslow Road
	Handforth,
	Wilmslow, SK9 3ER 
	U.K.
	tel +44 625 539 903
	fax +44 625 539 905
---------------------------------------------------------
KALA Object Oriented Database

Kala(tm) is a Persistent Data Server managing distributed, shared,
arbitrarily complex and evolving persistent data. Kala is highly
efficient and secure. Kala manages the visibility of persistent data
elements to its clients, thus supporting any types of transactions,
versions, access control, security, configurations. Kala does not
restrict you to any particular model. Kala provides the mechanism, but
imposes no policy.

o Kala is available now on Sun platforms (SunOS / 68K & SPARC). A
  80x86/DOS version is now available to alpha and early beta sites.
  Ports to Windows and MacOS are also likely in the near future. Any
  port is possible as NRE.
o Kala's interface is ANSI C, also callable from C++.

	Penobscot Development Corporation
	50 Princeton Road
	Arlington, MA 02174-8253
	USA
	Tel: +1-617-646-7935
	Fax: +1-617-646-5753
	Contact: Sergiu S. Simmel
	Email: sss@world.std.com 
	Information: kala-request@world.std.com
---------------------------------------------------------
IDB Object Databases

	Persistent Data Systems
	P.O. box 38415
	Pittsburgh, PA 15238-9929
	Tel: 412-963-1846
	Fax: 412-963-1843
---------------------------------------------------------
GEMSTONE Object Oriented Database

Briefly, GemStone is a full featured OODBMS with transaction control,
multiple users, multiple platforms supported, client server architecture,
active objects (ie, behavior can occur in the database as well as in the 
application using it), multiple language support, etc.

GemStone is actually quite a bit more than just a data repository - it is a
full-fledged DBMS that is pure OO. You can access the same database just as
easily from C, C++, or SmallTalk, or you can build entire database
applications inside the database server, because it is an active server
that runs methods written in our DML, OPAL, which is a dialect of
SmallTalk. There are also high-level tools to aid application building.

	Servio Corporation
	950 Marina Village Parkway
	Suite 110
	Alameda CA 94501
	Tel: 510-814-6200
	Tel: 800-243-9369
	Fax: 510-814-6227
	Contact : marcs@slc.com

UK Office:
	Servio-UK Ltd
	Criterion House
	Beauchamp Court
	Victors Way
	Barnet
	EN5 5TZ
	England
	Tel: (81) 447-0800
---------------------------------------------------------
VERSANT Object Oriented Database

Versant markets a full-function OODBMS together with associated DBA and
application developer tools. Versant is currently available on Sun-3, Sun-4, 
IBM RS/6000, HP 9000/400,700, DEC Ultrix, SGI, NCR, NeXT and Sequent platforms. 
An OS/2 port has just been released. Other platforms will be announced soon.
A Windows/NT port is in progress.

Interfaces to 'C', 'C++' and Smalltalk-80 are supported.

	Versant Object Technology
	4500 Bohannon Drive
	Suite 200
	Menlo Park, CA  94025
	Attn: Mike Mooney
	Tel: 1-800-VERSANT
	Tel: (415) 329-7500
	Fax: (415) 325-2380
	Tel: 415-325-2300
	Fax: 415-325-2380
	Contact: Mary Foussourier
	Email:info@versant.com, 
	Email:info@osc.com
	Email:aflynn@osc.com

European Office:
	Versant Europe
	Siriusdreet 2
	P.O. Box 333
	2130 All Hoofddrop
	The Netherlands
	Tel: (31) 2503-66373
	Tel: +31 - (0)2503 - 66851
	Fax: +31 - (0)2503 - 66855

UK Distributor:
	Admiral Software Ltd
	Admiral House
	193-199 London Road
	CAMBERLEY
	Surrey GU15 3JT.
	Tel: 0276 692269
	Contact: Kevin Adams
	Contact: Clive Harris
---------------------------------------------------------
M++

M++ isn't as well known as the RogueWave math.h++ libraries, but it has
been around for many years. It has a number of features that distinguish
it from the RogueWave classes, notably improved handling of temporaries. 

M++ was explicitly designed to provide the functionality of an array
language like Matlab or Gauss and it contains the Linpack, Eispack stuff
found in RogueWave's Linpack.h++. 

Dyad Software, also sell modules written in M++ for doing statistical
work, including linear and nonlinear least squares estimation, as well as
optimization, numerical integration, and differential equations. 

	Dyad Software
	6947 Coal Creek Pkwy, Suite 361
	Renton, WA 98059-3159
	206-637-9426 (voice)
	206-637-9428 (fax)
	206-271-9486 (bbs)
---------------------------------------------------------
Financial and other class libraries

I have no product details at present)

	Greenleaf Software, Inc.
	16479 Dallas Parkway, Suite 570
	Dallas, 
	Texas 75248
---------------------------------------------------------


Other Commercial sources of C++ code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---------------------------------------------------------
The USL UNIX Toolchest is an electronic catalog for browsing and ordering
source software. This catalog provides unsupported software products,
developed within AT&T, for the commercial UNIX world. As you browse
through the online catalog, you'll find descriptions of all the tools,
complete with information on memory and disk requirements, documentation,
and license fees. 

United States and Canada, may access the Toolchest by dialing 1-908-522-
6900(e-7-1) and logging in as "guest". 

Note : The USL UNIX Toolchest is no longer marketed by USL or Novell; it
has reverted back to AT&T. The only contact info I have for it is the US
number 800-462-8146, option #2. 
---------------------------------------------------------
Checkout the ISCL CD ROM from ImageSoft, it contains the largest
collection of C++ source code ever compiled in one place. It's available
from ImageSoft ... 

	ImageSoft Inc.
	2 Haven Avenue
	Port Washington, NY 11050
	(516) 767-2233
	(516) 767-9067 (fax)
	(516) 767-9074 (bbs)
	email: mcdhup!image!iscl
---------------------------------------------------------
This is not a code CD but it has many libraries & some code (all msdos)
brought together into a CD. 

	EMS Professional Software, Specialized Software Libraries
	Baker Enterprises
	20 Ferro Drive
	Sewell, NJ 08080
	Fax: 609-582-9204
	Internet: rbakerpc@aol.com
---------------------------------------------------------

Other places to look for details of C++ librareies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The index of resources for numerical computation in C or C++.
ftp from usc.edu in pub/C-numanal/numcomp-free-c.gz
---------------------------------------------------------
comp.object FAQ
---------------------------------------------------------
comp.windows.misc portable-GUI-software FAQ
---------------------------------------------------------
ftp.th-darmstadt.de /pub/programming/languages/C++/c++-products/*
---------------------------------------------------------
ASSET is currently populating a national directory of reusable
software assets, the National Software Reuse Directory (NSRD).  The
concept is to provide a type of 'card catalogue' containing descriptions
of reusable software work products and services.

For more information on supplying listings for the NSRD, please
contact or send information to:

	National Software Reuse Directory
	c/o ASSET
	2611 Cranberry Square
	Morgantown, WV 26505
	email: nsrd@source.asset.com
	voice: (304) 594-9827

For more information on obtaining an ASSET account and accessing the
NSRD, please contact:

	ASSET Account Manager
	2611 Cranberry Square
	Morgantown, WV 26505
	email: info@source.asset.com
	voice: (304) 594-1762
---------------------------------------------------------


