passenger 5.0.24 → 5.0.25

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (1796) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +8 -18
  3. data/CHANGELOG +20 -0
  4. data/build/cplusplus_support.rb +3 -3
  5. data/build/cxx_dependency_map.rb +148 -96
  6. data/build/cxx_tests.rb +24 -12
  7. data/build/packaging.rb +1 -2
  8. data/dev/copy_boost_headers +32 -9
  9. data/resources/templates/standalone/config.erb +2 -0
  10. data/resources/templates/standalone/footer.erb +3 -0
  11. data/resources/templates/standalone/server.erb +7 -0
  12. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +2 -2
  13. data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -0
  14. data/src/agent/Core/UnionStation/Transaction.h +1 -15
  15. data/src/agent/README.md +15 -3
  16. data/src/agent/UstRouter/Controller.h +95 -90
  17. data/src/agent/UstRouter/FileSink.h +3 -2
  18. data/src/agent/UstRouter/LogSink.h +5 -6
  19. data/src/agent/UstRouter/RemoteSender.h +41 -12
  20. data/src/agent/UstRouter/RemoteSink.h +3 -2
  21. data/src/agent/UstRouter/Transaction.h +198 -66
  22. data/src/apache2_module/Configuration.cpp +57 -2
  23. data/src/apache2_module/Configuration.h +3 -1
  24. data/src/apache2_module/Configuration.hpp +3 -1
  25. data/src/apache2_module/Hooks.cpp +4 -2
  26. data/src/cxx_supportlib/Constants.h +1 -1
  27. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -0
  28. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -0
  29. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +4 -3
  30. data/src/cxx_supportlib/ServerKit/Server.h +1 -0
  31. data/src/cxx_supportlib/Utils/BufferedIO.h +21 -4
  32. data/src/cxx_supportlib/Utils/IOUtils.cpp +62 -12
  33. data/src/cxx_supportlib/Utils/StrIntUtils.cpp +3 -3
  34. data/src/cxx_supportlib/Utils/StrIntUtils.h +2 -2
  35. data/src/cxx_supportlib/WatchdogLauncher.cpp +13 -1
  36. data/src/cxx_supportlib/WatchdogLauncher.h +4 -1
  37. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +312 -0
  38. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/concept.hpp +1 -1
  39. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +353 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format.hpp +1 -1
  41. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_all.hpp +1 -1
  42. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_store.hpp +1 -1
  43. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +87 -0
  44. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder.hpp +1 -8
  45. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder_regex.hpp +122 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter.hpp +1 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter_regex.hpp +61 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/predicate.hpp +77 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/trim.hpp +95 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +1 -1
  51. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/erase.hpp +1 -1
  52. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find.hpp +334 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_format.hpp +1 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +388 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +1 -1
  56. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  57. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/iter_find.hpp +193 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/join.hpp +145 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate.hpp +475 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate_facade.hpp +42 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/regex.hpp +646 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/regex_find_format.hpp +90 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +1 -1
  64. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/sequence_traits.hpp +0 -73
  65. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/split.hpp +163 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/list_traits.hpp +68 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/rope_traits.hpp +81 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/slist_traits.hpp +69 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/string_traits.hpp +44 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std_containers_traits.hpp +26 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim.hpp +398 -0
  72. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +217 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +20 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +29 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +40 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +22 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +29 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/aligned_storage.hpp +1 -164
  79. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +33 -84
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +1 -1
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +83 -231
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +33 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +161 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +70 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +774 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +53 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_alpha.hpp +34 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +56 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +134 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +36 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sparc.hpp +34 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +62 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +52 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_linux_arm.hpp +35 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_arm.hpp +34 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +50 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +57 -36
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +140 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +297 -16
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/link.hpp +58 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lockpool.hpp +30 -76
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations.hpp +24 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_fwd.hpp +35 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +30 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +105 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +161 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +68 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +876 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +973 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +395 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +802 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +240 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +270 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +514 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +616 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +178 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +824 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_common.hpp +38 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +928 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +43 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +91 -32
  122. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +280 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +67 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +18 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +74 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +5 -5
  127. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +507 -2
  128. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +214 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/bind/make_adaptable.hpp +187 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +130 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +29 -36
  132. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +304 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +13 -65
  134. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +9 -13
  135. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -4
  136. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -2
  137. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/concept_def.hpp +0 -17
  138. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +0 -8
  140. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +25 -26
  141. data/src/cxx_supportlib/vendor-modified/boost/config.hpp +9 -12
  142. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +17 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +36 -6
  144. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +135 -14
  145. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +41 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +48 -9
  147. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +33 -5
  148. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +36 -16
  149. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +121 -87
  150. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +39 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +13 -9
  152. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +327 -64
  153. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +44 -10
  154. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +38 -4
  155. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +0 -12
  156. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +36 -3
  157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +37 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +63 -23
  159. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +44 -13
  160. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +102 -128
  161. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +258 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cloudabi.hpp +18 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +31 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +2 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +4 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +43 -7
  168. data/src/cxx_supportlib/vendor-modified/boost/config/select_platform_config.hpp +32 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/config/select_stdlib_config.hpp +28 -8
  170. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +58 -15
  171. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +13 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +43 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +129 -14
  174. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +13 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +13 -9
  176. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +12 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +14 -4
  178. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +13 -8
  179. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +13 -3
  180. data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +159 -85
  181. data/src/cxx_supportlib/vendor-modified/boost/config/user.hpp +15 -6
  182. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +351 -0
  183. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +371 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +283 -213
  185. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +195 -51
  186. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +840 -625
  187. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +166 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +24 -13
  189. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +41 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +289 -181
  191. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +35 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +60 -0
  193. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +314 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +11 -7
  195. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +24 -25
  196. data/src/cxx_supportlib/vendor-modified/boost/container/detail/auto_link.hpp +51 -0
  197. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +139 -0
  198. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +157 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +74 -0
  200. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +16 -14
  201. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +1 -5
  202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +62 -0
  203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +1142 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +61 -48
  205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +293 -0
  206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +103 -0
  207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +335 -408
  208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +9 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +383 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +40 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +58 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +300 -83
  213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +13 -3
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +37 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/minimal_char_traits_header.hpp +32 -0
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +45 -118
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +22 -10
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +288 -0
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +75 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +115 -109
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +157 -0
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +33 -23
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +62 -89
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +30 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +11 -6
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +102 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +191 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +121 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +56 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +33 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +17 -13
  232. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +646 -595
  233. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +44 -184
  234. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +7 -3
  235. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +9 -4
  236. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +23 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +50 -15
  238. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +627 -287
  239. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +608 -657
  240. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +395 -376
  241. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +616 -625
  242. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +179 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +344 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +80 -0
  245. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +43 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +63 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +59 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +66 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +43 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +63 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +101 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +180 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +166 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/pool_options.hpp +52 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +193 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +59 -0
  257. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +43 -0
  258. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +43 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +43 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +48 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +138 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +194 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +43 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +423 -1019
  265. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator_fwd.hpp +23 -35
  266. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +520 -626
  267. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +416 -407
  268. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +574 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +711 -470
  270. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +314 -145
  271. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +477 -282
  272. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +63 -3
  273. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +169 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +73 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +1660 -945
  276. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +162 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +69 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +128 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/core/enable_if.hpp +128 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +154 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +70 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +40 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +171 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +56 -0
  285. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +44 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +48 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +44 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +301 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/{detail/scoped_enum_emulation.hpp → core/scoped_enum.hpp} +19 -164
  290. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +60 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +151 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/core/underlying_type.hpp +79 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +132 -95
  294. data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +8 -5
  295. data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +1 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +69 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +3 -3
  298. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +1 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +1 -1
  300. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +3 -3
  301. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_clock_device.hpp +7 -7
  302. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_defs.hpp +1 -1
  303. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +1 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +1 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_format_simple.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_limited.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generator_formatter.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generator_parser.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generators.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_iterator.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +1 -1
  315. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_parsing.hpp +1 -3
  316. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_transition_generators.hpp +75 -0
  318. data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +11 -7
  320. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/conversion.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +1 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +1 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +1 -1
  327. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +1 -1
  328. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +1 -1
  329. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +352 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +1 -1
  331. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +517 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +1 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +1 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_ymd.hpp +1 -1
  335. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +1 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_types.hpp +1 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +1 -1
  340. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +6 -6
  341. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +3 -3
  342. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/conversion.hpp +34 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +169 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/date_duration_operators.hpp +115 -0
  346. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/dst_transition_day_rules.hpp +77 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +528 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time.hpp +24 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_io.hpp +184 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_types.hpp +52 -0
  351. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +474 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/tz_database.hpp +32 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time_adjustor.hpp +218 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_timezone_defs.hpp +193 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +1 -1
  356. data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +2 -2
  357. data/src/cxx_supportlib/vendor-modified/boost/date_time/parse_format_base.hpp +1 -1
  358. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -1
  359. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +1 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_parser.hpp +1 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +9 -1
  362. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
  363. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time.hpp +1 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +1 -1
  365. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +4 -4
  366. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -4
  367. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_legacy_io.hpp +153 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_system.hpp +1 -1
  369. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +1 -1
  370. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +1 -1
  371. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +212 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +1 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_period.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +201 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_defs.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_formatter.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_convert.hpp +1 -2
  378. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +1 -1
  379. data/src/cxx_supportlib/vendor-modified/boost/date_time/strings_from_facet.hpp +1 -3
  380. data/src/cxx_supportlib/vendor-modified/boost/date_time/time.hpp +3 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_clock.hpp +1 -1
  382. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_defs.hpp +1 -1
  383. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +3 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +3 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_formatting_streams.hpp +1 -1
  386. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_iterator.hpp +1 -1
  387. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +1 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +6 -6
  389. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_counted.hpp +2 -2
  390. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +1 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +99 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_names.hpp +98 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +396 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/date_time/wrapping_int.hpp +1 -1
  395. data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +1 -1
  396. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +139 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +1 -6
  398. data/src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp +3 -118
  399. data/src/cxx_supportlib/vendor-modified/boost/detail/fenv.hpp +30 -3
  400. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -283
  401. data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +9 -477
  402. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +12 -82
  403. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +0 -21
  404. data/src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp +8 -107
  405. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +10 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +8 -3
  407. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -9
  408. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +2 -2
  409. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +16 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +11 -12
  411. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +37 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +12 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +12 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +12 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +12 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +12 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +12 -0
  418. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +12 -0
  419. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +12 -0
  420. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +12 -0
  421. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +12 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +12 -0
  423. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +6 -24
  424. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +1 -2
  425. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +35 -30
  426. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +45 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +26 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/float_functions.hpp +4 -4
  429. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +22 -28
  430. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/limits.hpp +3 -2
  431. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +5 -66
  432. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +77 -48
  433. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash_fwd.hpp +3 -7
  434. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +5 -1
  435. data/src/cxx_supportlib/vendor-modified/boost/get_pointer.hpp +28 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +25 -24
  437. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +102 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +23 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +1 -6
  440. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +47 -55
  441. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +655 -2197
  442. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +16 -22
  443. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +376 -1605
  444. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +329 -601
  445. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +982 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +17 -27
  447. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +2101 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/intrusive/{detail/tree_algorithms.hpp → bstree_algorithms.hpp} +973 -684
  449. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +121 -66
  450. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +30 -28
  451. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +22 -15
  452. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +50 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +90 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +48 -61
  455. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +95 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/assert.hpp +6 -2
  457. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +19 -24
  458. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +184 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +104 -8
  460. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +2 -3
  461. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_end.hpp +1 -1
  462. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +69 -0
  463. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +235 -39
  464. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +44 -0
  465. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +48 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +88 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +8 -4
  468. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +107 -95
  469. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/get_value_traits.hpp +222 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +279 -296
  471. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +122 -85
  472. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +186 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +121 -0
  474. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/is_stateful_value_traits.hpp +9 -5
  475. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +155 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +99 -0
  477. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +133 -0
  478. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +14 -139
  479. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +295 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/minimal_less_equal_header.hpp +30 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/minimal_pair_header.hpp +30 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +160 -337
  483. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +105 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_holder.hpp +35 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +130 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +34 -11
  487. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/pointer_element.hpp +168 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +22 -19
  489. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +144 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +50 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +84 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +124 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +14 -117
  494. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/std_fwd.hpp +43 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +46 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +18 -20
  497. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +171 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +13 -133
  499. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +89 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/uncast.hpp +55 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +22 -6
  502. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +2006 -1615
  503. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +450 -229
  504. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +17 -2
  505. data/src/cxx_supportlib/vendor-modified/boost/intrusive/link_mode.hpp +21 -4
  506. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +253 -282
  507. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +17 -20
  508. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +21 -7
  509. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +94 -648
  510. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +374 -0
  511. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +10 -4
  512. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +16 -8
  513. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +188 -0
  514. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +97 -44
  515. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +29 -4
  516. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +366 -1592
  517. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +297 -639
  518. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +619 -2187
  519. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +16 -22
  520. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +661 -2252
  521. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +468 -1493
  522. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +163 -594
  523. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +326 -307
  524. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +16 -21
  525. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +686 -2238
  526. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +425 -1575
  527. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +422 -703
  528. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +440 -1122
  529. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +158 -406
  530. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +558 -2257
  531. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +14 -2
  532. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +476 -1611
  533. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +36 -27
  534. data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +3 -42
  535. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +4 -13
  536. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +0 -1
  537. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +2 -5
  538. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +15 -22
  539. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +8 -4
  540. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +59 -64
  541. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +77 -50
  542. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +13 -22
  543. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +318 -212
  544. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +17 -49
  545. data/src/cxx_supportlib/vendor-modified/boost/iterator/{detail/minimum_category.hpp → minimum_category.hpp} +24 -45
  546. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +10 -5
  547. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +17 -18
  548. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +29 -2649
  549. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +101 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +498 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +787 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +194 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +197 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +58 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +46 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +294 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +40 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +212 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +24 -11
  560. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cpp_regex_traits.cpp +3 -3
  561. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +40 -40
  562. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +14 -17
  563. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -3
  564. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_raw_buffer.cpp +3 -3
  565. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_traits_defaults.cpp +2 -2
  566. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +8 -4
  567. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +24 -11
  568. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +11 -14
  569. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +3 -420
  570. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +2 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +3 -5
  572. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +0 -6
  573. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +173 -77
  574. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +83 -33
  575. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +11 -1
  576. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +42 -12
  577. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +196 -18
  578. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +52 -8
  579. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +111 -13
  580. data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +40 -8
  581. data/src/cxx_supportlib/vendor-modified/boost/math/tools/real_cast.hpp +3 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +8 -0
  583. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +9 -5
  584. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +233 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +10 -3
  586. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +223 -54
  587. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +201 -0
  588. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +6 -10
  589. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_end.hpp +2 -10
  590. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +661 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +73 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +468 -62
  593. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +120 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +206 -129
  595. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +30 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +14 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +1078 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +591 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +55 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +33 -19
  601. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +237 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/move/move.hpp +9 -1
  603. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +30 -95
  604. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +871 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +53 -98
  606. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +317 -0
  607. data/src/cxx_supportlib/vendor-modified/boost/mpl/O1_size.hpp +3 -3
  608. data/src/cxx_supportlib/vendor-modified/boost/mpl/O1_size_fwd.hpp +3 -3
  609. data/src/cxx_supportlib/vendor-modified/boost/mpl/accumulate.hpp +3 -3
  610. data/src/cxx_supportlib/vendor-modified/boost/mpl/advance.hpp +3 -3
  611. data/src/cxx_supportlib/vendor-modified/boost/mpl/advance_fwd.hpp +3 -3
  612. data/src/cxx_supportlib/vendor-modified/boost/mpl/alias.hpp +3 -3
  613. data/src/cxx_supportlib/vendor-modified/boost/mpl/always.hpp +6 -7
  614. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +5 -5
  615. data/src/cxx_supportlib/vendor-modified/boost/mpl/apply.hpp +3 -3
  616. data/src/cxx_supportlib/vendor-modified/boost/mpl/apply_fwd.hpp +3 -3
  617. data/src/cxx_supportlib/vendor-modified/boost/mpl/apply_wrap.hpp +3 -3
  618. data/src/cxx_supportlib/vendor-modified/boost/mpl/arg.hpp +3 -3
  619. data/src/cxx_supportlib/vendor-modified/boost/mpl/arg_fwd.hpp +3 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/mpl/arithmetic.hpp +3 -3
  621. data/src/cxx_supportlib/vendor-modified/boost/mpl/as_sequence.hpp +3 -3
  622. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -5
  623. data/src/cxx_supportlib/vendor-modified/boost/mpl/at.hpp +3 -3
  624. data/src/cxx_supportlib/vendor-modified/boost/mpl/at_fwd.hpp +3 -3
  625. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/O1_size_impl.hpp +3 -3
  626. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/adl_barrier.hpp +3 -3
  627. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/advance_backward.hpp +3 -3
  628. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/advance_forward.hpp +3 -3
  629. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/apply_1st.hpp +3 -3
  630. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arg_typedef.hpp +3 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arithmetic_op.hpp +3 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arity.hpp +3 -3
  633. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arity_spec.hpp +3 -3
  634. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/at_impl.hpp +3 -3
  635. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/back_impl.hpp +3 -3
  636. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/basic_bind.hpp +3 -3
  637. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/begin_end_impl.hpp +3 -3
  638. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/clear_impl.hpp +3 -3
  639. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/common_name_wknd.hpp +3 -3
  640. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/comparison_op.hpp +3 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/adl.hpp +3 -3
  642. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/arrays.hpp +3 -3
  643. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bcc.hpp +1 -1
  644. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bind.hpp +3 -3
  645. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/compiler.hpp +3 -3
  646. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ctps.hpp +3 -3
  647. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dependent_nttp.hpp +3 -3
  648. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +3 -3
  649. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dtp.hpp +3 -3
  650. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/eti.hpp +3 -3
  651. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/forwarding.hpp +3 -3
  652. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/gcc.hpp +3 -3
  653. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/gpu.hpp +35 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/has_apply.hpp +3 -3
  655. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/has_xxx.hpp +3 -3
  656. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/integral.hpp +3 -3
  657. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/intel.hpp +3 -3
  658. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/lambda.hpp +3 -3
  659. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/msvc.hpp +3 -3
  660. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
  661. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/nttp.hpp +3 -3
  662. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/operators.hpp +4 -3
  663. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
  664. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/pp_counter.hpp +3 -3
  665. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/preprocessor.hpp +3 -3
  666. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/static_constant.hpp +3 -3
  667. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ttp.hpp +3 -3
  668. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/typeof.hpp +3 -3
  669. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
  670. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/workaround.hpp +3 -3
  671. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/contains_impl.hpp +3 -3
  672. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_args.hpp +3 -3
  673. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_impl.hpp +3 -3
  674. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/empty_impl.hpp +3 -3
  675. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/erase_impl.hpp +3 -3
  676. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/erase_key_impl.hpp +3 -3
  677. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/filter_iter.hpp +3 -3
  678. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl.hpp +3 -3
  679. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl_body.hpp +3 -3
  680. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_op.hpp +3 -3
  681. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_pred.hpp +3 -3
  682. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/front_impl.hpp +3 -3
  683. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/full_lambda.hpp +3 -3
  684. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_apply.hpp +3 -3
  685. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_begin.hpp +3 -3
  686. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_key_impl.hpp +3 -3
  687. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_rebind.hpp +3 -3
  688. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_size.hpp +3 -3
  689. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_tag.hpp +3 -3
  690. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_type.hpp +3 -3
  691. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/include_preprocessed.hpp +3 -3
  692. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/insert_impl.hpp +3 -3
  693. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/insert_range_impl.hpp +22 -19
  694. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/inserter_algorithm.hpp +3 -3
  695. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +4 -4
  696. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/is_msvc_eti_arg.hpp +3 -3
  697. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_apply.hpp +3 -3
  698. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_fold_if_impl.hpp +3 -3
  699. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_fold_impl.hpp +3 -3
  700. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_push_front.hpp +3 -3
  701. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/joint_iter.hpp +3 -3
  702. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
  703. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_no_ctps.hpp +3 -3
  704. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_spec.hpp +3 -3
  705. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_support.hpp +3 -3
  706. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/largest_int.hpp +3 -3
  707. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/logical_op.hpp +3 -3
  708. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_dtw.hpp +3 -3
  709. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_eti_base.hpp +3 -3
  710. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_is_class.hpp +3 -3
  711. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_never_true.hpp +3 -3
  712. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_type.hpp +3 -3
  713. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na.hpp +3 -3
  714. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +3 -3
  715. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_fwd.hpp +3 -3
  716. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_spec.hpp +3 -3
  717. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
  718. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nttp_decl.hpp +3 -3
  719. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/numeric_cast_utils.hpp +3 -3
  720. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/numeric_op.hpp +3 -3
  721. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/order_impl.hpp +3 -3
  722. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/overload_names.hpp +3 -3
  723. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/partition_op.hpp +3 -3
  724. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/pop_back_impl.hpp +3 -3
  725. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/pop_front_impl.hpp +3 -3
  726. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/add.hpp +3 -3
  727. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
  728. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/default_params.hpp +3 -3
  729. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
  730. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/ext_params.hpp +3 -3
  731. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
  732. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/is_seq.hpp +3 -3
  733. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/params.hpp +3 -3
  734. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +3 -3
  735. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/range.hpp +11 -4
  736. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/repeat.hpp +3 -3
  737. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
  738. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/token_equal.hpp +3 -3
  739. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/tuple.hpp +3 -3
  740. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +3 -3
  741. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/push_back_impl.hpp +3 -3
  742. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/push_front_impl.hpp +3 -3
  743. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/O1_size.hpp +3 -3
  744. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/back.hpp +3 -3
  745. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/empty.hpp +3 -3
  746. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/front.hpp +3 -3
  747. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/iterator.hpp +3 -3
  748. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/size.hpp +3 -3
  749. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/tag.hpp +3 -3
  750. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_fold_impl.hpp +3 -3
  751. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_fold_impl_body.hpp +3 -3
  752. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_iter_fold_impl.hpp +3 -3
  753. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/sequence_wrapper.hpp +3 -3
  754. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/shift_op.hpp +3 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/single_element_iter.hpp +3 -3
  756. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/size_impl.hpp +3 -3
  757. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/sort_impl.hpp +3 -3
  758. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/static_cast.hpp +3 -3
  759. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +3 -3
  760. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test.hpp +3 -3
  762. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/assert.hpp +3 -3
  763. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/data.hpp +3 -3
  764. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/test_case.hpp +3 -3
  765. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/traits_lambda_spec.hpp +3 -3
  766. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/transform_iter.hpp +3 -3
  767. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/type_wrapper.hpp +3 -3
  768. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/unwrap.hpp +7 -3
  769. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/value_wknd.hpp +3 -3
  770. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +3 -3
  771. data/src/cxx_supportlib/vendor-modified/boost/mpl/back.hpp +3 -3
  772. data/src/cxx_supportlib/vendor-modified/boost/mpl/back_fwd.hpp +3 -3
  773. data/src/cxx_supportlib/vendor-modified/boost/mpl/back_inserter.hpp +3 -3
  774. data/src/cxx_supportlib/vendor-modified/boost/mpl/base.hpp +3 -3
  775. data/src/cxx_supportlib/vendor-modified/boost/mpl/begin.hpp +3 -3
  776. data/src/cxx_supportlib/vendor-modified/boost/mpl/begin_end.hpp +3 -3
  777. data/src/cxx_supportlib/vendor-modified/boost/mpl/begin_end_fwd.hpp +3 -3
  778. data/src/cxx_supportlib/vendor-modified/boost/mpl/bind.hpp +3 -3
  779. data/src/cxx_supportlib/vendor-modified/boost/mpl/bind_fwd.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +5 -5
  781. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +5 -5
  782. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitwise.hpp +3 -3
  783. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitxor.hpp +3 -3
  784. data/src/cxx_supportlib/vendor-modified/boost/mpl/bool.hpp +4 -4
  785. data/src/cxx_supportlib/vendor-modified/boost/mpl/bool_fwd.hpp +3 -3
  786. data/src/cxx_supportlib/vendor-modified/boost/mpl/clear.hpp +3 -3
  787. data/src/cxx_supportlib/vendor-modified/boost/mpl/clear_fwd.hpp +3 -3
  788. data/src/cxx_supportlib/vendor-modified/boost/mpl/comparison.hpp +3 -3
  789. data/src/cxx_supportlib/vendor-modified/boost/mpl/contains.hpp +3 -3
  790. data/src/cxx_supportlib/vendor-modified/boost/mpl/contains_fwd.hpp +3 -3
  791. data/src/cxx_supportlib/vendor-modified/boost/mpl/copy.hpp +3 -3
  792. data/src/cxx_supportlib/vendor-modified/boost/mpl/copy_if.hpp +3 -3
  793. data/src/cxx_supportlib/vendor-modified/boost/mpl/count.hpp +3 -3
  794. data/src/cxx_supportlib/vendor-modified/boost/mpl/count_fwd.hpp +3 -3
  795. data/src/cxx_supportlib/vendor-modified/boost/mpl/count_if.hpp +3 -3
  796. data/src/cxx_supportlib/vendor-modified/boost/mpl/deque.hpp +3 -3
  797. data/src/cxx_supportlib/vendor-modified/boost/mpl/deref.hpp +3 -3
  798. data/src/cxx_supportlib/vendor-modified/boost/mpl/distance.hpp +3 -3
  799. data/src/cxx_supportlib/vendor-modified/boost/mpl/distance_fwd.hpp +3 -3
  800. data/src/cxx_supportlib/vendor-modified/boost/mpl/divides.hpp +3 -3
  801. data/src/cxx_supportlib/vendor-modified/boost/mpl/empty.hpp +3 -3
  802. data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_base.hpp +13 -9
  803. data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_fwd.hpp +3 -3
  804. data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_sequence.hpp +5 -4
  805. data/src/cxx_supportlib/vendor-modified/boost/mpl/end.hpp +3 -3
  806. data/src/cxx_supportlib/vendor-modified/boost/mpl/equal.hpp +3 -3
  807. data/src/cxx_supportlib/vendor-modified/boost/mpl/equal_to.hpp +3 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/mpl/erase.hpp +3 -3
  809. data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_fwd.hpp +3 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_key.hpp +3 -3
  811. data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_key_fwd.hpp +3 -3
  812. data/src/cxx_supportlib/vendor-modified/boost/mpl/eval_if.hpp +6 -6
  813. data/src/cxx_supportlib/vendor-modified/boost/mpl/filter_view.hpp +3 -3
  814. data/src/cxx_supportlib/vendor-modified/boost/mpl/find.hpp +3 -3
  815. data/src/cxx_supportlib/vendor-modified/boost/mpl/find_if.hpp +3 -3
  816. data/src/cxx_supportlib/vendor-modified/boost/mpl/fold.hpp +3 -3
  817. data/src/cxx_supportlib/vendor-modified/boost/mpl/for_each.hpp +11 -4
  818. data/src/cxx_supportlib/vendor-modified/boost/mpl/front.hpp +3 -3
  819. data/src/cxx_supportlib/vendor-modified/boost/mpl/front_fwd.hpp +3 -3
  820. data/src/cxx_supportlib/vendor-modified/boost/mpl/front_inserter.hpp +3 -3
  821. data/src/cxx_supportlib/vendor-modified/boost/mpl/greater.hpp +3 -3
  822. data/src/cxx_supportlib/vendor-modified/boost/mpl/greater_equal.hpp +3 -3
  823. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_key.hpp +3 -3
  824. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_key_fwd.hpp +3 -3
  825. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +12 -5
  826. data/src/cxx_supportlib/vendor-modified/boost/mpl/identity.hpp +3 -3
  827. data/src/cxx_supportlib/vendor-modified/boost/mpl/if.hpp +3 -3
  828. data/src/cxx_supportlib/vendor-modified/boost/mpl/index_if.hpp +3 -3
  829. data/src/cxx_supportlib/vendor-modified/boost/mpl/index_of.hpp +3 -3
  830. data/src/cxx_supportlib/vendor-modified/boost/mpl/inherit.hpp +3 -3
  831. data/src/cxx_supportlib/vendor-modified/boost/mpl/inherit_linearly.hpp +3 -3
  832. data/src/cxx_supportlib/vendor-modified/boost/mpl/insert.hpp +3 -3
  833. data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_fwd.hpp +3 -3
  834. data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_range.hpp +3 -3
  835. data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_range_fwd.hpp +3 -3
  836. data/src/cxx_supportlib/vendor-modified/boost/mpl/inserter.hpp +3 -3
  837. data/src/cxx_supportlib/vendor-modified/boost/mpl/int.hpp +3 -3
  838. data/src/cxx_supportlib/vendor-modified/boost/mpl/int_fwd.hpp +3 -3
  839. data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c.hpp +3 -3
  840. data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c_fwd.hpp +3 -3
  841. data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c_tag.hpp +3 -3
  842. data/src/cxx_supportlib/vendor-modified/boost/mpl/is_placeholder.hpp +3 -3
  843. data/src/cxx_supportlib/vendor-modified/boost/mpl/is_sequence.hpp +3 -3
  844. data/src/cxx_supportlib/vendor-modified/boost/mpl/iter_fold.hpp +3 -3
  845. data/src/cxx_supportlib/vendor-modified/boost/mpl/iter_fold_if.hpp +3 -3
  846. data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_category.hpp +3 -3
  847. data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_range.hpp +3 -3
  848. data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_tags.hpp +3 -3
  849. data/src/cxx_supportlib/vendor-modified/boost/mpl/joint_view.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/mpl/key_type.hpp +3 -3
  851. data/src/cxx_supportlib/vendor-modified/boost/mpl/key_type_fwd.hpp +3 -3
  852. data/src/cxx_supportlib/vendor-modified/boost/mpl/lambda.hpp +3 -3
  853. data/src/cxx_supportlib/vendor-modified/boost/mpl/lambda_fwd.hpp +3 -3
  854. data/src/cxx_supportlib/vendor-modified/boost/mpl/less.hpp +3 -3
  855. data/src/cxx_supportlib/vendor-modified/boost/mpl/less_equal.hpp +3 -3
  856. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/arity.hpp +3 -3
  857. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/list.hpp +3 -3
  858. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/map.hpp +3 -3
  859. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/set.hpp +3 -3
  860. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/unrolling.hpp +3 -3
  861. data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/vector.hpp +3 -3
  862. data/src/cxx_supportlib/vendor-modified/boost/mpl/list.hpp +3 -3
  863. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/O1_size.hpp +3 -3
  864. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/begin_end.hpp +3 -3
  865. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/clear.hpp +3 -3
  866. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/empty.hpp +3 -3
  867. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/front.hpp +3 -3
  868. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/include_preprocessed.hpp +3 -3
  869. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/item.hpp +3 -3
  870. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/iterator.hpp +3 -3
  871. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/numbered.hpp +3 -3
  872. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/numbered_c.hpp +3 -3
  873. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/pop_front.hpp +3 -3
  874. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/push_back.hpp +3 -3
  875. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/push_front.hpp +3 -3
  876. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/size.hpp +3 -3
  877. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/tag.hpp +3 -3
  878. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list0.hpp +3 -3
  879. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list0_c.hpp +3 -3
  880. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list10.hpp +3 -3
  881. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list10_c.hpp +3 -3
  882. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list20.hpp +3 -3
  883. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list20_c.hpp +3 -3
  884. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list30.hpp +3 -3
  885. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list30_c.hpp +3 -3
  886. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list40.hpp +3 -3
  887. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list40_c.hpp +3 -3
  888. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list50.hpp +3 -3
  889. data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list50_c.hpp +3 -3
  890. data/src/cxx_supportlib/vendor-modified/boost/mpl/list_c.hpp +3 -3
  891. data/src/cxx_supportlib/vendor-modified/boost/mpl/logical.hpp +3 -3
  892. data/src/cxx_supportlib/vendor-modified/boost/mpl/long.hpp +3 -3
  893. data/src/cxx_supportlib/vendor-modified/boost/mpl/long_fwd.hpp +3 -3
  894. data/src/cxx_supportlib/vendor-modified/boost/mpl/lower_bound.hpp +3 -3
  895. data/src/cxx_supportlib/vendor-modified/boost/mpl/map.hpp +3 -3
  896. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/at_impl.hpp +3 -3
  897. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/begin_end_impl.hpp +3 -3
  898. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/clear_impl.hpp +3 -3
  899. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/contains_impl.hpp +3 -3
  900. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/empty_impl.hpp +3 -3
  901. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/erase_impl.hpp +3 -3
  902. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/erase_key_impl.hpp +3 -3
  903. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/has_key_impl.hpp +3 -3
  904. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/include_preprocessed.hpp +3 -3
  905. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/insert_impl.hpp +3 -3
  906. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/insert_range_impl.hpp +41 -0
  907. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/item.hpp +6 -3
  908. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/iterator.hpp +3 -3
  909. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/key_type_impl.hpp +3 -3
  910. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/map0.hpp +3 -3
  911. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/numbered.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/size_impl.hpp +3 -3
  913. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/tag.hpp +3 -3
  914. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/value_type_impl.hpp +3 -3
  915. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map0.hpp +4 -3
  916. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map10.hpp +3 -3
  917. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map20.hpp +3 -3
  918. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map30.hpp +3 -3
  919. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map40.hpp +3 -3
  920. data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map50.hpp +3 -3
  921. data/src/cxx_supportlib/vendor-modified/boost/mpl/math/fixed_c.hpp +3 -3
  922. data/src/cxx_supportlib/vendor-modified/boost/mpl/math/is_even.hpp +3 -3
  923. data/src/cxx_supportlib/vendor-modified/boost/mpl/math/rational_c.hpp +3 -3
  924. data/src/cxx_supportlib/vendor-modified/boost/mpl/max.hpp +3 -3
  925. data/src/cxx_supportlib/vendor-modified/boost/mpl/max_element.hpp +3 -3
  926. data/src/cxx_supportlib/vendor-modified/boost/mpl/min.hpp +3 -3
  927. data/src/cxx_supportlib/vendor-modified/boost/mpl/min_element.hpp +3 -3
  928. data/src/cxx_supportlib/vendor-modified/boost/mpl/min_max.hpp +3 -3
  929. data/src/cxx_supportlib/vendor-modified/boost/mpl/minus.hpp +3 -3
  930. data/src/cxx_supportlib/vendor-modified/boost/mpl/modulus.hpp +3 -3
  931. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiplies.hpp +3 -3
  932. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/count_impl.hpp +3 -3
  933. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/insert_impl.hpp +3 -3
  934. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/item.hpp +3 -3
  935. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/multiset0.hpp +3 -3
  936. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/tag.hpp +3 -3
  937. data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/multiset0.hpp +3 -3
  938. data/src/cxx_supportlib/vendor-modified/boost/mpl/negate.hpp +3 -3
  939. data/src/cxx_supportlib/vendor-modified/boost/mpl/next.hpp +3 -3
  940. data/src/cxx_supportlib/vendor-modified/boost/mpl/next_prior.hpp +3 -3
  941. data/src/cxx_supportlib/vendor-modified/boost/mpl/not.hpp +3 -3
  942. data/src/cxx_supportlib/vendor-modified/boost/mpl/not_equal_to.hpp +3 -3
  943. data/src/cxx_supportlib/vendor-modified/boost/mpl/numeric_cast.hpp +3 -3
  944. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +5 -5
  945. data/src/cxx_supportlib/vendor-modified/boost/mpl/order.hpp +3 -3
  946. data/src/cxx_supportlib/vendor-modified/boost/mpl/order_fwd.hpp +3 -3
  947. data/src/cxx_supportlib/vendor-modified/boost/mpl/pair.hpp +3 -3
  948. data/src/cxx_supportlib/vendor-modified/boost/mpl/pair_view.hpp +3 -3
  949. data/src/cxx_supportlib/vendor-modified/boost/mpl/partition.hpp +3 -3
  950. data/src/cxx_supportlib/vendor-modified/boost/mpl/placeholders.hpp +3 -3
  951. data/src/cxx_supportlib/vendor-modified/boost/mpl/plus.hpp +3 -3
  952. data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_back.hpp +3 -3
  953. data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_back_fwd.hpp +3 -3
  954. data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_front.hpp +3 -3
  955. data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_front_fwd.hpp +3 -3
  956. data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +7 -6
  957. data/src/cxx_supportlib/vendor-modified/boost/mpl/prior.hpp +3 -3
  958. data/src/cxx_supportlib/vendor-modified/boost/mpl/protect.hpp +3 -3
  959. data/src/cxx_supportlib/vendor-modified/boost/mpl/push_back.hpp +3 -3
  960. data/src/cxx_supportlib/vendor-modified/boost/mpl/push_back_fwd.hpp +3 -3
  961. data/src/cxx_supportlib/vendor-modified/boost/mpl/push_front.hpp +3 -3
  962. data/src/cxx_supportlib/vendor-modified/boost/mpl/push_front_fwd.hpp +3 -3
  963. data/src/cxx_supportlib/vendor-modified/boost/mpl/quote.hpp +3 -3
  964. data/src/cxx_supportlib/vendor-modified/boost/mpl/range_c.hpp +3 -3
  965. data/src/cxx_supportlib/vendor-modified/boost/mpl/remove.hpp +3 -3
  966. data/src/cxx_supportlib/vendor-modified/boost/mpl/remove_if.hpp +3 -3
  967. data/src/cxx_supportlib/vendor-modified/boost/mpl/replace.hpp +3 -3
  968. data/src/cxx_supportlib/vendor-modified/boost/mpl/replace_if.hpp +3 -3
  969. data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse.hpp +3 -3
  970. data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse_fold.hpp +3 -3
  971. data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse_iter_fold.hpp +3 -3
  972. data/src/cxx_supportlib/vendor-modified/boost/mpl/same_as.hpp +3 -3
  973. data/src/cxx_supportlib/vendor-modified/boost/mpl/sequence_tag.hpp +3 -3
  974. data/src/cxx_supportlib/vendor-modified/boost/mpl/sequence_tag_fwd.hpp +3 -3
  975. data/src/cxx_supportlib/vendor-modified/boost/mpl/set.hpp +3 -3
  976. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/at_impl.hpp +3 -3
  977. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/begin_end_impl.hpp +3 -3
  978. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/clear_impl.hpp +3 -3
  979. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/empty_impl.hpp +3 -3
  980. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/erase_impl.hpp +3 -3
  981. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/erase_key_impl.hpp +3 -3
  982. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/has_key_impl.hpp +3 -3
  983. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/include_preprocessed.hpp +3 -3
  984. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/insert_impl.hpp +3 -3
  985. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/insert_range_impl.hpp +41 -0
  986. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/item.hpp +8 -6
  987. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/iterator.hpp +3 -3
  988. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/key_type_impl.hpp +3 -3
  989. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/numbered.hpp +3 -3
  990. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/numbered_c.hpp +3 -3
  991. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/set0.hpp +3 -3
  992. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/size_impl.hpp +3 -3
  993. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/tag.hpp +3 -3
  994. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/value_type_impl.hpp +3 -3
  995. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set0.hpp +4 -3
  996. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set0_c.hpp +3 -3
  997. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set10.hpp +3 -3
  998. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set10_c.hpp +3 -3
  999. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set20.hpp +3 -3
  1000. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set20_c.hpp +3 -3
  1001. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set30.hpp +3 -3
  1002. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set30_c.hpp +3 -3
  1003. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set40.hpp +3 -3
  1004. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set40_c.hpp +3 -3
  1005. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set50.hpp +3 -3
  1006. data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set50_c.hpp +3 -3
  1007. data/src/cxx_supportlib/vendor-modified/boost/mpl/set_c.hpp +3 -3
  1008. data/src/cxx_supportlib/vendor-modified/boost/mpl/shift_left.hpp +3 -3
  1009. data/src/cxx_supportlib/vendor-modified/boost/mpl/shift_right.hpp +3 -3
  1010. data/src/cxx_supportlib/vendor-modified/boost/mpl/single_view.hpp +3 -3
  1011. data/src/cxx_supportlib/vendor-modified/boost/mpl/size.hpp +3 -3
  1012. data/src/cxx_supportlib/vendor-modified/boost/mpl/size_fwd.hpp +3 -3
  1013. data/src/cxx_supportlib/vendor-modified/boost/mpl/size_t.hpp +3 -3
  1014. data/src/cxx_supportlib/vendor-modified/boost/mpl/size_t_fwd.hpp +3 -3
  1015. data/src/cxx_supportlib/vendor-modified/boost/mpl/sizeof.hpp +3 -3
  1016. data/src/cxx_supportlib/vendor-modified/boost/mpl/sort.hpp +3 -3
  1017. data/src/cxx_supportlib/vendor-modified/boost/mpl/stable_partition.hpp +3 -3
  1018. data/src/cxx_supportlib/vendor-modified/boost/mpl/string.hpp +2 -2
  1019. data/src/cxx_supportlib/vendor-modified/boost/mpl/switch.hpp +3 -3
  1020. data/src/cxx_supportlib/vendor-modified/boost/mpl/tag.hpp +3 -3
  1021. data/src/cxx_supportlib/vendor-modified/boost/mpl/times.hpp +3 -3
  1022. data/src/cxx_supportlib/vendor-modified/boost/mpl/transform.hpp +3 -3
  1023. data/src/cxx_supportlib/vendor-modified/boost/mpl/transform_view.hpp +3 -3
  1024. data/src/cxx_supportlib/vendor-modified/boost/mpl/unique.hpp +3 -3
  1025. data/src/cxx_supportlib/vendor-modified/boost/mpl/unpack_args.hpp +3 -3
  1026. data/src/cxx_supportlib/vendor-modified/boost/mpl/upper_bound.hpp +3 -3
  1027. data/src/cxx_supportlib/vendor-modified/boost/mpl/value_type.hpp +3 -3
  1028. data/src/cxx_supportlib/vendor-modified/boost/mpl/value_type_fwd.hpp +3 -3
  1029. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector.hpp +3 -3
  1030. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/O1_size.hpp +3 -3
  1031. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/at.hpp +3 -3
  1032. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/back.hpp +3 -3
  1033. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/begin_end.hpp +3 -3
  1034. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/clear.hpp +3 -3
  1035. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/empty.hpp +3 -3
  1036. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/front.hpp +3 -3
  1037. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/include_preprocessed.hpp +3 -3
  1038. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/item.hpp +3 -3
  1039. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/iterator.hpp +3 -3
  1040. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/numbered.hpp +3 -3
  1041. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/numbered_c.hpp +3 -3
  1042. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/pop_back.hpp +3 -3
  1043. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/pop_front.hpp +3 -3
  1044. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/push_back.hpp +3 -3
  1045. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/push_front.hpp +3 -3
  1046. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/size.hpp +3 -3
  1047. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/tag.hpp +3 -3
  1048. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/vector0.hpp +3 -3
  1049. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector0.hpp +3 -3
  1050. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector0_c.hpp +3 -3
  1051. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector10.hpp +3 -3
  1052. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector10_c.hpp +3 -3
  1053. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector20.hpp +3 -3
  1054. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector20_c.hpp +3 -3
  1055. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector30.hpp +3 -3
  1056. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector30_c.hpp +3 -3
  1057. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector40.hpp +3 -3
  1058. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector40_c.hpp +3 -3
  1059. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector50.hpp +3 -3
  1060. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector50_c.hpp +3 -3
  1061. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector_c.hpp +3 -3
  1062. data/src/cxx_supportlib/vendor-modified/boost/mpl/void.hpp +3 -3
  1063. data/src/cxx_supportlib/vendor-modified/boost/mpl/void_fwd.hpp +3 -3
  1064. data/src/cxx_supportlib/vendor-modified/boost/mpl/zip_view.hpp +3 -3
  1065. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +118 -4
  1066. data/src/cxx_supportlib/vendor-modified/boost/noncopyable.hpp +12 -43
  1067. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +32 -1
  1068. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +18 -2
  1069. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +9 -37
  1070. data/src/cxx_supportlib/vendor-modified/boost/optional/bad_optional_access.hpp +32 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +660 -84
  1072. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +3 -2
  1073. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +94 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +4 -27
  1075. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/cast.hpp +2 -4
  1076. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parenthesized_type.hpp +0 -84
  1077. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +1 -2
  1078. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +2 -2
  1079. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +0 -6
  1080. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +2 -28
  1081. data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword.hpp +0 -30
  1082. data/src/cxx_supportlib/vendor-modified/boost/parameter/name.hpp +5 -15
  1083. data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor.hpp +6 -107
  1084. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +2 -28
  1085. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +1 -1
  1086. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +12 -12
  1087. data/src/cxx_supportlib/vendor-modified/boost/predef.h +24 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +32 -0
  1089. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +59 -0
  1090. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +70 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +46 -0
  1092. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +65 -0
  1093. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +49 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +82 -0
  1095. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +73 -0
  1096. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +64 -0
  1097. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +72 -0
  1098. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +42 -0
  1099. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +56 -0
  1100. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +54 -0
  1101. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +67 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +43 -0
  1103. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +43 -0
  1104. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86.h +38 -0
  1105. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +87 -0
  1106. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +50 -0
  1107. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +42 -0
  1108. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +43 -0
  1109. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/borland.h +63 -0
  1110. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/clang.h +56 -0
  1111. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/comeau.h +61 -0
  1112. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +66 -0
  1113. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/diab.h +56 -0
  1114. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/digitalmars.h +56 -0
  1115. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/dignus.h +56 -0
  1116. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/edg.h +56 -0
  1117. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ekopath.h +57 -0
  1118. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc.h +68 -0
  1119. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc_xml.h +53 -0
  1120. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/greenhills.h +66 -0
  1121. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/hp_acc.h +61 -0
  1122. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/iar.h +56 -0
  1123. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ibm.h +72 -0
  1124. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +65 -0
  1125. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/kai.h +56 -0
  1126. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/llvm.h +57 -0
  1127. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metaware.h +53 -0
  1128. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h +77 -0
  1129. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h +53 -0
  1130. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h +63 -0
  1131. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h +56 -0
  1132. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h +60 -0
  1133. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h +66 -0
  1134. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sunpro.h +76 -0
  1135. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/tendra.h +53 -0
  1136. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +91 -0
  1137. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/watcom.h +56 -0
  1138. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/_cassert.h +17 -0
  1139. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/_exception.h +15 -0
  1140. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/comp_detected.h +10 -0
  1141. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +26 -0
  1142. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/os_detected.h +10 -0
  1143. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/platform_detected.h +10 -0
  1144. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/test.h +17 -0
  1145. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/test_def.h +71 -0
  1146. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware.h +16 -0
  1147. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +107 -0
  1148. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +57 -0
  1149. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm/versions.h +32 -0
  1150. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc.h +69 -0
  1151. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc/versions.h +51 -0
  1152. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +123 -0
  1153. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86/versions.h +129 -0
  1154. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +87 -0
  1155. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +51 -0
  1156. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +17 -0
  1157. data/src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h +42 -0
  1158. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +53 -0
  1159. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +121 -0
  1160. data/src/cxx_supportlib/vendor-modified/boost/predef/library.h +16 -0
  1161. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +20 -0
  1162. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/_prefix.h +13 -0
  1163. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/gnu.h +61 -0
  1164. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/uc.h +47 -0
  1165. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/vms.h +47 -0
  1166. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/zos.h +56 -0
  1167. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +25 -0
  1168. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/_prefix.h +23 -0
  1169. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +46 -0
  1170. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/dinkumware.h +52 -0
  1171. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/libcomo.h +47 -0
  1172. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/modena.h +45 -0
  1173. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msl.h +53 -0
  1174. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/roguewave.h +56 -0
  1175. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/sgi.h +51 -0
  1176. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +53 -0
  1177. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stlport.h +59 -0
  1178. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/vacpp.h +44 -0
  1179. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +89 -0
  1180. data/src/cxx_supportlib/vendor-modified/boost/predef/os.h +33 -0
  1181. data/src/cxx_supportlib/vendor-modified/boost/predef/os/aix.h +66 -0
  1182. data/src/cxx_supportlib/vendor-modified/boost/predef/os/amigaos.h +46 -0
  1183. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +45 -0
  1184. data/src/cxx_supportlib/vendor-modified/boost/predef/os/beos.h +45 -0
  1185. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd.h +103 -0
  1186. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +48 -0
  1187. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +50 -0
  1188. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +60 -0
  1189. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +84 -0
  1190. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +171 -0
  1191. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +45 -0
  1192. data/src/cxx_supportlib/vendor-modified/boost/predef/os/haiku.h +46 -0
  1193. data/src/cxx_supportlib/vendor-modified/boost/predef/os/hpux.h +47 -0
  1194. data/src/cxx_supportlib/vendor-modified/boost/predef/os/ios.h +51 -0
  1195. data/src/cxx_supportlib/vendor-modified/boost/predef/os/irix.h +46 -0
  1196. data/src/cxx_supportlib/vendor-modified/boost/predef/os/linux.h +46 -0
  1197. data/src/cxx_supportlib/vendor-modified/boost/predef/os/macos.h +65 -0
  1198. data/src/cxx_supportlib/vendor-modified/boost/predef/os/os400.h +45 -0
  1199. data/src/cxx_supportlib/vendor-modified/boost/predef/os/qnxnto.h +59 -0
  1200. data/src/cxx_supportlib/vendor-modified/boost/predef/os/solaris.h +46 -0
  1201. data/src/cxx_supportlib/vendor-modified/boost/predef/os/unix.h +76 -0
  1202. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +52 -0
  1203. data/src/cxx_supportlib/vendor-modified/boost/predef/os/windows.h +51 -0
  1204. data/src/cxx_supportlib/vendor-modified/boost/predef/other.h +16 -0
  1205. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +204 -0
  1206. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +21 -0
  1207. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +69 -0
  1208. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +45 -0
  1209. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +43 -0
  1210. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +45 -0
  1211. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +43 -0
  1212. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +15 -0
  1213. data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +53 -0
  1214. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/dec.hpp +1 -0
  1215. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +55 -0
  1216. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/push_back.hpp +3 -1
  1217. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/push_front.hpp +3 -1
  1218. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_list.hpp +17 -3
  1219. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_seq.hpp +16 -3
  1220. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_tuple.hpp +12 -1
  1221. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -12
  1222. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/detail/is_empty.hpp +55 -0
  1223. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/empty.hpp +2 -0
  1224. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/identity.hpp +4 -0
  1225. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty.hpp +17 -4
  1226. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_or_1.hpp +2 -1
  1227. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +57 -0
  1228. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/library.hpp +1 -0
  1229. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +33 -1
  1230. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_tuple.hpp +27 -4
  1231. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation.hpp +2 -0
  1232. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +48 -0
  1233. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/is_begin_parens.hpp +51 -0
  1234. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/remove_parens.hpp +39 -0
  1235. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +19 -1
  1236. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq.hpp +1 -0
  1237. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +10 -2
  1238. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/is_empty.hpp +49 -0
  1239. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each.hpp +57 -10
  1240. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each_i.hpp +58 -10
  1241. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/replace.hpp +18 -2
  1242. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +19 -3
  1243. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/size.hpp +1 -0
  1244. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/variadic_seq_to_seq.hpp +28 -0
  1245. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple.hpp +8 -1
  1246. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +28 -0
  1247. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/eat.hpp +10 -1
  1248. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +12 -2
  1249. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +37 -0
  1250. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +64 -0
  1251. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +65 -0
  1252. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +31 -0
  1253. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +32 -0
  1254. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +18 -3
  1255. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +64 -0
  1256. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +37 -0
  1257. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +4 -1
  1258. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_array.hpp +3 -1
  1259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +3 -1
  1260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +6 -1
  1261. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +28 -0
  1262. data/src/cxx_supportlib/vendor-modified/boost/range/algorithm/equal.hpp +5 -3
  1263. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +1 -1
  1264. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +5 -13
  1265. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +35 -15
  1266. data/src/cxx_supportlib/vendor-modified/boost/range/config.hpp +9 -7
  1267. data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +39 -30
  1268. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +4 -3
  1269. data/src/cxx_supportlib/vendor-modified/boost/range/detail/extract_optional_type.hpp +21 -25
  1270. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +66 -0
  1271. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +11 -0
  1272. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +132 -0
  1273. data/src/cxx_supportlib/vendor-modified/boost/range/difference_type.hpp +20 -2
  1274. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +1 -1
  1275. data/src/cxx_supportlib/vendor-modified/boost/range/empty.hpp +1 -1
  1276. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +5 -13
  1277. data/src/cxx_supportlib/vendor-modified/boost/range/functions.hpp +1 -1
  1278. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +83 -0
  1279. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +36 -34
  1280. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +481 -251
  1281. data/src/cxx_supportlib/vendor-modified/boost/range/mutable_iterator.hpp +41 -29
  1282. data/src/cxx_supportlib/vendor-modified/boost/range/range_fwd.hpp +63 -0
  1283. data/src/cxx_supportlib/vendor-modified/boost/range/rbegin.hpp +1 -1
  1284. data/src/cxx_supportlib/vendor-modified/boost/range/rend.hpp +1 -1
  1285. data/src/cxx_supportlib/vendor-modified/boost/range/reverse_iterator.hpp +5 -3
  1286. data/src/cxx_supportlib/vendor-modified/boost/range/size.hpp +30 -6
  1287. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +18 -12
  1288. data/src/cxx_supportlib/vendor-modified/boost/range/value_type.hpp +1 -5
  1289. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +4 -4
  1290. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +1 -1
  1291. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +1 -1
  1292. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +4 -4
  1293. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +1 -1
  1294. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +63 -3
  1295. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +25 -0
  1296. data/src/cxx_supportlib/vendor-modified/boost/ref.hpp +12 -184
  1297. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +51 -9
  1298. data/src/cxx_supportlib/vendor-modified/boost/regex/mfc.hpp +30 -34
  1299. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +2 -2
  1300. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +10 -7
  1301. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +11 -5
  1302. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +18 -19
  1303. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +25 -38
  1304. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +211 -14
  1305. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +161 -106
  1306. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +7 -7
  1307. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +9 -9
  1308. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +24 -21
  1309. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +3 -3
  1310. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -1
  1311. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +24 -19
  1312. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +1 -1
  1313. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +46 -20
  1314. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +38 -14
  1315. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +206 -31
  1316. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +122 -16
  1317. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +2 -2
  1318. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +1 -1
  1319. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +15 -15
  1320. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +1 -1
  1321. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +3 -3
  1322. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +1 -1
  1323. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +2 -2
  1324. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +4 -4
  1325. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +2 -2
  1326. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +5 -5
  1327. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +6 -15
  1328. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +10 -10
  1329. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +10 -4
  1330. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +5 -4
  1331. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +23 -3
  1332. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +75 -71
  1333. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +2 -2
  1334. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +6 -15
  1335. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +43 -41
  1336. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +103 -172
  1337. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +318 -0
  1338. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +67 -0
  1339. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +16 -9
  1340. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +106 -70
  1341. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +36 -59
  1342. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_nt.hpp +59 -0
  1343. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/{atomic_count_pthreads.hpp → atomic_count_pt.hpp} +5 -4
  1344. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +62 -0
  1345. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +60 -0
  1346. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +2 -1
  1347. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +116 -10
  1348. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +1 -0
  1349. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +15 -1
  1350. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +140 -0
  1351. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +16 -15
  1352. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +137 -0
  1353. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +21 -4
  1354. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_disable_deprecated.hpp +40 -0
  1355. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +13 -0
  1356. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +8 -5
  1357. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +1 -1
  1358. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +10 -1
  1359. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +1 -0
  1360. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pool.hpp +2 -2
  1361. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +83 -0
  1362. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +30 -2
  1363. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +10 -0
  1364. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +12 -0
  1365. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +80 -169
  1366. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +121 -118
  1367. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +10 -0
  1368. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +8 -6
  1369. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +54 -12
  1370. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -19
  1371. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +11 -6
  1372. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +1 -0
  1373. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +467 -0
  1374. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +1 -2
  1375. data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +222 -36
  1376. data/src/cxx_supportlib/vendor-modified/boost/thread/caller_context.hpp +59 -0
  1377. data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +4 -11
  1378. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_adaptor.hpp +209 -0
  1379. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_base.hpp +202 -0
  1380. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_views.hpp +165 -0
  1381. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +223 -0
  1382. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +223 -0
  1383. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_adaptor.hpp +209 -0
  1384. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_base.hpp +202 -0
  1385. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_op_status.hpp +46 -0
  1386. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +155 -0
  1387. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +725 -0
  1388. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +327 -0
  1389. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +369 -0
  1390. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +335 -0
  1391. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +466 -0
  1392. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +45 -0
  1393. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/devector.hpp +102 -0
  1394. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +49 -0
  1395. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +35 -0
  1396. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory.hpp +61 -0
  1397. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +41 -0
  1398. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +35 -0
  1399. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +16 -0
  1400. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +41 -0
  1401. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +35 -0
  1402. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +35 -0
  1403. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +42 -0
  1404. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +28 -0
  1405. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +45 -0
  1406. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +49 -0
  1407. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +35 -0
  1408. data/src/cxx_supportlib/vendor-modified/boost/thread/cv_status.hpp +1 -1
  1409. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +32 -4
  1410. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/counter.hpp +17 -4
  1411. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/delete.hpp +2 -1
  1412. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/function_wrapper.hpp +93 -0
  1413. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +373 -120
  1414. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoker.hpp +762 -0
  1415. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/is_convertible.hpp +4 -3
  1416. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/memory.hpp +11 -119
  1417. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +116 -4
  1418. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +234 -0
  1419. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +41 -16
  1420. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_group.hpp +4 -3
  1421. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_footer.hpp +10 -0
  1422. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_header.hpp +19 -0
  1423. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptional_ptr.hpp +44 -0
  1424. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +4 -4
  1425. data/src/cxx_supportlib/vendor-modified/boost/thread/executor.hpp +15 -0
  1426. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +318 -0
  1427. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +77 -0
  1428. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/scheduled_executor_base.hpp +66 -0
  1429. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +148 -0
  1430. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor_adaptor.hpp +136 -0
  1431. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +213 -0
  1432. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/inline_executor.hpp +171 -0
  1433. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +205 -0
  1434. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +48 -0
  1435. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +271 -0
  1436. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +51 -0
  1437. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +216 -0
  1438. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor_cont.hpp +170 -0
  1439. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/thread_executor.hpp +157 -0
  1440. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/work.hpp +30 -0
  1441. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/config/inline_namespace.hpp +23 -0
  1442. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/exception_list.hpp +16 -0
  1443. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v1/exception_list.hpp +70 -0
  1444. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v1/inline_namespace.hpp +28 -0
  1445. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/inline_namespace.hpp +29 -0
  1446. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +316 -0
  1447. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/task_region.hpp +16 -0
  1448. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +2 -2
  1449. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +3327 -1705
  1450. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/future_error.hpp +98 -0
  1451. data/src/cxx_supportlib/vendor-modified/boost/thread/{future_error_code.hpp → futures/future_error_code.hpp} +7 -7
  1452. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/future_status.hpp +30 -0
  1453. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/is_future_type.hpp +21 -0
  1454. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +31 -0
  1455. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +74 -0
  1456. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +161 -0
  1457. data/src/cxx_supportlib/vendor-modified/boost/thread/latch.hpp +43 -15
  1458. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +45 -41
  1459. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_adapter.hpp +28 -28
  1460. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +1 -1
  1461. data/src/cxx_supportlib/vendor-modified/boost/thread/ostream_buffer.hpp +45 -0
  1462. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_lockable.hpp +2 -2
  1463. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +101 -56
  1464. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +141 -47
  1465. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +20 -13
  1466. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +4 -4
  1467. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +4 -4
  1468. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +11 -8
  1469. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +39 -10
  1470. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +15 -11
  1471. data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +1 -0
  1472. data/src/cxx_supportlib/vendor-modified/boost/thread/sync_bounded_queue.hpp +2 -580
  1473. data/src/cxx_supportlib/vendor-modified/boost/thread/sync_queue.hpp +2 -502
  1474. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +78 -11
  1475. data/src/cxx_supportlib/vendor-modified/boost/thread/testable_mutex.hpp +4 -0
  1476. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_pool.hpp +15 -0
  1477. data/src/cxx_supportlib/vendor-modified/boost/thread/tss.hpp +8 -8
  1478. data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +202 -0
  1479. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +6 -6
  1480. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +73 -1
  1481. data/src/cxx_supportlib/vendor-modified/boost/thread/with_lock_guard.hpp +234 -0
  1482. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +7 -5
  1483. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +3 -17
  1484. data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +14 -14
  1485. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +14 -5
  1486. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -24
  1487. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +9 -10
  1488. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +2 -9
  1489. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +8 -7
  1490. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -17
  1491. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +14 -62
  1492. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +5 -7
  1493. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +2 -9
  1494. data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +134 -9
  1495. data/src/cxx_supportlib/vendor-modified/boost/type_traits/alignment_of.hpp +9 -18
  1496. data/src/cxx_supportlib/vendor-modified/boost/type_traits/{detail/wrap.hpp → alignment_traits.hpp} +7 -10
  1497. data/src/cxx_supportlib/vendor-modified/boost/type_traits/arithmetic_traits.hpp +20 -0
  1498. data/src/cxx_supportlib/vendor-modified/boost/type_traits/array_traits.hpp +15 -0
  1499. data/src/cxx_supportlib/vendor-modified/boost/type_traits/broken_compiler_spec.hpp +9 -105
  1500. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +118 -131
  1501. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +20 -0
  1502. data/src/cxx_supportlib/vendor-modified/boost/type_traits/config.hpp +5 -60
  1503. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +34 -0
  1504. data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +12 -13
  1505. data/src/cxx_supportlib/vendor-modified/boost/type_traits/declval.hpp +44 -0
  1506. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/bool_trait_def.hpp +9 -26
  1507. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/bool_trait_undef.hpp +2 -2
  1508. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +212 -0
  1509. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_type_impl.hpp +107 -0
  1510. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/composite_member_pointer_type.hpp +113 -0
  1511. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/composite_pointer_type.hpp +153 -0
  1512. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +72 -0
  1513. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +12 -19
  1514. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +12 -19
  1515. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +14 -19
  1516. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_and.hpp +7 -0
  1517. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_eq.hpp +7 -0
  1518. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_not.hpp +7 -0
  1519. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_or.hpp +7 -0
  1520. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +13 -57
  1521. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +13 -218
  1522. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +13 -107
  1523. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +15 -974
  1524. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +56 -0
  1525. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/template_arity_spec.hpp +6 -21
  1526. data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +138 -0
  1527. data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +20 -0
  1528. data/src/cxx_supportlib/vendor-modified/boost/type_traits/function_traits.hpp +0 -62
  1529. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_and.hpp +49 -0
  1530. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_and_assign.hpp +55 -0
  1531. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_or.hpp +49 -0
  1532. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_or_assign.hpp +55 -0
  1533. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_xor.hpp +49 -0
  1534. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_xor_assign.hpp +55 -0
  1535. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_complement.hpp +32 -0
  1536. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +31 -0
  1537. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_divides.hpp +40 -0
  1538. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_divides_assign.hpp +47 -0
  1539. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +49 -0
  1540. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +49 -0
  1541. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +49 -0
  1542. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_left_shift.hpp +19 -19
  1543. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_left_shift_assign.hpp +55 -0
  1544. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +49 -0
  1545. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +49 -0
  1546. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_and.hpp +40 -0
  1547. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_not.hpp +32 -0
  1548. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_or.hpp +40 -0
  1549. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +60 -0
  1550. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +65 -0
  1551. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_modulus.hpp +49 -0
  1552. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_modulus_assign.hpp +55 -0
  1553. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_multiplies.hpp +40 -0
  1554. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_multiplies_assign.hpp +47 -0
  1555. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_negate.hpp +25 -0
  1556. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_new_operator.hpp +147 -0
  1557. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +49 -0
  1558. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +57 -18
  1559. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +43 -24
  1560. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_copy.hpp +52 -23
  1561. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +47 -0
  1562. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_operator.hpp +51 -0
  1563. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus.hpp +54 -0
  1564. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +66 -0
  1565. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +44 -0
  1566. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +44 -0
  1567. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +44 -0
  1568. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +44 -0
  1569. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_right_shift.hpp +19 -19
  1570. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_right_shift_assign.hpp +55 -0
  1571. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +23 -29
  1572. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_constructor.hpp +31 -25
  1573. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +34 -36
  1574. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +21 -22
  1575. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +40 -25
  1576. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +45 -25
  1577. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_unary_minus.hpp +25 -0
  1578. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_unary_plus.hpp +23 -0
  1579. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_virtual_destructor.hpp +26 -0
  1580. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +86 -33
  1581. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +181 -0
  1582. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +116 -41
  1583. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +6 -10
  1584. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_arithmetic.hpp +3 -32
  1585. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +12 -60
  1586. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +76 -0
  1587. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_and_derived.hpp +9 -19
  1588. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_of.hpp +8 -20
  1589. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_of_tr1.hpp +37 -0
  1590. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_class.hpp +17 -43
  1591. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +24 -0
  1592. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_compound.hpp +2 -24
  1593. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +8 -127
  1594. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +80 -0
  1595. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +94 -98
  1596. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +141 -0
  1597. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +187 -0
  1598. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +64 -0
  1599. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +60 -0
  1600. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +8 -117
  1601. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_enum.hpp +19 -42
  1602. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +30 -0
  1603. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_float.hpp +2 -9
  1604. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +12 -9
  1605. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +9 -18
  1606. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_fundamental.hpp +2 -21
  1607. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +43 -37
  1608. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_lvalue_reference.hpp +8 -76
  1609. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +18 -34
  1610. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_object_pointer.hpp +24 -0
  1611. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp +8 -79
  1612. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +32 -35
  1613. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +43 -41
  1614. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_object.hpp +7 -32
  1615. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +14 -101
  1616. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pointer.hpp +12 -127
  1617. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_polymorphic.hpp +122 -0
  1618. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_reference.hpp +6 -21
  1619. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -8
  1620. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_same.hpp +4 -66
  1621. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_scalar.hpp +3 -31
  1622. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_signed.hpp +83 -60
  1623. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_stateless.hpp +8 -23
  1624. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_union.hpp +6 -32
  1625. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unsigned.hpp +85 -57
  1626. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +105 -0
  1627. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_void.hpp +7 -19
  1628. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +8 -115
  1629. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +35 -57
  1630. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +34 -57
  1631. data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +20 -0
  1632. data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +86 -0
  1633. data/src/cxx_supportlib/vendor-modified/boost/type_traits/reference_traits.hpp +15 -0
  1634. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +35 -0
  1635. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +4 -31
  1636. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +8 -65
  1637. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +13 -57
  1638. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +35 -0
  1639. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +8 -23
  1640. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -21
  1641. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +7 -61
  1642. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +22 -0
  1643. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +101 -239
  1644. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +100 -0
  1645. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +61 -0
  1646. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +34 -0
  1647. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +14 -0
  1648. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +118 -0
  1649. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +80 -0
  1650. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +121 -0
  1651. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +283 -0
  1652. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +38 -0
  1653. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +50 -0
  1654. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +135 -0
  1655. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +62 -0
  1656. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +32 -0
  1657. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +15 -0
  1658. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +15 -0
  1659. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +17 -0
  1660. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +27 -0
  1661. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +55 -0
  1662. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +18 -0
  1663. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +21 -0
  1664. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +58 -0
  1665. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +17 -0
  1666. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +40 -0
  1667. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +23 -0
  1668. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +17 -0
  1669. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +18 -0
  1670. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +17 -0
  1671. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +22 -0
  1672. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +32 -0
  1673. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +17 -0
  1674. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +17 -0
  1675. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +24 -0
  1676. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +15 -0
  1677. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +21 -0
  1678. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +17 -0
  1679. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +160 -0
  1680. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +149 -0
  1681. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +27 -0
  1682. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +37 -0
  1683. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +186 -0
  1684. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +29 -0
  1685. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +166 -0
  1686. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +321 -0
  1687. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +471 -0
  1688. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +621 -0
  1689. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +171 -0
  1690. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +42 -34
  1691. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +108 -56
  1692. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +30 -24
  1693. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +21 -16
  1694. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +3 -3
  1695. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +45 -33
  1696. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +21 -15
  1697. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +8 -2
  1698. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +11 -6
  1699. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +3 -3
  1700. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +11 -6
  1701. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +3 -3
  1702. data/src/cxx_supportlib/vendor-modified/boost/unordered_map.hpp +3 -2
  1703. data/src/cxx_supportlib/vendor-modified/boost/unordered_set.hpp +3 -2
  1704. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +21 -0
  1705. data/src/cxx_supportlib/vendor-modified/boost/utility/addressof.hpp +11 -96
  1706. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +171 -0
  1707. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +708 -0
  1708. data/src/cxx_supportlib/vendor-modified/boost/utility/declval.hpp +5 -41
  1709. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +18 -5
  1710. data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +43 -0
  1711. data/src/cxx_supportlib/vendor-modified/boost/utility/enable_if.hpp +10 -112
  1712. data/src/cxx_supportlib/vendor-modified/boost/utility/explicit_operator_bool.hpp +17 -0
  1713. data/src/cxx_supportlib/vendor-modified/boost/utility/identity_type.hpp +46 -0
  1714. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +2 -4
  1715. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +25 -9
  1716. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +536 -0
  1717. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref_fwd.hpp +37 -0
  1718. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +10 -48
  1719. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +77 -0
  1720. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +281 -0
  1721. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +6 -6
  1722. data/src/cxx_supportlib/vendor-modified/boost/visit_each.hpp +0 -2
  1723. data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +3 -1
  1724. data/src/nginx_module/Configuration.c +157 -6
  1725. data/src/nginx_module/Configuration.h +3 -1
  1726. data/src/nginx_module/ContentHandler.c +2 -1
  1727. data/src/nginx_module/ngx_http_passenger_module.c +27 -46
  1728. data/src/nodejs_supportlib/phusion_passenger/log_express.js +1 -1
  1729. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  1730. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +102 -0
  1731. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +20 -3
  1732. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +36 -3
  1733. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -0
  1734. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -1
  1735. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/LICENSE.md +1 -1
  1736. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +7 -0
  1737. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/api.rb +28 -0
  1738. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/misc.rb +4 -0
  1739. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/spec_helper.rb +18 -0
  1740. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/transaction.rb +1 -10
  1741. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +4 -4
  1742. metadata +609 -62
  1743. data/src/agent/UstRouter/DataStoreId.h +0 -184
  1744. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.0 +0 -15374
  1745. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.1 +0 -15374
  1746. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.2 +0 -15374
  1747. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/requests +0 -568
  1748. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.0 +0 -3104
  1749. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.1 +0 -3104
  1750. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.2 +0 -699
  1751. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/base.hpp +0 -585
  1752. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas32strong.hpp +0 -885
  1753. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas32weak.hpp +0 -947
  1754. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas64strong.hpp +0 -443
  1755. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-alpha.hpp +0 -368
  1756. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-armv6plus.hpp +0 -252
  1757. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-cas.hpp +0 -157
  1758. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-ppc.hpp +0 -2850
  1759. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-sparcv9.hpp +0 -1259
  1760. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-x86.hpp +0 -1766
  1761. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/generic-cas.hpp +0 -206
  1762. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/linux-arm.hpp +0 -189
  1763. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type-classification.hpp +0 -45
  1764. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithms.hpp +0 -84
  1765. data/src/cxx_supportlib/vendor-modified/boost/container/detail/memory_util.hpp +0 -83
  1766. data/src/cxx_supportlib/vendor-modified/boost/container/detail/preprocessor.hpp +0 -232
  1767. data/src/cxx_supportlib/vendor-modified/boost/container/detail/utilities.hpp +0 -1141
  1768. data/src/cxx_supportlib/vendor-modified/boost/detail/is_incrementable.hpp +0 -134
  1769. data/src/cxx_supportlib/vendor-modified/boost/detail/is_xxx.hpp +0 -61
  1770. data/src/cxx_supportlib/vendor-modified/boost/detail/limits.hpp +0 -449
  1771. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/attribute_noreturn.hpp +0 -17
  1772. data/src/cxx_supportlib/vendor-modified/boost/indirect_reference.hpp +0 -43
  1773. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/clear_on_destructor_base.hpp +0 -36
  1774. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/memory_util.hpp +0 -288
  1775. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/preprocessor.hpp +0 -52
  1776. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/utilities.hpp +0 -858
  1777. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set_hook.hpp +0 -292
  1778. data/src/cxx_supportlib/vendor-modified/boost/libs/atomic/lockpool.cpp +0 -24
  1779. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/local_free_on_destruction.hpp +0 -40
  1780. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/timeconv.inl +0 -151
  1781. data/src/cxx_supportlib/vendor-modified/boost/math/common_factor_ct.hpp +0 -180
  1782. data/src/cxx_supportlib/vendor-modified/boost/math_fwd.hpp +0 -108
  1783. data/src/cxx_supportlib/vendor-modified/boost/parameter.hpp +0 -21
  1784. data/src/cxx_supportlib/vendor-modified/boost/pointee.hpp +0 -74
  1785. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/allocate_array_helper.hpp +0 -169
  1786. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_deleter.hpp +0 -124
  1787. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/make_array_helper.hpp +0 -157
  1788. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/async_func.hpp +0 -571
  1789. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_type_imp.hpp +0 -333
  1790. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/cv_traits_impl.hpp +0 -97
  1791. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/false_result.hpp +0 -28
  1792. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/size_t_trait_def.hpp +0 -60
  1793. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/size_t_trait_undef.hpp +0 -16
  1794. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/type_trait_def.hpp +0 -67
  1795. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/type_trait_undef.hpp +0 -19
  1796. data/src/cxx_supportlib/vendor-modified/boost/units/detail/utility.hpp +0 -104
@@ -1,6 +1,6 @@
1
1
  /////////////////////////////////////////////////////////////////////////////
2
2
  //
3
- // (C) Copyright Ion Gaztanaga 2007-2012
3
+ // (C) Copyright Ion Gaztanaga 2007-2014
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0.
6
6
  // (See accompanying file LICENSE_1_0.txt or copy at
@@ -16,8 +16,12 @@
16
16
  #include <boost/intrusive/intrusive_fwd.hpp>
17
17
  #include <boost/intrusive/avltree.hpp>
18
18
  #include <boost/intrusive/detail/mpl.hpp>
19
- #include <boost/move/move.hpp>
20
- #include <iterator>
19
+ #include <boost/move/utility_core.hpp>
20
+ #include <boost/static_assert.hpp>
21
+
22
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
23
+ # pragma once
24
+ #endif
21
25
 
22
26
  namespace boost {
23
27
  namespace intrusive {
@@ -36,14 +40,15 @@ namespace intrusive {
36
40
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
37
41
  template<class T, class ...Options>
38
42
  #else
39
- template<class Config>
43
+ template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
40
44
  #endif
41
45
  class avl_set_impl
46
+ #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
47
+ : public bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, HeaderHolder>
48
+ #endif
42
49
  {
43
50
  /// @cond
44
- typedef avltree_impl<Config> tree_type;
45
- //! This class is
46
- //! movable
51
+ typedef bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, HeaderHolder> tree_type;
47
52
  BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_set_impl)
48
53
 
49
54
  typedef tree_type implementation_defined;
@@ -51,6 +56,8 @@ class avl_set_impl
51
56
 
52
57
  public:
53
58
  typedef typename implementation_defined::value_type value_type;
59
+ typedef typename implementation_defined::key_type key_type;
60
+ typedef typename implementation_defined::key_of_value key_of_value;
54
61
  typedef typename implementation_defined::value_traits value_traits;
55
62
  typedef typename implementation_defined::pointer pointer;
56
63
  typedef typename implementation_defined::const_pointer const_pointer;
@@ -71,1212 +78,397 @@ class avl_set_impl
71
78
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
72
79
  typedef typename implementation_defined::node_algorithms node_algorithms;
73
80
 
74
- static const bool constant_time_size = Config::constant_time_size;
75
-
76
- /// @cond
77
- private:
78
- tree_type tree_;
79
- /// @endcond
81
+ static const bool constant_time_size = tree_type::constant_time_size;
80
82
 
81
83
  public:
82
- //! <b>Effects</b>: Constructs an empty avl_set.
83
- //!
84
- //! <b>Complexity</b>: Constant.
85
- //!
86
- //! <b>Throws</b>: If value_traits::node_traits::node
87
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
88
- //! or the copy constructor of the value_compare object throws.
89
- explicit avl_set_impl( const value_compare &cmp = value_compare()
90
- , const value_traits &v_traits = value_traits())
91
- : tree_(cmp, v_traits)
84
+
85
+ //! @copydoc ::boost::intrusive::avltree::avltree(const key_compare &,const value_traits &)
86
+ explicit avl_set_impl( const key_compare &cmp = key_compare()
87
+ , const value_traits &v_traits = value_traits())
88
+ : tree_type(cmp, v_traits)
92
89
  {}
93
90
 
94
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
95
- //! cmp must be a comparison function that induces a strict weak ordering.
96
- //!
97
- //! <b>Effects</b>: Constructs an empty avl_set and inserts elements from
98
- //! [b, e).
99
- //!
100
- //! <b>Complexity</b>: Linear in N if [b, e) is already sorted using
101
- //! comp and otherwise N * log N, where N is std::distance(last, first).
102
- //!
103
- //! <b>Throws</b>: If value_traits::node_traits::node
104
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
105
- //! or the copy constructor/operator() of the value_compare object throws.
91
+ //! @copydoc ::boost::intrusive::avltree::avltree(bool,Iterator,Iterator,const key_compare &,const value_traits &)
106
92
  template<class Iterator>
107
93
  avl_set_impl( Iterator b, Iterator e
108
- , const value_compare &cmp = value_compare()
94
+ , const key_compare &cmp = key_compare()
109
95
  , const value_traits &v_traits = value_traits())
110
- : tree_(true, b, e, cmp, v_traits)
96
+ : tree_type(true, b, e, cmp, v_traits)
111
97
  {}
112
98
 
113
- //! <b>Effects</b>: to-do
114
- //!
99
+ //! @copydoc ::boost::intrusive::avltree::avltree(avltree &&)
115
100
  avl_set_impl(BOOST_RV_REF(avl_set_impl) x)
116
- : tree_(::boost::move(x.tree_))
101
+ : tree_type(BOOST_MOVE_BASE(tree_type, x))
117
102
  {}
118
103
 
119
- //! <b>Effects</b>: to-do
120
- //!
104
+ //! @copydoc ::boost::intrusive::avltree::operator=(avltree &&)
121
105
  avl_set_impl& operator=(BOOST_RV_REF(avl_set_impl) x)
122
- { tree_ = ::boost::move(x.tree_); return *this; }
123
-
124
- //! <b>Effects</b>: Detaches all elements from this. The objects in the avl_set
125
- //! are not deleted (i.e. no destructors are called).
126
- //!
127
- //! <b>Complexity</b>: Linear to the number of elements on the container.
128
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
129
- //!
130
- //! <b>Throws</b>: Nothing.
131
- ~avl_set_impl()
132
- {}
106
+ { return static_cast<avl_set_impl&>(tree_type::operator=(BOOST_MOVE_BASE(tree_type, x))); }
107
+
108
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
109
+
110
+ //! @copydoc ::boost::intrusive::avltree::~avltree()
111
+ ~avl_set_impl();
112
+
113
+ //! @copydoc ::boost::intrusive::avltree::begin()
114
+ iterator begin();
115
+
116
+ //! @copydoc ::boost::intrusive::avltree::begin()const
117
+ const_iterator begin() const;
118
+
119
+ //! @copydoc ::boost::intrusive::avltree::cbegin()const
120
+ const_iterator cbegin() const;
121
+
122
+ //! @copydoc ::boost::intrusive::avltree::end()
123
+ iterator end();
124
+
125
+ //! @copydoc ::boost::intrusive::avltree::end()const
126
+ const_iterator end() const;
127
+
128
+ //! @copydoc ::boost::intrusive::avltree::cend()const
129
+ const_iterator cend() const;
133
130
 
134
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the avl_set.
135
- //!
136
- //! <b>Complexity</b>: Constant.
137
- //!
138
- //! <b>Throws</b>: Nothing.
139
- iterator begin()
140
- { return tree_.begin(); }
141
-
142
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the avl_set.
143
- //!
144
- //! <b>Complexity</b>: Constant.
145
- //!
146
- //! <b>Throws</b>: Nothing.
147
- const_iterator begin() const
148
- { return tree_.begin(); }
149
-
150
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the avl_set.
151
- //!
152
- //! <b>Complexity</b>: Constant.
153
- //!
154
- //! <b>Throws</b>: Nothing.
155
- const_iterator cbegin() const
156
- { return tree_.cbegin(); }
157
-
158
- //! <b>Effects</b>: Returns an iterator pointing to the end of the avl_set.
159
- //!
160
- //! <b>Complexity</b>: Constant.
161
- //!
162
- //! <b>Throws</b>: Nothing.
163
- iterator end()
164
- { return tree_.end(); }
165
-
166
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the avl_set.
167
- //!
168
- //! <b>Complexity</b>: Constant.
169
- //!
170
- //! <b>Throws</b>: Nothing.
171
- const_iterator end() const
172
- { return tree_.end(); }
173
-
174
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the avl_set.
175
- //!
176
- //! <b>Complexity</b>: Constant.
177
- //!
178
- //! <b>Throws</b>: Nothing.
179
- const_iterator cend() const
180
- { return tree_.cend(); }
181
-
182
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning of the
183
- //! reversed avl_set.
184
- //!
185
- //! <b>Complexity</b>: Constant.
186
- //!
187
- //! <b>Throws</b>: Nothing.
188
- reverse_iterator rbegin()
189
- { return tree_.rbegin(); }
190
-
191
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
192
- //! of the reversed avl_set.
193
- //!
194
- //! <b>Complexity</b>: Constant.
195
- //!
196
- //! <b>Throws</b>: Nothing.
197
- const_reverse_iterator rbegin() const
198
- { return tree_.rbegin(); }
199
-
200
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
201
- //! of the reversed avl_set.
202
- //!
203
- //! <b>Complexity</b>: Constant.
204
- //!
205
- //! <b>Throws</b>: Nothing.
206
- const_reverse_iterator crbegin() const
207
- { return tree_.crbegin(); }
208
-
209
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
210
- //! of the reversed avl_set.
211
- //!
212
- //! <b>Complexity</b>: Constant.
213
- //!
214
- //! <b>Throws</b>: Nothing.
215
- reverse_iterator rend()
216
- { return tree_.rend(); }
217
-
218
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
219
- //! of the reversed avl_set.
220
- //!
221
- //! <b>Complexity</b>: Constant.
222
- //!
223
- //! <b>Throws</b>: Nothing.
224
- const_reverse_iterator rend() const
225
- { return tree_.rend(); }
226
-
227
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
228
- //! of the reversed avl_set.
229
- //!
230
- //! <b>Complexity</b>: Constant.
231
- //!
232
- //! <b>Throws</b>: Nothing.
233
- const_reverse_iterator crend() const
234
- { return tree_.crend(); }
235
-
236
- //! <b>Precondition</b>: end_iterator must be a valid end iterator
237
- //! of avl_set.
238
- //!
239
- //! <b>Effects</b>: Returns a const reference to the avl_set associated to the end iterator
240
- //!
241
- //! <b>Throws</b>: Nothing.
242
- //!
243
- //! <b>Complexity</b>: Constant.
244
- static avl_set_impl &container_from_end_iterator(iterator end_iterator)
245
- {
246
- return *detail::parent_from_member<avl_set_impl, tree_type>
247
- ( &tree_type::container_from_end_iterator(end_iterator)
248
- , &avl_set_impl::tree_);
249
- }
250
-
251
- //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
252
- //! of avl_set.
253
- //!
254
- //! <b>Effects</b>: Returns a const reference to the set associated to the end iterator
255
- //!
256
- //! <b>Throws</b>: Nothing.
257
- //!
258
- //! <b>Complexity</b>: Constant.
259
- static const avl_set_impl &container_from_end_iterator(const_iterator end_iterator)
260
- {
261
- return *detail::parent_from_member<avl_set_impl, tree_type>
262
- ( &tree_type::container_from_end_iterator(end_iterator)
263
- , &avl_set_impl::tree_);
264
- }
265
-
266
- //! <b>Precondition</b>: it must be a valid iterator of set.
267
- //!
268
- //! <b>Effects</b>: Returns a reference to the set associated to the iterator
269
- //!
270
- //! <b>Throws</b>: Nothing.
271
- //!
272
- //! <b>Complexity</b>: Logarithmic.
273
- static avl_set_impl &container_from_iterator(iterator it)
274
- {
275
- return *detail::parent_from_member<avl_set_impl, tree_type>
276
- ( &tree_type::container_from_iterator(it)
277
- , &avl_set_impl::tree_);
278
- }
279
-
280
- //! <b>Precondition</b>: it must be a valid const_iterator of set.
281
- //!
282
- //! <b>Effects</b>: Returns a const reference to the set associated to the iterator
283
- //!
284
- //! <b>Throws</b>: Nothing.
285
- //!
286
- //! <b>Complexity</b>: Logarithmic.
287
- static const avl_set_impl &container_from_iterator(const_iterator it)
288
- {
289
- return *detail::parent_from_member<avl_set_impl, tree_type>
290
- ( &tree_type::container_from_iterator(it)
291
- , &avl_set_impl::tree_);
292
- }
293
-
294
- //! <b>Effects</b>: Returns the key_compare object used by the avl_set.
295
- //!
296
- //! <b>Complexity</b>: Constant.
297
- //!
298
- //! <b>Throws</b>: If key_compare copy-constructor throws.
299
- key_compare key_comp() const
300
- { return tree_.value_comp(); }
301
-
302
- //! <b>Effects</b>: Returns the value_compare object used by the avl_set.
303
- //!
304
- //! <b>Complexity</b>: Constant.
305
- //!
306
- //! <b>Throws</b>: If value_compare copy-constructor throws.
307
- value_compare value_comp() const
308
- { return tree_.value_comp(); }
309
-
310
- //! <b>Effects</b>: Returns true is the container is empty.
311
- //!
312
- //! <b>Complexity</b>: Constant.
313
- //!
314
- //! <b>Throws</b>: Nothing.
315
- bool empty() const
316
- { return tree_.empty(); }
317
-
318
- //! <b>Effects</b>: Returns the number of elements stored in the avl_set.
319
- //!
320
- //! <b>Complexity</b>: Linear to elements contained in *this if,
321
- //! constant-time size option is enabled. Constant-time otherwise.
322
- //!
323
- //! <b>Throws</b>: Nothing.
324
- size_type size() const
325
- { return tree_.size(); }
326
-
327
- //! <b>Effects</b>: Swaps the contents of two sets.
328
- //!
329
- //! <b>Complexity</b>: Constant.
330
- //!
331
- //! <b>Throws</b>: If the swap() call for the comparison functor
332
- //! found using ADL throws. Strong guarantee.
333
- void swap(avl_set_impl& other)
334
- { tree_.swap(other.tree_); }
335
-
336
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
337
- //! Cloner should yield to nodes equivalent to the original nodes.
338
- //!
339
- //! <b>Effects</b>: Erases all the elements from *this
340
- //! calling Disposer::operator()(pointer), clones all the
341
- //! elements from src calling Cloner::operator()(const_reference )
342
- //! and inserts them on *this. Copies the predicate from the source container.
343
- //!
344
- //! If cloner throws, all cloned elements are unlinked and disposed
345
- //! calling Disposer::operator()(pointer).
346
- //!
347
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
348
- //!
349
- //! <b>Throws</b>: If cloner throws or predicate copy assignment throws. Basic guarantee.
131
+ //! @copydoc ::boost::intrusive::avltree::begin()
132
+ reverse_iterator avlegin();
133
+
134
+ //! @copydoc ::boost::intrusive::avltree::begin()const
135
+ const_reverse_iterator avlegin() const;
136
+
137
+ //! @copydoc ::boost::intrusive::avltree::crbegin()const
138
+ const_reverse_iterator crbegin() const;
139
+
140
+ //! @copydoc ::boost::intrusive::avltree::rend()
141
+ reverse_iterator rend();
142
+
143
+ //! @copydoc ::boost::intrusive::avltree::rend()const
144
+ const_reverse_iterator rend() const;
145
+
146
+ //! @copydoc ::boost::intrusive::avltree::crend()const
147
+ const_reverse_iterator crend() const;
148
+
149
+ //! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(iterator)
150
+ static avl_set_impl &container_from_end_iterator(iterator end_iterator);
151
+
152
+ //! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(const_iterator)
153
+ static const avl_set_impl &container_from_end_iterator(const_iterator end_iterator);
154
+
155
+ //! @copydoc ::boost::intrusive::avltree::container_from_iterator(iterator)
156
+ static avl_set_impl &container_from_iterator(iterator it);
157
+
158
+ //! @copydoc ::boost::intrusive::avltree::container_from_iterator(const_iterator)
159
+ static const avl_set_impl &container_from_iterator(const_iterator it);
160
+
161
+ //! @copydoc ::boost::intrusive::avltree::key_comp()const
162
+ key_compare key_comp() const;
163
+
164
+ //! @copydoc ::boost::intrusive::avltree::value_comp()const
165
+ value_compare value_comp() const;
166
+
167
+ //! @copydoc ::boost::intrusive::avltree::empty()const
168
+ bool empty() const;
169
+
170
+ //! @copydoc ::boost::intrusive::avltree::size()const
171
+ size_type size() const;
172
+
173
+ //! @copydoc ::boost::intrusive::avltree::swap
174
+ void swap(avl_set_impl& other);
175
+
176
+ //! @copydoc ::boost::intrusive::avltree::clone_from(const avltree&,Cloner,Disposer)
350
177
  template <class Cloner, class Disposer>
351
- void clone_from(const avl_set_impl &src, Cloner cloner, Disposer disposer)
352
- { tree_.clone_from(src.tree_, cloner, disposer); }
353
-
354
- //! <b>Requires</b>: value must be an lvalue
355
- //!
356
- //! <b>Effects</b>: Treaps to inserts value into the avl_set.
357
- //!
358
- //! <b>Returns</b>: If the value
359
- //! is not already present inserts it and returns a pair containing the
360
- //! iterator to the new value and true. If there is an equivalent value
361
- //! returns a pair containing an iterator to the already present value
362
- //! and false.
363
- //!
364
- //! <b>Complexity</b>: Average complexity for insert element is at
365
- //! most logarithmic.
366
- //!
367
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
368
- //!
369
- //! <b>Note</b>: Does not affect the validity of iterators and references.
370
- //! No copy-constructors are called.
178
+ void clone_from(const avl_set_impl &src, Cloner cloner, Disposer disposer);
179
+
180
+ #else
181
+
182
+ using tree_type::clone_from;
183
+
184
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
185
+
186
+ //! @copydoc ::boost::intrusive::avltree::clone_from(avltree&&,Cloner,Disposer)
187
+ template <class Cloner, class Disposer>
188
+ void clone_from(BOOST_RV_REF(avl_set_impl) src, Cloner cloner, Disposer disposer)
189
+ { tree_type::clone_from(BOOST_MOVE_BASE(tree_type, src), cloner, disposer); }
190
+
191
+ //! @copydoc ::boost::intrusive::avltree::insert_unique(reference)
371
192
  std::pair<iterator, bool> insert(reference value)
372
- { return tree_.insert_unique(value); }
373
-
374
- //! <b>Requires</b>: value must be an lvalue
375
- //!
376
- //! <b>Effects</b>: Treaps to to insert x into the avl_set, using "hint"
377
- //! as a hint to where it will be inserted.
378
- //!
379
- //! <b>Returns</b>: An iterator that points to the position where the
380
- //! new element was inserted into the avl_set.
381
- //!
382
- //! <b>Complexity</b>: Logarithmic in general, but it's amortized
383
- //! constant time if t is inserted immediately before hint.
384
- //!
385
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
386
- //!
387
- //! <b>Note</b>: Does not affect the validity of iterators and references.
388
- //! No copy-constructors are called.
193
+ { return tree_type::insert_unique(value); }
194
+
195
+ //! @copydoc ::boost::intrusive::avltree::insert_unique(const_iterator,reference)
389
196
  iterator insert(const_iterator hint, reference value)
390
- { return tree_.insert_unique(hint, value); }
391
-
392
- //! <b>Requires</b>: key_value_comp must be a comparison function that induces
393
- //! the same strict weak ordering as value_compare. The difference is that
394
- //! key_value_comp compares an arbitrary key with the contained values.
395
- //!
396
- //! <b>Effects</b>: Checks if a value can be inserted in the avl_set, using
397
- //! a user provided key instead of the value itself.
398
- //!
399
- //! <b>Returns</b>: If there is an equivalent value
400
- //! returns a pair containing an iterator to the already present value
401
- //! and false. If the value can be inserted returns true in the returned
402
- //! pair boolean and fills "commit_data" that is meant to be used with
403
- //! the "insert_commit" function.
404
- //!
405
- //! <b>Complexity</b>: Average complexity is at most logarithmic.
406
- //!
407
- //! <b>Throws</b>: If the key_value_comp ordering function throws. Strong guarantee.
408
- //!
409
- //! <b>Notes</b>: This function is used to improve performance when constructing
410
- //! a value_type is expensive: if there is an equivalent value
411
- //! the constructed object must be discarded. Many times, the part of the
412
- //! node that is used to impose the order is much cheaper to construct
413
- //! than the value_type and this function offers the possibility to use that
414
- //! part to check if the insertion will be successful.
415
- //!
416
- //! If the check is successful, the user can construct the value_type and use
417
- //! "insert_commit" to insert the object in constant-time. This gives a total
418
- //! logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).
419
- //!
420
- //! "commit_data" remains valid for a subsequent "insert_commit" only if no more
421
- //! objects are inserted or erased from the avl_set.
422
- template<class KeyType, class KeyValueCompare>
197
+ { return tree_type::insert_unique(hint, value); }
198
+
199
+ //! @copydoc ::boost::intrusive::avltree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
200
+ template<class KeyType, class KeyTypeKeyCompare>
423
201
  std::pair<iterator, bool> insert_check
424
- (const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
425
- { return tree_.insert_unique_check(key, key_value_comp, commit_data); }
426
-
427
- //! <b>Requires</b>: key_value_comp must be a comparison function that induces
428
- //! the same strict weak ordering as value_compare. The difference is that
429
- //! key_value_comp compares an arbitrary key with the contained values.
430
- //!
431
- //! <b>Effects</b>: Checks if a value can be inserted in the avl_set, using
432
- //! a user provided key instead of the value itself, using "hint"
433
- //! as a hint to where it will be inserted.
434
- //!
435
- //! <b>Returns</b>: If there is an equivalent value
436
- //! returns a pair containing an iterator to the already present value
437
- //! and false. If the value can be inserted returns true in the returned
438
- //! pair boolean and fills "commit_data" that is meant to be used with
439
- //! the "insert_commit" function.
440
- //!
441
- //! <b>Complexity</b>: Logarithmic in general, but it's amortized
442
- //! constant time if t is inserted immediately before hint.
443
- //!
444
- //! <b>Throws</b>: If the key_value_comp ordering function throws. Strong guarantee.
445
- //!
446
- //! <b>Notes</b>: This function is used to improve performance when constructing
447
- //! a value_type is expensive: if there is an equivalent value
448
- //! the constructed object must be discarded. Many times, the part of the
449
- //! constructing that is used to impose the order is much cheaper to construct
450
- //! than the value_type and this function offers the possibility to use that key
451
- //! to check if the insertion will be successful.
452
- //!
453
- //! If the check is successful, the user can construct the value_type and use
454
- //! "insert_commit" to insert the object in constant-time. This can give a total
455
- //! constant-time complexity to the insertion: check(O(1)) + commit(O(1)).
456
- //!
457
- //! "commit_data" remains valid for a subsequent "insert_commit" only if no more
458
- //! objects are inserted or erased from the avl_set.
459
- template<class KeyType, class KeyValueCompare>
202
+ (const KeyType &key, KeyTypeKeyCompare comp, insert_commit_data &commit_data)
203
+ { return tree_type::insert_unique_check(key, comp, commit_data); }
204
+
205
+ //! @copydoc ::boost::intrusive::avltree::insert_unique_check(const_iterator,const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
206
+ template<class KeyType, class KeyTypeKeyCompare>
460
207
  std::pair<iterator, bool> insert_check
461
208
  (const_iterator hint, const KeyType &key
462
- ,KeyValueCompare key_value_comp, insert_commit_data &commit_data)
463
- { return tree_.insert_unique_check(hint, key, key_value_comp, commit_data); }
464
-
465
- //! <b>Requires</b>: value must be an lvalue of type value_type. commit_data
466
- //! must have been obtained from a previous call to "insert_check".
467
- //! No objects should have been inserted or erased from the avl_set between
468
- //! the "insert_check" that filled "commit_data" and the call to "insert_commit".
469
- //!
470
- //! <b>Effects</b>: Inserts the value in the avl_set using the information obtained
471
- //! from the "commit_data" that a previous "insert_check" filled.
472
- //!
473
- //! <b>Returns</b>: An iterator to the newly inserted object.
474
- //!
475
- //! <b>Complexity</b>: Constant time.
476
- //!
477
- //! <b>Throws</b>: Nothing.
478
- //!
479
- //! <b>Notes</b>: This function has only sense if a "insert_check" has been
480
- //! previously executed to fill "commit_data". No value should be inserted or
481
- //! erased between the "insert_check" and "insert_commit" calls.
482
- iterator insert_commit(reference value, const insert_commit_data &commit_data)
483
- { return tree_.insert_unique_commit(value, commit_data); }
484
-
485
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
486
- //! of type value_type.
487
- //!
488
- //! <b>Effects</b>: Inserts a range into the avl_set.
489
- //!
490
- //! <b>Complexity</b>: Insert range is in general O(N * log(N)), where N is the
491
- //! size of the range. However, it is linear in N if the range is already sorted
492
- //! by value_comp().
493
- //!
494
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
495
- //!
496
- //! <b>Note</b>: Does not affect the validity of iterators and references.
497
- //! No copy-constructors are called.
209
+ ,KeyTypeKeyCompare comp, insert_commit_data &commit_data)
210
+ { return tree_type::insert_unique_check(hint, key, comp, commit_data); }
211
+
212
+ //! @copydoc ::boost::intrusive::avltree::insert_unique(Iterator,Iterator)
498
213
  template<class Iterator>
499
214
  void insert(Iterator b, Iterator e)
500
- { tree_.insert_unique(b, e); }
501
-
502
- //! <b>Requires</b>: value must be an lvalue, "pos" must be
503
- //! a valid iterator (or end) and must be the succesor of value
504
- //! once inserted according to the predicate. "value" must not be equal to any
505
- //! inserted key according to the predicate.
506
- //!
507
- //! <b>Effects</b>: Inserts x into the tree before "pos".
508
- //!
509
- //! <b>Complexity</b>: Constant time.
510
- //!
511
- //! <b>Throws</b>: Nothing.
512
- //!
513
- //! <b>Note</b>: This function does not check preconditions so if "pos" is not
514
- //! the successor of "value" or "value" is not unique tree ordering and uniqueness
515
- //! invariants will be broken respectively.
516
- //! This is a low-level function to be used only for performance reasons
517
- //! by advanced users.
518
- iterator insert_before(const_iterator pos, reference value)
519
- { return tree_.insert_before(pos, value); }
520
-
521
- //! <b>Requires</b>: value must be an lvalue, and it must be greater than
522
- //! any inserted key according to the predicate.
523
- //!
524
- //! <b>Effects</b>: Inserts x into the tree in the last position.
525
- //!
526
- //! <b>Complexity</b>: Constant time.
527
- //!
528
- //! <b>Throws</b>: Nothing.
529
- //!
530
- //! <b>Note</b>: This function does not check preconditions so if value is
531
- //! less than or equal to the greatest inserted key tree ordering invariant will be broken.
532
- //! This function is slightly more efficient than using "insert_before".
533
- //! This is a low-level function to be used only for performance reasons
534
- //! by advanced users.
535
- void push_back(reference value)
536
- { tree_.push_back(value); }
537
-
538
- //! <b>Requires</b>: value must be an lvalue, and it must be less
539
- //! than any inserted key according to the predicate.
540
- //!
541
- //! <b>Effects</b>: Inserts x into the tree in the first position.
542
- //!
543
- //! <b>Complexity</b>: Constant time.
544
- //!
545
- //! <b>Throws</b>: Nothing.
546
- //!
547
- //! <b>Note</b>: This function does not check preconditions so if value is
548
- //! greater than or equal to the the mimum inserted key tree ordering or uniqueness
549
- //! invariants will be broken.
550
- //! This function is slightly more efficient than using "insert_before".
551
- //! This is a low-level function to be used only for performance reasons
552
- //! by advanced users.
553
- void push_front(reference value)
554
- { tree_.push_front(value); }
555
-
556
- //! <b>Effects</b>: Erases the element pointed to by pos.
557
- //!
558
- //! <b>Complexity</b>: Average complexity is constant time.
559
- //!
560
- //! <b>Returns</b>: An iterator to the element after the erased element.
561
- //!
562
- //! <b>Throws</b>: Nothing.
563
- //!
564
- //! <b>Note</b>: Invalidates the iterators (but not the references)
565
- //! to the erased elements. No destructors are called.
566
- iterator erase(const_iterator i)
567
- { return tree_.erase(i); }
568
-
569
- //! <b>Effects</b>: Erases the range pointed to by b end e.
570
- //!
571
- //! <b>Complexity</b>: Average complexity for erase range is at most
572
- //! O(log(size() + N)), where N is the number of elements in the range.
573
- //!
574
- //! <b>Returns</b>: An iterator to the element after the erased elements.
575
- //!
576
- //! <b>Throws</b>: Nothing.
577
- //!
578
- //! <b>Note</b>: Invalidates the iterators (but not the references)
579
- //! to the erased elements. No destructors are called.
580
- iterator erase(const_iterator b, const_iterator e)
581
- { return tree_.erase(b, e); }
582
-
583
- //! <b>Effects</b>: Erases all the elements with the given value.
584
- //!
585
- //! <b>Returns</b>: The number of erased elements.
586
- //!
587
- //! <b>Complexity</b>: O(log(size()) + this->count(value)).
588
- //!
589
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
590
- //!
591
- //! <b>Note</b>: Invalidates the iterators (but not the references)
592
- //! to the erased elements. No destructors are called.
593
- size_type erase(const_reference value)
594
- { return tree_.erase(value); }
595
-
596
- //! <b>Effects</b>: Erases all the elements that compare equal with
597
- //! the given key and the given comparison functor.
598
- //!
599
- //! <b>Returns</b>: The number of erased elements.
600
- //!
601
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
602
- //!
603
- //! <b>Throws</b>: If the comp ordering function throws. Basic guarantee.
604
- //!
605
- //! <b>Note</b>: Invalidates the iterators (but not the references)
606
- //! to the erased elements. No destructors are called.
607
- template<class KeyType, class KeyValueCompare>
608
- size_type erase(const KeyType& key, KeyValueCompare comp
609
- /// @cond
610
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
611
- /// @endcond
612
- )
613
- { return tree_.erase(key, comp); }
614
-
615
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
616
- //!
617
- //! <b>Effects</b>: Erases the element pointed to by pos.
618
- //! Disposer::operator()(pointer) is called for the removed element.
619
- //!
620
- //! <b>Complexity</b>: Average complexity for erase element is constant time.
621
- //!
622
- //! <b>Returns</b>: An iterator to the element after the erased element.
623
- //!
624
- //! <b>Throws</b>: Nothing.
625
- //!
626
- //! <b>Note</b>: Invalidates the iterators
627
- //! to the erased elements.
628
- template<class Disposer>
629
- iterator erase_and_dispose(const_iterator i, Disposer disposer)
630
- { return tree_.erase_and_dispose(i, disposer); }
215
+ { tree_type::insert_unique(b, e); }
216
+
217
+ //! @copydoc ::boost::intrusive::avltree::insert_unique_commit
218
+ iterator insert_commit(reference value, const insert_commit_data &commit_data)
219
+ { return tree_type::insert_unique_commit(value, commit_data); }
220
+
221
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
222
+ //! @copydoc ::boost::intrusive::avltree::insert_before
223
+ iterator insert_before(const_iterator pos, reference value);
224
+
225
+ //! @copydoc ::boost::intrusive::avltree::push_back
226
+ void push_back(reference value);
227
+
228
+ //! @copydoc ::boost::intrusive::avltree::push_front
229
+ void push_front(reference value);
230
+
231
+ //! @copydoc ::boost::intrusive::avltree::erase(const_iterator)
232
+ iterator erase(const_iterator i);
631
233
 
632
- #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
234
+ //! @copydoc ::boost::intrusive::avltree::erase(const_iterator,const_iterator)
235
+ iterator erase(const_iterator b, const_iterator e);
236
+
237
+ //! @copydoc ::boost::intrusive::avltree::erase(const key_type &key)
238
+ size_type erase(const key_type &key);
239
+
240
+ //! @copydoc ::boost::intrusive::avltree::erase(const KeyType&,KeyTypeKeyCompare)
241
+ template<class KeyType, class KeyTypeKeyCompare>
242
+ size_type erase(const KeyType& key, KeyTypeKeyCompare comp);
243
+
244
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const_iterator,Disposer)
633
245
  template<class Disposer>
634
- iterator erase_and_dispose(iterator i, Disposer disposer)
635
- { return this->erase_and_dispose(const_iterator(i), disposer); }
636
- #endif
246
+ iterator erase_and_dispose(const_iterator i, Disposer disposer);
637
247
 
638
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
639
- //!
640
- //! <b>Effects</b>: Erases the range pointed to by b end e.
641
- //! Disposer::operator()(pointer) is called for the removed elements.
642
- //!
643
- //! <b>Complexity</b>: Average complexity for erase range is at most
644
- //! O(log(size() + N)), where N is the number of elements in the range.
645
- //!
646
- //! <b>Returns</b>: An iterator to the element after the erased elements.
647
- //!
648
- //! <b>Throws</b>: Nothing.
649
- //!
650
- //! <b>Note</b>: Invalidates the iterators
651
- //! to the erased elements.
248
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const_iterator,const_iterator,Disposer)
652
249
  template<class Disposer>
653
- iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
654
- { return tree_.erase_and_dispose(b, e, disposer); }
655
-
656
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
657
- //!
658
- //! <b>Effects</b>: Erases all the elements with the given value.
659
- //! Disposer::operator()(pointer) is called for the removed elements.
660
- //!
661
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
662
- //!
663
- //! <b>Complexity</b>: O(log(size() + this->count(value)). Basic guarantee.
664
- //!
665
- //! <b>Throws</b>: Nothing.
666
- //!
667
- //! <b>Note</b>: Invalidates the iterators (but not the references)
668
- //! to the erased elements. No destructors are called.
250
+ iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer);
251
+
252
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const key_type &, Disposer)
669
253
  template<class Disposer>
670
- size_type erase_and_dispose(const_reference value, Disposer disposer)
671
- { return tree_.erase_and_dispose(value, disposer); }
672
-
673
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
674
- //!
675
- //! <b>Effects</b>: Erases all the elements with the given key.
676
- //! according to the comparison functor "comp".
677
- //! Disposer::operator()(pointer) is called for the removed elements.
678
- //!
679
- //! <b>Returns</b>: The number of erased elements.
680
- //!
681
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
682
- //!
683
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
684
- //!
685
- //! <b>Note</b>: Invalidates the iterators
686
- //! to the erased elements.
687
- template<class KeyType, class KeyValueCompare, class Disposer>
688
- size_type erase_and_dispose(const KeyType& key, KeyValueCompare comp, Disposer disposer
689
- /// @cond
690
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
691
- /// @endcond
692
- )
693
- { return tree_.erase_and_dispose(key, comp, disposer); }
694
-
695
- //! <b>Effects</b>: Erases all the elements of the container.
696
- //!
697
- //! <b>Complexity</b>: Linear to the number of elements on the container.
698
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
699
- //!
700
- //! <b>Throws</b>: Nothing.
701
- //!
702
- //! <b>Note</b>: Invalidates the iterators (but not the references)
703
- //! to the erased elements. No destructors are called.
704
- void clear()
705
- { return tree_.clear(); }
706
-
707
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
708
- //!
709
- //! <b>Effects</b>: Erases all the elements of the container.
710
- //!
711
- //! <b>Complexity</b>: Linear to the number of elements on the container.
712
- //! Disposer::operator()(pointer) is called for the removed elements.
713
- //!
714
- //! <b>Throws</b>: Nothing.
715
- //!
716
- //! <b>Note</b>: Invalidates the iterators (but not the references)
717
- //! to the erased elements. No destructors are called.
254
+ size_type erase_and_dispose(const key_type &key, Disposer disposer);
255
+
256
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const KeyType&,KeyTypeKeyCompare,Disposer)
257
+ template<class KeyType, class KeyTypeKeyCompare, class Disposer>
258
+ size_type erase_and_dispose(const KeyType& key, KeyTypeKeyCompare comp, Disposer disposer);
259
+
260
+ //! @copydoc ::boost::intrusive::avltree::clear
261
+ void clear();
262
+
263
+ //! @copydoc ::boost::intrusive::avltree::clear_and_dispose
718
264
  template<class Disposer>
719
- void clear_and_dispose(Disposer disposer)
720
- { return tree_.clear_and_dispose(disposer); }
721
-
722
- //! <b>Effects</b>: Returns the number of contained elements with the given key
723
- //!
724
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
725
- //! to number of objects with the given key.
726
- //!
727
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
728
- size_type count(const_reference value) const
729
- { return tree_.find(value) != end(); }
730
-
731
- //! <b>Effects</b>: Returns the number of contained elements with the same key
732
- //! compared with the given comparison functor.
733
- //!
734
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
735
- //! to number of objects with the given key.
736
- //!
737
- //! <b>Throws</b>: If comp ordering function throws.
738
- template<class KeyType, class KeyValueCompare>
739
- size_type count(const KeyType& key, KeyValueCompare comp) const
740
- { return tree_.find(key, comp) != end(); }
741
-
742
- //! <b>Effects</b>: Returns an iterator to the first element whose
743
- //! key is not less than k or end() if that element does not exist.
744
- //!
745
- //! <b>Complexity</b>: Logarithmic.
746
- //!
747
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
748
- iterator lower_bound(const_reference value)
749
- { return tree_.lower_bound(value); }
750
-
751
- //! <b>Requires</b>: comp must imply the same element order as
752
- //! value_compare. Usually key is the part of the value_type
753
- //! that is used in the ordering functor.
754
- //!
755
- //! <b>Effects</b>: Returns an iterator to the first element whose
756
- //! key according to the comparison functor is not less than k or
757
- //! end() if that element does not exist.
758
- //!
759
- //! <b>Complexity</b>: Logarithmic.
760
- //!
761
- //! <b>Throws</b>: If comp ordering function throws.
762
- //!
763
- //! <b>Note</b>: This function is used when constructing a value_type
764
- //! is expensive and the value_type can be compared with a cheaper
765
- //! key type. Usually this key is part of the value_type.
766
- template<class KeyType, class KeyValueCompare>
767
- iterator lower_bound(const KeyType& key, KeyValueCompare comp)
768
- { return tree_.lower_bound(key, comp); }
769
-
770
- //! <b>Effects</b>: Returns a const iterator to the first element whose
771
- //! key is not less than k or end() if that element does not exist.
772
- //!
773
- //! <b>Complexity</b>: Logarithmic.
774
- //!
775
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
776
- const_iterator lower_bound(const_reference value) const
777
- { return tree_.lower_bound(value); }
778
-
779
- //! <b>Requires</b>: comp must imply the same element order as
780
- //! value_compare. Usually key is the part of the value_type
781
- //! that is used in the ordering functor.
782
- //!
783
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
784
- //! key according to the comparison functor is not less than k or
785
- //! end() if that element does not exist.
786
- //!
787
- //! <b>Complexity</b>: Logarithmic.
788
- //!
789
- //! <b>Throws</b>: If comp ordering function throws.
790
- //!
791
- //! <b>Note</b>: This function is used when constructing a value_type
792
- //! is expensive and the value_type can be compared with a cheaper
793
- //! key type. Usually this key is part of the value_type.
794
- template<class KeyType, class KeyValueCompare>
795
- const_iterator lower_bound(const KeyType& key, KeyValueCompare comp) const
796
- { return tree_.lower_bound(key, comp); }
797
-
798
- //! <b>Effects</b>: Returns an iterator to the first element whose
799
- //! key is greater than k or end() if that element does not exist.
800
- //!
801
- //! <b>Complexity</b>: Logarithmic.
802
- //!
803
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
804
- iterator upper_bound(const_reference value)
805
- { return tree_.upper_bound(value); }
806
-
807
- //! <b>Requires</b>: comp must imply the same element order as
808
- //! value_compare. Usually key is the part of the value_type
809
- //! that is used in the ordering functor.
810
- //!
811
- //! <b>Effects</b>: Returns an iterator to the first element whose
812
- //! key according to the comparison functor is greater than key or
813
- //! end() if that element does not exist.
814
- //!
815
- //! <b>Complexity</b>: Logarithmic.
816
- //!
817
- //! <b>Throws</b>: If comp ordering function throws.
818
- //!
819
- //! <b>Note</b>: This function is used when constructing a value_type
820
- //! is expensive and the value_type can be compared with a cheaper
821
- //! key type. Usually this key is part of the value_type.
822
- template<class KeyType, class KeyValueCompare>
823
- iterator upper_bound(const KeyType& key, KeyValueCompare comp)
824
- { return tree_.upper_bound(key, comp); }
825
-
826
- //! <b>Effects</b>: Returns an iterator to the first element whose
827
- //! key is greater than k or end() if that element does not exist.
828
- //!
829
- //! <b>Complexity</b>: Logarithmic.
830
- //!
831
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
832
- const_iterator upper_bound(const_reference value) const
833
- { return tree_.upper_bound(value); }
834
-
835
- //! <b>Requires</b>: comp must imply the same element order as
836
- //! value_compare. Usually key is the part of the value_type
837
- //! that is used in the ordering functor.
838
- //!
839
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
840
- //! key according to the comparison functor is greater than key or
841
- //! end() if that element does not exist.
842
- //!
843
- //! <b>Complexity</b>: Logarithmic.
844
- //!
845
- //! <b>Throws</b>: If comp ordering function throws.
846
- //!
847
- //! <b>Note</b>: This function is used when constructing a value_type
848
- //! is expensive and the value_type can be compared with a cheaper
849
- //! key type. Usually this key is part of the value_type.
850
- template<class KeyType, class KeyValueCompare>
851
- const_iterator upper_bound(const KeyType& key, KeyValueCompare comp) const
852
- { return tree_.upper_bound(key, comp); }
853
-
854
- //! <b>Effects</b>: Finds an iterator to the first element whose value is
855
- //! "value" or end() if that element does not exist.
856
- //!
857
- //! <b>Complexity</b>: Logarithmic.
858
- //!
859
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
860
- iterator find(const_reference value)
861
- { return tree_.find(value); }
862
-
863
- //! <b>Requires</b>: comp must imply the same element order as
864
- //! value_compare. Usually key is the part of the value_type
865
- //! that is used in the ordering functor.
866
- //!
867
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
868
- //! "key" according to the comparison functor or end() if that element
869
- //! does not exist.
870
- //!
871
- //! <b>Complexity</b>: Logarithmic.
872
- //!
873
- //! <b>Throws</b>: If comp ordering function throws.
874
- //!
875
- //! <b>Note</b>: This function is used when constructing a value_type
876
- //! is expensive and the value_type can be compared with a cheaper
877
- //! key type. Usually this key is part of the value_type.
878
- template<class KeyType, class KeyValueCompare>
879
- iterator find(const KeyType& key, KeyValueCompare comp)
880
- { return tree_.find(key, comp); }
881
-
882
- //! <b>Effects</b>: Finds a const_iterator to the first element whose value is
883
- //! "value" or end() if that element does not exist.
884
- //!
885
- //! <b>Complexity</b>: Logarithmic.
886
- //!
887
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
888
- const_iterator find(const_reference value) const
889
- { return tree_.find(value); }
890
-
891
- //! <b>Requires</b>: comp must imply the same element order as
892
- //! value_compare. Usually key is the part of the value_type
893
- //! that is used in the ordering functor.
894
- //!
895
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
896
- //! "key" according to the comparison functor or end() if that element
897
- //! does not exist.
898
- //!
899
- //! <b>Complexity</b>: Logarithmic.
900
- //!
901
- //! <b>Throws</b>: If comp ordering function throws.
902
- //!
903
- //! <b>Note</b>: This function is used when constructing a value_type
904
- //! is expensive and the value_type can be compared with a cheaper
905
- //! key type. Usually this key is part of the value_type.
906
- template<class KeyType, class KeyValueCompare>
907
- const_iterator find(const KeyType& key, KeyValueCompare comp) const
908
- { return tree_.find(key, comp); }
909
-
910
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
911
- //! an empty range that indicates the position where those elements would be
912
- //! if they there is no elements with key k.
913
- //!
914
- //! <b>Complexity</b>: Logarithmic.
915
- //!
916
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
917
- std::pair<iterator,iterator> equal_range(const_reference value)
918
- { return tree_.equal_range(value); }
919
-
920
- //! <b>Requires</b>: comp must imply the same element order as
921
- //! value_compare. Usually key is the part of the value_type
922
- //! that is used in the ordering functor.
923
- //!
924
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
925
- //! according to the comparison functor or an empty range
926
- //! that indicates the position where those elements would be
927
- //! if they there is no elements with key k.
928
- //!
929
- //! <b>Complexity</b>: Logarithmic.
930
- //!
931
- //! <b>Throws</b>: If comp ordering function throws.
932
- //!
933
- //! <b>Note</b>: This function is used when constructing a value_type
934
- //! is expensive and the value_type can be compared with a cheaper
935
- //! key type. Usually this key is part of the value_type.
936
- template<class KeyType, class KeyValueCompare>
937
- std::pair<iterator,iterator> equal_range(const KeyType& key, KeyValueCompare comp)
938
- { return tree_.equal_range(key, comp); }
939
-
940
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
941
- //! an empty range that indicates the position where those elements would be
942
- //! if they there is no elements with key k.
943
- //!
944
- //! <b>Complexity</b>: Logarithmic.
945
- //!
946
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
265
+ void clear_and_dispose(Disposer disposer);
266
+
267
+ #endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
268
+
269
+ //! @copydoc ::boost::intrusive::avltree::count(const key_type &)const
270
+ size_type count(const key_type &key) const
271
+ { return static_cast<size_type>(this->tree_type::find(key) != this->tree_type::cend()); }
272
+
273
+ //! @copydoc ::boost::intrusive::avltree::count(const KeyType&,KeyTypeKeyCompare)const
274
+ template<class KeyType, class KeyTypeKeyCompare>
275
+ size_type count(const KeyType& key, KeyTypeKeyCompare comp) const
276
+ { return static_cast<size_type>(this->tree_type::find(key, comp) != this->tree_type::cend()); }
277
+
278
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
279
+
280
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const key_type &)
281
+ iterator lower_bound(const key_type &key);
282
+
283
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const KeyType&,KeyTypeKeyCompare)
284
+ template<class KeyType, class KeyTypeKeyCompare>
285
+ iterator lower_bound(const KeyType& key, KeyTypeKeyCompare comp);
286
+
287
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const key_type &)const
288
+ const_iterator lower_bound(const key_type &key) const;
289
+
290
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const KeyType&,KeyTypeKeyCompare)const
291
+ template<class KeyType, class KeyTypeKeyCompare>
292
+ const_iterator lower_bound(const KeyType& key, KeyTypeKeyCompare comp) const;
293
+
294
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const key_type &)
295
+ iterator upper_bound(const key_type &key);
296
+
297
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const KeyType&,KeyTypeKeyCompare)
298
+ template<class KeyType, class KeyTypeKeyCompare>
299
+ iterator upper_bound(const KeyType& key, KeyTypeKeyCompare comp);
300
+
301
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const key_type &)const
302
+ const_iterator upper_bound(const key_type &key) const;
303
+
304
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const KeyType&,KeyTypeKeyCompare)const
305
+ template<class KeyType, class KeyTypeKeyCompare>
306
+ const_iterator upper_bound(const KeyType& key, KeyTypeKeyCompare comp) const;
307
+
308
+ //! @copydoc ::boost::intrusive::avltree::find(const key_type &)
309
+ iterator find(const key_type &key);
310
+
311
+ //! @copydoc ::boost::intrusive::avltree::find(const KeyType&,KeyTypeKeyCompare)
312
+ template<class KeyType, class KeyTypeKeyCompare>
313
+ iterator find(const KeyType& key, KeyTypeKeyCompare comp);
314
+
315
+ //! @copydoc ::boost::intrusive::avltree::find(const key_type &)const
316
+ const_iterator find(const key_type &key) const;
317
+
318
+ //! @copydoc ::boost::intrusive::avltree::find(const KeyType&,KeyTypeKeyCompare)const
319
+ template<class KeyType, class KeyTypeKeyCompare>
320
+ const_iterator find(const KeyType& key, KeyTypeKeyCompare comp) const;
321
+
322
+ #endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
323
+
324
+ //! @copydoc ::boost::intrusive::rbtree::equal_range(const key_type &)
325
+ std::pair<iterator,iterator> equal_range(const key_type &key)
326
+ { return this->tree_type::lower_bound_range(key); }
327
+
328
+ //! @copydoc ::boost::intrusive::rbtree::equal_range(const KeyType&,KeyTypeKeyCompare)
329
+ template<class KeyType, class KeyTypeKeyCompare>
330
+ std::pair<iterator,iterator> equal_range(const KeyType& key, KeyTypeKeyCompare comp)
331
+ { return this->tree_type::equal_range(key, comp); }
332
+
333
+ //! @copydoc ::boost::intrusive::rbtree::equal_range(const key_type &)const
947
334
  std::pair<const_iterator, const_iterator>
948
- equal_range(const_reference value) const
949
- { return tree_.equal_range(value); }
950
-
951
- //! <b>Requires</b>: comp must imply the same element order as
952
- //! value_compare. Usually key is the part of the value_type
953
- //! that is used in the ordering functor.
954
- //!
955
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
956
- //! according to the comparison functor or an empty range
957
- //! that indicates the position where those elements would be
958
- //! if they there is no elements with key k.
959
- //!
960
- //! <b>Complexity</b>: Logarithmic.
961
- //!
962
- //! <b>Throws</b>: If comp ordering function throws.
963
- //!
964
- //! <b>Note</b>: This function is used when constructing a value_type
965
- //! is expensive and the value_type can be compared with a cheaper
966
- //! key type. Usually this key is part of the value_type.
967
- template<class KeyType, class KeyValueCompare>
335
+ equal_range(const key_type &key) const
336
+ { return this->tree_type::lower_bound_range(key); }
337
+
338
+ //! @copydoc ::boost::intrusive::rbtree::equal_range(const KeyType&,KeyTypeKeyCompare)const
339
+ template<class KeyType, class KeyTypeKeyCompare>
968
340
  std::pair<const_iterator, const_iterator>
969
- equal_range(const KeyType& key, KeyValueCompare comp) const
970
- { return tree_.equal_range(key, comp); }
971
-
972
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
973
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
974
- //!
975
- //! <b>Effects</b>: Returns an a pair with the following criteria:
976
- //!
977
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
978
- //!
979
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
980
- //!
981
- //! <b>Complexity</b>: Logarithmic.
982
- //!
983
- //! <b>Throws</b>: If the predicate throws.
984
- //!
985
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
986
- //! and lower_bound for lower_value and upper_value.
341
+ equal_range(const KeyType& key, KeyTypeKeyCompare comp) const
342
+ { return this->tree_type::equal_range(key, comp); }
343
+
344
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
345
+
346
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const key_type &,const key_type &,bool,bool)
987
347
  std::pair<iterator,iterator> bounded_range
988
- (const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed)
989
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
990
-
991
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
992
- //! ordering compatible with the strict weak ordering used to create the
993
- //! the tree.
994
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
995
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
996
- //!
997
- //! <b>Effects</b>: Returns an a pair with the following criteria:
998
- //!
999
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
1000
- //!
1001
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
1002
- //!
1003
- //! <b>Complexity</b>: Logarithmic.
1004
- //!
1005
- //! <b>Throws</b>: If "comp" throws.
1006
- //!
1007
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1008
- //! and lower_bound for lower_key and upper_key.
1009
- template<class KeyType, class KeyValueCompare>
348
+ (const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed);
349
+
350
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)
351
+ template<class KeyType, class KeyTypeKeyCompare>
1010
352
  std::pair<iterator,iterator> bounded_range
1011
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed)
1012
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
1013
-
1014
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
1015
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
1016
- //!
1017
- //! <b>Effects</b>: Returns an a pair with the following criteria:
1018
- //!
1019
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
1020
- //!
1021
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
1022
- //!
1023
- //! <b>Complexity</b>: Logarithmic.
1024
- //!
1025
- //! <b>Throws</b>: If the predicate throws.
1026
- //!
1027
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1028
- //! and lower_bound for lower_value and upper_value.
1029
- std::pair<const_iterator, const_iterator>
1030
- bounded_range(const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed) const
1031
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
1032
-
1033
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
1034
- //! ordering compatible with the strict weak ordering used to create the
1035
- //! the tree.
1036
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
1037
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
1038
- //!
1039
- //! <b>Effects</b>: Returns an a pair with the following criteria:
1040
- //!
1041
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
1042
- //!
1043
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
1044
- //!
1045
- //! <b>Complexity</b>: Logarithmic.
1046
- //!
1047
- //! <b>Throws</b>: If "comp" throws.
1048
- //!
1049
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1050
- //! and lower_bound for lower_key and upper_key.
1051
- template<class KeyType, class KeyValueCompare>
353
+ (const KeyType& lower_key, const KeyType& upper_key, KeyTypeKeyCompare comp, bool left_closed, bool right_closed);
354
+
355
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const key_type &,const key_type &,bool,bool)const
1052
356
  std::pair<const_iterator, const_iterator>
1053
- bounded_range
1054
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed) const
1055
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
1056
-
1057
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_set of
1058
- //! appropriate type. Otherwise the behavior is undefined.
1059
- //!
1060
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the avl_set
1061
- //! that points to the value
1062
- //!
1063
- //! <b>Complexity</b>: Constant.
1064
- //!
1065
- //! <b>Throws</b>: Nothing.
1066
- //!
1067
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1068
- //! is stateless.
1069
- static iterator s_iterator_to(reference value)
1070
- { return tree_type::s_iterator_to(value); }
1071
-
1072
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_set of
1073
- //! appropriate type. Otherwise the behavior is undefined.
1074
- //!
1075
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
1076
- //! avl_set that points to the value
1077
- //!
1078
- //! <b>Complexity</b>: Constant.
1079
- //!
1080
- //! <b>Throws</b>: Nothing.
1081
- //!
1082
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1083
- //! is stateless.
1084
- static const_iterator s_iterator_to(const_reference value)
1085
- { return tree_type::s_iterator_to(value); }
1086
-
1087
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_set of
1088
- //! appropriate type. Otherwise the behavior is undefined.
1089
- //!
1090
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the avl_set
1091
- //! that points to the value
1092
- //!
1093
- //! <b>Complexity</b>: Constant.
1094
- //!
1095
- //! <b>Throws</b>: Nothing.
1096
- iterator iterator_to(reference value)
1097
- { return tree_.iterator_to(value); }
1098
-
1099
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_set of
1100
- //! appropriate type. Otherwise the behavior is undefined.
1101
- //!
1102
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
1103
- //! avl_set that points to the value
1104
- //!
1105
- //! <b>Complexity</b>: Constant.
1106
- //!
1107
- //! <b>Throws</b>: Nothing.
1108
- const_iterator iterator_to(const_reference value) const
1109
- { return tree_.iterator_to(value); }
1110
-
1111
- //! <b>Requires</b>: value shall not be in a avl_set/avl_multiset.
1112
- //!
1113
- //! <b>Effects</b>: init_node puts the hook of a value in a well-known default
1114
- //! state.
1115
- //!
1116
- //! <b>Throws</b>: Nothing.
1117
- //!
1118
- //! <b>Complexity</b>: Constant time.
1119
- //!
1120
- //! <b>Note</b>: This function puts the hook in the well-known default state
1121
- //! used by auto_unlink and safe hooks.
1122
- static void init_node(reference value)
1123
- { tree_type::init_node(value); }
1124
-
1125
- //! <b>Effects</b>: Unlinks the leftmost node from the tree.
1126
- //!
1127
- //! <b>Complexity</b>: Average complexity is constant time.
1128
- //!
1129
- //! <b>Throws</b>: Nothing.
1130
- //!
1131
- //! <b>Notes</b>: This function breaks the tree and the tree can
1132
- //! only be used for more unlink_leftmost_without_rebalance calls.
1133
- //! This function is normally used to achieve a step by step
1134
- //! controlled destruction of the tree.
1135
- pointer unlink_leftmost_without_rebalance()
1136
- { return tree_.unlink_leftmost_without_rebalance(); }
1137
-
1138
- //! <b>Requires</b>: replace_this must be a valid iterator of *this
1139
- //! and with_this must not be inserted in any tree.
1140
- //!
1141
- //! <b>Effects</b>: Replaces replace_this in its position in the
1142
- //! tree with with_this. The tree does not need to be rebalanced.
1143
- //!
1144
- //! <b>Complexity</b>: Constant.
1145
- //!
1146
- //! <b>Throws</b>: Nothing.
1147
- //!
1148
- //! <b>Note</b>: This function will break container ordering invariants if
1149
- //! with_this is not equivalent to *replace_this according to the
1150
- //! ordering rules. This function is faster than erasing and inserting
1151
- //! the node, since no rebalancing or comparison is needed.
1152
- void replace_node(iterator replace_this, reference with_this)
1153
- { tree_.replace_node(replace_this, with_this); }
357
+ bounded_range(const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed) const;
1154
358
 
1155
- /// @cond
1156
- friend bool operator==(const avl_set_impl &x, const avl_set_impl &y)
1157
- { return x.tree_ == y.tree_; }
359
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)const
360
+ template<class KeyType, class KeyTypeKeyCompare>
361
+ std::pair<const_iterator, const_iterator> bounded_range
362
+ (const KeyType& lower_key, const KeyType& upper_key, KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;
1158
363
 
1159
- friend bool operator<(const avl_set_impl &x, const avl_set_impl &y)
1160
- { return x.tree_ < y.tree_; }
1161
- /// @endcond
364
+ //! @copydoc ::boost::intrusive::avltree::s_iterator_to(reference)
365
+ static iterator s_iterator_to(reference value);
366
+
367
+ //! @copydoc ::boost::intrusive::avltree::s_iterator_to(const_reference)
368
+ static const_iterator s_iterator_to(const_reference value);
369
+
370
+ //! @copydoc ::boost::intrusive::avltree::iterator_to(reference)
371
+ iterator iterator_to(reference value);
372
+
373
+ //! @copydoc ::boost::intrusive::avltree::iterator_to(const_reference)const
374
+ const_iterator iterator_to(const_reference value) const;
375
+
376
+ //! @copydoc ::boost::intrusive::avltree::init_node(reference)
377
+ static void init_node(reference value);
378
+
379
+ //! @copydoc ::boost::intrusive::avltree::unlink_leftmost_without_rebalance
380
+ pointer unlink_leftmost_without_rebalance();
381
+
382
+ //! @copydoc ::boost::intrusive::avltree::replace_node
383
+ void replace_node(iterator replace_this, reference with_this);
384
+
385
+ //! @copydoc ::boost::intrusive::avltree::remove_node
386
+ void remove_node(reference value);
387
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1162
388
  };
1163
389
 
1164
390
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
391
+
1165
392
  template<class T, class ...Options>
1166
- #else
1167
- template<class Config>
1168
- #endif
1169
- inline bool operator!=
1170
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1171
- (const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y)
1172
- #else
1173
- (const avl_set_impl<Config> &x, const avl_set_impl<Config> &y)
1174
- #endif
1175
- { return !(x == y); }
393
+ bool operator!= (const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y);
1176
394
 
1177
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1178
395
  template<class T, class ...Options>
1179
- #else
1180
- template<class Config>
1181
- #endif
1182
- inline bool operator>
1183
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1184
- (const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y)
1185
- #else
1186
- (const avl_set_impl<Config> &x, const avl_set_impl<Config> &y)
1187
- #endif
1188
- { return y < x; }
396
+ bool operator>(const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y);
1189
397
 
1190
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1191
398
  template<class T, class ...Options>
1192
- #else
1193
- template<class Config>
1194
- #endif
1195
- inline bool operator<=
1196
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1197
- (const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y)
1198
- #else
1199
- (const avl_set_impl<Config> &x, const avl_set_impl<Config> &y)
1200
- #endif
1201
- { return !(y < x); }
399
+ bool operator<=(const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y);
1202
400
 
1203
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1204
401
  template<class T, class ...Options>
1205
- #else
1206
- template<class Config>
1207
- #endif
1208
- inline bool operator>=
1209
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1210
- (const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y)
1211
- #else
1212
- (const avl_set_impl<Config> &x, const avl_set_impl<Config> &y)
1213
- #endif
1214
- { return !(x < y); }
402
+ bool operator>=(const avl_set_impl<T, Options...> &x, const avl_set_impl<T, Options...> &y);
1215
403
 
1216
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1217
404
  template<class T, class ...Options>
1218
- #else
1219
- template<class Config>
1220
- #endif
1221
- inline void swap
1222
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1223
- (avl_set_impl<T, Options...> &x, avl_set_impl<T, Options...> &y)
1224
- #else
1225
- (avl_set_impl<Config> &x, avl_set_impl<Config> &y)
1226
- #endif
1227
- { x.swap(y); }
405
+ void swap(avl_set_impl<T, Options...> &x, avl_set_impl<T, Options...> &y);
406
+
407
+ #endif //#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1228
408
 
1229
- //! Helper metafunction to define a \c avl_set that yields to the same type when the
409
+ //! Helper metafunction to define a \c set that yields to the same type when the
1230
410
  //! same options (either explicitly or implicitly) are used.
1231
411
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1232
412
  template<class T, class ...Options>
1233
413
  #else
1234
- template<class T, class O1 = none, class O2 = none
1235
- , class O3 = none, class O4 = none>
414
+ template<class T, class O1 = void, class O2 = void
415
+ , class O3 = void, class O4 = void
416
+ , class O5 = void, class O6 = void>
1236
417
  #endif
1237
418
  struct make_avl_set
1238
419
  {
1239
420
  /// @cond
1240
- typedef avl_set_impl
1241
- < typename make_avltree_opt
421
+ typedef typename pack_options
422
+ < avltree_defaults,
1242
423
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1243
- <T, O1, O2, O3, O4>
424
+ O1, O2, O3, O4, O5, O6
1244
425
  #else
1245
- <T, Options...>
426
+ Options...
1246
427
  #endif
1247
- ::type
1248
- > implementation_defined;
428
+ >::type packed_options;
429
+
430
+ typedef typename detail::get_value_traits
431
+ <T, typename packed_options::proto_value_traits>::type value_traits;
432
+
433
+ typedef avl_set_impl
434
+ < value_traits
435
+ , typename packed_options::key_of_value
436
+ , typename packed_options::compare
437
+ , typename packed_options::size_type
438
+ , packed_options::constant_time_size
439
+ , typename packed_options::header_holder_type
440
+ > implementation_defined;
1249
441
  /// @endcond
1250
442
  typedef implementation_defined type;
1251
443
  };
1252
444
 
1253
445
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1254
-
1255
446
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1256
- template<class T, class O1, class O2, class O3, class O4>
447
+ template<class T, class O1, class O2, class O3, class O4, class O5, class O6>
1257
448
  #else
1258
449
  template<class T, class ...Options>
1259
450
  #endif
1260
451
  class avl_set
1261
- : public make_avl_set
1262
- #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1263
- <T, O1, O2, O3, O4>
1264
- #else
1265
- <T, Options...>
1266
- #endif
1267
- ::type
452
+ : public make_avl_set<T,
453
+ #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
454
+ O1, O2, O3, O4, O5, O6
455
+ #else
456
+ Options...
457
+ #endif
458
+ >::type
1268
459
  {
1269
460
  typedef typename make_avl_set
461
+ <T,
1270
462
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1271
- <T, O1, O2, O3, O4>
463
+ O1, O2, O3, O4, O5, O6
1272
464
  #else
1273
- <T, Options...>
465
+ Options...
1274
466
  #endif
1275
- ::type Base;
467
+ >::type Base;
1276
468
 
1277
469
  BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_set)
1278
470
  public:
1279
- typedef typename Base::value_compare value_compare;
471
+ typedef typename Base::key_compare key_compare;
1280
472
  typedef typename Base::value_traits value_traits;
1281
473
  typedef typename Base::iterator iterator;
1282
474
  typedef typename Base::const_iterator const_iterator;
@@ -1284,24 +476,32 @@ class avl_set
1284
476
  //Assert if passed value traits are compatible with the type
1285
477
  BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
1286
478
 
1287
- avl_set( const value_compare &cmp = value_compare()
1288
- , const value_traits &v_traits = value_traits())
479
+ explicit avl_set( const key_compare &cmp = key_compare()
480
+ , const value_traits &v_traits = value_traits())
1289
481
  : Base(cmp, v_traits)
1290
482
  {}
1291
483
 
1292
484
  template<class Iterator>
1293
485
  avl_set( Iterator b, Iterator e
1294
- , const value_compare &cmp = value_compare()
486
+ , const key_compare &cmp = key_compare()
1295
487
  , const value_traits &v_traits = value_traits())
1296
488
  : Base(b, e, cmp, v_traits)
1297
489
  {}
1298
490
 
1299
491
  avl_set(BOOST_RV_REF(avl_set) x)
1300
- : Base(::boost::move(static_cast<Base&>(x)))
492
+ : Base(BOOST_MOVE_BASE(Base, x))
1301
493
  {}
1302
494
 
1303
495
  avl_set& operator=(BOOST_RV_REF(avl_set) x)
1304
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
496
+ { return static_cast<avl_set &>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
497
+
498
+ template <class Cloner, class Disposer>
499
+ void clone_from(const avl_set &src, Cloner cloner, Disposer disposer)
500
+ { Base::clone_from(src, cloner, disposer); }
501
+
502
+ template <class Cloner, class Disposer>
503
+ void clone_from(BOOST_RV_REF(avl_set) src, Cloner cloner, Disposer disposer)
504
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
1305
505
 
1306
506
  static avl_set &container_from_end_iterator(iterator end_iterator)
1307
507
  { return static_cast<avl_set &>(Base::container_from_end_iterator(end_iterator)); }
@@ -1309,17 +509,17 @@ class avl_set
1309
509
  static const avl_set &container_from_end_iterator(const_iterator end_iterator)
1310
510
  { return static_cast<const avl_set &>(Base::container_from_end_iterator(end_iterator)); }
1311
511
 
1312
- static avl_set &container_from_iterator(iterator end_iterator)
1313
- { return static_cast<avl_set &>(Base::container_from_iterator(end_iterator)); }
512
+ static avl_set &container_from_iterator(iterator it)
513
+ { return static_cast<avl_set &>(Base::container_from_iterator(it)); }
1314
514
 
1315
- static const avl_set &container_from_iterator(const_iterator end_iterator)
1316
- { return static_cast<const avl_set &>(Base::container_from_iterator(end_iterator)); }
515
+ static const avl_set &container_from_iterator(const_iterator it)
516
+ { return static_cast<const avl_set &>(Base::container_from_iterator(it)); }
1317
517
  };
1318
518
 
1319
519
  #endif
1320
520
 
1321
521
  //! The class template avl_multiset is an intrusive container, that mimics most of
1322
- //! the interface of std::avl_multiset as described in the C++ standard.
522
+ //! the interface of std::_multiset as described in the C++ standard.
1323
523
  //!
1324
524
  //! The template parameter \c T is the type to be managed by the container.
1325
525
  //! The user can specify additional options and if no options are provided
@@ -1332,20 +532,24 @@ class avl_set
1332
532
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1333
533
  template<class T, class ...Options>
1334
534
  #else
1335
- template<class Config>
535
+ template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
1336
536
  #endif
1337
537
  class avl_multiset_impl
538
+ #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
539
+ : public bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, HeaderHolder>
540
+ #endif
1338
541
  {
1339
542
  /// @cond
1340
- typedef avltree_impl<Config> tree_type;
543
+ typedef bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, HeaderHolder> tree_type;
1341
544
 
1342
- //Movable
1343
545
  BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_multiset_impl)
1344
546
  typedef tree_type implementation_defined;
1345
547
  /// @endcond
1346
548
 
1347
549
  public:
1348
550
  typedef typename implementation_defined::value_type value_type;
551
+ typedef typename implementation_defined::key_type key_type;
552
+ typedef typename implementation_defined::key_of_value key_of_value;
1349
553
  typedef typename implementation_defined::value_traits value_traits;
1350
554
  typedef typename implementation_defined::pointer pointer;
1351
555
  typedef typename implementation_defined::const_pointer const_pointer;
@@ -1366,1088 +570,333 @@ class avl_multiset_impl
1366
570
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
1367
571
  typedef typename implementation_defined::node_algorithms node_algorithms;
1368
572
 
1369
- static const bool constant_time_size = Config::constant_time_size;
1370
-
1371
- /// @cond
1372
- private:
1373
- tree_type tree_;
1374
- /// @endcond
573
+ static const bool constant_time_size = tree_type::constant_time_size;
1375
574
 
1376
575
  public:
1377
- //! <b>Effects</b>: Constructs an empty avl_multiset.
1378
- //!
1379
- //! <b>Complexity</b>: Constant.
1380
- //!
1381
- //! <b>Throws</b>: If value_traits::node_traits::node
1382
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1383
- //! or the copy constructor/operator() of the value_compare object throws.
1384
- explicit avl_multiset_impl( const value_compare &cmp = value_compare()
1385
- , const value_traits &v_traits = value_traits())
1386
- : tree_(cmp, v_traits)
576
+ //! @copydoc ::boost::intrusive::avltree::avltree(const key_compare &,const value_traits &)
577
+ explicit avl_multiset_impl( const key_compare &cmp = key_compare()
578
+ , const value_traits &v_traits = value_traits())
579
+ : tree_type(cmp, v_traits)
1387
580
  {}
1388
581
 
1389
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
1390
- //! cmp must be a comparison function that induces a strict weak ordering.
1391
- //!
1392
- //! <b>Effects</b>: Constructs an empty avl_multiset and inserts elements from
1393
- //! [b, e).
1394
- //!
1395
- //! <b>Complexity</b>: Linear in N if [b, e) is already sorted using
1396
- //! comp and otherwise N * log N, where N is the distance between first and last
1397
- //!
1398
- //! <b>Throws</b>: If value_traits::node_traits::node
1399
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1400
- //! or the copy constructor/operator() of the value_compare object throws.
582
+ //! @copydoc ::boost::intrusive::avltree::avltree(bool,Iterator,Iterator,const key_compare &,const value_traits &)
1401
583
  template<class Iterator>
1402
584
  avl_multiset_impl( Iterator b, Iterator e
1403
- , const value_compare &cmp = value_compare()
585
+ , const key_compare &cmp = key_compare()
1404
586
  , const value_traits &v_traits = value_traits())
1405
- : tree_(false, b, e, cmp, v_traits)
587
+ : tree_type(false, b, e, cmp, v_traits)
1406
588
  {}
1407
589
 
1408
- //! <b>Effects</b>: to-do
1409
- //!
590
+ //! @copydoc ::boost::intrusive::avltree::avltree(avltree &&)
1410
591
  avl_multiset_impl(BOOST_RV_REF(avl_multiset_impl) x)
1411
- : tree_(::boost::move(x.tree_))
592
+ : tree_type(BOOST_MOVE_BASE(tree_type, x))
1412
593
  {}
1413
594
 
1414
- //! <b>Effects</b>: to-do
1415
- //!
595
+ //! @copydoc ::boost::intrusive::avltree::operator=(avltree &&)
1416
596
  avl_multiset_impl& operator=(BOOST_RV_REF(avl_multiset_impl) x)
1417
- { tree_ = ::boost::move(x.tree_); return *this; }
1418
-
1419
- //! <b>Effects</b>: Detaches all elements from this. The objects in the avl_multiset
1420
- //! are not deleted (i.e. no destructors are called).
1421
- //!
1422
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1423
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
1424
- //!
1425
- //! <b>Throws</b>: Nothing.
1426
- ~avl_multiset_impl()
1427
- {}
597
+ { return static_cast<avl_multiset_impl&>(tree_type::operator=(BOOST_MOVE_BASE(tree_type, x))); }
598
+
599
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
600
+ //! @copydoc ::boost::intrusive::avltree::~avltree()
601
+ ~avl_multiset_impl();
602
+
603
+ //! @copydoc ::boost::intrusive::avltree::begin()
604
+ iterator begin();
605
+
606
+ //! @copydoc ::boost::intrusive::avltree::begin()const
607
+ const_iterator begin() const;
608
+
609
+ //! @copydoc ::boost::intrusive::avltree::cbegin()const
610
+ const_iterator cbegin() const;
611
+
612
+ //! @copydoc ::boost::intrusive::avltree::end()
613
+ iterator end();
614
+
615
+ //! @copydoc ::boost::intrusive::avltree::end()const
616
+ const_iterator end() const;
617
+
618
+ //! @copydoc ::boost::intrusive::avltree::cend()const
619
+ const_iterator cend() const;
1428
620
 
1429
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the avl_multiset.
1430
- //!
1431
- //! <b>Complexity</b>: Constant.
1432
- //!
1433
- //! <b>Throws</b>: Nothing.
1434
- iterator begin()
1435
- { return tree_.begin(); }
1436
-
1437
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the avl_multiset.
1438
- //!
1439
- //! <b>Complexity</b>: Constant.
1440
- //!
1441
- //! <b>Throws</b>: Nothing.
1442
- const_iterator begin() const
1443
- { return tree_.begin(); }
1444
-
1445
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the avl_multiset.
1446
- //!
1447
- //! <b>Complexity</b>: Constant.
1448
- //!
1449
- //! <b>Throws</b>: Nothing.
1450
- const_iterator cbegin() const
1451
- { return tree_.cbegin(); }
1452
-
1453
- //! <b>Effects</b>: Returns an iterator pointing to the end of the avl_multiset.
1454
- //!
1455
- //! <b>Complexity</b>: Constant.
1456
- //!
1457
- //! <b>Throws</b>: Nothing.
1458
- iterator end()
1459
- { return tree_.end(); }
1460
-
1461
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the avl_multiset.
1462
- //!
1463
- //! <b>Complexity</b>: Constant.
1464
- //!
1465
- //! <b>Throws</b>: Nothing.
1466
- const_iterator end() const
1467
- { return tree_.end(); }
1468
-
1469
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the avl_multiset.
1470
- //!
1471
- //! <b>Complexity</b>: Constant.
1472
- //!
1473
- //! <b>Throws</b>: Nothing.
1474
- const_iterator cend() const
1475
- { return tree_.cend(); }
1476
-
1477
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning of the
1478
- //! reversed avl_multiset.
1479
- //!
1480
- //! <b>Complexity</b>: Constant.
1481
- //!
1482
- //! <b>Throws</b>: Nothing.
1483
- reverse_iterator rbegin()
1484
- { return tree_.rbegin(); }
1485
-
1486
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1487
- //! of the reversed avl_multiset.
1488
- //!
1489
- //! <b>Complexity</b>: Constant.
1490
- //!
1491
- //! <b>Throws</b>: Nothing.
1492
- const_reverse_iterator rbegin() const
1493
- { return tree_.rbegin(); }
1494
-
1495
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1496
- //! of the reversed avl_multiset.
1497
- //!
1498
- //! <b>Complexity</b>: Constant.
1499
- //!
1500
- //! <b>Throws</b>: Nothing.
1501
- const_reverse_iterator crbegin() const
1502
- { return tree_.crbegin(); }
1503
-
1504
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
1505
- //! of the reversed avl_multiset.
1506
- //!
1507
- //! <b>Complexity</b>: Constant.
1508
- //!
1509
- //! <b>Throws</b>: Nothing.
1510
- reverse_iterator rend()
1511
- { return tree_.rend(); }
1512
-
1513
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1514
- //! of the reversed avl_multiset.
1515
- //!
1516
- //! <b>Complexity</b>: Constant.
1517
- //!
1518
- //! <b>Throws</b>: Nothing.
1519
- const_reverse_iterator rend() const
1520
- { return tree_.rend(); }
1521
-
1522
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1523
- //! of the reversed avl_multiset.
1524
- //!
1525
- //! <b>Complexity</b>: Constant.
1526
- //!
1527
- //! <b>Throws</b>: Nothing.
1528
- const_reverse_iterator crend() const
1529
- { return tree_.crend(); }
1530
-
1531
- //! <b>Precondition</b>: end_iterator must be a valid end iterator
1532
- //! of avl_multiset.
1533
- //!
1534
- //! <b>Effects</b>: Returns a const reference to the avl_multiset associated to the end iterator
1535
- //!
1536
- //! <b>Throws</b>: Nothing.
1537
- //!
1538
- //! <b>Complexity</b>: Constant.
1539
- static avl_multiset_impl &container_from_end_iterator(iterator end_iterator)
1540
- {
1541
- return *detail::parent_from_member<avl_multiset_impl, tree_type>
1542
- ( &tree_type::container_from_end_iterator(end_iterator)
1543
- , &avl_multiset_impl::tree_);
1544
- }
1545
-
1546
- //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
1547
- //! of avl_multiset.
1548
- //!
1549
- //! <b>Effects</b>: Returns a const reference to the avl_multiset associated to the end iterator
1550
- //!
1551
- //! <b>Throws</b>: Nothing.
1552
- //!
1553
- //! <b>Complexity</b>: Constant.
1554
- static const avl_multiset_impl &container_from_end_iterator(const_iterator end_iterator)
1555
- {
1556
- return *detail::parent_from_member<avl_multiset_impl, tree_type>
1557
- ( &tree_type::container_from_end_iterator(end_iterator)
1558
- , &avl_multiset_impl::tree_);
1559
- }
1560
-
1561
- //! <b>Precondition</b>: it must be a valid iterator of multiset.
1562
- //!
1563
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the iterator
1564
- //!
1565
- //! <b>Throws</b>: Nothing.
1566
- //!
1567
- //! <b>Complexity</b>: Logarithmic.
1568
- static avl_multiset_impl &container_from_iterator(iterator it)
1569
- {
1570
- return *detail::parent_from_member<avl_multiset_impl, tree_type>
1571
- ( &tree_type::container_from_iterator(it)
1572
- , &avl_multiset_impl::tree_);
1573
- }
1574
-
1575
- //! <b>Precondition</b>: it must be a valid const_iterator of multiset.
1576
- //!
1577
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the iterator
1578
- //!
1579
- //! <b>Throws</b>: Nothing.
1580
- //!
1581
- //! <b>Complexity</b>: Logarithmic.
1582
- static const avl_multiset_impl &container_from_iterator(const_iterator it)
1583
- {
1584
- return *detail::parent_from_member<avl_multiset_impl, tree_type>
1585
- ( &tree_type::container_from_iterator(it)
1586
- , &avl_multiset_impl::tree_);
1587
- }
1588
-
1589
- //! <b>Effects</b>: Returns the key_compare object used by the avl_multiset.
1590
- //!
1591
- //! <b>Complexity</b>: Constant.
1592
- //!
1593
- //! <b>Throws</b>: If key_compare copy-constructor throws.
1594
- key_compare key_comp() const
1595
- { return tree_.value_comp(); }
1596
-
1597
- //! <b>Effects</b>: Returns the value_compare object used by the avl_multiset.
1598
- //!
1599
- //! <b>Complexity</b>: Constant.
1600
- //!
1601
- //! <b>Throws</b>: If value_compare copy-constructor throws.
1602
- value_compare value_comp() const
1603
- { return tree_.value_comp(); }
1604
-
1605
- //! <b>Effects</b>: Returns true is the container is empty.
1606
- //!
1607
- //! <b>Complexity</b>: Constant.
1608
- //!
1609
- //! <b>Throws</b>: Nothing.
1610
- bool empty() const
1611
- { return tree_.empty(); }
1612
-
1613
- //! <b>Effects</b>: Returns the number of elements stored in the avl_multiset.
1614
- //!
1615
- //! <b>Complexity</b>: Linear to elements contained in *this if,
1616
- //! constant-time size option is enabled. Constant-time otherwise.
1617
- //!
1618
- //! <b>Throws</b>: Nothing.
1619
- size_type size() const
1620
- { return tree_.size(); }
1621
-
1622
- //! <b>Effects</b>: Swaps the contents of two avl_multisets.
1623
- //!
1624
- //! <b>Complexity</b>: Constant.
1625
- //!
1626
- //! <b>Throws</b>: If the swap() call for the comparison functor
1627
- //! found using ADL throws. Strong guarantee.
1628
- void swap(avl_multiset_impl& other)
1629
- { tree_.swap(other.tree_); }
1630
-
1631
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1632
- //! Cloner should yield to nodes equivalent to the original nodes.
1633
- //!
1634
- //! <b>Effects</b>: Erases all the elements from *this
1635
- //! calling Disposer::operator()(pointer), clones all the
1636
- //! elements from src calling Cloner::operator()(const_reference )
1637
- //! and inserts them on *this. Copies the predicate from the source container.
1638
- //!
1639
- //! If cloner throws, all cloned elements are unlinked and disposed
1640
- //! calling Disposer::operator()(pointer).
1641
- //!
1642
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
1643
- //!
1644
- //! <b>Throws</b>: If cloner throws or predicate copy assignment throws. Basic guarantee.
621
+ //! @copydoc ::boost::intrusive::avltree::rbegin()
622
+ reverse_iterator rbegin();
623
+
624
+ //! @copydoc ::boost::intrusive::avltree::rbegin()const
625
+ const_reverse_iterator rbegin() const;
626
+
627
+ //! @copydoc ::boost::intrusive::avltree::crbegin()const
628
+ const_reverse_iterator crbegin() const;
629
+
630
+ //! @copydoc ::boost::intrusive::avltree::rend()
631
+ reverse_iterator rend();
632
+
633
+ //! @copydoc ::boost::intrusive::avltree::rend()const
634
+ const_reverse_iterator rend() const;
635
+
636
+ //! @copydoc ::boost::intrusive::avltree::crend()const
637
+ const_reverse_iterator crend() const;
638
+
639
+ //! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(iterator)
640
+ static avl_multiset_impl &container_from_end_iterator(iterator end_iterator);
641
+
642
+ //! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(const_iterator)
643
+ static const avl_multiset_impl &container_from_end_iterator(const_iterator end_iterator);
644
+
645
+ //! @copydoc ::boost::intrusive::avltree::container_from_iterator(iterator)
646
+ static avl_multiset_impl &container_from_iterator(iterator it);
647
+
648
+ //! @copydoc ::boost::intrusive::avltree::container_from_iterator(const_iterator)
649
+ static const avl_multiset_impl &container_from_iterator(const_iterator it);
650
+
651
+ //! @copydoc ::boost::intrusive::avltree::key_comp()const
652
+ key_compare key_comp() const;
653
+
654
+ //! @copydoc ::boost::intrusive::avltree::value_comp()const
655
+ value_compare value_comp() const;
656
+
657
+ //! @copydoc ::boost::intrusive::avltree::empty()const
658
+ bool empty() const;
659
+
660
+ //! @copydoc ::boost::intrusive::avltree::size()const
661
+ size_type size() const;
662
+
663
+ //! @copydoc ::boost::intrusive::avltree::swap
664
+ void swap(avl_multiset_impl& other);
665
+
666
+ //! @copydoc ::boost::intrusive::avltree::clone_from(const avltree&,Cloner,Disposer)
1645
667
  template <class Cloner, class Disposer>
1646
- void clone_from(const avl_multiset_impl &src, Cloner cloner, Disposer disposer)
1647
- { tree_.clone_from(src.tree_, cloner, disposer); }
1648
-
1649
- //! <b>Requires</b>: value must be an lvalue
1650
- //!
1651
- //! <b>Effects</b>: Inserts value into the avl_multiset.
1652
- //!
1653
- //! <b>Returns</b>: An iterator that points to the position where the new
1654
- //! element was inserted.
1655
- //!
1656
- //! <b>Complexity</b>: Average complexity for insert element is at
1657
- //! most logarithmic.
1658
- //!
1659
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
1660
- //!
1661
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1662
- //! No copy-constructors are called.
668
+ void clone_from(const avl_multiset_impl &src, Cloner cloner, Disposer disposer);
669
+
670
+ #else
671
+
672
+ using tree_type::clone_from;
673
+
674
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
675
+
676
+ //! @copydoc ::boost::intrusive::avltree::clone_from(avltree&&,Cloner,Disposer)
677
+ template <class Cloner, class Disposer>
678
+ void clone_from(BOOST_RV_REF(avl_multiset_impl) src, Cloner cloner, Disposer disposer)
679
+ { tree_type::clone_from(BOOST_MOVE_BASE(tree_type, src), cloner, disposer); }
680
+
681
+ //! @copydoc ::boost::intrusive::avltree::insert_equal(reference)
1663
682
  iterator insert(reference value)
1664
- { return tree_.insert_equal(value); }
1665
-
1666
- //! <b>Requires</b>: value must be an lvalue
1667
- //!
1668
- //! <b>Effects</b>: Inserts x into the avl_multiset, using pos as a hint to
1669
- //! where it will be inserted.
1670
- //!
1671
- //! <b>Returns</b>: An iterator that points to the position where the new
1672
- //! element was inserted.
1673
- //!
1674
- //! <b>Complexity</b>: Logarithmic in general, but it is amortized
1675
- //! constant time if t is inserted immediately before hint.
1676
- //!
1677
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
1678
- //!
1679
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1680
- //! No copy-constructors are called.
683
+ { return tree_type::insert_equal(value); }
684
+
685
+ //! @copydoc ::boost::intrusive::avltree::insert_equal(const_iterator,reference)
1681
686
  iterator insert(const_iterator hint, reference value)
1682
- { return tree_.insert_equal(hint, value); }
1683
-
1684
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
1685
- //! of type value_type.
1686
- //!
1687
- //! <b>Effects</b>: Inserts a range into the avl_multiset.
1688
- //!
1689
- //! <b>Returns</b>: An iterator that points to the position where the new
1690
- //! element was inserted.
1691
- //!
1692
- //! <b>Complexity</b>: Insert range is in general O(N * log(N)), where N is the
1693
- //! size of the range. However, it is linear in N if the range is already sorted
1694
- //! by value_comp().
1695
- //!
1696
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1697
- //!
1698
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1699
- //! No copy-constructors are called.
687
+ { return tree_type::insert_equal(hint, value); }
688
+
689
+ //! @copydoc ::boost::intrusive::avltree::insert_equal(Iterator,Iterator)
1700
690
  template<class Iterator>
1701
691
  void insert(Iterator b, Iterator e)
1702
- { tree_.insert_equal(b, e); }
1703
-
1704
- //! <b>Requires</b>: value must be an lvalue, "pos" must be
1705
- //! a valid iterator (or end) and must be the succesor of value
1706
- //! once inserted according to the predicate. "value" must not be equal to any
1707
- //! inserted key according to the predicate.
1708
- //!
1709
- //! <b>Effects</b>: Inserts x into the tree before "pos".
1710
- //!
1711
- //! <b>Complexity</b>: Constant time.
1712
- //!
1713
- //! <b>Throws</b>: Nothing.
1714
- //!
1715
- //! <b>Note</b>: This function does not check preconditions so if "pos" is not
1716
- //! the successor of "value" or "value" is not unique tree ordering and uniqueness
1717
- //! invariants will be broken respectively.
1718
- //! This is a low-level function to be used only for performance reasons
1719
- //! by advanced users.
1720
- iterator insert_before(const_iterator pos, reference value)
1721
- { return tree_.insert_before(pos, value); }
1722
-
1723
- //! <b>Requires</b>: value must be an lvalue, and it must be greater than
1724
- //! any inserted key according to the predicate.
1725
- //!
1726
- //! <b>Effects</b>: Inserts x into the tree in the last position.
1727
- //!
1728
- //! <b>Complexity</b>: Constant time.
1729
- //!
1730
- //! <b>Throws</b>: Nothing.
1731
- //!
1732
- //! <b>Note</b>: This function does not check preconditions so if value is
1733
- //! less than or equal to the greatest inserted key tree ordering invariant will be broken.
1734
- //! This function is slightly more efficient than using "insert_before".
1735
- //! This is a low-level function to be used only for performance reasons
1736
- //! by advanced users.
1737
- void push_back(reference value)
1738
- { tree_.push_back(value); }
1739
-
1740
- //! <b>Requires</b>: value must be an lvalue, and it must be less
1741
- //! than any inserted key according to the predicate.
1742
- //!
1743
- //! <b>Effects</b>: Inserts x into the tree in the first position.
1744
- //!
1745
- //! <b>Complexity</b>: Constant time.
1746
- //!
1747
- //! <b>Throws</b>: Nothing.
1748
- //!
1749
- //! <b>Note</b>: This function does not check preconditions so if value is
1750
- //! greater than or equal to the the mimum inserted key tree ordering or uniqueness
1751
- //! invariants will be broken.
1752
- //! This function is slightly more efficient than using "insert_before".
1753
- //! This is a low-level function to be used only for performance reasons
1754
- //! by advanced users.
1755
- void push_front(reference value)
1756
- { tree_.push_front(value); }
1757
-
1758
- //! <b>Effects</b>: Erases the element pointed to by pos.
1759
- //!
1760
- //! <b>Complexity</b>: Average complexity is constant time.
1761
- //!
1762
- //! <b>Returns</b>: An iterator to the element after the erased element.
1763
- //!
1764
- //! <b>Throws</b>: Nothing.
1765
- //!
1766
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1767
- //! to the erased elements. No destructors are called.
1768
- iterator erase(const_iterator i)
1769
- { return tree_.erase(i); }
1770
-
1771
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1772
- //!
1773
- //! <b>Returns</b>: An iterator to the element after the erased elements.
1774
- //!
1775
- //! <b>Complexity</b>: Average complexity for erase range is at most
1776
- //! O(log(size() + N)), where N is the number of elements in the range.
1777
- //!
1778
- //! <b>Throws</b>: Nothing.
1779
- //!
1780
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1781
- //! to the erased elements. No destructors are called.
1782
- iterator erase(const_iterator b, const_iterator e)
1783
- { return tree_.erase(b, e); }
1784
-
1785
- //! <b>Effects</b>: Erases all the elements with the given value.
1786
- //!
1787
- //! <b>Returns</b>: The number of erased elements.
1788
- //!
1789
- //! <b>Complexity</b>: O(log(size() + this->count(value)).
1790
- //!
1791
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1792
- //!
1793
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1794
- //! to the erased elements. No destructors are called.
1795
- size_type erase(const_reference value)
1796
- { return tree_.erase(value); }
1797
-
1798
- //! <b>Effects</b>: Erases all the elements that compare equal with
1799
- //! the given key and the given comparison functor.
1800
- //!
1801
- //! <b>Returns</b>: The number of erased elements.
1802
- //!
1803
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
1804
- //!
1805
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
1806
- //!
1807
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1808
- //! to the erased elements. No destructors are called.
1809
- template<class KeyType, class KeyValueCompare>
1810
- size_type erase(const KeyType& key, KeyValueCompare comp
1811
- /// @cond
1812
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
1813
- /// @endcond
1814
- )
1815
- { return tree_.erase(key, comp); }
1816
-
1817
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1818
- //!
1819
- //! <b>Returns</b>: An iterator to the element after the erased element.
1820
- //!
1821
- //! <b>Effects</b>: Erases the element pointed to by pos.
1822
- //! Disposer::operator()(pointer) is called for the removed element.
1823
- //!
1824
- //! <b>Complexity</b>: Average complexity for erase element is constant time.
1825
- //!
1826
- //! <b>Throws</b>: Nothing.
1827
- //!
1828
- //! <b>Note</b>: Invalidates the iterators
1829
- //! to the erased elements.
1830
- template<class Disposer>
1831
- iterator erase_and_dispose(const_iterator i, Disposer disposer)
1832
- { return tree_.erase_and_dispose(i, disposer); }
692
+ { tree_type::insert_equal(b, e); }
693
+
694
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
695
+ //! @copydoc ::boost::intrusive::avltree::insert_before
696
+ iterator insert_before(const_iterator pos, reference value);
1833
697
 
1834
- #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
698
+ //! @copydoc ::boost::intrusive::avltree::push_back
699
+ void push_back(reference value);
700
+
701
+ //! @copydoc ::boost::intrusive::avltree::push_front
702
+ void push_front(reference value);
703
+
704
+ //! @copydoc ::boost::intrusive::avltree::erase(const_iterator)
705
+ iterator erase(const_iterator i);
706
+
707
+ //! @copydoc ::boost::intrusive::avltree::erase(const_iterator,const_iterator)
708
+ iterator erase(const_iterator b, const_iterator e);
709
+
710
+ //! @copydoc ::boost::intrusive::avltree::erase(const key_type &)
711
+ size_type erase(const key_type &key);
712
+
713
+ //! @copydoc ::boost::intrusive::avltree::erase(const KeyType&,KeyTypeKeyCompare)
714
+ template<class KeyType, class KeyTypeKeyCompare>
715
+ size_type erase(const KeyType& key, KeyTypeKeyCompare comp);
716
+
717
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const_iterator,Disposer)
1835
718
  template<class Disposer>
1836
- iterator erase_and_dispose(iterator i, Disposer disposer)
1837
- { return this->erase_and_dispose(const_iterator(i), disposer); }
1838
- #endif
719
+ iterator erase_and_dispose(const_iterator i, Disposer disposer);
1839
720
 
1840
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1841
- //!
1842
- //! <b>Returns</b>: An iterator to the element after the erased elements.
1843
- //!
1844
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1845
- //! Disposer::operator()(pointer) is called for the removed elements.
1846
- //!
1847
- //! <b>Complexity</b>: Average complexity for erase range is at most
1848
- //! O(log(size() + N)), where N is the number of elements in the range.
1849
- //!
1850
- //! <b>Throws</b>: Nothing.
1851
- //!
1852
- //! <b>Note</b>: Invalidates the iterators
1853
- //! to the erased elements.
721
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const_iterator,const_iterator,Disposer)
1854
722
  template<class Disposer>
1855
- iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
1856
- { return tree_.erase_and_dispose(b, e, disposer); }
1857
-
1858
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1859
- //!
1860
- //! <b>Effects</b>: Erases all the elements with the given value.
1861
- //! Disposer::operator()(pointer) is called for the removed elements.
1862
- //!
1863
- //! <b>Returns</b>: The number of erased elements.
1864
- //!
1865
- //! <b>Complexity</b>: O(log(size() + this->count(value)).
1866
- //!
1867
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1868
- //!
1869
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1870
- //! to the erased elements. No destructors are called.
723
+ iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer);
724
+
725
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const key_type &, Disposer)
1871
726
  template<class Disposer>
1872
- size_type erase_and_dispose(const_reference value, Disposer disposer)
1873
- { return tree_.erase_and_dispose(value, disposer); }
1874
-
1875
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1876
- //!
1877
- //! <b>Effects</b>: Erases all the elements with the given key.
1878
- //! according to the comparison functor "comp".
1879
- //! Disposer::operator()(pointer) is called for the removed elements.
1880
- //!
1881
- //! <b>Returns</b>: The number of erased elements.
1882
- //!
1883
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
1884
- //!
1885
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
1886
- //!
1887
- //! <b>Note</b>: Invalidates the iterators
1888
- //! to the erased elements.
1889
- template<class KeyType, class KeyValueCompare, class Disposer>
1890
- size_type erase_and_dispose(const KeyType& key, KeyValueCompare comp, Disposer disposer
1891
- /// @cond
1892
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
1893
- /// @endcond
1894
- )
1895
- { return tree_.erase_and_dispose(key, comp, disposer); }
1896
-
1897
- //! <b>Effects</b>: Erases all the elements of the container.
1898
- //!
1899
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1900
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
1901
- //!
1902
- //! <b>Throws</b>: Nothing.
1903
- //!
1904
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1905
- //! to the erased elements. No destructors are called.
1906
- void clear()
1907
- { return tree_.clear(); }
1908
-
1909
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1910
- //!
1911
- //! <b>Effects</b>: Erases all the elements of the container.
1912
- //!
1913
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1914
- //! Disposer::operator()(pointer) is called for the removed elements.
1915
- //!
1916
- //! <b>Throws</b>: Nothing.
1917
- //!
1918
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1919
- //! to the erased elements. No destructors are called.
727
+ size_type erase_and_dispose(const key_type &key, Disposer disposer);
728
+
729
+ //! @copydoc ::boost::intrusive::avltree::erase_and_dispose(const KeyType&,KeyTypeKeyCompare,Disposer)
730
+ template<class KeyType, class KeyTypeKeyCompare, class Disposer>
731
+ size_type erase_and_dispose(const KeyType& key, KeyTypeKeyCompare comp, Disposer disposer);
732
+
733
+ //! @copydoc ::boost::intrusive::avltree::clear
734
+ void clear();
735
+
736
+ //! @copydoc ::boost::intrusive::avltree::clear_and_dispose
1920
737
  template<class Disposer>
1921
- void clear_and_dispose(Disposer disposer)
1922
- { return tree_.clear_and_dispose(disposer); }
1923
-
1924
- //! <b>Effects</b>: Returns the number of contained elements with the given key
1925
- //!
1926
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
1927
- //! to number of objects with the given key.
1928
- //!
1929
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
1930
- size_type count(const_reference value) const
1931
- { return tree_.count(value); }
1932
-
1933
- //! <b>Effects</b>: Returns the number of contained elements with the same key
1934
- //! compared with the given comparison functor.
1935
- //!
1936
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
1937
- //! to number of objects with the given key.
1938
- //!
1939
- //! <b>Throws</b>: If comp ordering function throws.
1940
- template<class KeyType, class KeyValueCompare>
1941
- size_type count(const KeyType& key, KeyValueCompare comp) const
1942
- { return tree_.count(key, comp); }
1943
-
1944
- //! <b>Effects</b>: Returns an iterator to the first element whose
1945
- //! key is not less than k or end() if that element does not exist.
1946
- //!
1947
- //! <b>Complexity</b>: Logarithmic.
1948
- //!
1949
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
1950
- iterator lower_bound(const_reference value)
1951
- { return tree_.lower_bound(value); }
1952
-
1953
- //! <b>Requires</b>: comp must imply the same element order as
1954
- //! value_compare. Usually key is the part of the value_type
1955
- //! that is used in the ordering functor.
1956
- //!
1957
- //! <b>Effects</b>: Returns an iterator to the first element whose
1958
- //! key according to the comparison functor is not less than k or
1959
- //! end() if that element does not exist.
1960
- //!
1961
- //! <b>Complexity</b>: Logarithmic.
1962
- //!
1963
- //! <b>Throws</b>: If comp ordering function throws.
1964
- //!
1965
- //! <b>Note</b>: This function is used when constructing a value_type
1966
- //! is expensive and the value_type can be compared with a cheaper
1967
- //! key type. Usually this key is part of the value_type.
1968
- template<class KeyType, class KeyValueCompare>
1969
- iterator lower_bound(const KeyType& key, KeyValueCompare comp)
1970
- { return tree_.lower_bound(key, comp); }
1971
-
1972
- //! <b>Effects</b>: Returns a const iterator to the first element whose
1973
- //! key is not less than k or end() if that element does not exist.
1974
- //!
1975
- //! <b>Complexity</b>: Logarithmic.
1976
- //!
1977
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
1978
- const_iterator lower_bound(const_reference value) const
1979
- { return tree_.lower_bound(value); }
1980
-
1981
- //! <b>Requires</b>: comp must imply the same element order as
1982
- //! value_compare. Usually key is the part of the value_type
1983
- //! that is used in the ordering functor.
1984
- //!
1985
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
1986
- //! key according to the comparison functor is not less than k or
1987
- //! end() if that element does not exist.
1988
- //!
1989
- //! <b>Complexity</b>: Logarithmic.
1990
- //!
1991
- //! <b>Throws</b>: If comp ordering function throws.
1992
- //!
1993
- //! <b>Note</b>: This function is used when constructing a value_type
1994
- //! is expensive and the value_type can be compared with a cheaper
1995
- //! key type. Usually this key is part of the value_type.
1996
- template<class KeyType, class KeyValueCompare>
1997
- const_iterator lower_bound(const KeyType& key, KeyValueCompare comp) const
1998
- { return tree_.lower_bound(key, comp); }
1999
-
2000
- //! <b>Effects</b>: Returns an iterator to the first element whose
2001
- //! key is greater than k or end() if that element does not exist.
2002
- //!
2003
- //! <b>Complexity</b>: Logarithmic.
2004
- //!
2005
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2006
- iterator upper_bound(const_reference value)
2007
- { return tree_.upper_bound(value); }
2008
-
2009
- //! <b>Requires</b>: comp must imply the same element order as
2010
- //! value_compare. Usually key is the part of the value_type
2011
- //! that is used in the ordering functor.
2012
- //!
2013
- //! <b>Effects</b>: Returns an iterator to the first element whose
2014
- //! key according to the comparison functor is greater than key or
2015
- //! end() if that element does not exist.
2016
- //!
2017
- //! <b>Complexity</b>: Logarithmic.
2018
- //!
2019
- //! <b>Throws</b>: If comp ordering function throws.
2020
- //!
2021
- //! <b>Note</b>: This function is used when constructing a value_type
2022
- //! is expensive and the value_type can be compared with a cheaper
2023
- //! key type. Usually this key is part of the value_type.
2024
- template<class KeyType, class KeyValueCompare>
2025
- iterator upper_bound(const KeyType& key, KeyValueCompare comp)
2026
- { return tree_.upper_bound(key, comp); }
2027
-
2028
- //! <b>Effects</b>: Returns an iterator to the first element whose
2029
- //! key is greater than k or end() if that element does not exist.
2030
- //!
2031
- //! <b>Complexity</b>: Logarithmic.
2032
- //!
2033
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2034
- const_iterator upper_bound(const_reference value) const
2035
- { return tree_.upper_bound(value); }
2036
-
2037
- //! <b>Requires</b>: comp must imply the same element order as
2038
- //! value_compare. Usually key is the part of the value_type
2039
- //! that is used in the ordering functor.
2040
- //!
2041
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
2042
- //! key according to the comparison functor is greater than key or
2043
- //! end() if that element does not exist.
2044
- //!
2045
- //! <b>Complexity</b>: Logarithmic.
2046
- //!
2047
- //! <b>Throws</b>: If comp ordering function throws.
2048
- //!
2049
- //! <b>Note</b>: This function is used when constructing a value_type
2050
- //! is expensive and the value_type can be compared with a cheaper
2051
- //! key type. Usually this key is part of the value_type.
2052
- template<class KeyType, class KeyValueCompare>
2053
- const_iterator upper_bound(const KeyType& key, KeyValueCompare comp) const
2054
- { return tree_.upper_bound(key, comp); }
2055
-
2056
- //! <b>Effects</b>: Finds an iterator to the first element whose value is
2057
- //! "value" or end() if that element does not exist.
2058
- //!
2059
- //! <b>Complexity</b>: Logarithmic.
2060
- //!
2061
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2062
- iterator find(const_reference value)
2063
- { return tree_.find(value); }
2064
-
2065
- //! <b>Requires</b>: comp must imply the same element order as
2066
- //! value_compare. Usually key is the part of the value_type
2067
- //! that is used in the ordering functor.
2068
- //!
2069
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
2070
- //! "key" according to the comparison functor or end() if that element
2071
- //! does not exist.
2072
- //!
2073
- //! <b>Complexity</b>: Logarithmic.
2074
- //!
2075
- //! <b>Throws</b>: If comp ordering function throws.
2076
- //!
2077
- //! <b>Note</b>: This function is used when constructing a value_type
2078
- //! is expensive and the value_type can be compared with a cheaper
2079
- //! key type. Usually this key is part of the value_type.
2080
- template<class KeyType, class KeyValueCompare>
2081
- iterator find(const KeyType& key, KeyValueCompare comp)
2082
- { return tree_.find(key, comp); }
2083
-
2084
- //! <b>Effects</b>: Finds a const_iterator to the first element whose value is
2085
- //! "value" or end() if that element does not exist.
2086
- //!
2087
- //! <b>Complexity</b>: Logarithmic.
2088
- //!
2089
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2090
- const_iterator find(const_reference value) const
2091
- { return tree_.find(value); }
2092
-
2093
- //! <b>Requires</b>: comp must imply the same element order as
2094
- //! value_compare. Usually key is the part of the value_type
2095
- //! that is used in the ordering functor.
2096
- //!
2097
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
2098
- //! "key" according to the comparison functor or end() if that element
2099
- //! does not exist.
2100
- //!
2101
- //! <b>Complexity</b>: Logarithmic.
2102
- //!
2103
- //! <b>Throws</b>: If comp ordering function throws.
2104
- //!
2105
- //! <b>Note</b>: This function is used when constructing a value_type
2106
- //! is expensive and the value_type can be compared with a cheaper
2107
- //! key type. Usually this key is part of the value_type.
2108
- template<class KeyType, class KeyValueCompare>
2109
- const_iterator find(const KeyType& key, KeyValueCompare comp) const
2110
- { return tree_.find(key, comp); }
2111
-
2112
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
2113
- //! an empty range that indicates the position where those elements would be
2114
- //! if they there is no elements with key k.
2115
- //!
2116
- //! <b>Complexity</b>: Logarithmic.
2117
- //!
2118
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2119
- std::pair<iterator,iterator> equal_range(const_reference value)
2120
- { return tree_.equal_range(value); }
2121
-
2122
- //! <b>Requires</b>: comp must imply the same element order as
2123
- //! value_compare. Usually key is the part of the value_type
2124
- //! that is used in the ordering functor.
2125
- //!
2126
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
2127
- //! according to the comparison functor or an empty range
2128
- //! that indicates the position where those elements would be
2129
- //! if they there is no elements with key k.
2130
- //!
2131
- //! <b>Complexity</b>: Logarithmic.
2132
- //!
2133
- //! <b>Throws</b>: If comp ordering function throws.
2134
- //!
2135
- //! <b>Note</b>: This function is used when constructing a value_type
2136
- //! is expensive and the value_type can be compared with a cheaper
2137
- //! key type. Usually this key is part of the value_type.
2138
- template<class KeyType, class KeyValueCompare>
2139
- std::pair<iterator,iterator> equal_range(const KeyType& key, KeyValueCompare comp)
2140
- { return tree_.equal_range(key, comp); }
2141
-
2142
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
2143
- //! an empty range that indicates the position where those elements would be
2144
- //! if they there is no elements with key k.
2145
- //!
2146
- //! <b>Complexity</b>: Logarithmic.
2147
- //!
2148
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
738
+ void clear_and_dispose(Disposer disposer);
739
+
740
+ //! @copydoc ::boost::intrusive::avltree::count(const key_type &)const
741
+ size_type count(const key_type &key) const;
742
+
743
+ //! @copydoc ::boost::intrusive::avltree::count(const KeyType&,KeyTypeKeyCompare)const
744
+ template<class KeyType, class KeyTypeKeyCompare>
745
+ size_type count(const KeyType& key, KeyTypeKeyCompare comp) const;
746
+
747
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const key_type &)
748
+ iterator lower_bound(const key_type &key);
749
+
750
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const KeyType&,KeyTypeKeyCompare)
751
+ template<class KeyType, class KeyTypeKeyCompare>
752
+ iterator lower_bound(const KeyType& key, KeyTypeKeyCompare comp);
753
+
754
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const key_type &)const
755
+ const_iterator lower_bound(const key_type &key) const;
756
+
757
+ //! @copydoc ::boost::intrusive::avltree::lower_bound(const KeyType&,KeyTypeKeyCompare)const
758
+ template<class KeyType, class KeyTypeKeyCompare>
759
+ const_iterator lower_bound(const KeyType& key, KeyTypeKeyCompare comp) const;
760
+
761
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const key_type &)
762
+ iterator upper_bound(const key_type &key);
763
+
764
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const KeyType&,KeyTypeKeyCompare)
765
+ template<class KeyType, class KeyTypeKeyCompare>
766
+ iterator upper_bound(const KeyType& key, KeyTypeKeyCompare comp);
767
+
768
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const key_type &)const
769
+ const_iterator upper_bound(const key_type &key) const;
770
+
771
+ //! @copydoc ::boost::intrusive::avltree::upper_bound(const KeyType&,KeyTypeKeyCompare)const
772
+ template<class KeyType, class KeyTypeKeyCompare>
773
+ const_iterator upper_bound(const KeyType& key, KeyTypeKeyCompare comp) const;
774
+
775
+ //! @copydoc ::boost::intrusive::avltree::find(const key_type &)
776
+ iterator find(const key_type &key);
777
+
778
+ //! @copydoc ::boost::intrusive::avltree::find(const KeyType&,KeyTypeKeyCompare)
779
+ template<class KeyType, class KeyTypeKeyCompare>
780
+ iterator find(const KeyType& key, KeyTypeKeyCompare comp);
781
+
782
+ //! @copydoc ::boost::intrusive::avltree::find(const key_type &)const
783
+ const_iterator find(const key_type &key) const;
784
+
785
+ //! @copydoc ::boost::intrusive::avltree::find(const KeyType&,KeyTypeKeyCompare)const
786
+ template<class KeyType, class KeyTypeKeyCompare>
787
+ const_iterator find(const KeyType& key, KeyTypeKeyCompare comp) const;
788
+
789
+ //! @copydoc ::boost::intrusive::avltree::equal_range(const key_type &)
790
+ std::pair<iterator,iterator> equal_range(const key_type &key);
791
+
792
+ //! @copydoc ::boost::intrusive::avltree::equal_range(const KeyType&,KeyTypeKeyCompare)
793
+ template<class KeyType, class KeyTypeKeyCompare>
794
+ std::pair<iterator,iterator> equal_range(const KeyType& key, KeyTypeKeyCompare comp);
795
+
796
+ //! @copydoc ::boost::intrusive::avltree::equal_range(const key_type &)const
2149
797
  std::pair<const_iterator, const_iterator>
2150
- equal_range(const_reference value) const
2151
- { return tree_.equal_range(value); }
2152
-
2153
- //! <b>Requires</b>: comp must imply the same element order as
2154
- //! value_compare. Usually key is the part of the value_type
2155
- //! that is used in the ordering functor.
2156
- //!
2157
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
2158
- //! according to the comparison functor or an empty range
2159
- //! that indicates the position where those elements would be
2160
- //! if they there is no elements with key k.
2161
- //!
2162
- //! <b>Complexity</b>: Logarithmic.
2163
- //!
2164
- //! <b>Throws</b>: If comp ordering function throws.
2165
- //!
2166
- //! <b>Note</b>: This function is used when constructing a value_type
2167
- //! is expensive and the value_type can be compared with a cheaper
2168
- //! key type. Usually this key is part of the value_type.
2169
- template<class KeyType, class KeyValueCompare>
798
+ equal_range(const key_type &key) const;
799
+
800
+ //! @copydoc ::boost::intrusive::avltree::equal_range(const KeyType&,KeyTypeKeyCompare)const
801
+ template<class KeyType, class KeyTypeKeyCompare>
2170
802
  std::pair<const_iterator, const_iterator>
2171
- equal_range(const KeyType& key, KeyValueCompare comp) const
2172
- { return tree_.equal_range(key, comp); }
2173
-
2174
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
2175
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
2176
- //!
2177
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2178
- //!
2179
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
2180
- //!
2181
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
2182
- //!
2183
- //! <b>Complexity</b>: Logarithmic.
2184
- //!
2185
- //! <b>Throws</b>: If the predicate throws.
2186
- //!
2187
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2188
- //! and lower_bound for lower_value and upper_value.
803
+ equal_range(const KeyType& key, KeyTypeKeyCompare comp) const;
804
+
805
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const key_type &,const key_type &,bool,bool)
2189
806
  std::pair<iterator,iterator> bounded_range
2190
- (const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed)
2191
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
2192
-
2193
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
2194
- //! ordering compatible with the strict weak ordering used to create the
2195
- //! the tree.
2196
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
2197
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
2198
- //!
2199
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2200
- //!
2201
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
2202
- //!
2203
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
2204
- //!
2205
- //! <b>Complexity</b>: Logarithmic.
2206
- //!
2207
- //! <b>Throws</b>: If "comp" throws.
2208
- //!
2209
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2210
- //! and lower_bound for lower_key and upper_key.
2211
- template<class KeyType, class KeyValueCompare>
807
+ (const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed);
808
+
809
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)
810
+ template<class KeyType, class KeyTypeKeyCompare>
2212
811
  std::pair<iterator,iterator> bounded_range
2213
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed)
2214
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
2215
-
2216
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
2217
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
2218
- //!
2219
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2220
- //!
2221
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
2222
- //!
2223
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
2224
- //!
2225
- //! <b>Complexity</b>: Logarithmic.
2226
- //!
2227
- //! <b>Throws</b>: If the predicate throws.
2228
- //!
2229
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2230
- //! and lower_bound for lower_value and upper_value.
2231
- std::pair<const_iterator, const_iterator>
2232
- bounded_range(const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed) const
2233
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
2234
-
2235
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
2236
- //! ordering compatible with the strict weak ordering used to create the
2237
- //! the tree.
2238
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
2239
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
2240
- //!
2241
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2242
- //!
2243
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
2244
- //!
2245
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
2246
- //!
2247
- //! <b>Complexity</b>: Logarithmic.
2248
- //!
2249
- //! <b>Throws</b>: If "comp" throws.
2250
- //!
2251
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2252
- //! and lower_bound for lower_key and upper_key.
2253
- template<class KeyType, class KeyValueCompare>
812
+ (const KeyType& lower_key, const KeyType& upper_key, KeyTypeKeyCompare comp, bool left_closed, bool right_closed);
813
+
814
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const key_type &,const key_type &,bool,bool)const
2254
815
  std::pair<const_iterator, const_iterator>
2255
- bounded_range
2256
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed) const
2257
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
2258
-
2259
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_multiset of
2260
- //! appropriate type. Otherwise the behavior is undefined.
2261
- //!
2262
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the avl_multiset
2263
- //! that points to the value
2264
- //!
2265
- //! <b>Complexity</b>: Constant.
2266
- //!
2267
- //! <b>Throws</b>: Nothing.
2268
- //!
2269
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
2270
- //! is stateless.
2271
- static iterator s_iterator_to(reference value)
2272
- { return tree_type::s_iterator_to(value); }
2273
-
2274
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_multiset of
2275
- //! appropriate type. Otherwise the behavior is undefined.
2276
- //!
2277
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
2278
- //! avl_multiset that points to the value
2279
- //!
2280
- //! <b>Complexity</b>: Constant.
2281
- //!
2282
- //! <b>Throws</b>: Nothing.
2283
- //!
2284
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
2285
- //! is stateless.
2286
- static const_iterator s_iterator_to(const_reference value)
2287
- { return tree_type::s_iterator_to(value); }
2288
-
2289
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_multiset of
2290
- //! appropriate type. Otherwise the behavior is undefined.
2291
- //!
2292
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the avl_multiset
2293
- //! that points to the value
2294
- //!
2295
- //! <b>Complexity</b>: Constant.
2296
- //!
2297
- //! <b>Throws</b>: Nothing.
2298
- iterator iterator_to(reference value)
2299
- { return tree_.iterator_to(value); }
2300
-
2301
- //! <b>Requires</b>: value must be an lvalue and shall be in a avl_multiset of
2302
- //! appropriate type. Otherwise the behavior is undefined.
2303
- //!
2304
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
2305
- //! avl_multiset that points to the value
2306
- //!
2307
- //! <b>Complexity</b>: Constant.
2308
- //!
2309
- //! <b>Throws</b>: Nothing.
2310
- const_iterator iterator_to(const_reference value) const
2311
- { return tree_.iterator_to(value); }
2312
-
2313
- //! <b>Requires</b>: value shall not be in a avl_multiset/avl_multiset.
2314
- //!
2315
- //! <b>Effects</b>: init_node puts the hook of a value in a well-known default
2316
- //! state.
2317
- //!
2318
- //! <b>Throws</b>: Nothing.
2319
- //!
2320
- //! <b>Complexity</b>: Constant time.
2321
- //!
2322
- //! <b>Note</b>: This function puts the hook in the well-known default state
2323
- //! used by auto_unlink and safe hooks.
2324
- static void init_node(reference value)
2325
- { tree_type::init_node(value); }
2326
-
2327
- //! <b>Effects</b>: Unlinks the leftmost node from the tree.
2328
- //!
2329
- //! <b>Complexity</b>: Average complexity is constant time.
2330
- //!
2331
- //! <b>Throws</b>: Nothing.
2332
- //!
2333
- //! <b>Notes</b>: This function breaks the tree and the tree can
2334
- //! only be used for more unlink_leftmost_without_rebalance calls.
2335
- //! This function is normally used to achieve a step by step
2336
- //! controlled destruction of the tree.
2337
- pointer unlink_leftmost_without_rebalance()
2338
- { return tree_.unlink_leftmost_without_rebalance(); }
2339
-
2340
- //! <b>Requires</b>: replace_this must be a valid iterator of *this
2341
- //! and with_this must not be inserted in any tree.
2342
- //!
2343
- //! <b>Effects</b>: Replaces replace_this in its position in the
2344
- //! tree with with_this. The tree does not need to be rebalanced.
2345
- //!
2346
- //! <b>Complexity</b>: Constant.
2347
- //!
2348
- //! <b>Throws</b>: Nothing.
2349
- //!
2350
- //! <b>Note</b>: This function will break container ordering invariants if
2351
- //! with_this is not equivalent to *replace_this according to the
2352
- //! ordering rules. This function is faster than erasing and inserting
2353
- //! the node, since no rebalancing or comparison is needed.
2354
- void replace_node(iterator replace_this, reference with_this)
2355
- { tree_.replace_node(replace_this, with_this); }
816
+ bounded_range(const key_type &lower_key, const key_type &key upper_key, bool left_closed, bool right_closed) const;
2356
817
 
2357
- /// @cond
2358
- friend bool operator==(const avl_multiset_impl &x, const avl_multiset_impl &y)
2359
- { return x.tree_ == y.tree_; }
818
+ //! @copydoc ::boost::intrusive::avltree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)const
819
+ template<class KeyType, class KeyTypeKeyCompare>
820
+ std::pair<const_iterator, const_iterator> bounded_range
821
+ (const KeyType& lower_key, const KeyType& upper_key, KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;
2360
822
 
2361
- friend bool operator<(const avl_multiset_impl &x, const avl_multiset_impl &y)
2362
- { return x.tree_ < y.tree_; }
2363
- /// @endcond
823
+ //! @copydoc ::boost::intrusive::avltree::s_iterator_to(reference)
824
+ static iterator s_iterator_to(reference value);
825
+
826
+ //! @copydoc ::boost::intrusive::avltree::s_iterator_to(const_reference)
827
+ static const_iterator s_iterator_to(const_reference value);
828
+
829
+ //! @copydoc ::boost::intrusive::avltree::iterator_to(reference)
830
+ iterator iterator_to(reference value);
831
+
832
+ //! @copydoc ::boost::intrusive::avltree::iterator_to(const_reference)const
833
+ const_iterator iterator_to(const_reference value) const;
834
+
835
+ //! @copydoc ::boost::intrusive::avltree::init_node(reference)
836
+ static void init_node(reference value);
837
+
838
+ //! @copydoc ::boost::intrusive::avltree::unlink_leftmost_without_rebalance
839
+ pointer unlink_leftmost_without_rebalance();
840
+
841
+ //! @copydoc ::boost::intrusive::avltree::replace_node
842
+ void replace_node(iterator replace_this, reference with_this);
843
+
844
+ //! @copydoc ::boost::intrusive::avltree::remove_node
845
+ void remove_node(reference value);
846
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
2364
847
  };
2365
848
 
2366
849
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
850
+
2367
851
  template<class T, class ...Options>
2368
- #else
2369
- template<class Config>
2370
- #endif
2371
- inline bool operator!=
2372
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2373
- (const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y)
2374
- #else
2375
- (const avl_multiset_impl<Config> &x, const avl_multiset_impl<Config> &y)
2376
- #endif
2377
- { return !(x == y); }
852
+ bool operator!= (const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y);
2378
853
 
2379
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2380
854
  template<class T, class ...Options>
2381
- #else
2382
- template<class Config>
2383
- #endif
2384
- inline bool operator>
2385
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2386
- (const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y)
2387
- #else
2388
- (const avl_multiset_impl<Config> &x, const avl_multiset_impl<Config> &y)
2389
- #endif
2390
- { return y < x; }
855
+ bool operator>(const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y);
2391
856
 
2392
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2393
857
  template<class T, class ...Options>
2394
- #else
2395
- template<class Config>
2396
- #endif
2397
- inline bool operator<=
2398
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2399
- (const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y)
2400
- #else
2401
- (const avl_multiset_impl<Config> &x, const avl_multiset_impl<Config> &y)
2402
- #endif
2403
- { return !(y < x); }
858
+ bool operator<=(const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y);
2404
859
 
2405
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2406
860
  template<class T, class ...Options>
2407
- #else
2408
- template<class Config>
2409
- #endif
2410
- inline bool operator>=
2411
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2412
- (const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y)
2413
- #else
2414
- (const avl_multiset_impl<Config> &x, const avl_multiset_impl<Config> &y)
2415
- #endif
2416
- { return !(x < y); }
861
+ bool operator>=(const avl_multiset_impl<T, Options...> &x, const avl_multiset_impl<T, Options...> &y);
2417
862
 
2418
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2419
863
  template<class T, class ...Options>
2420
- #else
2421
- template<class Config>
2422
- #endif
2423
- inline void swap
2424
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2425
- (avl_multiset_impl<T, Options...> &x, avl_multiset_impl<T, Options...> &y)
2426
- #else
2427
- (avl_multiset_impl<Config> &x, avl_multiset_impl<Config> &y)
2428
- #endif
2429
- { x.swap(y); }
864
+ void swap(avl_multiset_impl<T, Options...> &x, avl_multiset_impl<T, Options...> &y);
865
+
866
+ #endif //#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2430
867
 
2431
868
  //! Helper metafunction to define a \c avl_multiset that yields to the same type when the
2432
869
  //! same options (either explicitly or implicitly) are used.
2433
870
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2434
871
  template<class T, class ...Options>
2435
872
  #else
2436
- template<class T, class O1 = none, class O2 = none
2437
- , class O3 = none, class O4 = none>
873
+ template<class T, class O1 = void, class O2 = void
874
+ , class O3 = void, class O4 = void
875
+ , class O5 = void, class O6 = void>
2438
876
  #endif
2439
877
  struct make_avl_multiset
2440
878
  {
2441
879
  /// @cond
880
+ typedef typename pack_options
881
+ < avltree_defaults,
882
+ #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
883
+ O1, O2, O3, O4, O5, O6
884
+ #else
885
+ Options...
886
+ #endif
887
+ >::type packed_options;
888
+
889
+ typedef typename detail::get_value_traits
890
+ <T, typename packed_options::proto_value_traits>::type value_traits;
891
+
2442
892
  typedef avl_multiset_impl
2443
- < typename make_avltree_opt
2444
- #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2445
- <T, O1, O2, O3, O4>
2446
- #else
2447
- <T, Options...>
2448
- #endif
2449
- ::type
2450
- > implementation_defined;
893
+ < value_traits
894
+ , typename packed_options::key_of_value
895
+ , typename packed_options::compare
896
+ , typename packed_options::size_type
897
+ , packed_options::constant_time_size
898
+ , typename packed_options::header_holder_type
899
+ > implementation_defined;
2451
900
  /// @endcond
2452
901
  typedef implementation_defined type;
2453
902
  };
@@ -2455,30 +904,31 @@ struct make_avl_multiset
2455
904
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
2456
905
 
2457
906
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2458
- template<class T, class O1, class O2, class O3, class O4>
907
+ template<class T, class O1, class O2, class O3, class O4, class O5, class O6>
2459
908
  #else
2460
909
  template<class T, class ...Options>
2461
910
  #endif
2462
911
  class avl_multiset
2463
912
  : public make_avl_multiset<T,
2464
- #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2465
- O1, O2, O3, O4
2466
- #else
2467
- Options...
2468
- #endif
2469
- >::type
913
+ #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
914
+ O1, O2, O3, O4, O5, O6
915
+ #else
916
+ Options...
917
+ #endif
918
+ >::type
2470
919
  {
2471
- typedef typename make_avl_multiset
920
+ typedef typename make_avl_multiset<T,
2472
921
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2473
- <T, O1, O2, O3, O4>
922
+ O1, O2, O3, O4, O5, O6
2474
923
  #else
2475
- <T, Options...>
924
+ Options...
2476
925
  #endif
2477
- ::type Base;
926
+ >::type Base;
2478
927
 
2479
928
  BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_multiset)
929
+
2480
930
  public:
2481
- typedef typename Base::value_compare value_compare;
931
+ typedef typename Base::key_compare key_compare;
2482
932
  typedef typename Base::value_traits value_traits;
2483
933
  typedef typename Base::iterator iterator;
2484
934
  typedef typename Base::const_iterator const_iterator;
@@ -2486,24 +936,32 @@ class avl_multiset
2486
936
  //Assert if passed value traits are compatible with the type
2487
937
  BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
2488
938
 
2489
- avl_multiset( const value_compare &cmp = value_compare()
2490
- , const value_traits &v_traits = value_traits())
939
+ explicit avl_multiset( const key_compare &cmp = key_compare()
940
+ , const value_traits &v_traits = value_traits())
2491
941
  : Base(cmp, v_traits)
2492
942
  {}
2493
943
 
2494
944
  template<class Iterator>
2495
945
  avl_multiset( Iterator b, Iterator e
2496
- , const value_compare &cmp = value_compare()
946
+ , const key_compare &cmp = key_compare()
2497
947
  , const value_traits &v_traits = value_traits())
2498
948
  : Base(b, e, cmp, v_traits)
2499
949
  {}
2500
950
 
2501
951
  avl_multiset(BOOST_RV_REF(avl_multiset) x)
2502
- : Base(::boost::move(static_cast<Base&>(x)))
952
+ : Base(BOOST_MOVE_BASE(Base, x))
2503
953
  {}
2504
954
 
2505
955
  avl_multiset& operator=(BOOST_RV_REF(avl_multiset) x)
2506
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
956
+ { return static_cast<avl_multiset &>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
957
+
958
+ template <class Cloner, class Disposer>
959
+ void clone_from(const avl_multiset &src, Cloner cloner, Disposer disposer)
960
+ { Base::clone_from(src, cloner, disposer); }
961
+
962
+ template <class Cloner, class Disposer>
963
+ void clone_from(BOOST_RV_REF(avl_multiset) src, Cloner cloner, Disposer disposer)
964
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
2507
965
 
2508
966
  static avl_multiset &container_from_end_iterator(iterator end_iterator)
2509
967
  { return static_cast<avl_multiset &>(Base::container_from_end_iterator(end_iterator)); }
@@ -2511,11 +969,11 @@ class avl_multiset
2511
969
  static const avl_multiset &container_from_end_iterator(const_iterator end_iterator)
2512
970
  { return static_cast<const avl_multiset &>(Base::container_from_end_iterator(end_iterator)); }
2513
971
 
2514
- static avl_multiset &container_from_iterator(iterator end_iterator)
2515
- { return static_cast<avl_multiset &>(Base::container_from_iterator(end_iterator)); }
972
+ static avl_multiset &container_from_iterator(iterator it)
973
+ { return static_cast<avl_multiset &>(Base::container_from_iterator(it)); }
2516
974
 
2517
- static const avl_multiset &container_from_iterator(const_iterator end_iterator)
2518
- { return static_cast<const avl_multiset &>(Base::container_from_iterator(end_iterator)); }
975
+ static const avl_multiset &container_from_iterator(const_iterator it)
976
+ { return static_cast<const avl_multiset &>(Base::container_from_iterator(it)); }
2519
977
  };
2520
978
 
2521
979
  #endif