1[library Boost.Bimap 2 [quickbook 1.4] 3 [authors [Capeletto, Matias]] 4 [copyright 2006-2012 Matias Capeletto] 5 [category container] 6 [id bimap] 7 [dirname bimap] 8 [purpose 9 Bidirectional map 10 ] 11 [source-mode c++] 12 [license 13Distributed under the Boost Software License, Version 1.0. 14(See accompanying file LICENSE_1_0.txt or copy at 15[@http://www.boost.org/LICENSE_1_0.txt]) 16 ] 17] 18 19[/ QuickBook Document version 1.4 ] 20 21[/ Logos ] 22 23[def __BOOST_BIMAP_LOGO__ [$images/bimap/boost.bimap.logo.png]] 24[def __GOOGLE_SOC_2006__ [$images/extern/googlesoc.png]] 25 26[/ Helpers ] 27 28[def __MI_FRAMEWORK__ [$images/bimap/miBimapFramework.png]] 29[def __SIMPLE_BIMAP__ [$images/bimap/simple.bimap.png]] 30[def __STANDARD_MAPPING_FRAMEWORK__ [$images/bimap/standard.mapping.framework.png]] 31[def __EXTENDED_MAPPING_FRAMEWORK__ [$images/bimap/extended.mapping.framework.png]] 32[def __RELATION__ [$images/bimap/relation.png]] 33[def __STD_PAIR__ [$images/bimap/std_pair.png]] 34[def __COLLECTION_TYPE_OF_RELATION__ [$images/bimap/collection.type.of.relation.png]] 35[def __BIMAP_STRUCTURES__ [$images/bimap/bimap.structures.png]] 36[def __TAGGED__ [$images/bimap/tagged.png]] 37[def __MORE_BIMAP_STRUCTURES__ [$images/bimap/more.bimap.structures.png]] 38[def __RELATION_AND_PAIR__ [$images/bimap/relation.and.pair.png]] 39[def __RELATION_AND_PAIR_WITH_INFO__ [$images/bimap/relation.and.pair.with.info.png]] 40 41 42[/ People ] 43 44[def __MATIAS_PHOTO__ [$images/people/matias.png]] 45[def __JOAQUIN_PHOTO__ [$images/people/joaquin.png]] 46[def __MAFALDA_PHOTO__ [$images/people/mafalda.png]] 47[def __HECTOR_PHOTO__ [$images/people/hector.png]] 48 49[/ Icons ] 50 51[def __NOTE__ [$images/note.png]] 52[def __ALERT__ [$images/caution.png]] 53[def __DETAIL__ [$images/note.png]] 54[def __TIP__ [$images/tip.png]] 55[def __QUESTION_MARK__ [$images/question.png]] 56 57 58[/ Boost Libraries ] 59 60[def __BOOST_MULTI_INDEX__ [@http://www.boost.org/libs/multi_index/doc/index.html [*Boost.MultiIndex]]] 61[def __BOOST_MPL__ [@http://www.boost.org/libs/mpl/doc/index.html [*Boost.MPL]]] 62[def __BOOST_TYPE_TRAITS__ [@http://www.boost.org/doc/html/boost_typetraits.html [*Boost.TypeTraits]]] 63[def __BOOST_ENABLE_IF__ [@http://www.boost.org/libs/utility/enable_if.html [*Boost.enable_if]]] 64[def __BOOST_ITERATORS__ [@http://www.boost.org/libs/iterator/doc/index.html [*Boost.Iterators]]] 65[def __BOOST_CALL_TRAITS__ [@http://www.boost.org/libs/utility/call_traits.htm [*Boost.call_traits]]] 66[def __BOOST_STATIC_ASSERT__ [@http://www.boost.org/doc/html/boost_staticassert.html [*Boost.StaticAssert]]] 67 68[def __BOOST_SERIALIZATION__ [@http://www.boost.org/libs/serialization/doc/index.html [*Boost.Serialization]]] 69[def __BOOST_HASH__ [@http://www.boost.org/doc/html/hash.html [*Boost.Hash]]] 70[def __BOOST_ASSIGN__ [@http://www.boost.org/libs/assign/doc/index.html [*Boost.Assign]]] 71[def __BOOST_LAMBDA__ [@http://www.boost.org/doc/html/lambda.html [*Boost.Lambda]]] 72[def __BOOST_PROPERTY_MAP__ [@http://www.boost.org/doc/html/property_map.html [*Boost.PropertyMap]]] 73[def __BOOST_RANGE__ [@http://www.boost.org/doc/html/range.html [*Boost.Range]]] 74[def __BOOST_FOREACH__ [@http://www.boost.org/doc/html/foreach.html [*Boost.Foreach]]] 75[def __BOOST_TEST__ [@http://www.boost.org/libs/test/doc/index.html [*Boost.Test]]] 76[def __BOOST_TYPEOF__ [@http://www.boost.org/libs/typeof/doc/index.html [*Boost.Typeof]]] 77[def __BOOST_XPRESSIVE__ [@http://www.boost.org/libs/xpressive/doc/index.html [*Boost.Xpressive]]] 78 79 80[/ Extern Links ] 81 82[def __CPP_STANDARD_LIBRARY_TECHNICAL_REPORT__ [@http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1836.pdf C++ Standard Library Technical Report]] 83[def __CPP_DEFECT_REPORT_130__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#130 Defect Report 130]] 84[def __TR1_ISSUES_LIST__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf Issues List]] 85 86[def __BOOST_HASH_FUNCTION__ [@http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/hash.html boost::hash]] 87 88[def __BOOST_PERMUTATION_ITERATOR__ [@http://www.boost.org/libs/iterator/doc/permutation_iterator.html `permutation_iterator`]] 89 90[def __BOOST_ASSERT_MACRO__ [@where_it_is `BOOST_ASSERT`]] 91[def __BOOST_MPL_FORWARD_SEQUENCE__ [@http://www.boost.org/libs/mpl/doc/refmanual/forward-sequence.html MPL Forward Sequence]] 92[def __BOOST_MPL_RANDOM_ACCESS_SEQUENCE__ [@http://www.boost.org/libs/mpl/doc/refmanual/random-access-sequence.html MPL Random Access Sequence]] 93[def __BOOST_MPL_EXTENSIBLE_SEQUENCE__ [@http://www.boost.org/libs/mpl/doc/refmanual/extensible-sequence.html MPL Extensible Sequence]] 94 95[def __SGI_UNARY_FUNCTION__ [@https://www.boost.org/sgi/stl/UnaryFunction.html Unary Function]] 96[def __SGI_BINARY_FUNCTION__ [@https://www.boost.org/sgi/stl/BinaryFunction.html Binary Function]] 97 98[def __SGI_ASSIGNABLE__ [@https://www.boost.org/sgi/stl/Assignable.html Assignable]] 99[def __SGI_DEFAULT_CONSTRUCTIBLE__ [@https://www.boost.org/sgi/stl/DefaultConstructible.html Default Constructible]] 100[def __SGI_BINARY_PREDICATE__ [@https://www.boost.org/sgi/stl/BinaryPredicate.html Binary Predicate]] 101[def __SGI_CONTAINER__ [@https://www.boost.org/sgi/stl/Container.html Container]] 102[def __SGI_SORTED_ASSOCIATIVE_CONTAINER__ [@https://www.boost.org/sgi/stl/SortedAssociativeContainer.html Sorted Associative Container]] 103[def __SGI_UNIQUE_ASSOCIATIVE_CONTAINER__ [@https://www.boost.org/sgi/stl/UniqueAssociativeContainer.html Unique Associative Container]] 104[def __SGI_REVERSIBLE_CONTAINER__ [@https://www.boost.org/sgi/stl/ReversibleContainer.html Reversible Container]] 105[def __SGI_RANDOM_ACCESS_CONTAINER__ [@https://www.boost.org/sgi/stl/RandomAccessContainer.html Random Access Container]] 106[def __SGI_FRONT_INSERTION_SEQUENCE__ [@https://www.boost.org/sgi/stl/FrontInsertionSequence.html Front Insertion Sequence]] 107[def __SGI_BACK_INSERTION_SEQUENCE__ [@https://www.boost.org/sgi/stl/BackInsertionSequence.html Back Insertion Sequence]] 108[def __SGI_INPUT_ITERATOR__ [@https://www.boost.org/sgi/stl/InputIterator.html Input Iterator]] 109[def __SGI_FORWARD_ITERATOR__ [@https://www.boost.org/sgi/stl/ForwardIterator.html Forward Iterator]] 110[def __SGI_STRICT_WEAK_ORDERING__ [@https://www.boost.org/sgi/stl/StrictWeakOrdering.html Strict Weak Ordering]] 111 112[def __EIFFEL__ [@http://www.eiffel.com/ Eiffel]] 113[def __SAFE_STL__ [@http://www.horstmann.com/safestl.html Safe STL]] 114[def __STL_PORT_DEBUG_MODE__ [@http://www.stlport.com/doc/debug_mode.html STLport Debug Mode]] 115 116[def __CGAL__ [@http://www.cgal.org/ CGAL]] 117[def __MYSQLPP__ [@http://tangentsoft.net/mysql++/ MySQL++]] 118 119 120[def __STL_TREE_H__ [@https://www.boost.org/sgi/stl/stl_tree.h stl_tree.h]] 121[def __ORDER_STATISTICS_TREE__ [@http://pine.cs.yale.edu/pinewiki/OrderStatisticsTree ['order-statistics trees]]] 122 123[def __GENERIC_PROGRAMMING_MOVE_CONSTRUCTORS__ [@http://www.ddj.com/dept/cpp/184403855 "Generic<Programming>: Move Constructors]] 124[def __CLARIFICATION_OF_INITIALIZATION__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html "Clarification of Initialization of Class Objects by rvalues"]] 125 126 127[/ Code snippets ] 128 129[import ../example/simple_bimap.cpp] 130[import ../example/mighty_bimap.cpp] 131 132[section Preface] 133 134[heading Description] 135 136__BOOST_BIMAP_LOGO__ 137 138Boost.Bimap is a bidirectional maps library for C++. With Boost.Bimap you can create associative containers in which both types can be used as key. A `bimap<X,Y>` 139can be thought of as a combination of a `std::map<X,Y>` and a `std::map<Y,X>`. 140The learning curve of bimap is almost flat if you know how to use standard 141containers. A great deal of effort has been put into mapping the naming scheme of the 142STL in Boost.Bimap. The library is designed to match the common STL containers. 143 144[heading Influences and Related Work] 145 146The design of Boost.Bimap interface follows the standard template library. 147It has been strongly influenced by Joaquin Lopez Muñoz's Boost.MultiIndex library 148(the heart of bimaps) and codeproject::bimap library. 149 150[endsect] 151 152[include introduction.qbk] 153[include quick_tutorial.qbk] 154[include tutorial.qbk] 155[include bimap_and_boost.qbk] 156[include reference.qbk] 157[include compiler_specifics.qbk] 158[include performance.qbk] 159[include examples.qbk] 160[include test_suite.qbk] 161[include future_work.qbk] 162[include release_notes.qbk] 163[include rationale.qbk] 164[include history.qbk] 165[include acknowledgements.qbk] 166