Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / bimap / doc / bimap.qbk
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
13 Distributed 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
138 Boost.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>` 
139 can be thought of as a combination of a `std::map<X,Y>` and a `std::map<Y,X>`. 
140 The learning curve of bimap is almost flat if you know how to use standard 
141 containers. A great deal of effort has been put into mapping the naming scheme of the
142 STL in Boost.Bimap. The library is designed to match the common STL containers.
143
144 [heading Influences and Related Work]
145
146 The design of Boost.Bimap interface follows the standard template library.
147 It 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]