Boost logo

Boost :

Subject: [boost] Library categories
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2011-11-03 16:54:57


I was wondering if we can add other categories to the library catalog

Here is a proposal


Domain Specific

     crc - Cyclic Redundancy Code, from Daryle Walker.
     units - Zero-overhead dimensional analysis and unit/quantity
manipulation and conversion, from Matthias Schabel and Steven Watanabe.
     uuid - A universally unique identifier, from Andy Tompkins.


     base-from-member - Idiom to initialize a base class with a member,
from Daryle Walker.
     compressed_pair - Empty member optimization, from John Maddock,
Howard Hinnant, et al.

Language Emulation: these are libraries are emulating a missing language

     exception - A library for transporting of arbitrary data in
exception objects, and transporting of exceptions between threads
(N2179), from Emil Dotchevski.
     move - Portable move semantics for C++03 and C++1 compilers, from
Ion Gaztañaga
     scope_exit - Execute arbitrary code at scope exit, from Alexander
     typeof - Typeof operator emulation, from Arkadiy Vertleyb and Peder

Patterns: libraries that implement a known pattern

     flyweight - Design pattern to manage large quantities of highly
redundant objects, from Joaquín M López Muñoz.
     signals - managed signals & slots callback implementation, from
Doug Gregor.
     signals2 - managed signals & slots callback implementation
(thread-safe version 2), from Frank Mori Hess.

State Machines

     meta state machine - High-performance expressive UML 2.0 finite
state machines, from Christophe Henry.
     statechart - Arbitrarily complex finite state machines can be
implemented in easily readable and maintainable C++ code, from Andreas

System: libraries that are close to the underlying system

     chrono - Useful time utilities, from Howard Hinnant, Beman Dawes,
Vicente J. Botet Escribá.
     date_time - Date-Time library from Jeff Garland.
     filesystem - Portable paths, iteration over directories, and other
useful filesystem operations, from Beman Dawes.
     system - Operating system support, including the diagnostics
support that will be part of the C++0x standard library, from Beman Dawes.

I would add also the following to exixting categories
Data structures

     optional - Discriminated-union wrapper for optional values, from
Fernando Cacciola.
     tribool - 3-state boolean type library, from Doug Gregor.

I have no suggestion for the following, so we can maintain them in

     conversion - Polymorphic and lexical casts, from Dave Abrahams and
Kevlin Henney.
     swap - Enhanced generic swap function, from Joseph Gauterin.
     timer - Event timer, progress timer, and progress display classes,
from Beman Dawes.
     TR1 - An implementation of the Technical Report on C++ Library
Extensions, using other Boost libraries as a basis, from John Maddock.
     utility - Class noncopyable plus checked_delete(),
checked_array_delete(), next(), prior() function templates, plus
base-from-member idiom, from Dave Abrahams and others.
     value_initialized - Wrapper for uniform-syntax value
initialization, from Fernando Cacciola, based on the original idea of
David Abrahams.

The following libraries are already in another category

     lexical_cast - General literal text conversions, such as an int
represented as a string, or vice-versa, from Kevlin Henney.
     numeric/conversion - Optimized Policy-based Numeric Conversions,
from Fernando Cacciola.
     program_options - Access to configuration data given on command
line, in config files and other sources, from Vladimir Prus.

Boost list run by bdawes at, gregod at, cpdaniel at, john at