9 projects tagged "C++"
The STX B+ Tree package is a set of C++ template classes implementing a B+ tree key/data container in main memory. The classes are designed as drop-in replacements of the STL containers set, map, multiset, and multimap, and follow their interfaces very closely. By packing multiple value pairs into each node of the tree, the B+ tree reduces heap fragmentation and utilizes cache-line effects better than the standard red-black binary tree. The tree algorithms are based on the implementation in Cormen, Leiserson, and Rivest's Introduction into Algorithms, Jan Jannink's paper, and other algorithm resources. The classes contain extensive assertion and verification mechanisms to ensure the implementation's correctness by testing the tree invariants.
nedtries is a portable in-place bitwise binary Fredkin trie algorithm that allows for near constant time insertions, deletions, finds, closest fit finds, and iteration. It is approximately 50-100% faster than red-black trees and up to 20% faster than O(1) hash tables. It provides implementations as C macros, C++ templates, and as a C++ STL compatible associative container.
Configurator is a configuration file parser. It allows you to use arbitrary nesting of sections. The user can define an option's default value, necessity, and semantic check. It supports single-line and multi-line comments (in C++ style). It provides common checks of options and sections, like duplication, incorrection, etc. It uses only Boost C++ libraries and ISO C++. It is header-only (does not require building) and very easy to use.
The Mirror C++ reflection library provides both compile-time and run-time meta-data describing common C++ program constructs like namespaces, types, enumerations, classes, their base classes and member variables, constructors, etc. and provides generic interfaces for their introspection. It also provides several high-level utilities based on the reflected meta-data like a factory generator, which generates, at compile-time, implementations of object factories which can create instances of arbitrary 'reflectable' type.
libKISSlog is a trivial lightweight C++ template library designed and written according to the KISS (Keep It Simple and Straightforward) principle. It leans heavily on STL for keeping its implementation as simple as its usage, and tries to provide C++ developers with a lightweight, paradigm-pure, and flexible alternative to logging libraries which use design and/or implementation decisions which at least the author of libKISSlog believes to be questionable. Its easiest to explain why libKISSlog would be suitable for your needs by listing the things which libKISSlog does not choose to use or do: no singletons or other forms of mutable global state, no macros, no attempt to fit the Java runtime everything model onto a C++ library, no attempt to be a Java-style (bloated) framework, no attempt to make the choice for you of whether you need thread safety, and no compromise on simplicity in order to facilitate questionable inner-loop logging practices.