Available C++ Libraries FAQ

Introduction

About the list

Here is the latest draft of the "Available C++ libraries FAQ".

This list is not exhaustive. If you are looking for a particular library, and you don't find it here, try an ordinary Web search engine (e.g. Google). If you do find a suitable library, why not use the submission form to add it to this list for the next person?

Due to the increasing size of this list, and problems with updating the automatic poster at rtfm.mit.edu, the full list is now only available on the Web (at www.trumphurst.com/cpplibs/).

Marshall Cline's C++ FAQ is available on his Web page.

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.

Please send comments, criticisms, additions and amendments to me using the forms on the Web site. 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, I recommend the newsgroups "news.announce.newusers" and "news.answers" for starters.

Added : 1995-01-01 Amended: 2008-06-26 Licensing : N/A

Comment from : Nikki Locke on 2008-06-26

I recently made major changes to the FAQ, adding forms to let people make submissions and add comments without using email. Please let me know if I screwed up anywhere.

Add a comment


Dos and don'ts - (Mostly don'ts)

  • Do not send me mail asking for help with your programming - unless you are willing to pay my normal daily rate for consultancy. Free advice is available from Usenet newsgroups like comp.lang.c++.
  • Do not ask me if there is a library to do a particular task. All the libraries I know about are in this list.
  • I do not actually have copies of the libraries in the list. I do not evaluate the libraries in the list, I just collect together information sent in by the authors or others. So it's no use asking me how good a particular library is, or, indeed, anything about them that isn't already in the list.
  • If you want me to include your library in the list, send in a submission. Do not just send in a URL, and expect me to connect to the Internet, download your Web page(s) and summarise them. That's your job.

Added : 1997-12-04 Amended: 2008-07-06 Licensing : N/A

Comment from : Nikki Locke on 2008-07-22

Big thanks go to Andrew Marlow, who has been going through the FAQ checking the URLs and various other details.

Add a comment


Adding or amending entries

Sending in a new entry

If your library isn't mentioned, or you wish to update your entry in this list, feel free to submit an entry via the Web form. 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. Or I might just ignore it, if I'm busy. It is much easier for me if you just send me an entry which is the right size to start with.

Please try to format your entry in the same way as the entries already in this list. If you wish, you may include HTML tags in your Long description text, which will make it through to the WWW version of this document. Please do not use heading levels 1-3, and please do not include any hot links in the body of the text - all links should occur at the end of the text.

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 !

Added : 1995-01-01 Amended: 2008-07-21 Licensing : N/A

Add a comment

Indexes

How to find libraries in the FAQ

The recommended way to search the database is via the index page, which accesses the database directly.

Added : 1995-01-01 Amended: 2008-07-06 Licensing : N/A

Add a comment

Libraries available to download (A-C)

ACDK - A Java-oriented C++ framework for server development

ACDK (Artefaktur Component Development Kit) is a platform-independent library for generating distributed server-based components and applications. With support for memory-managment, threading, networking and scripting (Lisp, Perl, Tcl, Java, PHP).

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • Unix
  • PC Windows

Compilers

  • Visual C++
  • GCC
  • Sun CC
  • Borland C++

Added : 2000-12-22 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

ADAPTIVE Communication Environment (ACE) - C++ IPC wrappers

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.

Added : 1995-01-01 Amended: 1997-03-19 Licensing : Not known

Add a comment

ADBLib - Database lib for Visual C 6

ADBLib.dll provides some classes and routines to develop DAO(r) database applications quickly using Microsoft Visual C 6.0, the important feature of this library is,besides the power and coding speed, you can still access DAO derived objects from your programs allowing you to accomplish complex tasks when needed. To simplify your task when creating modeless form, a simple tool ADBWizard has been added - it will automate the process of base class substitution, so that you can create forms and add them to your application very quickly.

Operating Systems

  • PC 32-bit Windows

Compilers

  • Visual C++

Added : 1999-06-04 Amended: 1999-06-04 Licensing : Shareware

Add a comment

Alcatraz - Software copy protection C++ library

Alcatraz is a C++ library that can be used to provide copy protection capabilities to an application. You can create and distribute time-locked trial versions and hardware-locked full versions of your software. Both applications and components can be copy protected. The license file is signed and encrypted to prevent tampering. A license file generation program is provided along with the library. Online help is included with the software.

Added : 1999-06-04 Amended: 1999-06-04 Licensing : Shareware

Add a comment

Amulet - User Interface Development Environment

AMULET is a user interface development environment in C++. Code written using Amulet will work with little or no changes on all platforms.

More than just another free "virtual toolkit," Amulet includes many features specifically designed to make the creation of highly-interactive, graphical, direct manipulation user interfaces significantly easier. Based on a proven earlier system, called Garnet, that was in wide use in the Lisp community, Amulet adds a number of important innovations and refinements.

Important features of Amulet include:

  • a dynamic, prototype-instance object system that makes prototyping easier
  • automatic constraint solving integrated with the object system
  • a "structured-graphics" model (also called a "display list") that handles automatic refresh of objects when the change
  • a high-level input model that makes it easy to add behaviors to objects and also supports undo and help for operations
  • a full set of flexible widgets implemented using the Amulet intrinsics, so you can easily experiment with your own widgets; and high-level interactive debugging tools. Widgets include:buttons, check boxes, radio buttons, menus, menu bars (pull-down menus), scroll bars, scrolling windows, and text input fields.
Amulet comes with complete documentation including a tutorial.

Operating Systems

  • PC 32-bit Windows
  • X Windows
  • Mac

Compilers

  • Visual C++
  • GCC
  • MetroWerks CodeWarrior
  • Object Center

Added : 1996-02-29 Amended: 1996-02-29 Licensing : Public Domain

Add a comment

APE - Portable C++ threading and sockets framework

APE is the "APE Portable Environment" and class libraries for writing portable threaded servers in C++, under UNIX (pthread) and Win32 API's. APE provides portable class abstraction for threads and sockets, and is used as a base framework for other projects. The goal of APE is to make writing threaded servers in C++ both practical and convenient, even for small and simple projects, and hence simplicity and low runtime overhead are design goals.

The 1.0.0 release of APE is available at ftp://ftp.voxilla.org/pub/ape with both source and pre-built binary packages. APE has been used not only in server applications, but also in conjunction with client class frameworks, such as QT/KDE, to offer threading and socket services. APE is licensed under the GPL with additional priviledges as annoted in the source under terms similar to Guile.

As of March 14th, 2000, the APE project was merged with the Common C++ project to form the newly introduced Common C++ portable application framework.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • FreeBSD

Compilers

  • Visual C++
  • GCC
  • Sun Workshop Pro

Added : 2000-04-26 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

Arabica - SAX2 implementation

SAX is an event-based XML processing API. Arabica is a full SAX2 implementation, including the optional interfaces and helper classes. It provides uniform SAX2 wrappers for the Expat parser, Xerces, Libxml2 and, on Windows, for the Microsoft XML parser.

The DOM is a platform- and language-neutral interface which models an XML document as a tree of nodes, defined by the W3C. Arabica implements the DOM Level 2 Core on top of the SAX layer.

XPath is a language for addressing parts of an XML document. Arabica implements XPath 1.0 over its DOM implementation.

XSLT is a language for transforming XML documents into other XML documents. Arabica builds XSLT over its XPath engine.

Arabica is written in Standard C++ and should be portable to most platforms. It is parameterised on string type. Out of the box, it can provide UTF-8 encoded std::strings or UTF-16 encoded std::wstrings, but can easily be customised for arbitrary string types.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Unix
  • PC Windows

Compilers

  • Visual C++
  • GCC

Added : 2008-08-05 Amended: 2008-08-05

Add a comment

Architector - GradSoft C++ ToolBox

This is multiplatform C++ library, which incapsulate set of common C++ programmer tasks: Threading, Logging, Parsing options and more.

Operating Systems

  • Linux
  • Sparc
  • Unix
  • PC Windows

Compilers

  • Visual C++
  • GCC
  • Sun CC

Added : 2000-12-29 Amended: 2000-12-29 Licensing : Copyright (other)

Add a comment

Arjuna - For writing fault-tolerant (distributed) applications

Arjuna provides a set of tools (C++ classes and libraries) for writing fault-tolerant distributed applications using persistent objects, atomic actions, and replication. Included in the system is a C++ stub generator (and associated RPC mechanism) which takes a C++ class definition for an object and generates client and server stub code. Using these stub classes occurs in a relatively transparent manner: the differences between a local and distributed application are typically only a single line.

The system has been ported to a wide range of architectures and C++ compilers, both by the authors and other users, and has been in use for several years.

A comprehensive manual is available with the distribution.

The system has been ported to a wide range of architectures and C++ compilers, both by the authors and other users, and has been in use for several years.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Education

Add a comment

Armadillo - Armadillo linear algebra (matrix) library

The Armadillo C++ Library aims to provide an efficient base for linear algebra operations (matrix and vector maths), while at the same time having a straightforward and easy to use interface. To keep it relatively lean, it does not aim to provide a boilerplate of functionality, such as GNU Octave. Its intended target audience is scientists and engineers. A delayed evaluation approach is employed (during compile time) in order to combine several operations into one and reduce (or eliminate) the need for temporaries. Where applicable, the order of operations is optimised. Delayed evaluation and optimisation are achieved through recursive templates and template meta-programming.

Operating Systems

  • Linux
  • Solaris
  • Unix
  • Mac
  • FreeBSD
  • FreeBSD, Darwin
  • POSIX

Compilers

  • GCC
  • CygWin
  • Any Unix C++ compiler
  • Intel C++

Added : 2008-12-09 Amended: 2008-12-09 Licensing : Open Source

Add a comment

AvlTree - C++ AVL tree class implementation

This is a C++ implementation of AVL trees. It is targeted more for teaching purposes than for efficiency.

Operating Systems

  • PC DOS
  • OS/2
  • Unix
  • PC Windows

Compilers

  • GCC
  • Cfront

Added : 1997-03-19 Amended: 2008-07-22 Licensing : Public Domain

Add a comment

Awesime - A C++ task library explicitly designed for simulation

Simulation library

Added : 1995-01-01 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

b64 - base-64 Encoding and Decoding

Simple, lightweight, library for RFC-1113 compatible base-64 encoding and decoding. The core library is written in C, with a C-API. The C++ mapping offers a flexible facade over the C-API, and is 100 per cent header-only. All code is platform-independent.

Operating Systems

  • PC 32-bit Windows
  • Unix
  • Mac

Compilers

  • Visual C++
  • GCC
  • MetroWerks CodeWarrior
  • Borland C++
  • Watcom C++
  • Intel C++
  • Digital Mars

Added : 2006-04-29 Amended: 2008-06-26 Licensing : Public Domain

Add a comment

BCGControlBar - MFC extension library

The MFC extension framework library which allows you create Microsoft® Office, Visual Studio® and Internet Explorer®-like applications with full toolbars/menus customization, docking control bars, menu bars, Office-2000 menus and more.

Operating Systems

  • PC 32-bit Windows

Compilers

  • Visual C++

Added : 2000-04-26 Amended: 2006-12-02 Licensing : Shareware

Add a comment

BIGINT - N-bit integer math class

BIGINT is an unsigned N-bit integer math class for the C++ programming language.

BIGFP is a floating point math class based on BIGINT for the C++ programming language.

Added : 1997-11-27 Amended: 2008-07-22 Licensing : Public Domain

Add a comment

Blitz++ - Scientific computing in C++

Blitz++ is a C++ class library for scientific computing which provides performance on par with Fortran 77/90. It uses template techniques to achieve high performance. The current versions provide dense arrays and vectors, and small vectors and matrices.

Operating Systems

  • Linux
  • Sparc
  • SGI Irix
  • Sun
  • Cray
  • IBM AIX
  • Solaris
  • HP UX
  • Unix
  • Dec Alpha
  • Dec Ultrix

Compilers

  • GCC
  • CRI C++ (Cray)
  • HP C++
  • KAI C++

Added : 1998-07-27 Amended: 1998-07-27 Licensing : GNU copyleft

Add a comment

Brent's univariate minimizer and zero finder.

Ref: G.Forsythe, M.Malcolm, C.Moler, Computer methods for mathematical computations. Precision - double

Obsolete - now part of the linalg package

Added : 1995-01-01 Amended: 2008-11-04 Licensing : Not known

Add a comment

BRL10 - Binary Relations Library for C/C++

Binary relations are more directly based on semantic concepts rather than on recordlike structures as traditional (relational, hierarchies, networks, object-oriented) models are.

Binary Relations tend to be more functionally complete in their information processing capability, and more precise in their semantic modelling.

The Binary Relations Approach was implemented in Binary Relations Library for C/C++. BRL is not a full featured DBMS. It does not support all ideas of the Binary Relations Approach. BRL is however a small, fast and reliable engine.

BRL provides basic tools for using binary relations in C and C++ programs.

Operating Systems

  • PC DOS
  • PC Windows
  • FreeBSD

Compilers

  • GCC
  • Borland C++

Added : 1996-11-13 Amended: 2008-07-22 Licensing : Non commercial

Add a comment

C* In C++ - Parallel Programming Classes for C++:

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

C++ implementation of differential algebra

This is temporarily unavailable while we resolve the question of whether inclusion of codes from Numerical Recipes makes distribution illegal.

Available from the netlib mailing list, in c++/mxyzptlk.shar

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

C++ Portable Components - Portable classes for network and XML development

The C++ Portable Components are a collection of class libraries for developing network-centric, portable applications in C++. The classes integrate perfectly with the C++ Standard Library and cover functionality like threads, thread synchronization, filesystem access, streams, shared libraries and class loading, sockets and network protocols (HTTP, FTP, SMTP, etc.), including an HTTP server, as well as an XML parser with SAX2 and DOM interfaces.

The C++ Portable Components are available on a variety of platforms. All major desktop and server platforms are supported, including Windows XP, Mac OS X, Linux, HP-UX, Tru64, Solaris and OpenVMS, in addition to Windows CE and POSIX-compliant embedded operating systems.

For use in open-source projects, the C++ Portable Components are available for free under an open-source license. Non open-source commercial use requires a separate license.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Sparc
  • IBM AIX
  • Dec MIPS Ultrix
  • Solaris
  • HP UX
  • Unix
  • OSF
  • Dec Alpha
  • Mac
  • Dec OSF/1

Compilers

  • Visual C++
  • GCC
  • Dec CC
  • Sun CC
  • IBM xlC
  • HP C++

Added : 2005-02-28 Amended: 2008-07-22 Licensing : Boost

Add a comment

C++ Sockets Library - Unix / Windows Socket programming made easy

When making this library, there were a few things I wanted to achieve. I did not want to end up with C++ code that had to be used in the same way as the berkeley socket C API are being used ( connect/bind/accept - check result, write - check result, read - check result, etc, etc ). Another thing was the ability to manage multiple sockets in the same thread; the library should be singlethreaded - but not limited to one thread. So.. I never wanted to manage a fd_set for a select() call ever again, no more writing code for accepting a connection - this has already been done again and again in every single networking project ever made.

One decision made early on was to treat one socket as one object. And so was the Socket class born. The socket class, by itself, has all the functions needed for address translation (hostname to ip, ip to hostname etc). It owns the file descriptor / SOCKET handle. But it can't do anything. Code for actually doing something with the socket is implemented in other, Socket derived classes.

Operating Systems

  • PC 32-bit Windows
  • Unix

Compilers

  • GCC
  • Visual C++ 6
  • Microsoft .NET

Added : 2005-01-31 Amended: 2005-02-01 Licensing : GNU copyleft

Add a comment

C++/Tcl - A library for integration between C++ and Tcl.

C++/Tcl is a library that allows to easily integrate C++ and Tcl.

It provides the following features:

  1. Support for both extending Tcl with C++ modules and embedding Tcl in C++ applications.
  2. Possibility to expose free C++ functions as commands in Tcl.
  3. Possibility to define classes and class member functions, visible in Tcl in the style similar to SWIG wrappers.
  4. Possibility to manipulate Tcl lists and objects from the C++ code.

Operating Systems

  • Platform-independent

Compilers

  • Compiler independent

Added : 2004-11-24 Amended: 2008-07-22 Licensing : Open Source

Add a comment

C++/Tk - A complete interface to the Tk GUI toolkit.

C++/Tk is a complete C++ interface to the popular Tk GUI toolkit, known from many scripting languages, like Tcl, Python or Perl. The C++/Tk library uses templates and operator overloading to achieve syntactic similarity to Tcl/Tk code.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Unix
  • X Windows
  • Mac

Compilers

  • Visual C++
  • GCC

Added : 2004-11-08 Amended: 2008-07-22 Licensing : Open Source

Add a comment

C++Advio - Advanced i/o, Networking, and Arithmetic Compression

A set of classes (C++ streams) that perform:
  • a variable-bit coding of sequences of integers (including Arithmetic compression ),
  • a trick of sharing a stream buffer (a "file") among several streams,
  • handling of extended file names, e.g.,
    EndianOut stream("| compress > /tmp/aa.Z");
    FILE * fp = fopen("tcp://localhost:7","r");
    fstream fp("| cat | cat",ios::in|ios::out);
  • explicit endian specification in dealing with integer streams
  • TCP streams
  • TCP transactor, a shell RPC-like tool
  • a primitive Logging service
  • a Vocabulary package, (poly/homo)morphic dictionaries with a dynamic "inheritance" path, an embedded OO system

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • HP UX
  • Mac
  • FreeBSD
  • BeOS

Compilers

  • Visual C++
  • GCC
  • MetroWerks CodeWarrior

Added : 1996-05-22 Amended: 2000-04-26 Licensing : Public Domain

Add a comment

C++SIM 1.5.2 - 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, and there is support for a variety of statistics gathering classes.

The simulation package requires the use of a threads package and currently only works with the following:

  • Sun's lwp threads and Solaris threads
  • C++ task library
  • NT threads
  • Posix threads
  • cthreads
  • Rex threads
It has been build on a number of different architectures and C++ compilers, and porting to other systems should be relatively easy.

Added : 1995-01-01 Amended: 1997-03-19 Licensing : Education

Add a comment

C/C++ cyclic logs - Record log information

Cyclic logs provide a platform-independent way for a server to record stdout and stderr such that the most recent information can be retained in a logfile without such logfiles growing in size such that they might fill the disk up. A cyclic log has a fixed size upon creation and a structure that allows older data to be overwritten on the arrival of new data to be logged.

It consists of a C++ library, a C library, a set of commands and a user manual.

It is released under the GPL license.

Operating Systems

  • Linux
  • Solaris
  • PC Windows

Compilers

  • Any standard C++ compiler

Added : 2008-07-22 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

CalcPlus - Interpreter of procedural language

The CalcPlus library is the C++ class library which provides an ability to use your own programming language built into C++ project. Any algorithm or any constant needed by application can be carried out into the special file, when process comes to the key point, it calls function or procedure stored in the text file. Interpreter runs the function and process returns back to C++ code. Library contains the interpreter which understands simple nameless procedural language. Bi-directional communication between C++ and the code for interpreter available.

Version of the language that comes with the library allows to use functions, procedures, blocks, preprocessor, global and local variables and constants, if/for/while statements. Each variable can have value of type: nil, bool, long, float, string, date. Type definitions and arrays are allowed. Functions and procedures may be recursive. New functions written in C++ may be easily added to the language. Syntax of the language can be modified by changing YACC rules. Interpreter is fast enough and may be helpful for many tasks.

Platform independent, YACC required.

Operating Systems

  • PC DOS
  • SCO Unix 3.2.4
  • Sun

Compilers

  • Visual C++
  • GCC
  • Borland C++
  • Watcom C++
  • Sparcworks

Added : 1996-05-22 Amended: 1996-05-22 Licensing : Shareware

Add a comment

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

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.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Non commercial

Add a comment

CCL110JE.ZIP - Coroutine class library

DOS PC/Borland C++ specific.

Operating Systems

  • PC DOS

Compilers

  • Borland C++

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

CDBFile - C++ library to handle dBASE III files

CDBFile is a C++ object-oriented package for programmers who need to manipulate dBASE III files in their programs. It enables you to perform many operations on an existing DBF file: reading/writing to it, accessing its values, sorting the records, adding/deleting records, etc. It comes with full text and postscript documentation, and commented source code. A demonstration program, TestDBF, shows the various possibilities of the CDBFile library, and its source file, testdbf.cpp, demonstrates how to implement CDBFile within a program. CDBFile was designed to be as portable as possible: you should be able to compile it under "as is" any DOS/Windows C++ compiler; porting it to Un*x/Linux should also require little effort.

Since CDBFile is distributed under the GNU Public License for libraries, I hope that programmers will like it and suggest or implement enhance- ments and additional features to that piece of software.

Operating Systems

  • PC DOS
  • PC Windows

Added : 1997-03-19 Amended: 1997-03-19 Licensing : GNU copyleft

Add a comment

CGAL - Computational Geometry Algorithms Library

CGAL - the Computational Geometry Algorithms Library - is a C++ software library of geometric data structures and algorithms. The CGAL library contains:
  • Basic geometric primitives such as points, vectors, lines, predicates such as for relative positions of points, and operations such as intersections and distance calculation.
  • A collection of standard data structures and geometric algorithms, such as convex hull, (Delaunay) triangulation, planar map, polyhedron, smallest enclosing circle, and multidimensional query structures.
  • Interfaces to other packages, e.g. for visualisation, and I/O, and other support facilities.
More functionality is being developed, and will be incorporated in successive releases.

The product is also available commercially.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • SGI Irix
  • Solaris

Compilers

  • Visual C++
  • GCC
  • SGI CC
  • Borland C++
  • KAI C++

Added : 1998-12-03 Amended: 2001-10-25 Licensing : Education

Add a comment

CGI++ - A C++ Library for CGI Programming

CGI++ combines an easy and intuitive 'look and feel' with a powerful and rich object-oriented implementation. Features include:
  • Full support for CGI/1.1 and HTTP/1.0 (the current standards)
  • Support for Netscape's Cookie and File Upload features.
  • Support for new HTTP/1.1 methods PUT, GET, OPTIONS and TRACE, in addition to GET, HEAD and POST.
  • Intelligent parsing of HTTP/1.0 and HTTP/1.1 Headers.
  • Clean and elegant methods for reading and rendering form elements, and for preserving state, based on a deep object-oriented hierarchy. Powerful interactive debugging mode.
  • Highly-automated and safe memory management.

Shareware. Distributed as source code; modification permitted Free download/unlimited trial; license payable for installation on a WWW or Intranet server. Developer arrangements available for products incorporating the Library.

Nick Kew is also author and keeper of the CGI programming FAQ - archived as /www/cgi-faq at RTFM.

Jeff Garzik alleges it doesn't compile under GCC 2.8 or later, nor egcs.

Operating Systems

  • Unix

Compilers

  • GCC

Added : 1997-03-19 Amended: 1998-12-03 Licensing : Shareware

Add a comment

Cgipp - Very Portable and powerful CGI-Library

Cgipp is a small class library which eases the creation of applications for the World Wide Web, and gives you an easy but powerful interface to the CGI interface which will increase your productivity when writing CGI-applications. The Cgipp also provides a class to ease your creation of HTML-pages which can be used as any ostream.

The library is highly portable, and can be used with no problems on any unix-system using gcc/g++, and has also been tested with SGI C++ and Sun CC. The library has also been succesfully ported to PCs (both 16-bit DOS and 32-bit DOS/Windows).

Operating Systems

  • PC DOS
  • Linux
  • PC 32-bit Windows
  • SGI Irix
  • Sun
  • Solaris
  • Unix
  • SYSV
  • Dec Alpha
  • PC Windows

Compilers

  • GCC
  • SGI CC
  • Sun CC
  • Borland C++

Added : 1997-11-27 Amended: 2004-09-10 Licensing : Public Domain

Add a comment

ClassBuilder - ClassBuilder 1.1 OOD C++ code generator

ClassBuilder is an Object Oriented C++ front end to your compiler. It lets you create, manipulate and navigate classes, class relations, class members and class methods at a high level of abstraction trough a graphical user interface. Features include:
  • Full code generation for the defined relations and their associated find methods.
  • Wizards to insert code, like iteration loops and navigation paths.
  • Code synchronization with compile environment.
  • Full code generation for serializing the complete data model when used together with MFC. (The tool is build with itself and uses this feature to save to and read from file).
  • Drag and drop support for many things. Adding a member to a class is just drag with holding down the Ctrl-key and then drop it on the desired class.
  • Documentation generation in RTF and HTML.

Added : 1998-07-22 Amended: 1998-07-22 Licensing : Demo

Add a comment

CLN - a Class Library for Numbers

CLN is a library for computations with all kinds of numbers. It has a rich set of number classes, including integers (with unlimited precision), reals with various precisions (including unlimited), rationals, complex numbers and polynomials. The kernel is written in assembly language, in addition it can easily be configured to use the superefficient GNU MP low-level functions. CLN uses garbage collection (automatic, without imposing any burden on the main application). Many extremely efficient algorithms (i.e. for all transcendental functions) are implemented.

Operating Systems

  • Linux
  • Solaris
  • Unix
  • Irix

Compilers

  • GCC

Added : 2001-01-31 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

CMATH - Complex-number math library for Borland C/C++

CMATH is a comprehensive library for complex-number arithmetics and mathematics. In contrast to C++-written complex class libraries, this true Assembler implementation ensures superior computational efficiency, mathematical accuracy and safety. All functions exist in two alternative forms:
  1. a C++ form with overloaded function names, like sin, exp, operator /;
  2. a plain-C form with data-type specific function names, like cf_sin, cd_exp, ce_div, where the prefix determines the level of accuracy (complex float, double, or extended).

Changes: The necessary adjustments have been made for CMATH to work with the new version 4 of BCBuilder, while maintaining compatibility with the older BC++ versions. Slight improvements with respect to speed and accuracy have also been made for the forward and inverse trigonometric functions.

Operating Systems

  • PC

Compilers

  • Borland C++

Added : 1998-07-24 Amended: 1999-06-04 Licensing : Shareware

Add a comment

CmdLine - command-line option and argument parsing framework

CmdLine is a full-featured C++ class framework for parsing options and arguments from the command line. Abstract and concrete classes are provided for the command-line, options, arguments, and argument iterators, and the user may add their own specialized argument/option types using subclasses.

Operating Systems

  • PC DOS
  • OS/2
  • Unix
  • PC Windows

Compilers

  • GCC
  • Cfront
  • Borland C++

Added : 1997-03-19 Amended: 1997-03-19 Licensing : Copyrighted freeware

Comment from : Nikki Locke on 2008-07-21

I understand this library is obsolete. However, TCLAP does the same kind of thing.

Add a comment


CNCL - ComNets Class Library

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.
  • Persistent objects.
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.

Operating Systems

  • Linux
  • Sun
  • Solaris
  • HP UX

Compilers

  • GCC

Added : 1995-01-01 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

ColDet - 3D Collision Detection Library

This library is an effort to provide a free collision detection library for generic polyhedra. Its purpose is mainly for 3D games where accurate detection is needed between two non-simple objects.

Features:

  • Works on any model, even polygon soups.
  • Fully Portable.  Compiles on windows compilers (VC, BCB) and recent versions of g++ on any platform.
  • Uses bounding box hierarchies for fast detection.
  • Uses additional triangle intersection tests for 100 per cent accuracy.
  • Provides (upon request) exact point of collision, plus the pair of triangles that collided.
  • Supports timeout setting, to limit detection time.
  • Ray-Model collision test.
  • Segment-Model collision test.
  • Sphere-Model collision test.
  • Ray-Sphere and Sphere-Sphere primitive collision tests.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Mac
  • Cross platform, should work on any.

Compilers

  • Visual C++
  • GCC
  • MetroWerks CodeWarrior
  • Borland C++
  • Any standard C++ compiler

Added : 2001-01-10 Amended: 2001-01-10 Licensing : GNU copyleft

Add a comment

Common C++ - A GNU Portable Application Framework

Common C++ is a C++ framework offering portable support for threading, sockets, file access, deamons, persistance, and system services, initially started by David Sugar and Daniel Silverstone. Common C++ is a GNU package and is licensed to the terms of the GNU GPL with specific privileges similar to Guile. Common C++ offers support and portable classes for threading and sockets for both UNIX (Posix systems with "pthread" support) and the Windows "Win32" API. Common C++ uses extensive autoconf macro sets for automatic detection of various levels of "pthread compliance" in your target platform and attempts to adjust itself appropriately. Common C++ has been tested to date with GNU/Linux, FreeBSD, Solaris, and DEC Tru64 Unix. HP/UX has also been tried and found not to be successfully supported at this time.

While Common C++ is not directly related to GNU portable threading (GNU Pth), it should work with the Pth "pthread emulation" library at present. Common C++ will become usable as a class framework for GNU Pth directly in future releases.

The primary goal of Common C++ is to promote a very low overhead abstract C++ interface to common system services. Consistent with this goal, and the desire for broad portability with wide compiler support, specific aspects and practices in C++ programming were selected when writing code in this package, and other practices were discarded that seemed to detract from this goal.

Operating Systems

  • Linux
  • Solaris
  • FreeBSD
  • Dec Tru64

Compilers

  • GCC

Added : 2003-12-15 Amended: 2008-07-22 Licensing : GNU copyleft

    Common C++ - A GNU Portable Application Framework
  • Home page
  • Author:David Sugar and Daniel Silverstone
Add a comment

Complex class - Very complete complex generic class

The Complex Library gives you the possibility to do complex arithmetic as simply as real arithmetic in your C++ sources. The class Complex is designed with generic code, allowing you to do single or double floating point arithmetic (default is double). All the algorithms favour numerical stability first and speed secondly. You can download the postscript documentation complex.ps.gz [40 Ko] alone or dowload the complete package (including the documentation) complex.tgz. [47 Ko]

Operating Systems

  • Linux
  • Sparc
  • Sun
  • IBM AIX
  • Solaris
  • Unix
  • X Windows

Compilers

  • GCC
  • Sun CC

Added : 1997-11-27 Amended: 1997-11-27 Licensing : Public Domain

Add a comment

Conical - C++ classes for building neural networks

CONICAL is a cross-platform library of C++ classes for building biologically realistic simulations of neurons or small neural networks. Its capabilities are similar to large Unix-based packages such as GENESIS and NEURON, but produces simulations which are smaller, faster, and easily imbedded in other applications.

CONICAL is still under development, but documentation is fairly complete and includes both introductory material and demo programs.

Operating Systems

  • PC DOS
  • Unix
  • PC Windows
  • Mac

Compilers

  • GCC
  • MetroWerks CodeWarrior
  • Borland C++

Added : 1996-07-30 Amended: 2001-04-02 Licensing : Education

Add a comment

CSLIB - Database library for C++ developers

A series of C++ classes in combination with a program generator is used to build databases with automatically updated indexes, access to fields, support for DATE fields, exporting to dBASE and so on. It also contains classes for variable-length records, virtual heaps, btrees etc. Some helpful utilities are included as well. CSLIB produces stand-alone executables. It is NOT just an interface to some central database server.

Evaluation version.

Operating Systems

  • PC DOS
  • Linux
  • OS/2
  • PC Windows

Compilers

  • Visual C++
  • GCC
  • Borland C++
  • Watcom C++

Added : 1997-03-19 Amended: 1997-03-19 Licensing : Not known

Add a comment

cURLpp - C++ interface for C libcurl

cURLpp is a C++wrapper of libcurl. About libcurl. libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more!

Operating Systems

  • All platforms that support ANSI C++ and PThreads

Compilers

  • Any standard C++ compiler

Added : 2008-12-05 Amended: 2008-12-05

Add a comment

Cvmath.cc - An include file to make complex math look like regular math.

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.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

Libraries available to download (D-L)

DaoLib - Static library for C++ DAO database access

DaoLib v2.0 provides a communication layer between user interface elements and underlying database objects. It consists of a complete COM proxy wrapper, a set of DAO/GUI classes and a list control dialog component. The Visual C++ developer can take advantage of its simple interface for building dialog-intensive and property sheet-intensive database applications, without the burden and overhead of the MFC DAO implementation. In addition, it provides automatic recordset listing with sorting facilities and complete printing support.

Operating Systems

  • PC 32-bit Windows

Compilers

  • Visual C++

Added : 1999-06-04 Amended: 1999-06-04 Licensing : Shareware

Add a comment

Depression Glass Debug Library - DGD

Depression Glass Debug (DGD) is simple, easy to use C++ ostream extension for debugging output. DGD is created with a goal to produce nice, readable and easy to understand trace logs.

Operating Systems

  • Linux
  • PC 32-bit Windows

Compilers

  • Visual C++
  • GCC

Added : 2003-04-09 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

Developer - Smart Pointers

smart_ptr is a smart pointer policy class that can use different ownership logic and semantic polices, which allows the developer to get the best performance and/or interface for a particular requirement.

The smart_ptr class can be used with STL containers to create containers of smart pointers, moreover it can be used to create a container of abstract based objects via smart_ptr. In general, smart_ptr is faster than boost::shared_ptr. When used with STL containers, the smart pointer is faster than the boost pointer containers, and more generic.

Operating Systems

  • PC DOS
  • Linux
  • PC 32-bit Windows
  • Sun
  • IBM AIX
  • Solaris
  • HP UX
  • OS/2
  • Unix
  • Dec Alpha
  • PC Windows
  • Dec OSF/1

Compilers

  • Visual C++
  • GCC
  • Dec CC
  • IBM xlC
  • Borland C++
  • HP C++

Added : 2006-03-14 Amended: 2006-03-14 Licensing : Public Domain

Add a comment

Developer - EzLogger

EzLogger is a C++ logging library that can easily be added to an implementation. It can be used with both C++ style stream operators and C style printf functions.

Operating Systems

  • PC DOS
  • Linux
  • PC 32-bit Windows
  • Sun
  • IBM AIX
  • Solaris
  • HP UX
  • OS/2
  • Unix
  • Dec Alpha
  • PC Windows
  • Dec OSF/1

Compilers

  • Visual C++
  • GCC
  • Dec CC
  • IBM xlC
  • Borland C++
  • HP C++

Added : 2006-03-14 Amended: 2006-03-14 Licensing : Public Domain

Add a comment

DiamondBase - Add Relational Database functionality to your C++ programs

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. It comes with a 47 page manual.

Operating Systems

  • OS/2
  • Unix

Compilers

  • GCC
  • Cfront
  • Borland C++

Added : 1995-01-01 Amended: 2008-07-22 Licensing : Not known

Add a comment

Dinkum Compleat Library - Standard C++, C99, and Embedded C++

The Dinkum Compleat Library combines our popular C/C++ libraries in one highly portable and flexible package. You get: -- the Dinkum C++ Library, the only library that fully conforms to ISO 14882:1998, as corrected through 2003, including support for export templates -- the Dinkum C99 Library, conforming to ISO 9899:1998, as corrected through 2003, even on compilers that don't fully support C99 -- C++ library TR1, the only complete implementation of C++ TR19768 -- the libraries mandated by all other C and C++ TRs, including C TR18037 (fixed-point arithmetic for DSPs) and C TR19768 (UTF-16 and UTF-32 data types) -- the Dinkum EC++ Library, the only add-on library that conforms to the EC++ Technical Committee specification -- the Dinkum Abridged Library, which combines EC++ with the STL portion of our C++ library -- a portable multithreading library compatible with boost.threads in C++ and with Posix pthreads in C -- a number of memory allocators for STL node-based containers, offering a variety of memory-management strategies and multithreading options -- dozens of conversions between Unicode and popular multibyte character encodings, including Chinese, Japanese, and Korean large character sets -- common extensions to the Standard C and C++ libraries to simplify adapting code written for Linux, Unix, Windows, and pre-standard dialects -- dozens of C locales to adapt to all major American and European cultures The library can be built from source code for use with a native C library, with ``safe iterator'' debugging enabled, and with exceptions disabled. It has been tested extensively on most popular compilers. It is available in both source, with ongoing support, and binary packages, for all current versions of Microsoft VC++, eVC++, and GCC. Each package includes online references in HTML. You can browse the references, and compile test programs against the library, at our web site. Compilers Current versions of Microsoft VC++ and eVC++ (V6 through V8) Current versions of GCC (V3.x and V4.x) Compilers with Edison Design Group front end

Compilers

  • Visual C++
  • GCC
  • Visual C++ 6
  • Visual C++ .NET

Added : 2006-07-03 Amended: 2006-07-03 Licensing : Commercial

Add a comment

dlib C++ library - A portable C++ toolkit

This is a C++ library of portable sockets, threading, GUI, and directory browsing APIs as well as many container classes and other items such as a big integer, a log4j style logger, arithmetic coder, other compression related classes and much more.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • Unix
  • X Windows
  • PC Windows
  • Mac

Compilers

  • Visual C++
  • GCC
  • Borland C++

Added : 2006-12-21 Amended: 2006-12-21 Licensing : Copyright (other)

Add a comment

Doctor Matrix - Matrix and vector algebra package for C++

Doctor Matrix is a matrix and vector algebra package for C++. It allows the C++ programmer to perform calculations on matrices and vectors within C++ programs. Over 50 functions are supported, including ranking, determinant calculation, matrix addition and multiplication, inversion, and more. Comprehensive documentation provides instructions for use of all functions and mathematical definitions of their purpose. Shareware version is limited to DOS programming in Borland C++ and for Tiny or Small memory models.

Special requirements: The Shareware version supports compilation only under Tiny or Small memory models. Borland C++ compiler recommended.

Operating Systems

  • PC DOS

Compilers

  • Borland C++

Added : 1997-03-19 Amended: 1997-03-19 Licensing : Shareware

Add a comment

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.

Operating Systems

  • PC DOS

Compilers

  • Borland C++
  • Zortech C++

Added : 1995-01-01 Amended: 2008-07-22 Licensing : Non commercial

Add a comment

Drat - A C++ interface to the curses library

Drat contains several classes for interfacing with the UNIX curses library, including menus with callback's, and other common forms.

Added : 1996-02-05 Amended: 2006-12-02 Licensing : Not known

Comment from : Matthew Chaplain on 2009-07-02

Dead link.

Add a comment


EO - Evolutionary computation library

EO (Evolvable|Evolutionary objects) is a C++ toolbox for evolutionary computation which defines interfaces for many classes of algorithms used in evolutionary computation, and, at the same time, provides some examples that use those interfaces. The client/user can include those objects in his or her programs, or create their own. If new objects are created, the GeNeura team commit themselves to test them, and make them available to the Evolutionary Computation community. In this way, no changes have to be made to the library design or to a program that implements an EC algorithm: just new classes added. Our intention would be that, in the future, somebody implementing an EC algorithm would say "I am using EO, plus a class that hs been made publicly available", improving repeatability of EC results and easing its availability.

It contains classes for any kind of evolutionary computation you might come up to, except maybe genetic programming. Here are its features

  • Chromosomes: Can be defined by the user; binary, floating point and string are provided. All algorithms defined work on all kind of chromosomes.
  • Genetic operators: Can be defined by the user. Several floating point, bitstring, and generic operators are defined, like mutation, crossover, and things like that.
  • Selection/elimination procedure: Can be defined by the user. Steady-State and rank-based are provided.
  • Reproduction procedure: Can be user defined (I'll skip that from now on, but everything can be user-defined). Random and rank-based are provided.
  • Termination conditions: (user-definable) fitness and generation-based.
  • Algorithms: Easy Ga, SimpleGA and simulated annealing with user-definable cooling schedule.
  • Some utilities: command-line parsing, random-number generations
  • Examples: examples that test all features, plus genetic mastermind.
  • User interface: an example that uses gtk is provided
  • Documentation in html.

RELEASES:

New releases are made almost every day. Check at the site. Probably, cvs access will be provided in the future.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • Irix

Compilers

  • Visual C++
  • GCC
  • CygWin

Added : 1998-07-24 Amended: 2008-07-22 Licensing : Copyrighted freeware

Add a comment

Fast Light Toolkit - GNU LGPL GUI toolkit for X11 and Windows

FLTK (pronounced "fulltick") is a LGPL C++ graphical user interface toolkit for X (UNIX®), OpenGL, and WIN32 (Microsoft® Windows® NT 4.0, 95, or 98). It is currently maintained by a small group of developers across the world with a central repository in the US.

FLTK was originally created to build in-house applications at Digital Domain for image processing and 3D graphics. The original author, Bill Spitzak, received permission from Digital Domain to release it to the public domain in the hopes that it could be used to make better, faster, and nicer-looking UNIX programs. Digital Domain has since withdrawn support for FLTK, but Bill is still able to work o!n it from time to time. FLTK was designed to be small and modular enough to be statically linked. FLTK also works fine as a shared library and has started being included on Linux distributions.

Here are some of the core features unique to FLTK:

  • sizeof(Fl_Widget) == 40 to 48
  • The "core" (the "hello" program compiled & linked with a static FLTK library using gcc on a 486 and then stripped) is 110k.
  • The FLUID program (which includes every widget) is 372k.
  • Does not use macros, templates, multiple inheritance, or exceptions.
  • Written directly atop Xlib (or the WIN32 API) for maximum speed, and carefully optimized for code size and performance.
  • Precise low-level compatibility between the X and Windows version (only about 10% of the code is different).
  • Interactive user interface builder program. Output is human-readable and editable C++ source code.
  • Support for overlay hardware (emulation if none and under Windows)
  • Very small & fast portable 2-D drawing library to hide Xlib and WIN32
  • OpenGL/Mesa drawing area widget
  • Support for OpenGL overlay hardware on both X and Windows. Emulation if none.
  • Text input fields with Emacs key bindings, cut & paste, and foreign letter compose!
  • Compatability header file for the GLUT library
  • Compatability header file for the XForms library

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Sparc
  • SGI Irix
  • IBM AIX
  • Solaris
  • HP UX
  • OS/2
  • Unix
  • X Windows
  • SYSV
  • Dec Alpha
  • SCO Open Desktop
  • Unisys Unixware
  • Dec OSF/1

Compilers

  • Visual C++
  • GCC
  • Sun CC
  • IBM xlC
  • SGI NCC
  • MetroWerks CodeWarrior
  • Borland C++
  • HP C++
  • Any standard C++ compiler

Added : 2000-04-26 Amended: 2000-04-26 Licensing : GNU copyleft

    Fast Light Toolkit - GNU LGPL GUI toolkit for X11 and Windows
  • FLTK Home Page
  • Submitted by:mike@easysw.com
Add a comment

FastFormat - 100% type-safe, infinitely extensible, very high performance C++ format library

FastFormat is an open source C++ formatting library, whose design parameters are 100% type-safety, efficiency, and flexibility. It is simple to use, highly-portable (platform and compiler-independent), and is infinitely extensible.

FastFormat supports output/formatting of statements of arbitrary complexity, consisting of heterogeneous types. It provides two APIs:

  • Format: provides replacement-based formatting, like Streams (printf()-family), Boost.Format()
  • Write: provides concatenation-based formatting, like IOStreams

FastFormat writes to output "sinks", which can be of arbitrary type. It implicitly supports any type that is structurally conformant with the standard library's string, and the library includes adaptors to allow writing to:

  • std::ostream
  • FILE*
  • STLSoft's auto_buffer
  • C-style string buffers and character buffers
  • ACE's ACE_String
  • ATL's CComBSTR
  • MFC's CString
  • std::stringstream
  • speech (currently Windows-only)
  • Windows' OutputDebugString()
  • Windows' MessageBox()
Adaptation to a new type requires the definition of a single function.

FastFormat is robust. Both APIs are 100% type-safe - something no other C/C++ widely-used formatting library can claim - and with the Write API it is impossible to compile defective code.

FastFormat is fast. The processing of each statement involves at most one memory allocation to hold the entire statement, and each statement element is measured and copied exactly once. As a consequence, the library is on a par with (the type-unsafe) C's Streams (printf()-family) of functions, faster than C++'s IOStreams (by 2-10x) and Loki.SafeFormat (by 1-5x), and considerably faster than Boost.Format (by 5-17x).

FastFormat supports I18N/L10N by using numbered arguments, enabling reordering of arguments by exchanging format strings. The library comes with a number of resource bundles, classes whose instances can load sets of localised resource strings for use as format strings.

FastFormat does not contain any compiler-specific or platform-specific constructs. It supports UNIX (including Linux and Mac OS-X), and Windows, and should work with any operating system. It is known to be compatible with Comeau (4.3.3+), GCC (3.4+), Intel (8+), Metrowerks (8+), Microsoft Visual C++ (6.0+), and should work with any reasonably modern C++ compiler.

FastFormat is completely free and includes source released under a BSD-style license. Commercial customisations and related consultancy are provided by Synesis Software.

FastFormat features in a series of articles in ACCU's peer-reviewed Overload magazine:

  • An Introduction to FastFormat, part 1: The State of the Art, Matthew Wilson, Overload #89, February 2009
  • An Introduction to FastFormat, part 2: Custom Argument and Sink Types, Matthew Wilson, Overload #90, April 2009
  • An Introduction to FastFormat, part 3: Solving Real Problems, Quickly, Matthew Wilson, Overload #91, June 2009

Examples:

  • Emulate Streams' ability to specify widths:

      printf("[%-10d, %10d]\n", 123, -456);

      fastformat::fmtln(std::cout, "[{0,10,,<}, {1,10}]", 123, -456);

    Both produce the output:

      [123       ,       -456]

  • Handle heterogeneous types:

      struct connection_t
      {
        std::string     connectionId;
        struct in_addr  remoteAddress;
        struct in_addr  localAddress;
        unsigned short  port;
        unsigned long   numBytesTransferred;
        struct tm       completionTime;
      };

      void log_connection(connection_t const& conn)
      {
        fastformat::fmtln(
          std::cout
        , "{0} {5} {1} {2} {3} {4}"
        , conn.connectionId
        , conn.remoteAddress
        , conn.localAddress
        , conn.port
        , conn.numBytesTransferred
        , conn.completionTime
      );
      }


    Produces output like:

      channel-1 May 03 03:50:41 2009 192.168.160.247 127.0.0.1 5651 102401

  • Emulate Boost.Format's absolute tabulations (with a little indirection):

      std::cout
          << boost::format("%1% %2%, %|20t|lives at %3%\n")
              % "Mr"
              % "Smith"
              % "the Smith residence"
          << std::endl;


      std::string scratch;

      fastformat::fmtln(
          std::cout
      ,   "{0,20,,<}lives at {1}"
      ,   fastformat::fmt(
              scratch
          ,   "{0} {1}, "
          ,   "Mr"
          ,   "Smith"
          )
      ,   "the Smith residence"
      );


    Both produce the output:

      Mr Smith,           lives at the Smith residence

Performance:

FastFormat's performance has been extensively tested, and in every case it has superior performance to the C++ standard library's IOStreams, Boost.Format and Loki.SafeFormat. In most cases it has equivalent performance to the (type-unsafe) C standard library's Streams (printf()-family). Test results are included on the project website, and in the first in the Overload article series; the third article in the series has a further set of four performance tests, based on real-world uses of FastFormat in commercial projects.

Features:

  • 100% type-safe
  • Presents a natural syntax
  • Infinitely extensible
  • Highly-efficient:
    • no intermediate memory allocations
    • no intermediate string copying
    • no repetition of any string-length calculations
    • at most one allocation required to produce the resultant string
  • Verified with Borland, Metrowerks' CodeWarrior, Digital Mars, GCC, Intel, and Visual C++ compilers
  • Verified on Linux, Mac OS-X, and Windows

Requirements:

    STLSoft libraries (1.9.1 beta 81 or later); 100% header-only open-source.

Operating Systems

  • All platforms that support ANSI C++ and PThreads

Compilers

  • Visual C++
  • GCC
  • Borland C++
  • Any after making small changes...
  • Intel C++
  • Comeau
  • Digital Mars

Added : 2009-05-11 Amended: 2009-05-11

Add a comment

FCE - Ftp Client Engine Library for C/C++

FTP Client Engine (FCE) Library for C/C++ Win16 & Win32 DLLs v1.1, [ASP]. The FCE can connect to any FTP server and navigate its directory structure, list files, download files, delete files, and upload files all from within your application. Requires Windows C/C++ compiler. By MarshallSoft Computing.

Operating Systems

  • PC Windows

Added : 1999-06-21 Amended: 1999-06-21 Licensing : Shareware

Add a comment

FEMTown - Open-Source Multi-Physics Finite Element Framework

FEMTown is designed to solve partial differential equations (PDE) using spatial finite-element discretizations. FEMTown provides

  1. an extensive library of elements,
  2. variable interpolation schemes (p-adaptivity),
  3. shape-function calculations,
  4. numerical integration,
  5. sparse and dense matrix manipulations,
  6. assembly routines,
  7. numerical solvers,
  8. exchange of common file formats

<h4>Applications</h4> FEMTown also includes open-source end-user applications:

  1. contribution calculations for acoustics and
  2. visco-elastic materials.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Sparc
  • SGI Irix
  • Sun
  • Cray
  • IBM AIX
  • Solaris
  • HP UX
  • Unix
  • Convex
  • Dec Alpha
  • PC Windows
  • NEC, Fujitsu, Hitachi

Compilers

  • Visual C++
  • GCC
  • Dec CC
  • SGI CC
  • Sun CC
  • IBM xlC
  • SGI NCC
  • HP C++

Added : 2001-09-28 Amended: 2001-09-28 Licensing : Public Domain

Add a comment

FFTPACK++ - C++ version of FFTPACK

FFT_Pack is a C++ wrapper for FFTPACK complex routines using LAPACK++ Matrix and Vector classes. FFTPACK routines were converted to C using f2c and also modified to use double precision complex using -r8 to f2c.

Most of this code was lifted directly from GNU OCTAVE v1.1.0, hence the copyright notice at the top.

The forward FFT takes you to freq domain (ala direction == -1), and backward the other way.

Passing LaVectorComplex/Double or LaGenMatComplex/Double with one dimension set to 1 will implicitly perform 1D FFT on the data.

The members of the FFT_Pack class are declared static, since they really need no private member storage. There are two types of transform routines: ones that return a new complex matrix and the ones that change the matrix in place.

The original FFTPACK does not appear to be available any more, but I found the link below to a different (possibly improved) version.

Compilers

  • GCC
  • Cfront

Added : 1995-01-01 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

FFTW - Fast C library for computing the Fast Fourier Transform (FFT)

FFTW is a C library for performing the FFT in one or more dimensions. It also includes real-complex and parallel transforms. In our benchmarks, FFTW compares favorably to other portable codes for most platforms and transform sizes, and is often competitive with vendor-tuned libraries for specific machines.

Operating Systems

  • Platform-independent

Added : 1997-11-27 Amended: 1999-06-21 Licensing : GNU copyleft

Add a comment

FRUCTOSE - Andrew Marlow's C++ Unit Testing Framework

C++ unit testing framework, very cutdown compared to CppUnit but very simple and implemented entirely using header files.

Operating Systems

  • Any after making small changes...

Compilers

  • Any standard C++ compiler

Added : 2008-07-29 Amended: 2008-07-29

Add a comment

GAGS - C++ class library for Genetic algorithms

It includes classes for chromosomes and populations.

Library:binary chromosome representation. Genetic operators: mutation, xOver (n-pt and uniform), remove/reinsert. Selection operator: steady state, tournament, roulette wheel. Perl and/or tcl/tk graphic front-end. Graphics through gnuplot. Training from file.

Application generator: it needs only an ANSI-C definition of the fitness function. It's parsed, and a program that runs a GA on it is generated.

Operating Systems

  • Unix

Compilers

  • GCC
  • SGI CC
  • Sun CC

Added : 1996-02-08 Amended: 1996-02-08 Licensing : Copyrighted freeware

Add a comment

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.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

GECOOL 2.1 - A reworking and enhancement of Texas Instrument's "C++ Object Oriented Library"

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.

Some users behind "firewalls" have had difficulty accessing the ftp site.

Added : 1995-01-01 Amended: 1996-02-05 Licensing : Not known

Add a comment

Generic Linked List Package

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.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

GiNaC - Symbolic computation embedded in C++

GiNaC is an iterated and recursive acronym for GiNaC is Not a CAS, with CAS standing for Computer Algebra System. It is designed to allow the creation of integrated systems that embed symbolic manipulations together with more established areas of compute r science (like computation- intense numeric applications, graphical interfaces, etc.) under one roof. It is distributed under the terms and conditions of the GNU general public license GPL.

It implements a class hierarchy with the basic classes needed to create symbolic expressions, including abritrary length/precision numbers (drawing from the CLN library). The classes provide basic symbolic manipulations as well as memory management through reference counting, disk-I/O, etc. Using the Cint C/C++ interpreter it is even possible to use it in an interactive manner.

It is written in standard C++ and should compile on any compliant compiler. Since it has to be linked with CLN, however, it is somewhat tricky (but not impossible) to do so on other compilers than GCC.

Operating Systems

  • Linux
  • Solaris
  • Unix
  • Irix

Compilers

  • GCC

Added : 2001-01-31 Amended: 2001-01-31 Licensing : GNU copyleft

Add a comment

gleem - OpenGL Extremely Easy to use Manipulators

A C++ library of Open Inventor-style manipulators (3D widgets) for direct interaction with a 3D scene. Written using OpenGL and GLUT and very easy to incorporate into an existing OpenGL/GLUT application. Developed on Irix, but should be easily portable.

NOTE: this version of gleem is no longer being maintained. The current sources are in the jogl-demos workspace at the url below and are covered under the BSD license.

Operating Systems

  • SGI Irix

Compilers

  • SGI CC

Added : 1998-12-03 Amended: 2008-07-29 Licensing : GNU copyleft

Add a comment

GNU Plotutils - A library for exporting 2-D vector graphics in many file formats.

The GNU plotutils package contains software for both programmers and technically oriented users. Its centerpiece is the libplot/libplotter, a C/C++ function lib for exporting 2-D vector graphics in many file formats (including WebCGM format, recommended by the graphics Activity of the W3 Consortium). It can also do vector graphics animations, has thread-safe APIs, and supports the use of Posix threads (if available). The program also contains the following command-line programs for plotting scientific data:
  • graph- plots 2-D datasets or data streams in real time
  • plot- translates metafile formats to any of the other formats
  • tek2plot- translates legacy Tektronix data to any of the above formats
  • pic2plot- translates the pic language to any of the other formats
  • plotfont- displays character maps of the fonts available in the above formats.
  • spline- spline interpolation of data
  • ode- numerically integrates ordinary differential equations

Operating Systems

  • Linux
  • Sparc
  • Sun
  • IBM AIX
  • Solaris
  • HP UX
  • Unix
  • X Windows
  • OSF
  • SYSV
  • Convex
  • Dec OSF/1

Compilers

  • GCC
  • Dec CC
  • SGI CC
  • Sun CC
  • IBM xlC

Added : 1999-07-01 Amended: 2008-07-22 Licensing : GNU copyleft

Add a comment

Grail - Symbolic computation with finite-state machines and regular expressions

Supports conversion of FSM to RE and back and also conversion to and from finite languages. Supports many algebraic operations on FSM and RE. All objects are templates, so you can parameterize FSM or RE to use any C++ class or base type as its alphabet type (hence, Mealy machines are supported by using ordered pairs as the alphabet type).

Compilers

  • IBM xlC
  • Cfront
  • Watcom C++
  • IBM Cset++

Added : 1996-05-22 Amended: 2008-07-29 Licensing : Education

Add a comment

Grayscale Image Processing

Enhanced grayscale image processing class library and verification code, source code

Keywords: image arithmetics, median filtration, morphological filtration, convolution, lazy image, TIFF, plasma fractals, nondeterministic filter, class library

Operating Systems

  • PC 32-bit Windows
  • rs6000-aix-3.2
  • Solaris
  • Dec Alpha
  • Mac
  • HP 9000
  • FreeBSD
  • Concurrent Maxion 8000/RTU
  • BeOS

Compilers

  • GCC
  • Sun CC
  • MetroWerks CodeWarrior
  • Borland C++

Added : 1996-05-22 Amended: 1997-03-19 Licensing : Public Domain

Add a comment

GRETA Regular Expression Template Archive - Fast, Perl 5-compliant regular expression template library for C++

GRETA is a (yet another) C++ template library for regular expression pattern matching. It was developed in Microsoft Research. GRETA's distinguishing features are: high performance, Perl compatibility, and clean STL integration. You can perform matches with any bidirectional iterator type, or on a std::basic_string, or on a C-style NULL-terminated string. It supports wide and narrow character types (wchar_t and char) and respects the C locale setting (as specified by setlocale()). GRETA lets you customize regular expression syntax via a syntax module template parameter. Perl 5 and Basic POSIX syntax modules are included.

Operating Systems

  • Linux
  • PC 32-bit Windows

Compilers

  • Visual C++
  • GCC

Added : 2002-06-21 Amended: 2004-06-15 Licensing : Non commercial

Add a comment

GTAD - Graph Toolkit for Algorithms and Drawings

The GTAD (Graph Toolkit for Algorithms and Drawings) is an attempt to construct a set of flexible, reusable, and efficient C++ implementations of graph representations and algorithms (including drawing/layout). It is developed with the generic programming paradigm and under the same principles of the BGL (Boost Graph Library).

Operating Systems

  • Platform-independent

Compilers

  • GCC
  • Visual C++ .NET

Added : 2008-09-16 Amended: 2008-09-16 Licensing : Open Source

    GTAD - Graph Toolkit for Algorithms and Drawings
  • Main website
  • Submitted by:Leandro Melo
Add a comment

GTL - The Graph Template Library

The Standard Template Library (STL) is supposed to become a part of the C++ standard library and therefore is an ideal basis when writing portable programs.

Unfortunately, STL has no support for graphs and graph algorithms. However, graphs are widely used to model complex relational structures.

Since we are intensively working with graph algorithms and Graphlet, we decided to implement GTL, a graph library based on STL. For the design of GTL's API the API of LEDA has served as a basis. GTL contains the classes needed to work with graphs, nodes and edges and some basic algorithms as building blocks for more complex graph algorithms. Further algorithms are under work.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Solaris
  • HP UX

Compilers

  • Visual C++
  • GCC

Added : 2000-04-26 Amended: 2000-04-26 Licensing : Copyright (other)

Add a comment

GzipFile - MFC C++ objects compressed to disk.

Gzipfile compresses MFC serialized document data. The only code changes required are a few include statements and macro instantiations in a CDocument derived class. Uncompressed documents can still be loaded and all saved documents are compressed.

The compression engine is mature, widely used and extremely fast.

Operating Systems

  • PC 32-bit Windows

Compilers

  • Visual C++
  • Borland C++

Added : 1998-07-24 Amended: 2003-07-29 Licensing : Shareware

Add a comment

Hans Boehms GC - Hans Boehms free Garbage Collector

Conservative garbage collector for C/C++. Several interfaces are provided. Can be used as a transparent malloc replacement, or implements much of the Detlefs/Ellis C++ GC proposal, or can be used as an allocator for SGI's STL.

Can be used with the large majority of operating systems that support 32- or 64-bit flat addressing, i.e. almost all UNIX variants, win32, and a few others.

Operating Systems

  • PC 32-bit Windows
  • Unix

Added : 1995-01-01 Amended: 2008-07-29 Licensing : Copyrighted freeware

Add a comment

High level vector operations

Contains the Aitken-Lagrange interpolation over the table of uniform or arbitrary mesh, and the Hook-Jeevse multidimensional minimizer. Precision single/double.

Obsolete - now part of the Lin-alg package.

Added : 1995-01-01 Amended: 2008-11-04 Licensing : Not known

Add a comment

HugeCalc - Arbitrary accuracy large integer calculations

HugeCalc is a package for performing long integer calculations with up to 300 digits of accuracy. The package allows C++ programmers to define objects of type HugeInt and use them just like ordinary integers to perform addition, subtraction and multiplication operations. Most of the ordinary mathematical operators are supported in the ordinary fashion. Includes object modules for Borland C++, example programs and complete documentation. Shareware version contains object modules for tiny, small and medium memory models only.

Operating Systems

  • PC DOS

Compilers

  • Visual C++
  • Borland C++

Added : 1997-11-27 Amended: 1997-11-27 Licensing : Shareware

Add a comment

ICU - Unicode Support Library

Provide Unicode Support for C++, C and Java Short list of features: Character set conversions, Unicode Strings, collation, Unicode character properties access, locale management, resource management, calendars, date/time, message formatting, language transliteration, text layout, regular expressions. Separate APIs for C++ and C.

Licence restrictions: Open Source, X license, http://www.x.org/terms.htm

Operating Systems

  • Linux
  • PC 32-bit Windows
  • IBM AIX
  • Solaris
  • HP UX
  • Dec Alpha
  • Mac
  • FreeBSD
  • IBM OS390, OS400
  • IA64 Windows XP

Compilers

  • Visual C++
  • GCC
  • Sun CC
  • IBM xlC
  • HP C++
  • Sparcworks

Added : 2002-03-08 Amended: 2008-07-29 Licensing : Copyrighted freeware

Add a comment

Image Magick - Image manipulation application and libraries

Jeff Donner writes :-
It isn't C++ but C, but it's so cross-platform and comprehensive an image package, I thought you should know about it. If you look at their page you don't see anything about the libs, but they (and all source) are included with the app. They're free, (commercial use OK, copyright only) and useful.

ImageMagick does a pretty thorough job of reading & writing most image formats.

Added : 1998-12-03 Amended: 2003-03-13 Licensing : Copyrighted freeware

Add a comment

ImageLib - An Image Processing C++ Class Library

ImageLib is a C++ class library providing image processing and related facilities.

The main set of classes provides a variety of image and vector types, with additional modules supporting scalar and vector quantisation, wavelet transforms, DCT transforms, and simple histogram operations.

Tested on Solaris and FreeBSD, but should work with most other UNIX versions. Most features are not operating system specific.

Operating Systems

  • Linux
  • Solaris
  • FreeBSD

Compilers

  • GCC
  • Sun CC
  • KAI C++

Added : 1998-07-27 Amended: 2000-04-26 Licensing : GNU copyleft

Add a comment

iMatrix - Matrix classes implementation

Keywords: matrix, matrix operation, C++, class template .

Implementation of a matrix and some matrix operation based on class-template concept. The key different from others is the implemenation of the separate matrix operation as separate class-template. A few small particularities would be effective.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • PC Windows

Compilers

  • Visual C++
  • GCC
  • Borland C++

Added : 2000-05-25 Amended: 2000-05-25 Licensing : Public Domain

Comment from : F. Beekhof on 2008-09-10

Link is dead.

Add a comment


InterViews - 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.

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Not known

Add a comment

iof - Replacement for printf/scanf in C++

Many people wonder how to get the same effects using C++ streams as they would using printf/scanf. They are usually pointed to STL manipulators with std::setw etc.

There is at least one: the iof library at http://iof.sourceforge.net. There is also the boost format library (http://www.boost.org) but it doesn't support scanf-like input.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • Unix
  • PC Windows

Compilers

  • Visual C++
  • GCC

Added : 2006-12-01 Amended: 2007-04-10 Licensing : Copyrighted freeware

Add a comment

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!

Operating Systems

  • PC DOS

Compilers

  • Borland C++

Added : 1995-01-01 Amended: 1995-01-01 Licensing : Public Domain

Add a comment

Ivf++ - C++ OpenGL visualisation library

Ivf++ is a simple OpenGL based C++ visualisation framework. The main goal with Ivf++ was not to create a complete visualisation library, but create a foundation of classes that can be extended in simple ways. Ivf++ contains a simple gui framework based on FLTK. Ivf++ can also be used together with other GUI libraries using provided widgets. Currently Win32, FLTK, and MFC are supported.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • SGI Irix

Compilers

  • Visual C++
  • GCC
  • SGI CC

Added : 2000-04-26 Amended: 2008-07-29 Licensing : GNU copyleft

Add a comment

ivmaps - C++ libraries for manipulation and visualization of geo-spatial map data

ivmaps is a set of C++ libraries for reading, writing, processing, painting, viewing, and querying map data, with 2D and 3d map viewers that support DEM elevation data, DLG and VPF vector map data, and DRG and DOG raster. Compiles on ivtools and PROJ-4.3.3 from the USGS. Optionally can be compiled to use ACE, clippoly, Vtk, and Mesa.

Added : 1998-07-22 Amended: 1998-07-22 Licensing : Freeware

Add a comment

ivtools - C++ frameworks for graphical editors and spatial data servers

ivtools is a set of C++ frameworks for building graphical editors, spatial data servers, and combinations of both. It incorporates an alternate distribution of the InterViews and Unidraw libraries last published by Stanford University and Silicon Graphics in release 3.2a. New C++ libraries augment the baseline drawing editor mechanism of Unidraw with various features, which are then used in drawing editors evolved from idraw: a network-ready editor, a multi-frame flipbook editor, and a hiearchical node-graph editor. Optionally can be compiled to use ACE and clippoly C++ libraries.

Added : 1998-07-22 Amended: 1998-07-22 Licensing : Freeware

Add a comment

ixlib - c++ tools library

ixlib is a C++ tools library based upon the STL. It provides garbage collection, a small well-integratable JavaScript interpreter, linear algebra components (e.g., linear solver, LU decomposition), planar geometry, polygons, automatic arrays, rasterization for geometric primitives and polygons, regular expressions and XML parsing (non-DTD). Its main design goals were simplicity and small size.

GNU C++ 2.95.2 (linux and mingw32) tested, any ISO-compliant compiler should work.

Compilers

  • GCC

Added : 2001-01-22 Amended: 2001-01-22 Licensing : GNU copyleft

Add a comment

jjLibrary - C++ Pattern Library

jjLibrary is a C++ library which provides
  1. jjPattern : Pattern-based container class (Hash, Tree, List, Graph)
  2. jjErrno : error handling, and
  3. jjCGI : CGI library

jjPattern has unique feature which can be compared to STL.

Operating Systems

  • Linux
  • HP UX
  • could run on any OS, but not tested

Compilers

  • GCC
  • HP C++
  • could be compiled, but not tested

Added : 2004-09-06 Amended: 2004-09-06 Licensing : GNU copyleft

Add a comment

JPTUI - Textual user interface for DJGPP

Textual user interface for DJGPP 2, v4.0e

JPTUI is an object-oriented textual user interface. Designed for C++, it provides a simple to use application programming interface. JPTUI is available for DJGPP 2 and Borland C++ 4.

I am told that this library is no longer on Simtel, but there is an older version stil available via ftp from a different site.

Operating Systems

  • PC

Compilers

  • DJGPP
  • Borland C++

Added : 1998-02-24 Amended: 2000-04-26 Licensing : Copyrighted freeware

Add a comment

JThreads/C++ - Java-like Threads for C++

JThreads/C++ is the short-form of "Java-like Threads for C++". JThreads/C++ is a high-level thread abstraction library that gives C++ programmers the "look & feel" of Java threads.

JThreads/C++ is free for non-commercial use and available with its full source code.

Operating Systems

  • Linux
  • PC 32-bit Windows
  • SGI Irix
  • Solaris
  • HP UX
  • Unix
  • Dec Alpha
  • Dec OSF/1

Compilers

  • Visual C++
  • GCC
  • Dec CC
  • SGI CC
  • Sun CC
  • HP C++

Added : 1998-02-24 Amended: 1998-02-24 Licensing : Copyright (other)

Comment from : Andrew Marlow on 2008-07-29

OOC was acquired by IONA who incorporated JThreads/C++ into Orbacus. Thus JThreads/C++ is no longer available separately (except via old copies in various free software reposistories)

Add a comment


JX - Application framework and widget library for use with X Windows

JX is a full-featured C++ application framework and GUI class library for X Windows. It provides support for all facets of application development, including distributed applications, and aims to combine the best of MacOS and NeXTSTEP. It is built directly on top of Xlib and has been carefully optimized for performance.

Operating Systems

  • Linux
  • Sparc
  • SGI Irix
  • Sun
  • Solaris
  • HP UX
  • Unix
  • X Windows
  • Dec Alpha
  • Dec Ultrix

Compilers

  • GCC
  • Compiler independent

Added : 1997-12-06 Amended: 2008-07-29 Licensing : Copyright (other)

Add a comment

Kalman - A class library for Kalman filtering

Contains lumatrix.c++ etc.

Compilers

  • GCC

Added : 1995-01-01 Amended: 2003-10-20 Licensing : Not known

Add a comment

kplib - Basic but highly optimised C++ library

The library consists of the following classes:
  • KPList<T> A two-way list that assumes nothing about its elements except they correctly implement a default constructor and operator=().
  • KPComparableList<T> A subclass of KPList<T> which also assumes its elements can be compared with operator==(), thus providing more powerful methods.
  • KPSortableList<T> A subclass of KPComparableList<T> which also assumes its elements can be compared with operator<(), thus providing more powerful methods.
  • KPReadOnlyIterator<T> An iterator with pointer-like semantics which can iterate over any of the above lists for reading purposes only.
  • KPIterator<T> An iterator with pointer-like semantics which can iterate over any of the above lists for the purpose of reading, modifying, deleting, or adding elements to or from arbitrary locations in the list.
  • KPArray<T> A dynamically-sizable array that assumes nothing about its elements except they correctly implement a default constructor and operator=().
  • KPComparableArray<T> A subclass of KPArray<T> which also assumes its elements can be compared with operator==(), thus providing more powerful methods.
  • KPSortableArray<T> A subclass of KPComparableArray<T> which also assumes its elements can be compared with operator<(), thus providing more powerful methods.
  • KPQueue<T> A queue that assumes nothing about its elements except they correctly implement a default constructor and operator=().
  • KPPriorityQueue<T> A priority queue that assumes its elements correctly implement a default constructor, operator=(), operator==() and operator<().
  • KPStack<T> A stack that assumes nothing about its elements except they correctly implement a default constructor and operator=().
  • KPSet<T> A set that assumes its elements correctly implement a default constructor, operator=(), operator==() and operator<(). All union, intersection, difference and superset/subset operations are of order O(n).
  • KPBag<T> A bag that assumes its elements correctly implement a default constructor, operator=(), operator==() and operator<().
  • KPString A string class which implements basic string functions and more (such as tokenizing methods which return KPList<KPString>). This class uses reference counting and copy-on-write semantics to insure that it as efficient as possible.

Operating Systems

  • Unix

Compilers

  • GCC
  • MetroWerks CodeWarrior
  • Watcom C++

Added : 2000-04-26 Amended: 2000-12-22 Licensing : Public Domain