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.
| Tags | Software Development Utilities |
|---|---|
| Operating Systems | Windows Windows POSIX Linux BSD Solaris Mac OS X |
| Implementation | C C++ Perl |
Recent releases


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.


Changes: Integer overflows leading to unexpected orderings were fixed from many comparison functions. CMake support was added. Two more bit operations from Hacker's Delight were added.


Changes: Many changes were made to support 64-bit machines. Threading support was improved. The hash functions are faster and distribute better. Some bugs were fixed and many features were added.


Changes: Compilation failures with certain option settings have been fixed. The main hash function for vectors has been greatly improved. Support for global settings of common options has been added.


Changes: This release fixes a segfault in Map_intersect. The code has been fixed for newer versions of gcc.