Aapl C++ Template Library

Never let good design get in the way of good code.

What is Aapl?

Aapl is a C++ template library for generic programming. It contains implementations of AVL Tree, Linked List, Vector, Binary Search Table and Sort.

Aapl supports different generic programming paradigms by providing variations of standard data structures. For example, a by-value linked list template may be used to store a user supplied type such as an integer. A different list template allows the user to define the data structure that is to be used as the element. A third list template allows a single instance of a data structure to be an element in multiple lists.

Wherever possible, Aapl data structures do not depend on heap memory allocation. There are variations of the linked list and AVL tree that allow the programmer to allocate a collection of elements statically and insert/remove them at will.

Aapl data structures do not have their data members hidden behind a strict abstraction layer. Aapl makes very little use of the private keyword. Though data abstractions can be a useful programming technique to quickly produce very robust code, they can inhibit functionality when the data structure is the centre of much attention. Therefore Aapl leaves the use of abstractions up to the programmer.


The documentation for the latest version 2.13 is available online.


 Version:   2.13 
 Date:   Jan 25, 2006 
 Change Log:   ChangeLog 
 Tar.Gz:   aapldev-2.13.tar.gz 
 Zip:   aapldev-2.13.zip 
 Doc Tar.Gz:   doc-2.13.tar.gz 
 Doc Zip:   doc-2.13.zip 


Aapl is released under the GNU Lesser General Public License. As such, Aapl is available for use (unmodified) in proprietary programs. A copy of the license is included in the distribution. It is also available from GNU.


Aapl was written by Adrian Thurston.