There are several projects currently underway in our lab that involve generic programming in some way. The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats.
As with the Standard Template Library (STL), MTL uses a five-fold approach, consisting of generic functions, containers, iterators, adaptors, and function objects, all developed specifically for high performance numerical linear algebra. Within this framework, MTL provides generic algorithms corresponding to the mathematical operations that define linear algebra. Similarly, the containers, adaptors, and iterators are used to represent and to manipulate concrete linear algebra objects such as matrices and vectors. The Boost Graph Library, or BGL, is a general purpose, generic C++ library for graph data structures and graph algorithms.
BGL is developed under the same generic programming paradigm as that in Standard Template Library, BGL algorithms and components are expressed on the concepts of Graph, Vertex, Edge, Decorator, and Visitor.