Available C++ Libraries FAQ

Libraries available to download (M-P)

macstl - Modern generic programming for SIMD and the Mac

The C++ header library designed to bring the Macintosh into the
world of modern generic programming.

Generic programming is the art -- some say, the black art -- of
making software components super-reusable and yet ultra-efficient. Our
tool is the C++ template, and our result is code nearly as fast as
hand-coded machine language.

macstl was inspired by the premier generic library, the Standard
Template Library (now part of the C++ Standard Library), but with a
distinct Macintosh flavor. Many components let you use low-level Mac OS
X functionality like SIMD acceleration and memory copy-on-write easily
and intuitively.

Although macstl started on the Mac, it now has a cross-platform
look. Over 14,000 source lines of code compile cleanly on different C++
compilers. The SIMD classes work seamlessly on PowerPCís running Mac OS
X and Pentiumís running Windows XP.

matrix - C++ High Speed Matrix class

Matrix is an efficent C++ class library for doing matrix computation on windows NT. The main goal of this package is : - easy to use. - as fast as fortran code. This speed is achieved using the Math Kernel Library of INTEL.

Actually features : - works with double dense matrices, - can make an +, -, *, / operator efficiently, - is as powerful as FORTRAN code, - have comparison operators, - can do LU, Cholesky, Householder QR, and SVD decompositions, - have build-in matlab functions, - have a standard interface to BLAS so that everyone who wanted to use under another platform could manage it easely.

Only denses matrices of double are supported but it is planned to be extented to other matrices and variables.

Matrix class - Very complete matrix generic class

The Matrix Library is designed for signal processing and data manipulation. The Matrix class is written with generic code, allowing you to use the matrix operators on various data types, including the Complex data type (default is double). One of its useful features is the ability to plot matrix data using the free software gnuplot. You can download the postscript documentation matrix.ps.gz [133 Ko] alone or dowload the complete package (including the documentation and the Complex library) matrix.tgz [164 Ko].

Matrix11 - C++ matrix template class library (source)

This matrix template class can be used to perform common matrix
operations in your C++ program like any other built-in data types.
Though I have written this class in compliance with ANSI/ISO C++
standard, you may encounter some compilation problem, particularly with
older version of compilers, because all standard features of namespace,
exception and template may not be fully supported in your compiler. In
that case you may just want to disable any or all the above features by
defining the appropriate macros. I have included full source code as
inline functions in the header file so you can modify it if necessary.

The implementation is not optimized for performance and memory usage.
So it is not suitable for large and sparse matrices. But for small and
medium size matrices these should not be a problem, keeping in mind the
present generation of powerful computers.

Special requirements: An up-to-date C++ compiler.

Changes: Some conditional compilation code has been added for different
compilers.

Matthew's Galib - A C++ Genetic Algorithm Library

GAlib is a C++ library that contains a set of genetic algorithm objects. With GAlib you can add genetic algorithm optimization techniques to your program using any data representation and many different genetic algorithm operators. The library includes genomes based upon binary string, array, tree, and list data structures, and you can create your own genomes by simply deriving a new class from the base genome and any data structure that you may be using already. Many scaling, selection, termination, initialization, mutation, and crossover methods are included in the library, and you can override any of the defaults with operators.of your own design.

MetaKit - C++ classes for persistent structured data

General purpose C++ classes for highly-structured persistent containers. This library can be used as compact/fast database for many apps/utilities. Some key features are: uncorruptable data files, an efficient file format, "on-the-fly" restructuring, and portability - all using a very simple API. The windows release includes DLLs, with many C++ examples. Static libs and full source code to build royalty-free self contained apps is available.

Recent changes include

production-grade interfaces to Tcl and Python

SQL parser interface, currently in alpha

Visit the website for FAQs, API docs, and to download any of over a dozen ports (as tar/gzip, zip, stuffit, and Linux RPM).

mimetic - a full featured MIME library written in C++

Features

Very easy to use

This was, from the beginning, one of the objectives of mimetic.If you know the MIME standard you'll rarely need online documentation.

Full featured

Everything you expect to find in a MIME library is already into mimetic, if you'll not find it is because your requirements are probably insane :) Oh well cryptography is not in the library yet, but it will some day.

Standard compliant

mimetic tries to follow current standards as closely as possible.

STL based

This could be a very big advantage if you know the STL and want to integrate mimetic into your STL based project. You'll have same powerful concepts and classes fully applicable to emails. If you don't know the STL so this is a good opportunity to learn it! A very good reference (yet freely readable) is the Dinkum C++ Library Reference.

Compile-time codec chains

Codec chains are template based so that codecs are chained together by the compiler using inline functions whenever possible to speed up runtime performance.Creating a codec chain will sound very familiar if you know Unix pipes:

codec0 | codec1 | codec2 | ... | last_codec

Portable

The developer personally tested it on Linux, {Open,Free,Net}BSD, Solaris, Mac OS X. It uses Autotools to compile so porting on any Unix system should be easy.

Windows port has been done by Andreas Gruen but it's no loger maintained. You can get last release of Visual Studio project files into mimetic/win32 directory.

If those are not enough please consider using Unix-style compiling on Windows using Cygwin or MinGW.

More then 50 test functions, more then 2500 checks

cutee has been used for Unit Testing and there are a lot of tests the run automatically every time someone compiles mimetic. This doesn't mean that it's bug free but it helps.

Open source

Source code of the library, tests and examples are bundled into the distribution package. All except codec code (that is heavily template based) is very readable so if Documentation is not good enough for you sources can be your primary reference.

HTML documentation

Library documentation is generated from source code by Doxygen. You can browse it online of generate yourself for offline browsing.

Mini-XML - Lightweight XML Library

Mini-XML is a small XML library that you can use to read and write XML and XML-like data files in your application without requiring large non-standard libraries. Mini-XML only requires an ANSI C compatible compiler (GCC works, as do most vendors' ANSI C compilers) and a 'make' program.

Mini-XML supports reading of UTF-8 and UTF-16 and writing of UTF-8 encoded XML files and strings. Data is stored in a linked-list tree structure, preserving the XML data hierarchy, and arbitrary element names, attributes, and attribute values are supported with no preset limits, just available memory.

MozillaV3 CGI C++ Library - CGI script library

This public domain portable C++ library is the basis of a CGI. It contains all external aspects that should be required by a CGI script, from options to hash containers. It provides one minute implementation of hours of work and allows optimal performance and ease of use. Writing a guestbook using this library which can be used by as many people as wanted is a question of minutes! This Mozilla-V3 library is in a state of providing all internal structures to write virtually any kind of html output CGI.

This library was written for an HTML based forum (called aGNeS) that is successfully running for hundreds of users all over the world. It is open for all suggestions and modifications.

MozillaV4 CGI C++ Library - Web HTML code generation library

This public domain portable C++ library is the basis of a CGI. It contains all external aspects that should be required by a CGI script, from options to hash containers. It provides one minute implementation of hours of work and allows optimal performance and ease of use. Writing a guestbook using this library which can be used by as many people as wanted is a question of minutes! This Mozilla-V3 library is in a state of providing all internal structures to write virtually any kind of html output CGI.

This library was written for an HTML based forum (called aGNeS) that is successfully running for hundreds of users all over the world. It is open for all suggestions and modifications.

Unfortunately, the senders mail to me was truncated, so I do not know where you can get this library. [Later: Andy.Law@bbsrc.ac.uk sent me the URL below.]

A link library that attempts to diagnose run-time errors that are caused by the wrong use of dynamically allocated memory. Along with providing a comprehensive and configurable log of all dynamic memory operations that occurred during the lifetime of a program, the mpatrol library performs extensive checking to detect any misuse of dynamically allocated memory. All of this functionality can be integrated into existing code through the inclusion of a single header file at compile-time. All logging and tracing output from the mpatrol library is sent to a separate log file in order to keep its diagnostics separate from any that the program being tested might generate. A wide variety of library settings can also be chan!ged at run-time via an environment variable, thus removing the need to recompile or relink in order to change the library's behaviour.

The Matrix Template Library is a C++ class library for basic linear algebra. The MTL is designed for high-performance while at the same time taking advantage of the generic programming paradigm (ala the STL) to allow much greater flexibility and breadth of functionality. Many new and advanced programming techniques were used in the construction of this library.

The MTL is a low level library in the sense that the user must be conscious of the matrix type being used, and that all computationally expensive operations are explicit. The MTL is not a C++ Matlab. Nevertheless, the interface is designed to be simple and easy to use.

The matrix types provided include compressed sparse row/column, banded, packed, diagonal (and tridiagonal), envelope, array of pointers, and of course dense matrices. All matrix types share a common and easy to use interface.

The algorithms consist of the traditional basic linear algebra routines (from the BLAS level-1 to 3) which includes matrix and vector arithmetic as well as operations such as backward substitution and norm calculations.

muParser - a fast math parser library

Many applications require the parsing of mathematical expressions. The main objective of this library is to provide a fast and easy way of doing this. muParser is an extensible high performance math expression parser library written in C++. It works by transforming a mathematical expression into bytecode and precalculating constant parts of the expression.

MythOS - Open source C++ game development library

MythOS is an Open Source (previously commercial) C++ game development
library set for making games for the Windows 9x/NT platform using the
DirectX APIs including graphics rendering, memory manager, file
processing, input events, animation playback, sound, timers, and
supporting tools. This version is the 'slim' distribution (15 MBytes)
which does not include prebuilt libraries and executables (except one
that is difficult to build). The 'full' distribution is 25 MBytes as a
Self-Extracting Windows setup.

NIHCL - (National Institute of Health's C++ Library)

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

Numerics C++ Library - C++ lib w/src of numerical and math routines

Numerics C++ Library is a collection of routines to do numerical and
statistical computations. Included in this library are routines to
solve linear systems of equations, generate random numbers, compute
values for random variables, as well as various other routines that are
commonly needed in science and engineering fields as well as other
disciplines.

Harmonic Software Inc. has released O-Matrix 4, A Complete
Analysis and Development Environment for Math, Science,
Engineering and Technical Computing. This new version of
O-Matrix includes many new features including a Mathlink
program for communicating with Mathematica, new
analysis functions for statistics, optimization and general mathematics.
Performance has been improved even further and data
visualization capabilities have been enhanced. For complete
details on what has been added, how O-Matrix can improve
your productivity, and a free trial version, see our home page

OATH - Object oriented Abstract Type Hierarchy

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

Comment from : xxx on 2008-12-28

This is a library of optimized subroutines coded in assembly language. The functions in this library can be called from C++ and other compiled high-level languages. Supports many different compilers under Windows, Linux, BSD and Mac OS X operating systems, 32 and 64 bits. The library contains faster versions of common C/C++ functions such as memcpy, memmove, memset, strcpy, strcat, strlen, as well as round functions, CPU identification functions, etc.

OpenCV - a library of programming functions for real time computer vision

OpenCV is released under a BSD license, it is free for both academic and commercial use. It has C++, C, Python and soon Java interfaces running on Windows, Linux, Android and Mac. The library has >2500 optimized algorithms. It is used around the world, has >2.5M downloads and >40K people in the user group. Uses range from interactive art, to mine inspection, stitching maps on the web on through advanced robotics.

Operating Systems

Linux

PC Windows

Mac

Compilers

Visual C++

GCC

Added : 2012-03-15 Amended: 2012-03-15 Licensing : BSD style

OpenCV - a library of programming functions for real time computer vision

OpenEXR - a high dynamic-range (HDR) image file format for use in computer imaging

OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications.
OpenEXR is used by ILM on all motion pictures currently in production. The first movies to employ OpenEXR were Harry Potter and the Sorcerers Stone, Men in Black II, Gangs of New York, and Signs. Since then, OpenEXR has become ILM's main image file format.
OpenEXR's features include:

Support for 16-bit floating-point, 32-bit floating-point, and 32-bit integer pixels. The 16-bit floating-point format, called "half", is compatible with the half data type in NVIDIA's Cg graphics language and is supported natively on their new GeForce FX and Quadro FX 3D graphics solutions.

Multiple lossless image compression algorithms. Some of the included codecs can achieve 2:1 lossless compression ratios on images with film grain.

Extensibility. New compression codecs and image types can easily be added by extending the C++ classes included in the OpenEXR software distribution. New image attributes (strings, vectors, integers, etc.) can be added to OpenEXR image headers without affecting backward compatibility with existing OpenEXR applications.

ILM has released OpenEXR as free software. The OpenEXR software distribution includes:

IlmImf, a library that reads and writes OpenEXR images.

Half, a C++ class for manipulating half values as if they were a built-in C++ data type.

Imath, a math library with support for matrices, 2d- and 3d-transformations, solvers for linear/quadratic/cubic equations, and more.

exrdisplay, a sample application for viewing OpenEXR images on a display at various exposure settings.

Operating Systems

Platform-independent

Compilers

Any standard C++ compiler

Added : 2012-03-15 Amended: 2012-03-15 Licensing : BSD style

OpenEXR - a high dynamic-range (HDR) image file format for use in computer imaging

OpenRTL - General purpose programming library

The OpenRTL library is an extensive augmentation to the standard C library and an alternative to large portions of the C runtime and the STL. OpenRTL text processing is UTF based for all UTF flavours. OpenRTL is itself an open standard, and this project is the official implementation. At the C and C++ compiler level, OpenRTL merges itself over the top of the standard C libraries of compilers such as GCC, BCC and MSC, on windows, linux and mac.

OpenRTL solves the portability of code problem by using a native code approach instead of a wrapper based approach. Wrapper solutions that wrap to many underlying OS calls tend not to work exactly the same on different platforms. For functionality that cannot be wrapped, only then are OS calls used, such as for threads and mutexes for example.

Comment from : js on 2015-04-03

OptiVec - Vectorized functions library for Borland C/C++

OptiVec contains more than 3000 hand-optimized, Assembler-written
functions for all floating-point and integer data types, running, on the
average, 2-3 times faster than compiled C/C++ code of the same
functionality.

The following fields are covered:

Vectorized form of all arithmetic operators and math functions
of C/C++

OSE - C++ Library and Build Environment

OSE is a development environment for C/C++ programmers. The major components of OSE are a generic C++ class library, documentation tools and build environment. The C++ class library includes support for error handling, error message logging, error recovery, program debugging, memory management, resource management, object containment, strings and symbols, pattern matching, operating system interfacing, simulation and event driven systems. OSE can be used with all major C++ compilers and UNIX platforms as well as Windows NT and Windows 95. OSE has been integrated for use with the ObjectStore OODBMS from Object Design.

OSE was a winner at CODA '94, the ComputerWorld Object Developer Awards, held in conjunc! tion with ObjectWorld in Sydney, Australia. The category in which OSE was successful was "Best implementation of a reuseable development environment for company deployment".

paintlib - Image file decoding

Paintlib is a C++ class library for image file decoding and manipulation. It currently supports the TGA, TIFF, JPEG/JFIF, Windows BMP, and Mac PICT formats. Data source and destination formats can be tailored as nessesary. Additionally, format-independent but fast bitmap manipulation classes are available.

Although there are a few Windows-specific functions, the library is portable. Makefiles are included for Microsoft Visual C++ (Win32) and GNU C++ (DOS and SunOS). Prerequisite is a C++-compiler with standard C libraries and support for exception handling. The library also requires support for 32-bit memory addressing.

Operating Systems

Compilers

Pantheios - The C++ Logging Sweetspot

Pantheios offers all the following features in one simple, portable, easy-to-use library:

Atomicity - all parts of a statement are emitted (or not) to the back-end
transports in a single action.

Efficiency - the length of each element in a statement is determined at
most once; the contents of each element in a statement is copied at most
once; memory is allocated for the prepared statement at most once
(and even then only if the total statement length exceeds 2047 characters).

Extensibility - the back-end transport can be customised by the user to
any conceivable transport, should the stock back-ends prove insufficient for a
particular need. The distribution includes transports over the following:

SysLog

- both UNIX and Windows

COM Error Object

Adaptive Communications Environment (ACE) Logger

Windows Debugger

Windows Event Log

stdout/stderr

Filtered - statements are filtered based on a 32-bit severity level,
incorporating, but not limited to, the standard eight levels described
by SysLog

Genericity - log statement elements may be of arbitrary type. Support for
a large number of known types is implicit because Pantheios uses the STLSoft
libraries. Extension to new/custom types is achievable by several different
techniques, which one selects as appropriate.

100% type-safety - Use of Pantheios from C++ is 100% type-safe (unlike the
unsafe printf()-family, or the IOStreams).

But above all else Pantheios adheres to the important principle of C
programming that:

You don't pay for what you don't use. If a statement at a given severity level
is not to be emitted, no conversions, no concatenations, no memory
allocation nor any other expensive operations are carried out.

The library is portable, and has been used on UNIX (Linux) and Win32 operating
systems. There should be no impediment to it working on any platform, or flavour
thereof

The library is compatible with a large range of C++ compilers. It even compiles with
Visual C++ v5.0!

ParLib++ - Parallel Programming Classes for C++:

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.

Perry Rapp says "The zipped sources in the ftp version include a license statement permitting source redistribution in the exact format of the zip file
(ie, unmodified and as original zip file). This is a more liberal policy than the license of the software with the book, which allows no source redistribution at all."

partimator's can be specialized with one of the decision functors: partial_match (filter strings with joker pattern), hamming distance (filter strings with Hamming automata), levenshtein_[tp_|ms_]distance (filter strings with Levenshtein automata with optional operations like transposition or merge-split);

lowest common ancestor (LCA) requests with constant time after linear time & space postprocessing of the suffix_cont - patl::lca_oracle.

All features of this library can be examined with small demo programs delivered within.

PDBlib - Library for modeling a macromolecular structure

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.

PEGTL - Parsing Expression Grammar Template Library

The Parsing Expression Grammar Template Library (PEGTL) is a C++11 header-only library for creating parsers according to a Parsing Expression Grammar (PEG). Grammars are written as regular C++ code, created with template programming, i.e. nested template instantiations that naturally correspond to the inductive definition of PEGs or other parser combinator approaches. A comprehensive set of parser rules that can be combined and extended by the user is included, as are mechanisms for debugging grammars and attaching user-defined actions to grammar rules.

Compilers

physfs - Library for filesystem operations (with archives)

PhysicsFS is a library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem. The programmer defines a "write directory" on the physical filesystem. No file writing done through the PhysicsFS API can leave that write directory, for security. For example, an embedded scripting language cannot write outside of this path if it uses PhysFS for all of its I/O, which means that untrusted scripts can run more safely. Symbolic links can be disabled as well, for added safety. For file reading, the programmer lists directories and archives that form a "search path". Once the search path is defined, it becomes a single, transparent hierarchical filesystem. This makes for easy access to ZIP files in the same way as you access a file directly on the disk, and it makes it easy to ship a new archive that will override a previous archive on a per-file basis. Finally, PhysicsFS gives you platform-abstracted means to determine if CD-ROMs are available, the user's home directory, where in the real filesystem your program is running, etc.

Platinum is a comprehensive C++ framework, that allows developers to write high-performance applications for many platforms with only one codebase. It provides a large amount of features and is still remarkably easy to use. It intergrates well into existing toolkits and frameworks.
A consistent API for advanced object modeling, multithreading, synchronous and asynchronous I/O, file-system access, system programming, plugins, networking, database access, graphics, XML processing and graphical user interfaces is provided on all supported platforms.
Pt can be used on embedded devices, desktops or large servers. The supported platforms include Windows, Windows CE, Linux, QNX, and Unix. It lets you spend your time on your application without tedious low-level programming.
A high degree of performance is achieved through the use of modern C++ features. Programs will benefit from the many optimizations included in the framework.
Pt is designed from the ground up to be flexible and extensible. It provides simple solutions to your problems without being intrusive. It integrates well with existing code bases or other toolkits and frameworks. Programs written with Pt tend to be significantly shorter and much easier to understand.
Its not just open, its free! Published under the LGPL it allows you to write commercial and open-source applications and be part of the great community that develops Pt and determines its future.

png++ - a C++ wrapper for libpng

PNG++ aims to provide simple yet powerful C++ interface to libpng, the
PNG reference implementation library.
PNG++ is free software distributed under a modified variant of BSD
license.
Using raw libpng in C++ may impose serious challenge since lots of
precautions must be taken to handle initialization/deinitialization of
control structures as well as handling errors correctly. With png++
you can read or write PNG images just in a single line of C++ code:
png::image< png::rgb_pixel > image("input.png");
image.write("output.png");

This class, which requires libpng, allows you to plot to a 16-bit PNG
file, saving it directly to disk. Plotting is as easy as specifying the
red, green, blue values and the x, y coordinates of the pixel.

It includes functions for plotting simple geometric shapes (circle,
rect, line), reading the colour of a pixel, reading in a whole PNG file
(great for image analysis), plotting and reading in HSV colourspace and
many others that might come in handy.

This class has proven tremendously useful for my own scientific
simulation needs, and I would like others to benefit from its use as
well.

It is available in both english and spanish, and is complemented by a
PDF manual and a website with examples, a forum, and so on.

I have only tested it on Mac OS X and Debian Linux, but I don't see why
it shouldn't compile on anything that has libpng.

The POCO C++ Libraries (POCO stands for POrtable COmponents) are open source C++ class libraries that simplify and accelerate the development of network-centric, portable applications in C++. The libraries integrate perfectly with the C++ Standard Library and fill many of the functional gaps left open by it. Their modular and efficient design and implementation makes the POCO C++ Libraries extremely well suited for embedded development, an area where the C++ programming language is becoming increasingly popular, due to its suitability for both low-level (device I/O, interrupt handlers, etc.) and high-level object-oriented development. Of course, the POCO C++ Libraries are also ready for enterprise-level challenges.
The POCO C++ Libraries free developers from re-inventing the wheel, and allow them to spend their time on more worthwhile areas, such as getting things done quickly and working on the features that make their application unique.

POST++ - Persistent Object Storage for C++

"Persistent Object Storage for C++" (POST++) is simple and effective
persistent object storage for single-user applications (personal OODBMS).
POST++ is based on memory mapping mechanism and provides access to
persistent objects without any runtime overhead. POST++ supports
transactions, garbage collection, fast memory allocation, objects with
multiple inheritance and virtual functions. POST++ is available for
Windows-95/NT and for several dialects of Unix (Digital Unix, Linux,
Solaris) and Windows NT/95. It can be used with standard C++ compilers
and requires no special tools for development.

Power View IDE - DOS-hosted IDE for Watcom C++

As WATCOM International Corp. has not included a DOS-hosted IDE in the
Watcom C/C++ package, here it is - Power View IDE. Tired of having to
load Windows to use the Watcom IDE for DOS applications development? The
answer is Power View IDE.

Power View IDE has powerful build-in multi-file programmer's editor. You
use dialog boxes to navigate options for the Watcom C/C++ compilers and
for the Watcom Linker. The compiler and the linker are executed from
inside the IDE, using build-in automatic dependency check for target
object files. Power View IDE uses special filter programs to locate
produced errors in your source. The source of these filter programs is
also included for those who want to write filters for translators other
than Watcom C/C++/Assembler/Linker.

Power View Windowing Interface is a 32-bit DOS4/GW library designed for
32-bit DOS-hosted applications development. It is 100% Watcom C++
compatible code. Power View is object-oriented, event-driven program.
However, in most cases client program doesn't need to be object-oriented
and/or event-driven. For most of C++ classes defined and used by Power
View there are simple functions to interface with client program. That's
why Power View is quite easy to use and learn.

Power View IDE is a DOS-hosted Integrated Development Environment for
Watcom C/C++ compiler. You can use the source code of Power View IDE for
understanding how does Power View Interface work, and to learn using it
for your own applications.

Ptypes - C++ Portable Types Library

PTypes (C++ Portable Types Library) is a simple alternative to the
STL that includes multithreading and networking. It defines dynamic strings, character sets, lists, and other basic data types along with threads, synchronization and IP sockets. PTypes also offers message queues as an alternative method of thread synchronization. Its main `target audience' is developers of complex network daemons, robots or non-visual client/server applications of any kind.

PTypes defines simple and intuitive interfaces. It is portable across many modern operating systems (Currently FreeBSD, Linux, SunOS, Mac OS X and Windows). All platform-dependent issues are hidden inside. A simple web server called wshare is included in the package to demonstrate the full power of PTypes.

pystring - Python string methods with std::string

Pystring is a collection of C++ functions which match the interface and behavior of pythonís string class methods using std::string. Implemented in C++, it does not require or make use of a python interpreter. It provides convenience and familiarity for common string operations not included in the standard C++ library. Itís also useful in environments where both C++ and python are used.

Overlapping functionality (such as index and slice/substr) of std::string is included to match python interfaces.

Copyright (c) 2019 Nikki Locke, Trumphurst Ltd.
Permission is granted to distribute over the Internet without charge.
The author's permission is required (and usually given) to distribute
in any other way, including on CD.