]>
Commit | Line | Data |
---|---|---|
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__ [@http://www.sgi.com/tech/stl/UnaryFunction.html Unary Function]] | |
96 | [def __SGI_BINARY_FUNCTION__ [@http://www.sgi.com/tech/stl/BinaryFunction.html Binary Function]] | |
97 | ||
98 | [def __SGI_ASSIGNABLE__ [@http://www.sgi.com/tech/stl/Assignable.html Assignable]] | |
99 | [def __SGI_DEFAULT_CONSTRUCTIBLE__ [@http://www.sgi.com/tech/stl/DefaultConstructible.html Default Constructible]] | |
100 | [def __SGI_BINARY_PREDICATE__ [@http://www.sgi.com/tech/stl/BinaryPredicate.html Binary Predicate]] | |
101 | [def __SGI_CONTAINER__ [@http://www.sgi.com/tech/stl/Container.html Container]] | |
102 | [def __SGI_SORTED_ASSOCIATIVE_CONTAINER__ [@http://www.sgi.com/tech/stl/SortedAssociativeContainer.html Sorted Associative Container]] | |
103 | [def __SGI_UNIQUE_ASSOCIATIVE_CONTAINER__ [@http://www.sgi.com/tech/stl/UniqueAssociativeContainer.html Unique Associative Container]] | |
104 | [def __SGI_REVERSIBLE_CONTAINER__ [@http://www.sgi.com/tech/stl/ReversibleContainer.html Reversible Container]] | |
105 | [def __SGI_RANDOM_ACCESS_CONTAINER__ [@http://www.sgi.com/tech/stl/RandomAccessContainer.html Random Access Container]] | |
106 | [def __SGI_FRONT_INSERTION_SEQUENCE__ [@http://www.sgi.com/tech/stl/FrontInsertionSequence.html Front Insertion Sequence]] | |
107 | [def __SGI_BACK_INSERTION_SEQUENCE__ [@http://www.sgi.com/tech/stl/BackInsertionSequence.html Back Insertion Sequence]] | |
108 | [def __SGI_INPUT_ITERATOR__ [@http://www.sgi.com/tech/stl/InputIterator.html Input Iterator]] | |
109 | [def __SGI_FORWARD_ITERATOR__ [@http://www.sgi.com/tech/stl/ForwardIterator.html Forward Iterator]] | |
110 | [def __SGI_STRICT_WEAK_ORDERING__ [@http://www.sgi.com/tech/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__ [@http://www.sgi.com/tech/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] |