bimap.qbk 8.1 KB

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