The GNU C++ library ( libg++) was among the first widely available general-purpose C++ class libraries. Some classes were designed and implemented as early as 1985 (originally in support of other efforts). The library was made available in 1987. I was the primary original developer. Several others have contributed ideas and code. Contributors include Dirk Grunwald, Doug Schmidt, Kurt Baudendistel, Marc Shapiro, Eric Newton, Michael Tiemann, Richard Stallman, and Per Bothner. Cygnus Support currently maintains and distributes the library on behalf of the Free Software Foundation (FSF). Also, hundreds of users have contributed improvements, fixes, suggestions, clarifications, and bug reports. While it has been ported to other platforms, libg++ is normally used on Unix systems in conjunction with the GNU C++ ( g++) compiler. It is available via anonymous ftp from prep.ai.mit.edu, among other sources.
The basic structure of libg++ remains almost unchanged from that described in a 1988 Usenix C++ conference paper. It contains:
Libg++ is mainly an ``abstract data structure library''. Most libg++ classes are somewhat different in design philosophy, design, and implementation than the classes that you or I ordinarily construct for specific applications. The remainder of this article focuses mainly on these differences without otherwise going into much detail about particular components.