Generic Programming: Libraries

One of the main applications of Generic Programming is the construction of efficient, reusable software libraries. The following libraries were developed with the Generic Programming paradigm. These libraries serve as examples of the Generic Programming process and its results. If you know of other generic libraries that we have overlooked (and there are sure to be many!), please contact the .

  • The Standard Template Library (STL), now part of the ANSI/ISO C++ Standard. The best-known implementation of the STL is freely available from SGI. The STL provides generic containers (list, vector, set, map, etc.), iterators that access values within containers, and generic algorithms (sort, set_intersection, transform, etc.).
  • The Matrix Template Library (MTL), which provides comprehensive linear algebra functionality for a wide variety of matrix formats.
  • The Computational Geometric Algorithms Library (CGAL), which provides algorithms for computational geometry.
  • Boost provides a collection of peer-reviewed C++ libraries, several of which were developed with the Generic Programming paradigm.
  • The Boost Graph Library (BGL), which provides data structures and algorithms for graph theory. This is part of the Boost collective of libraries.
  • The Iterative Template Library (ITL), which provides iterative methods for solving linear systems.
  • The Iterative Eigensolver Template Library (IETL), which provides iterative eigensolvers.