SimpleLib

Introducing SimpleLib

SimpleLib is a simple but powerful set of C++ template classes designed to be easy to use, easy to read, cross platform compatible, efficient and totally free.

SimpleLib includes classes for strings, vectors, sorted vectors, associative maps (three implementations), linked lists, ring buffers, auto (smart) pointers, auto restore variables, object pools (two implementations), singletons and dynamic types. Stacks and queues are supported through appropriately named operations on the vector class.

Features

Download

Download SimpleLib as a zip file: SimpleLib.zip 

(includes SimpleLib.h, SimpleLib.cpp and SimpleTest.cpp unit tests)

Supported Platforms

SimpleLib has been known to work with the following compilers and platforms

Since I primarily use Visual Studio 2005,this is the most supported environment. I just don't have time to test every change on every platform.  If you find a problem let me know and I'll fix it.

Thanks to Nick Maher for gcc testing and fixes.

The SimpleLib.zip file includes a file SimpleTest.cpp that contains a fairly exhaustive set of unit tests that can be used to verify the compatibility of SimpleLib on other platforms.  If you find SimpleLib works or almost works on a platform not mentioned above, please let me know and I'll update the list (and merge in required fixes if you send them...)

Known Issues

The following are known issues with SimpleLib:

Setting up SimpleLib

To use SimpleLib, simply download the above .zip, extract it to a local folder and configure your compiler's include path to point to that folder.  Alternatively you can just place the SimpleLib files in the same directory as the project that is to use it.

SimpleLib is supplied as two files - SimpleLib.h and SimpleLib.cpp.  SimpleLib.h contains the declaration of the supported classes while SimpleLib.cpp contains the implementation of those classes. 

Once your compiler's include path is configured simply #include the SimpleLib header file and optionally add a using clause for the SimpleLib namespace:

#include <SimpleLib.h>
using namespace Simple;

That's it!  Your now ready to start using SimpleLib.

(Note there is no need to add SimpleLib.cpp to your project - it's included at the end of SimpleLib.h).

Documentation 

Most of the classes in SimpleLib are fairly self explanatory to use. Rather than provide detailed documentation of every method and parameter, I've just provided a verbal description of how to use each class with a few examples. 

If there's something you can't figure out, don't understand or think needs better explanation, please contact me.

SimpleLib Plus

SimpleLib Plus is a is a set of libraries built on the core functionality of SimpleLib that additional utility classes and functions.  See SimpleLib Plus for more information.

Licensing SimpleLib and SimpleLib Plus

SimpleLib (and SimpleLib Plus) maybe used on following terms and conditions: