Boost.MultiIndex Acknowledgements

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.