The Hilbert Class Library (HCL) is a C++ library for applied, large-scale, numerical optimization. The Hilbert Class Library essentially defines a set of abstract classes which programmers use to derive their application specific data structures, operators, and solvers. The common set of base classes ensures the cooperation of these various software pieces. Consequently, experts write code exclusively in their field of expertise and can be confident that it will integrate with the software written by other programmers. The HCL library is accompanied by a growing number of examples and solvers.