...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Boost.Bimap is built on top of several Boost libraries. The rationale behind this decision is keeping the Boost code base small by reusing existent code. The libraries used are well-established and have been tested extensively, making this library easy to port since all the hard work has already been done. The glue that holds everything together is Boost.MPL. Clearly Boost.MultiIndex is the heart of this library.
Table 1.4. Boost Libraries needed by Boost.Bimap
Name |
Description |
author |
---|---|---|
Containers with multiple STL-compatible access interfaces |
Joaquín M López Muñoz |
|
Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes |
Aleksey Gurtovoy |
|
Templates for fundamental properties of types. |
John Maddock, Steve Cleary |
|
Selective inclusion of function template overloads |
Jaakko Järvi, Jeremiah Willcock, Andrew Lumsdaine |
|
Iterator construction framework, adaptors, concepts, and more. |
Dave Abrahams, Jeremy Siek, Thomas Witt |
|
Defines types for passing parameters. |
John Maddock, Howard Hinnant |
|
Static assertions (compile time assertions). |
John Maddock |
Table 1.5. Optional Boost Libraries
Name |
Description |
author |
Purpose |
---|---|---|---|
Serialization for persistence and marshalling |
Robert Ramey |
Serialization support for bimap containers and iterators |
|
Filling containers with constant or generated data has never been easier |
Thorsten Ottosen |
Help to fill a bimap or views of it |
|
A TR1 hash function object that can be extended to hash user defined types |
Daniel James |
Default hashing function |
|
Define small unnamed function objects at the actual call site, and more |
from Jaakko Järvi, Gary Powell |
Functors for modify, range, lower_bound and upper_bound |
|
A new infrastructure for generic algorithms that builds on top of the new iterator concepts |
Thorsten Ottosen |
Range based algorithms |
|
Concepts defining interfaces which map key objects to value objects |
Jeremy Siek |
Integration with BGL |
Table 1.6. Additional Boost Libraries needed to run the test-suite
Name |
Description |
author |
---|---|---|
Support for simple program testing, full unit testing, and for program execution monitoring. |
Gennadiy Rozental |