...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Fernando Cacciola, Darren Cook, Beman Dawes, Jeremy Maitin-Shepard and Daryle Walker from the Boost mailing list provided useful suggestions for improvement on the first alpha releases of the library. Gang Wang discovered several bugs in the code. Thomas Wenisch brought out the idea of "sequence sets" from which sequenced indices were designed. Giovanni Bajo, Chris Little and Maxim Yegorushkin tested the library on several platforms. Daniel Wallin contributed fixes for MSVC++ 7.0. Ron Liechty and the support staff at Metrowerks provided assistance during the porting of the library to CW 8.3. Porting to VisualAge 6.0 counted on Toon Knapen's help. Markus Schöpflin aided with Compaq C++ 6.5 and GCC for Tru64 UNIX. Rosa Bernárdez proofread the last versions of the tutorial.
Pavel Voženílek has been immensely helpful in thoroughly reviewing every single bit of the library, and he also suggested several extra functionalities, most notably range querying, safe mode, polymorphic key extractors and MPL support. Thank you!
The Boost acceptance review took place between March 20th and 30th 2004. Pavel Voženílek was the review manager. Thanks to all the people who participated and specially to those who submitted reviews: Fredrik Blomqvist, Tom Brinkman, Paul A Bristow, Darren Cook, Jeff Garland, David B. Held, Brian McNamara, Gary Powell, Rob Stewart, Arkadiy Vertleyb, Jörg Walter. Other Boost members also contributed ideas, particularly in connection with the library's naming scheme: Pavol Droba, Dave Gomboc, Jeremy Maitin-Shepard, Thorsten Ottosen, Matthew Vogt, Daryle Walker. My apologies if I inadvertently left somebody out of this list.
Boost.MultiIndex could not have been written without Aleksey Gurtovoy et al. superb Boost MPL Library. Also, Aleksey's techniques for dealing with ETI-related problems in MSVC++ 6.0 helped solve some internal issues of the library.
The internal implementation of red-black trees is based on that of SGI STL stl_tree.h file:
Copyright (c) 1996,1997 Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 1994 Hewlett-Packard Company
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
I would like to dedicate this piece of work to Rosa Bernárdez, my very first
C++ teacher, for her unconditional support in many endeavors of which programming is
by no means the most important. In memory of my cat López (2001-2003): he
lived too fast, died too young.
Many thanks again to Pavel Voženílek, who has carefully reviewed the new material and suggested many improvements. The design of hashed indices has benefited from discussions with several Boost members, most notably Howard Hinnant and Daniel James. Daniel has also contributed Boost.Hash to the community: hashed indices depend on this library as their default hash function provider. Robert Ramey's Boost Serialization Library provides the very solid framework upon which Boost.MultiIndex serialization capabilities are built. Toon Knapen helped adjust the library for VisualAge 6.0. Markus Schöpflin provided a Jamfile tweak for GCC under Tru64 UNIX.
Thanks go to Pavel Voženílek for his useful comments and suggestions during the development of this release, and to Rosa Bernárdez for reviewing the new material in the documentation. Alo Sarv suggested a notational improvement in the specification of partial searches with composite keys. Maxim Yegorushkin proposed a valuable spatial optimization for ordered indices and provided figures of its impact on performance for containers with large numbers of elements. Caleb Epstein performed the tests under MSVC++ 8.0 described in the performance section. The following people have reported bugs and problems with previous versions and prereleases of the library: Alexei Alexandrov, Matías Capeletto, John Eddy, Martin Eigel, Guillaume Lazzara, Felipe Magno de Almeida, Julien Pervillé, Hubert Schmid, Toby Smith.
New member in the family! Thanks to Héctor for his patience during
long development sessions and his occasional contributions to the source
codebase.
global_fun
was included after a proposal by Markus Werle. Bruno Martínez Aguerre
suggested the inclusion of
iterator_to
. The
rollback versions of modify
and modify_key
arose
from discussions with Matías Capeletto. Steven Watanabe spotted an
include guard bug present from the first release of the library.
Thanks to Amit Jain for reporting a problem with allocator management.
Michael Fawcett proposed the addition of an allocator constructor to
multi_index_container
.
A report from Zachary Zhou has led to
enhancing the behavior of
hashed indices update functions so that they meet some intuitive expectations.
Grzegorz Jakacki spotted some internal dead code.
Stephen Kelly has contributed the removal of workaround code for old compilers no longer supported.
Revised October 9th 2013
© Copyright 2003-2013 Joaquín M López Muñoz. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)