Boost logo

Boost :

From: Ronald Garcia (garcia_at_[hidden])
Date: 2005-12-01 15:11:55

  Review Wizard Status Report
  Tom Brinkman
  Ronald Garcia

  1) News
  2) Review Managers Needed
  3) Review Queue
  4) Libraries under development

  1) News

Ronald Garcia has signed on as co-wizard to assist Tom Brinkman. Feel
free to contact either of us with questions or review requests.

Output Formatters, Singleton, and Interfaces have been removed from the
queue. Reece Dunn,
Jason Hise, and Jonathan Turkanis, the respective library authors, do
currently have the time to make the changes necessary prior to a
review. We hope to see these libraries updated and resubmitted
some time in the not too distant future.

We need review managers. Please take a look at the list of libraries
in need of managers and check out their descriptions. If you can
serve as review manager for any of them, send one of us an email.

  If you have any suggestions about how we could improve
  the Review Wizard's status report or if we have forgotten anything,
  please email "reportbase at gmail dot com"
           and "garcia at cs dot indiana dot edu".

  2) Review Managers Needed

There are a few libraries in the review queue in need
of review managers. If you would like to volunteer to be a review
manager, please contact Ron or Tom.

The following libraries still require review manager volunteers:
Fixed Strings
Intrusive Containers
Singleton (Re-review)
Type Traits (modification)

  3) Review Queue

asio - December 10 2005 - December 24 2005

Policy Pointer
Fixed Strings
Intrusive Containers
Function Types (mini-re-review)

    Author - Christopher Kohlhoff
    Review Manager - Jeff Garland



     asio is a cross-platform C++ library for network programming that
     provides developers with a consistent asynchronous I/O model using a
     modern C++ approach.

     To use asio's SSL support, OpenSSL is required. OpenSSL is not
     necessary to use the rest of asio.

     asio consists only of header files, and so there is no need to build
     any libraries before using asio in your own applications.

     asio supports the following platforms and compilers:
       Win32 using Visual C++ 7.1 and Visual C++ 8.0.
       Win32 using Borland C++Builder 6 patch 4.
       Win32 using MinGW.
       Linux (2.4 or 2.6 kernels) using g++ 3.3 or later.
       Solaris using g++ 3.3 or later.
       Mac OS X 10.4 using g++ 3.3 or later.

  Type_Traits (modification)
          Author - Alexander Nasonov
          Review Manager - To be determined
          Download :
        You can download it from
        or browse it online

        Proposal to add promote, integral_promotion and
          class templates to type_traits library.

        Alexander tried it on different compilers with various success:
        GNU/Linux (gentoo-hardened): gcc 3.3 and 3.4, Intel 7, 8 and 9
        Windows: VC7 free compiler
        Sparc Solaris: Sun C++ 5.3 and 5.7

        See comments at the beginning of promote_enum_test.cpp for what is

        Alexandar used to compile tests on VC6 and I'm pretty sure I can add
workarounds if
        someone is still interested. Actually, it compiled the tests better
then VC7.
        As for Borland 5.5, is_enum is broken and I don't see any reason to
support this compiler.

        Alexandar requests a fast-track review.
  Policy Pointer
    Author - David Held & Jonathan Turkanis
    Review Manager - Gennadiy Rozenthal

     Boost Sandbox ( under

     Smart pointers are used to automate memory management by handling
     deletion of dynamically allcoated objects (and other resources).
     They assist in ensuring program correctness, exception safety, and
     memory integrity. Policy Pointer is a policy-based smart
     pointer framework designed to accomodate the large number of
     smart pointer designs. Through the use of policy classes,
     virtually any smart pointer type can be constructed within this
     framework. This library is a Boostification of the original
     Loki::SmartPtr type with significant modifications.

   Fixed Strings
    Author - Reece Dunn
    Review Manager - to be determined

     Boost Sandbox ( under

     The fixed string library provides buffer overrun protection for
     sized strings (char s[ n ]). It provides a C-style string
     interface for compatibility with C code (for
     example, porting a C program to C++).
     There is also a std::string-style interface using a class based on
     flex_string by Andre Alexandrescu with a few limitations due to the
     non-resizable nature of the class.

  Intrusive Containers
    Author - Olaf Krzikalla
    Review Manager - to be determined


     While intrusive containers were and are widely used in C, they
     more and more forgotten in the C++-world due to the presence of the
     standard containers, which don't support intrusive
     techniques. Boost.Intrusive not only reintroduces this technique to
     C++, but also encapsulates the implementation in STL-like
     interfaces. Hence anyone familiar with standard containers can use
     intrusive containers with ease.

   Function Types (mini-re-review)
     Author - Tobias Schwinger
     Review Manager - John Maddock


      This library provides a metaprogramming facility
       to classify, decompose and synthesize function-,
       function pointer-, function reference- and
       member function pointer types. For the purpose
       of this documentation, these types are
       collectively referred to as function
       types (this differs from the standard
       definition and redefines the term from
       a programmer's perspective to refer to
       the most common types that involve functions).

      The classes introduced by this library
       shall conform to the concepts of the
       Boost Metaprogramming library (MPL).

      The Function Types library enables the user to:
       * test an arbitrary type for
        being a function type of specified kind,
       * inspect properties of function types,
       * view and modify sub types of an
        encapsulated function type with
        MPL Sequence operations, and
       * synthesize function types.

      This library supports variadic functions and
       can be configured to support
       non-default calling conventions.

    Author - Ion Gaztanaga
    Review Manager - to be determined

  Boost Sandbox Vault -> Memory

     Shmem offers tools to symplify shared memory usage in
     applications. These include shared memory creation/destruction and
     synchronization objects. It also implements dynamic allocation of
     portions of a shared memory segment and an easy way to construct C++
     objects in shared memory.

     Apart from this, Shmem implements a wide range of STL-like
     and allocators that can be safely placed in shared memory, helpful
     implement complex shared memory data-bases and other efficient
     inter-process communications.

    Author - Joel de Guzman
    Review Manager - to be determined


     Fusion is a library of heterogenous containers and views and
     algorithms. A set of heterogenous containers (vector, list, set and
     map) is provided out of the box along with view classes that present
     various composable views over the data. The containers and views
     follow a common sequence concept with an underlying iterator concept
     that binds it all together, suitably making the algorithms fully
     generic over all sequence types.

     The architecture is somewhat modeled after MPL which in turn is
     modeled after STL. It is code-named "fusion" because the library is
     the "fusion" of compile time metaprogramming with runtime

  4) Libraries under development

   Please let us know of any libraries you are currently
   developing that you intend to submit for review.

   Output Formatters

  Output Formatters
    Author - Reece Dunn

     Boost Sandbox ( under outfmt

     The I/O formatters library provides an easy and customizable way to
     input/output arrays, STL arrays, STL collections, sub-arrays from/to
     STL streams. It allows you to configure how each element in such an
     array will be written to the stream or read from the stream,
     while providing reasonable defaults.

    Author - Jason Hise

    Download: (old version from previous review)

     Singleton is feature rich library:

     - ensuring single instance of a class
        and global access point to this instance

     - with policies specifying:

       - when the instance gets created
         (manually, immediatelly, when first used, ...)

       - how is the instance created
         (by new, malloc, in static memory, ...)

       - when the instance gets destroyed
         (never, by priority, after another singleton, ...)

     Parametrized singleton called Multiton is provided

       City::pointer p1("Chicago");
        City::pointer p2("Brussels");

     will create two different "singletons" of the same type.

     Another feature is ability to register resources
      (like shared pointer) who will get destroyed
      in controlled order, when the application exits.

     Not yet implemented features are:
       - MT safety
       - self-destroying singleton with timeout
       - bjam compatible tests

     The library is known to work with several newer compilers,
      VC7.1 among them. Help with other compilers is welcomed.

    Author - Jonathan Turkanis


     Interfaces provides a macro-based Interface Definition Language
     (IDL) which can be used to define C++ class types called
     interfaces. An interface is a lightweight value type associated with
     a set of named function signatures. An interface instance can be
     bound at runtime to any object which implements the interface, i.e.,
     to any object of a type with accessible non-static member functions
     having the same name and signature as the set of functions
     with the interface. The functions of the bound object can then be
     invoked through the interface instance using the 'dot'
     operator. Binding is completely non-intrusive: the object's type
     not declare any virtual functions or derive from any particluar base

    Current applications of Boost.Interfaces include:

    * Non-intrusive dynamic polymorphism: interfaces can often be
      used in place of abstract base classes, and are sometimes much
      (see Performance).

     * Dynamic inheritance: allows function calls to be forwarded
     automatically to an object specified at runtime (see Delegation).

     * Smart Interface Pointers: smart pointers which can manage the
     lifetime of any object whose type implements a given interface.

     * Smart References: like smart interface pointers, but the managed
     object is accessed using the "dot" operator."

  Tom Brinkman
  Ronald Garcia
  Boost Review Wizards

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