The Erwin library is a very efficient and robust data structure template library for C and C++. No templates are used; a Perl script generates C files. Vectors (dynamic arrays), lists, and hash tables (maps) of arbitrary key and value types are provided. Several tools are included for auto-generating a C interface around C++ libraries, C++ extensions like slots/properties, symbol (=hashed string) management, sophisticated assertion macros, and documentation extraction.
License: Freely Distributable
Changes:
Operator== was broken in Map and Vector: its const qualifier was missing. This is potentially very hazardous, because the C++ compiler will silently use the default byte-wise comparison instead if the static type is const. Several years of testing had not revealed this; it was fixed immediately upon discovery.
More...