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,7 +1,7 @@
1
1
  /////////////////////////////////////////////////////////////////////////////
2
2
  //
3
3
  // (C) Copyright Olaf Krzikalla 2004-2006.
4
- // (C) Copyright Ion Gaztanaga 2006-2012
4
+ // (C) Copyright Ion Gaztanaga 2006-2014
5
5
  //
6
6
  // Distributed under the Boost Software License, Version 1.0.
7
7
  // (See accompanying file LICENSE_1_0.txt or copy at
@@ -15,10 +15,15 @@
15
15
 
16
16
  #include <boost/intrusive/detail/config_begin.hpp>
17
17
  #include <boost/intrusive/intrusive_fwd.hpp>
18
+
18
19
  #include <boost/intrusive/detail/mpl.hpp>
19
20
  #include <boost/intrusive/rbtree.hpp>
20
- #include <iterator>
21
- #include <boost/move/move.hpp>
21
+ #include <boost/move/utility_core.hpp>
22
+ #include <boost/static_assert.hpp>
23
+
24
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
25
+ # pragma once
26
+ #endif
22
27
 
23
28
  namespace boost {
24
29
  namespace intrusive {
@@ -37,12 +42,15 @@ namespace intrusive {
37
42
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
38
43
  template<class T, class ...Options>
39
44
  #else
40
- template<class Config>
45
+ template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
41
46
  #endif
42
47
  class set_impl
48
+ #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
49
+ : public bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, HeaderHolder>
50
+ #endif
43
51
  {
44
52
  /// @cond
45
- typedef rbtree_impl<Config> tree_type;
53
+ typedef bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, HeaderHolder> tree_type;
46
54
  BOOST_MOVABLE_BUT_NOT_COPYABLE(set_impl)
47
55
 
48
56
  typedef tree_type implementation_defined;
@@ -50,6 +58,8 @@ class set_impl
50
58
 
51
59
  public:
52
60
  typedef typename implementation_defined::value_type value_type;
61
+ typedef typename implementation_defined::key_type key_type;
62
+ typedef typename implementation_defined::key_of_value key_of_value;
53
63
  typedef typename implementation_defined::value_traits value_traits;
54
64
  typedef typename implementation_defined::pointer pointer;
55
65
  typedef typename implementation_defined::const_pointer const_pointer;
@@ -70,1203 +80,378 @@ class set_impl
70
80
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
71
81
  typedef typename implementation_defined::node_algorithms node_algorithms;
72
82
 
73
- static const bool constant_time_size = Config::constant_time_size;
74
- //static const bool stateful_value_traits = detail::is_stateful_value_traits<real_value_traits>::value;
75
-
76
- /// @cond
77
- private:
78
- tree_type tree_;
79
-
80
- protected:
81
- node &prot_header_node(){ return tree_.prot_header_node(); }
82
- node const &prot_header_node() const{ return tree_.prot_header_node(); }
83
- void prot_set_size(size_type s){ tree_.prot_set_size(s); }
84
- value_compare &prot_comp(){ return tree_.prot_comp(); }
85
-
86
- /// @endcond
83
+ static const bool constant_time_size = tree_type::constant_time_size;
87
84
 
88
85
  public:
89
- //! <b>Effects</b>: Constructs an empty set.
90
- //!
91
- //! <b>Complexity</b>: Constant.
92
- //!
93
- //! <b>Throws</b>: If value_traits::node_traits::node
94
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
95
- //! or the copy constructor of the value_compare object throws.
96
- explicit set_impl( const value_compare &cmp = value_compare()
86
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(const key_compare &,const value_traits &)
87
+ explicit set_impl( const key_compare &cmp = key_compare()
97
88
  , const value_traits &v_traits = value_traits())
98
- : tree_(cmp, v_traits)
89
+ : tree_type(cmp, v_traits)
99
90
  {}
100
91
 
101
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
102
- //! cmp must be a comparison function that induces a strict weak ordering.
103
- //!
104
- //! <b>Effects</b>: Constructs an empty set and inserts elements from
105
- //! [b, e).
106
- //!
107
- //! <b>Complexity</b>: Linear in N if [b, e) is already sorted using
108
- //! comp and otherwise N * log N, where N is std::distance(last, first).
109
- //!
110
- //! <b>Throws</b>: If value_traits::node_traits::node
111
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
112
- //! or the copy constructor/operator() of the value_compare object throws.
92
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(bool,Iterator,Iterator,const key_compare &,const value_traits &)
113
93
  template<class Iterator>
114
94
  set_impl( Iterator b, Iterator e
115
- , const value_compare &cmp = value_compare()
95
+ , const key_compare &cmp = key_compare()
116
96
  , const value_traits &v_traits = value_traits())
117
- : tree_(true, b, e, cmp, v_traits)
97
+ : tree_type(true, b, e, cmp, v_traits)
118
98
  {}
119
99
 
120
- //! <b>Effects</b>: to-do
121
- //!
100
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(rbtree &&)
122
101
  set_impl(BOOST_RV_REF(set_impl) x)
123
- : tree_(::boost::move(x.tree_))
102
+ : tree_type(BOOST_MOVE_BASE(tree_type, x))
124
103
  {}
125
104
 
126
- //! <b>Effects</b>: to-do
127
- //!
105
+ //! @copydoc ::boost::intrusive::rbtree::operator=(rbtree &&)
128
106
  set_impl& operator=(BOOST_RV_REF(set_impl) x)
129
- { tree_ = ::boost::move(x.tree_); return *this; }
130
-
131
- //! <b>Effects</b>: Detaches all elements from this. The objects in the set
132
- //! are not deleted (i.e. no destructors are called).
133
- //!
134
- //! <b>Complexity</b>: Linear to the number of elements on the container.
135
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
136
- //!
137
- //! <b>Throws</b>: Nothing.
138
- ~set_impl()
139
- {}
107
+ { return static_cast<set_impl&>(tree_type::operator=(BOOST_MOVE_BASE(tree_type, x))); }
108
+
109
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
110
+ //! @copydoc ::boost::intrusive::rbtree::~rbtree()
111
+ ~set_impl();
112
+
113
+ //! @copydoc ::boost::intrusive::rbtree::begin()
114
+ iterator begin();
115
+
116
+ //! @copydoc ::boost::intrusive::rbtree::begin()const
117
+ const_iterator begin() const;
118
+
119
+ //! @copydoc ::boost::intrusive::rbtree::cbegin()const
120
+ const_iterator cbegin() const;
121
+
122
+ //! @copydoc ::boost::intrusive::rbtree::end()
123
+ iterator end();
124
+
125
+ //! @copydoc ::boost::intrusive::rbtree::end()const
126
+ const_iterator end() const;
127
+
128
+ //! @copydoc ::boost::intrusive::rbtree::cend()const
129
+ const_iterator cend() const;
130
+
131
+ //! @copydoc ::boost::intrusive::rbtree::rbegin()
132
+ reverse_iterator rbegin();
133
+
134
+ //! @copydoc ::boost::intrusive::rbtree::rbegin()const
135
+ const_reverse_iterator rbegin() const;
136
+
137
+ //! @copydoc ::boost::intrusive::rbtree::crbegin()const
138
+ const_reverse_iterator crbegin() const;
139
+
140
+ //! @copydoc ::boost::intrusive::rbtree::rend()
141
+ reverse_iterator rend();
142
+
143
+ //! @copydoc ::boost::intrusive::rbtree::rend()const
144
+ const_reverse_iterator rend() const;
145
+
146
+ //! @copydoc ::boost::intrusive::rbtree::crend()const
147
+ const_reverse_iterator crend() const;
148
+
149
+ //! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(iterator)
150
+ static set_impl &container_from_end_iterator(iterator end_iterator);
151
+
152
+ //! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(const_iterator)
153
+ static const set_impl &container_from_end_iterator(const_iterator end_iterator);
154
+
155
+ //! @copydoc ::boost::intrusive::rbtree::container_from_iterator(iterator)
156
+ static set_impl &container_from_iterator(iterator it);
157
+
158
+ //! @copydoc ::boost::intrusive::rbtree::container_from_iterator(const_iterator)
159
+ static const set_impl &container_from_iterator(const_iterator it);
160
+
161
+ //! @copydoc ::boost::intrusive::rbtree::key_comp()const
162
+ key_compare key_comp() const;
163
+
164
+ //! @copydoc ::boost::intrusive::rbtree::value_comp()const
165
+ value_compare value_comp() const;
166
+
167
+ //! @copydoc ::boost::intrusive::rbtree::empty()const
168
+ bool empty() const;
169
+
170
+ //! @copydoc ::boost::intrusive::rbtree::size()const
171
+ size_type size() const;
140
172
 
141
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the set.
142
- //!
143
- //! <b>Complexity</b>: Constant.
144
- //!
145
- //! <b>Throws</b>: Nothing.
146
- iterator begin()
147
- { return tree_.begin(); }
148
-
149
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the set.
150
- //!
151
- //! <b>Complexity</b>: Constant.
152
- //!
153
- //! <b>Throws</b>: Nothing.
154
- const_iterator begin() const
155
- { return tree_.begin(); }
156
-
157
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the set.
158
- //!
159
- //! <b>Complexity</b>: Constant.
160
- //!
161
- //! <b>Throws</b>: Nothing.
162
- const_iterator cbegin() const
163
- { return tree_.cbegin(); }
164
-
165
- //! <b>Effects</b>: Returns an iterator pointing to the end of the set.
166
- //!
167
- //! <b>Complexity</b>: Constant.
168
- //!
169
- //! <b>Throws</b>: Nothing.
170
- iterator end()
171
- { return tree_.end(); }
172
-
173
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the set.
174
- //!
175
- //! <b>Complexity</b>: Constant.
176
- //!
177
- //! <b>Throws</b>: Nothing.
178
- const_iterator end() const
179
- { return tree_.end(); }
180
-
181
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the set.
182
- //!
183
- //! <b>Complexity</b>: Constant.
184
- //!
185
- //! <b>Throws</b>: Nothing.
186
- const_iterator cend() const
187
- { return tree_.cend(); }
188
-
189
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning of the
190
- //! reversed set.
191
- //!
192
- //! <b>Complexity</b>: Constant.
193
- //!
194
- //! <b>Throws</b>: Nothing.
195
- reverse_iterator rbegin()
196
- { return tree_.rbegin(); }
197
-
198
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
199
- //! of the reversed set.
200
- //!
201
- //! <b>Complexity</b>: Constant.
202
- //!
203
- //! <b>Throws</b>: Nothing.
204
- const_reverse_iterator rbegin() const
205
- { return tree_.rbegin(); }
206
-
207
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
208
- //! of the reversed set.
209
- //!
210
- //! <b>Complexity</b>: Constant.
211
- //!
212
- //! <b>Throws</b>: Nothing.
213
- const_reverse_iterator crbegin() const
214
- { return tree_.crbegin(); }
215
-
216
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
217
- //! of the reversed set.
218
- //!
219
- //! <b>Complexity</b>: Constant.
220
- //!
221
- //! <b>Throws</b>: Nothing.
222
- reverse_iterator rend()
223
- { return tree_.rend(); }
224
-
225
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
226
- //! of the reversed set.
227
- //!
228
- //! <b>Complexity</b>: Constant.
229
- //!
230
- //! <b>Throws</b>: Nothing.
231
- const_reverse_iterator rend() const
232
- { return tree_.rend(); }
233
-
234
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
235
- //! of the reversed set.
236
- //!
237
- //! <b>Complexity</b>: Constant.
238
- //!
239
- //! <b>Throws</b>: Nothing.
240
- const_reverse_iterator crend() const
241
- { return tree_.crend(); }
242
-
243
- //! <b>Precondition</b>: end_iterator must be a valid end iterator
244
- //! of set.
245
- //!
246
- //! <b>Effects</b>: Returns a reference to the set associated to the end iterator
247
- //!
248
- //! <b>Throws</b>: Nothing.
249
- //!
250
- //! <b>Complexity</b>: Constant.
251
- static set_impl &container_from_end_iterator(iterator end_iterator)
252
- {
253
- return *detail::parent_from_member<set_impl, tree_type>
254
- ( &tree_type::container_from_end_iterator(end_iterator)
255
- , &set_impl::tree_);
256
- }
257
-
258
- //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
259
- //! of set.
260
- //!
261
- //! <b>Effects</b>: Returns a const reference to the set associated to the end iterator
262
- //!
263
- //! <b>Throws</b>: Nothing.
264
- //!
265
- //! <b>Complexity</b>: Constant.
266
- static const set_impl &container_from_end_iterator(const_iterator end_iterator)
267
- {
268
- return *detail::parent_from_member<set_impl, tree_type>
269
- ( &tree_type::container_from_end_iterator(end_iterator)
270
- , &set_impl::tree_);
271
- }
272
-
273
- //! <b>Precondition</b>: it must be a valid iterator of set.
274
- //!
275
- //! <b>Effects</b>: Returns a reference to the set associated to the iterator
276
- //!
277
- //! <b>Throws</b>: Nothing.
278
- //!
279
- //! <b>Complexity</b>: Logarithmic.
280
- static set_impl &container_from_iterator(iterator it)
281
- {
282
- return *detail::parent_from_member<set_impl, tree_type>
283
- ( &tree_type::container_from_iterator(it)
284
- , &set_impl::tree_);
285
- }
286
-
287
- //! <b>Precondition</b>: it must be a valid const_iterator of set.
288
- //!
289
- //! <b>Effects</b>: Returns a const reference to the set associated to the iterator
290
- //!
291
- //! <b>Throws</b>: Nothing.
292
- //!
293
- //! <b>Complexity</b>: Logarithmic.
294
- static const set_impl &container_from_iterator(const_iterator it)
295
- {
296
- return *detail::parent_from_member<set_impl, tree_type>
297
- ( &tree_type::container_from_iterator(it)
298
- , &set_impl::tree_);
299
- }
300
-
301
- //! <b>Effects</b>: Returns the key_compare object used by the set.
302
- //!
303
- //! <b>Complexity</b>: Constant.
304
- //!
305
- //! <b>Throws</b>: If key_compare copy-constructor throws.
306
- key_compare key_comp() const
307
- { return tree_.value_comp(); }
308
-
309
- //! <b>Effects</b>: Returns the value_compare object used by the set.
310
- //!
311
- //! <b>Complexity</b>: Constant.
312
- //!
313
- //! <b>Throws</b>: If value_compare copy-constructor throws.
314
- value_compare value_comp() const
315
- { return tree_.value_comp(); }
316
-
317
- //! <b>Effects</b>: Returns true if the container is empty.
318
- //!
319
- //! <b>Complexity</b>: Constant.
320
- //!
321
- //! <b>Throws</b>: Nothing.
322
- bool empty() const
323
- { return tree_.empty(); }
324
-
325
- //! <b>Effects</b>: Returns the number of elements stored in the set.
326
- //!
327
- //! <b>Complexity</b>: Linear to elements contained in *this if,
328
- //! constant-time size option is enabled. Constant-time otherwise.
329
- //!
330
- //! <b>Throws</b>: Nothing.
331
- size_type size() const
332
- { return tree_.size(); }
333
-
334
- //! <b>Effects</b>: Swaps the contents of two sets.
335
- //!
336
- //! <b>Complexity</b>: Constant.
337
- //!
338
- //! <b>Throws</b>: If the swap() call for the comparison functor
339
- //! found using ADL throws. Strong guarantee.
340
- void swap(set_impl& other)
341
- { tree_.swap(other.tree_); }
342
-
343
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
344
- //! Cloner should yield to nodes equivalent to the original nodes.
345
- //!
346
- //! <b>Effects</b>: Erases all the elements from *this
347
- //! calling Disposer::operator()(pointer), clones all the
348
- //! elements from src calling Cloner::operator()(const_reference )
349
- //! and inserts them on *this. Copies the predicate from the source container.
350
- //!
351
- //! If cloner throws, all cloned elements are unlinked and disposed
352
- //! calling Disposer::operator()(pointer).
353
- //!
354
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
355
- //!
356
- //! <b>Throws</b>: If cloner throws or predicate copy assignment throws. Basic guarantee.
173
+ //! @copydoc ::boost::intrusive::rbtree::swap
174
+ void swap(set_impl& other);
175
+
176
+ //! @copydoc ::boost::intrusive::rbtree::clone_from(const rbtree&,Cloner,Disposer)
177
+ template <class Cloner, class Disposer>
178
+ void clone_from(const 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::rbtree::clone_from(rbtree&&,Cloner,Disposer)
357
187
  template <class Cloner, class Disposer>
358
- void clone_from(const set_impl &src, Cloner cloner, Disposer disposer)
359
- { tree_.clone_from(src.tree_, cloner, disposer); }
360
-
361
- //! <b>Requires</b>: value must be an lvalue
362
- //!
363
- //! <b>Effects</b>: Tries to inserts value into the set.
364
- //!
365
- //! <b>Returns</b>: If the value
366
- //! is not already present inserts it and returns a pair containing the
367
- //! iterator to the new value and true. If there is an equivalent value
368
- //! returns a pair containing an iterator to the already present value
369
- //! and false.
370
- //!
371
- //! <b>Complexity</b>: Average complexity for insert element is at
372
- //! most logarithmic.
373
- //!
374
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
375
- //!
376
- //! <b>Note</b>: Does not affect the validity of iterators and references.
377
- //! No copy-constructors are called.
188
+ void clone_from(BOOST_RV_REF(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::rbtree::insert_unique(reference)
378
192
  std::pair<iterator, bool> insert(reference value)
379
- { return tree_.insert_unique(value); }
380
-
381
- //! <b>Requires</b>: value must be an lvalue
382
- //!
383
- //! <b>Effects</b>: Tries to to insert x into the set, using "hint"
384
- //! as a hint to where it will be inserted.
385
- //!
386
- //! <b>Returns</b>: An iterator that points to the position where the
387
- //! new element was inserted into the set.
388
- //!
389
- //! <b>Complexity</b>: Logarithmic in general, but it's amortized
390
- //! constant time if t is inserted immediately before hint.
391
- //!
392
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
393
- //!
394
- //! <b>Note</b>: Does not affect the validity of iterators and references.
395
- //! No copy-constructors are called.
193
+ { return tree_type::insert_unique(value); }
194
+
195
+ //! @copydoc ::boost::intrusive::rbtree::insert_unique(const_iterator,reference)
396
196
  iterator insert(const_iterator hint, reference value)
397
- { return tree_.insert_unique(hint, value); }
398
-
399
- //! <b>Requires</b>: key_value_comp must be a comparison function that induces
400
- //! the same strict weak ordering as value_compare. The difference is that
401
- //! key_value_comp compares an arbitrary key with the contained values.
402
- //!
403
- //! <b>Effects</b>: Checks if a value can be inserted in the set, using
404
- //! a user provided key instead of the value itself.
405
- //!
406
- //! <b>Returns</b>: If there is an equivalent value
407
- //! returns a pair containing an iterator to the already present value
408
- //! and false. If the value can be inserted returns true in the returned
409
- //! pair boolean and fills "commit_data" that is meant to be used with
410
- //! the "insert_commit" function.
411
- //!
412
- //! <b>Complexity</b>: Average complexity is at most logarithmic.
413
- //!
414
- //! <b>Throws</b>: If the key_value_comp ordering function throws. Strong guarantee.
415
- //!
416
- //! <b>Notes</b>: This function is used to improve performance when constructing
417
- //! a value_type is expensive: if there is an equivalent value
418
- //! the constructed object must be discarded. Many times, the part of the
419
- //! node that is used to impose the order is much cheaper to construct
420
- //! than the value_type and this function offers the possibility to use that
421
- //! part to check if the insertion will be successful.
422
- //!
423
- //! If the check is successful, the user can construct the value_type and use
424
- //! "insert_commit" to insert the object in constant-time. This gives a total
425
- //! logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).
426
- //!
427
- //! "commit_data" remains valid for a subsequent "insert_commit" only if no more
428
- //! objects are inserted or erased from the set.
429
- template<class KeyType, class KeyValueCompare>
197
+ { return tree_type::insert_unique(hint, value); }
198
+
199
+ //! @copydoc ::boost::intrusive::rbtree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
200
+ template<class KeyType, class KeyTypeKeyCompare>
430
201
  std::pair<iterator, bool> insert_check
431
- (const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
432
- { return tree_.insert_unique_check(key, key_value_comp, commit_data); }
433
-
434
- //! <b>Requires</b>: key_value_comp must be a comparison function that induces
435
- //! the same strict weak ordering as value_compare. The difference is that
436
- //! key_value_comp compares an arbitrary key with the contained values.
437
- //!
438
- //! <b>Effects</b>: Checks if a value can be inserted in the set, using
439
- //! a user provided key instead of the value itself, using "hint"
440
- //! as a hint to where it will be inserted.
441
- //!
442
- //! <b>Returns</b>: If there is an equivalent value
443
- //! returns a pair containing an iterator to the already present value
444
- //! and false. If the value can be inserted returns true in the returned
445
- //! pair boolean and fills "commit_data" that is meant to be used with
446
- //! the "insert_commit" function.
447
- //!
448
- //! <b>Complexity</b>: Logarithmic in general, but it's amortized
449
- //! constant time if t is inserted immediately before hint.
450
- //!
451
- //! <b>Throws</b>: If the key_value_comp ordering function throws. Strong guarantee.
452
- //!
453
- //! <b>Notes</b>: This function is used to improve performance when constructing
454
- //! a value_type is expensive: if there is an equivalent value
455
- //! the constructed object must be discarded. Many times, the part of the
456
- //! constructing that is used to impose the order is much cheaper to construct
457
- //! than the value_type and this function offers the possibility to use that key
458
- //! to check if the insertion will be successful.
459
- //!
460
- //! If the check is successful, the user can construct the value_type and use
461
- //! "insert_commit" to insert the object in constant-time. This can give a total
462
- //! constant-time complexity to the insertion: check(O(1)) + commit(O(1)).
463
- //!
464
- //! "commit_data" remains valid for a subsequent "insert_commit" only if no more
465
- //! objects are inserted or erased from the set.
466
- 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::rbtree::insert_unique_check(const_iterator,const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
206
+ template<class KeyType, class KeyTypeKeyCompare>
467
207
  std::pair<iterator, bool> insert_check
468
208
  (const_iterator hint, const KeyType &key
469
- ,KeyValueCompare key_value_comp, insert_commit_data &commit_data)
470
- { return tree_.insert_unique_check(hint, key, key_value_comp, commit_data); }
471
-
472
- //! <b>Requires</b>: value must be an lvalue of type value_type. commit_data
473
- //! must have been obtained from a previous call to "insert_check".
474
- //! No objects should have been inserted or erased from the set between
475
- //! the "insert_check" that filled "commit_data" and the call to "insert_commit".
476
- //!
477
- //! <b>Effects</b>: Inserts the value in the set using the information obtained
478
- //! from the "commit_data" that a previous "insert_check" filled.
479
- //!
480
- //! <b>Returns</b>: An iterator to the newly inserted object.
481
- //!
482
- //! <b>Complexity</b>: Constant time.
483
- //!
484
- //! <b>Throws</b>: Nothing.
485
- //!
486
- //! <b>Notes</b>: This function has only sense if a "insert_check" has been
487
- //! previously executed to fill "commit_data". No value should be inserted or
488
- //! erased between the "insert_check" and "insert_commit" calls.
489
- iterator insert_commit(reference value, const insert_commit_data &commit_data)
490
- { return tree_.insert_unique_commit(value, commit_data); }
491
-
492
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
493
- //! of type value_type.
494
- //!
495
- //! <b>Effects</b>: Inserts a range into the set.
496
- //!
497
- //! <b>Complexity</b>: Insert range is in general O(N * log(N)), where N is the
498
- //! size of the range. However, it is linear in N if the range is already sorted
499
- //! by value_comp().
500
- //!
501
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
502
- //!
503
- //! <b>Note</b>: Does not affect the validity of iterators and references.
504
- //! 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::rbtree::insert_unique(Iterator,Iterator)
505
213
  template<class Iterator>
506
214
  void insert(Iterator b, Iterator e)
507
- { tree_.insert_unique(b, e); }
508
-
509
- //! <b>Requires</b>: value must be an lvalue, "pos" must be
510
- //! a valid iterator (or end) and must be the succesor of value
511
- //! once inserted according to the predicate. "value" must not be equal to any
512
- //! inserted key according to the predicate.
513
- //!
514
- //! <b>Effects</b>: Inserts x into the tree before "pos".
515
- //!
516
- //! <b>Complexity</b>: Constant time.
517
- //!
518
- //! <b>Throws</b>: Nothing.
519
- //!
520
- //! <b>Note</b>: This function does not check preconditions so if "pos" is not
521
- //! the successor of "value" or "value" is not unique tree ordering and uniqueness
522
- //! invariants will be broken respectively.
523
- //! This is a low-level function to be used only for performance reasons
524
- //! by advanced users.
525
- iterator insert_before(const_iterator pos, reference value)
526
- { return tree_.insert_before(pos, value); }
527
-
528
- //! <b>Requires</b>: value must be an lvalue, and it must be greater than
529
- //! any inserted key according to the predicate.
530
- //!
531
- //! <b>Effects</b>: Inserts x into the tree in the last position.
532
- //!
533
- //! <b>Complexity</b>: Constant time.
534
- //!
535
- //! <b>Throws</b>: Nothing.
536
- //!
537
- //! <b>Note</b>: This function does not check preconditions so if value is
538
- //! less than or equal to the greatest inserted key tree ordering invariant will be broken.
539
- //! This function is slightly more efficient than using "insert_before".
540
- //! This is a low-level function to be used only for performance reasons
541
- //! by advanced users.
542
- void push_back(reference value)
543
- { tree_.push_back(value); }
544
-
545
- //! <b>Requires</b>: value must be an lvalue, and it must be less
546
- //! than any inserted key according to the predicate.
547
- //!
548
- //! <b>Effects</b>: Inserts x into the tree in the first position.
549
- //!
550
- //! <b>Complexity</b>: Constant time.
551
- //!
552
- //! <b>Throws</b>: Nothing.
553
- //!
554
- //! <b>Note</b>: This function does not check preconditions so if value is
555
- //! greater than or equal to the the mimum inserted key tree ordering or uniqueness
556
- //! invariants will be broken.
557
- //! This function is slightly more efficient than using "insert_before".
558
- //! This is a low-level function to be used only for performance reasons
559
- //! by advanced users.
560
- void push_front(reference value)
561
- { tree_.push_front(value); }
562
-
563
- //! <b>Effects</b>: Erases the element pointed to by pos.
564
- //!
565
- //! <b>Complexity</b>: Average complexity is constant time.
566
- //!
567
- //! <b>Returns</b>: An iterator to the element after the erased element.
568
- //!
569
- //! <b>Throws</b>: Nothing.
570
- //!
571
- //! <b>Note</b>: Invalidates the iterators (but not the references)
572
- //! to the erased elements. No destructors are called.
573
- iterator erase(const_iterator i)
574
- { return tree_.erase(i); }
575
-
576
- //! <b>Effects</b>: Erases the range pointed to by b end e.
577
- //!
578
- //! <b>Complexity</b>: Average complexity for erase range is at most
579
- //! O(log(size() + N)), where N is the number of elements in the range.
580
- //!
581
- //! <b>Returns</b>: An iterator to the element after the erased elements.
582
- //!
583
- //! <b>Throws</b>: Nothing.
584
- //!
585
- //! <b>Note</b>: Invalidates the iterators (but not the references)
586
- //! to the erased elements. No destructors are called.
587
- iterator erase(const_iterator b, const_iterator e)
588
- { return tree_.erase(b, e); }
589
-
590
- //! <b>Effects</b>: Erases all the elements with the given value.
591
- //!
592
- //! <b>Returns</b>: The number of erased elements.
593
- //!
594
- //! <b>Complexity</b>: O(log(size()) + this->count(value)).
595
- //!
596
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
597
- //!
598
- //! <b>Note</b>: Invalidates the iterators (but not the references)
599
- //! to the erased elements. No destructors are called.
600
- size_type erase(const_reference value)
601
- { return tree_.erase(value); }
602
-
603
- //! <b>Effects</b>: Erases all the elements that compare equal with
604
- //! the given key and the given comparison functor.
605
- //!
606
- //! <b>Returns</b>: The number of erased elements.
607
- //!
608
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
609
- //!
610
- //! <b>Throws</b>: If the comp ordering function throws. Basic guarantee.
611
- //!
612
- //! <b>Note</b>: Invalidates the iterators (but not the references)
613
- //! to the erased elements. No destructors are called.
614
- template<class KeyType, class KeyValueCompare>
615
- size_type erase(const KeyType& key, KeyValueCompare comp
616
- /// @cond
617
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
618
- /// @endcond
619
- )
620
- { return tree_.erase(key, comp); }
621
-
622
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
623
- //!
624
- //! <b>Effects</b>: Erases the element pointed to by pos.
625
- //! Disposer::operator()(pointer) is called for the removed element.
626
- //!
627
- //! <b>Complexity</b>: Average complexity for erase element is constant time.
628
- //!
629
- //! <b>Returns</b>: An iterator to the element after the erased element.
630
- //!
631
- //! <b>Throws</b>: Nothing.
632
- //!
633
- //! <b>Note</b>: Invalidates the iterators
634
- //! to the erased elements.
635
- template<class Disposer>
636
- iterator erase_and_dispose(const_iterator i, Disposer disposer)
637
- { return tree_.erase_and_dispose(i, disposer); }
215
+ { tree_type::insert_unique(b, e); }
216
+
217
+ //! @copydoc ::boost::intrusive::rbtree::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); }
638
220
 
639
- #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
221
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
222
+ //! @copydoc ::boost::intrusive::rbtree::insert_before
223
+ iterator insert_before(const_iterator pos, reference value);
224
+
225
+ //! @copydoc ::boost::intrusive::rbtree::push_back
226
+ void push_back(reference value);
227
+
228
+ //! @copydoc ::boost::intrusive::rbtree::push_front
229
+ void push_front(reference value);
230
+
231
+ //! @copydoc ::boost::intrusive::rbtree::erase(const_iterator)
232
+ iterator erase(const_iterator i);
233
+
234
+ //! @copydoc ::boost::intrusive::rbtree::erase(const_iterator,const_iterator)
235
+ iterator erase(const_iterator b, const_iterator e);
236
+
237
+ //! @copydoc ::boost::intrusive::rbtree::erase(const key_type &)
238
+ size_type erase(const key_type &key);
239
+
240
+ //! @copydoc ::boost::intrusive::rbtree::erase(const KeyType&,KeyTypeKeyCompare)
241
+ template<class KeyType, class KeyTypeKeyCompare>
242
+ size_type erase(const KeyType& key, KeyTypeKeyCompare comp);
243
+
244
+ //! @copydoc ::boost::intrusive::rbtree::erase_and_dispose(const_iterator,Disposer)
640
245
  template<class Disposer>
641
- iterator erase_and_dispose(iterator i, Disposer disposer)
642
- { return this->erase_and_dispose(const_iterator(i), disposer); }
643
- #endif
246
+ iterator erase_and_dispose(const_iterator i, Disposer disposer);
644
247
 
645
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
646
- //!
647
- //! <b>Effects</b>: Erases the range pointed to by b end e.
648
- //! Disposer::operator()(pointer) is called for the removed elements.
649
- //!
650
- //! <b>Complexity</b>: Average complexity for erase range is at most
651
- //! O(log(size() + N)), where N is the number of elements in the range.
652
- //!
653
- //! <b>Returns</b>: An iterator to the element after the erased elements.
654
- //!
655
- //! <b>Throws</b>: Nothing.
656
- //!
657
- //! <b>Note</b>: Invalidates the iterators
658
- //! to the erased elements.
248
+ //! @copydoc ::boost::intrusive::rbtree::erase_and_dispose(const_iterator,const_iterator,Disposer)
659
249
  template<class Disposer>
660
- iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
661
- { return tree_.erase_and_dispose(b, e, disposer); }
662
-
663
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
664
- //!
665
- //! <b>Effects</b>: Erases all the elements with the given value.
666
- //! Disposer::operator()(pointer) is called for the removed elements.
667
- //!
668
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
669
- //!
670
- //! <b>Complexity</b>: O(log(size() + this->count(value)). Basic guarantee.
671
- //!
672
- //! <b>Throws</b>: Nothing.
673
- //!
674
- //! <b>Note</b>: Invalidates the iterators (but not the references)
675
- //! 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::rbtree::erase_and_dispose(const key_type &, Disposer)
676
253
  template<class Disposer>
677
- size_type erase_and_dispose(const_reference value, Disposer disposer)
678
- { return tree_.erase_and_dispose(value, disposer); }
679
-
680
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
681
- //!
682
- //! <b>Effects</b>: Erases all the elements with the given key.
683
- //! according to the comparison functor "comp".
684
- //! Disposer::operator()(pointer) is called for the removed elements.
685
- //!
686
- //! <b>Returns</b>: The number of erased elements.
687
- //!
688
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
689
- //!
690
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
691
- //!
692
- //! <b>Note</b>: Invalidates the iterators
693
- //! to the erased elements.
694
- template<class KeyType, class KeyValueCompare, class Disposer>
695
- size_type erase_and_dispose(const KeyType& key, KeyValueCompare comp, Disposer disposer
696
- /// @cond
697
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
698
- /// @endcond
699
- )
700
- { return tree_.erase_and_dispose(key, comp, disposer); }
701
-
702
- //! <b>Effects</b>: Erases all the elements of the container.
703
- //!
704
- //! <b>Complexity</b>: Linear to the number of elements on the container.
705
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
706
- //!
707
- //! <b>Throws</b>: Nothing.
708
- //!
709
- //! <b>Note</b>: Invalidates the iterators (but not the references)
710
- //! to the erased elements. No destructors are called.
711
- void clear()
712
- { return tree_.clear(); }
713
-
714
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
715
- //!
716
- //! <b>Effects</b>: Erases all the elements of the container.
717
- //!
718
- //! <b>Complexity</b>: Linear to the number of elements on the container.
719
- //! Disposer::operator()(pointer) is called for the removed elements.
720
- //!
721
- //! <b>Throws</b>: Nothing.
722
- //!
723
- //! <b>Note</b>: Invalidates the iterators (but not the references)
724
- //! 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::rbtree::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::rbtree::clear
261
+ void clear();
262
+
263
+ //! @copydoc ::boost::intrusive::rbtree::clear_and_dispose
725
264
  template<class Disposer>
726
- void clear_and_dispose(Disposer disposer)
727
- { return tree_.clear_and_dispose(disposer); }
728
-
729
- //! <b>Effects</b>: Returns the number of contained elements with the given key
730
- //!
731
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
732
- //! to number of objects with the given key.
733
- //!
734
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
735
- size_type count(const_reference value) const
736
- { return tree_.find(value) != end(); }
737
-
738
- //! <b>Effects</b>: Returns the number of contained elements with the same key
739
- //! compared with the given comparison functor.
740
- //!
741
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
742
- //! to number of objects with the given key.
743
- //!
744
- //! <b>Throws</b>: If comp ordering function throws.
745
- template<class KeyType, class KeyValueCompare>
746
- size_type count(const KeyType& key, KeyValueCompare comp) const
747
- { return tree_.find(key, comp) != end(); }
748
-
749
- //! <b>Effects</b>: Returns an iterator to the first element whose
750
- //! key is not less than k or end() if that element does not exist.
751
- //!
752
- //! <b>Complexity</b>: Logarithmic.
753
- //!
754
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
755
- iterator lower_bound(const_reference value)
756
- { return tree_.lower_bound(value); }
757
-
758
- //! <b>Requires</b>: comp must imply the same element order as
759
- //! value_compare. Usually key is the part of the value_type
760
- //! that is used in the ordering functor.
761
- //!
762
- //! <b>Effects</b>: Returns an iterator to the first element whose
763
- //! key according to the comparison functor is not less than k or
764
- //! end() if that element does not exist.
765
- //!
766
- //! <b>Complexity</b>: Logarithmic.
767
- //!
768
- //! <b>Throws</b>: If comp ordering function throws.
769
- //!
770
- //! <b>Note</b>: This function is used when constructing a value_type
771
- //! is expensive and the value_type can be compared with a cheaper
772
- //! key type. Usually this key is part of the value_type.
773
- template<class KeyType, class KeyValueCompare>
774
- iterator lower_bound(const KeyType& key, KeyValueCompare comp)
775
- { return tree_.lower_bound(key, comp); }
776
-
777
- //! <b>Effects</b>: Returns a const iterator to the first element whose
778
- //! key is not less than k or end() if that element does not exist.
779
- //!
780
- //! <b>Complexity</b>: Logarithmic.
781
- //!
782
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
783
- const_iterator lower_bound(const_reference value) const
784
- { return tree_.lower_bound(value); }
785
-
786
- //! <b>Requires</b>: comp must imply the same element order as
787
- //! value_compare. Usually key is the part of the value_type
788
- //! that is used in the ordering functor.
789
- //!
790
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
791
- //! key according to the comparison functor is not less than k or
792
- //! end() if that element does not exist.
793
- //!
794
- //! <b>Complexity</b>: Logarithmic.
795
- //!
796
- //! <b>Throws</b>: If comp ordering function throws.
797
- //!
798
- //! <b>Note</b>: This function is used when constructing a value_type
799
- //! is expensive and the value_type can be compared with a cheaper
800
- //! key type. Usually this key is part of the value_type.
801
- template<class KeyType, class KeyValueCompare>
802
- const_iterator lower_bound(const KeyType& key, KeyValueCompare comp) const
803
- { return tree_.lower_bound(key, comp); }
804
-
805
- //! <b>Effects</b>: Returns an iterator to the first element whose
806
- //! key is greater than k or end() if that element does not exist.
807
- //!
808
- //! <b>Complexity</b>: Logarithmic.
809
- //!
810
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
811
- iterator upper_bound(const_reference value)
812
- { return tree_.upper_bound(value); }
813
-
814
- //! <b>Requires</b>: comp must imply the same element order as
815
- //! value_compare. Usually key is the part of the value_type
816
- //! that is used in the ordering functor.
817
- //!
818
- //! <b>Effects</b>: Returns an iterator to the first element whose
819
- //! key according to the comparison functor is greater than key or
820
- //! end() if that element does not exist.
821
- //!
822
- //! <b>Complexity</b>: Logarithmic.
823
- //!
824
- //! <b>Throws</b>: If comp ordering function throws.
825
- //!
826
- //! <b>Note</b>: This function is used when constructing a value_type
827
- //! is expensive and the value_type can be compared with a cheaper
828
- //! key type. Usually this key is part of the value_type.
829
- template<class KeyType, class KeyValueCompare>
830
- iterator upper_bound(const KeyType& key, KeyValueCompare comp)
831
- { return tree_.upper_bound(key, comp); }
832
-
833
- //! <b>Effects</b>: Returns an iterator to the first element whose
834
- //! key is greater than k or end() if that element does not exist.
835
- //!
836
- //! <b>Complexity</b>: Logarithmic.
837
- //!
838
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
839
- const_iterator upper_bound(const_reference value) const
840
- { return tree_.upper_bound(value); }
841
-
842
- //! <b>Requires</b>: comp must imply the same element order as
843
- //! value_compare. Usually key is the part of the value_type
844
- //! that is used in the ordering functor.
845
- //!
846
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
847
- //! key according to the comparison functor is greater than key or
848
- //! end() if that element does not exist.
849
- //!
850
- //! <b>Complexity</b>: Logarithmic.
851
- //!
852
- //! <b>Throws</b>: If comp ordering function throws.
853
- //!
854
- //! <b>Note</b>: This function is used when constructing a value_type
855
- //! is expensive and the value_type can be compared with a cheaper
856
- //! key type. Usually this key is part of the value_type.
857
- template<class KeyType, class KeyValueCompare>
858
- const_iterator upper_bound(const KeyType& key, KeyValueCompare comp) const
859
- { return tree_.upper_bound(key, comp); }
860
-
861
- //! <b>Effects</b>: Finds an iterator to the first element whose value is
862
- //! "value" or end() if that element does not exist.
863
- //!
864
- //! <b>Complexity</b>: Logarithmic.
865
- //!
866
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
867
- iterator find(const_reference value)
868
- { return tree_.find(value); }
869
-
870
- //! <b>Requires</b>: comp must imply the same element order as
871
- //! value_compare. Usually key is the part of the value_type
872
- //! that is used in the ordering functor.
873
- //!
874
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
875
- //! "key" according to the comparison functor or end() if that element
876
- //! does not exist.
877
- //!
878
- //! <b>Complexity</b>: Logarithmic.
879
- //!
880
- //! <b>Throws</b>: If comp ordering function throws.
881
- //!
882
- //! <b>Note</b>: This function is used when constructing a value_type
883
- //! is expensive and the value_type can be compared with a cheaper
884
- //! key type. Usually this key is part of the value_type.
885
- template<class KeyType, class KeyValueCompare>
886
- iterator find(const KeyType& key, KeyValueCompare comp)
887
- { return tree_.find(key, comp); }
888
-
889
- //! <b>Effects</b>: Finds a const_iterator to the first element whose value is
890
- //! "value" or end() if that element does not exist.
891
- //!
892
- //! <b>Complexity</b>: Logarithmic.
893
- //!
894
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
895
- const_iterator find(const_reference value) const
896
- { return tree_.find(value); }
897
-
898
- //! <b>Requires</b>: comp must imply the same element order as
899
- //! value_compare. Usually key is the part of the value_type
900
- //! that is used in the ordering functor.
901
- //!
902
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
903
- //! "key" according to the comparison functor or end() if that element
904
- //! does not exist.
905
- //!
906
- //! <b>Complexity</b>: Logarithmic.
907
- //!
908
- //! <b>Throws</b>: If comp ordering function throws.
909
- //!
910
- //! <b>Note</b>: This function is used when constructing a value_type
911
- //! is expensive and the value_type can be compared with a cheaper
912
- //! key type. Usually this key is part of the value_type.
913
- template<class KeyType, class KeyValueCompare>
914
- const_iterator find(const KeyType& key, KeyValueCompare comp) const
915
- { return tree_.find(key, comp); }
916
-
917
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
918
- //! an empty range that indicates the position where those elements would be
919
- //! if they there is no elements with key k.
920
- //!
921
- //! <b>Complexity</b>: Logarithmic.
922
- //!
923
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
924
- std::pair<iterator,iterator> equal_range(const_reference value)
925
- { return tree_.equal_range(value); }
926
-
927
- //! <b>Requires</b>: comp must imply the same element order as
928
- //! value_compare. Usually key is the part of the value_type
929
- //! that is used in the ordering functor.
930
- //!
931
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
932
- //! according to the comparison functor or an empty range
933
- //! that indicates the position where those elements would be
934
- //! if they there is no elements with key k.
935
- //!
936
- //! <b>Complexity</b>: Logarithmic.
937
- //!
938
- //! <b>Throws</b>: If comp ordering function throws.
939
- //!
940
- //! <b>Note</b>: This function is used when constructing a value_type
941
- //! is expensive and the value_type can be compared with a cheaper
942
- //! key type. Usually this key is part of the value_type.
943
- template<class KeyType, class KeyValueCompare>
944
- std::pair<iterator,iterator> equal_range(const KeyType& key, KeyValueCompare comp)
945
- { return tree_.equal_range(key, comp); }
946
-
947
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
948
- //! an empty range that indicates the position where those elements would be
949
- //! if they there is no elements with key k.
950
- //!
951
- //! <b>Complexity</b>: Logarithmic.
952
- //!
953
- //! <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::rbtree::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::rbtree::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::rbtree::lower_bound(const key_type &)
281
+ iterator lower_bound(const key_type &key);
282
+
283
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::lower_bound(const key_type &)const
288
+ const_iterator lower_bound(const key_type &key) const;
289
+
290
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::upper_bound(const key_type &)
295
+ iterator upper_bound(const key_type &key);
296
+
297
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::upper_bound(const key_type &)const
302
+ const_iterator upper_bound(const key_type &key) const;
303
+
304
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::find(const key_type &)
309
+ iterator find(const key_type &key);
310
+
311
+ //! @copydoc ::boost::intrusive::rbtree::find(const KeyType&,KeyTypeKeyCompare)
312
+ template<class KeyType, class KeyTypeKeyCompare>
313
+ iterator find(const KeyType& key, KeyTypeKeyCompare comp);
314
+
315
+ //! @copydoc ::boost::intrusive::rbtree::find(const key_type &)const
316
+ const_iterator find(const key_type &key) const;
317
+
318
+ //! @copydoc ::boost::intrusive::rbtree::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
954
334
  std::pair<const_iterator, const_iterator>
955
- equal_range(const_reference value) const
956
- { return tree_.equal_range(value); }
957
-
958
- //! <b>Requires</b>: comp must imply the same element order as
959
- //! value_compare. Usually key is the part of the value_type
960
- //! that is used in the ordering functor.
961
- //!
962
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
963
- //! according to the comparison functor or an empty range
964
- //! that indicates the position where those elements would be
965
- //! if they there is no elements with key k.
966
- //!
967
- //! <b>Complexity</b>: Logarithmic.
968
- //!
969
- //! <b>Throws</b>: If comp ordering function throws.
970
- //!
971
- //! <b>Note</b>: This function is used when constructing a value_type
972
- //! is expensive and the value_type can be compared with a cheaper
973
- //! key type. Usually this key is part of the value_type.
974
- 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>
975
340
  std::pair<const_iterator, const_iterator>
976
- equal_range(const KeyType& key, KeyValueCompare comp) const
977
- { return tree_.equal_range(key, comp); }
978
-
979
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
980
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
981
- //!
982
- //! <b>Effects</b>: Returns an a pair with the following criteria:
983
- //!
984
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
985
- //!
986
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
987
- //!
988
- //! <b>Complexity</b>: Logarithmic.
989
- //!
990
- //! <b>Throws</b>: If the predicate throws.
991
- //!
992
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
993
- //! 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::rbtree::bounded_range(const key_type &,const key_type &,bool,bool)
994
347
  std::pair<iterator,iterator> bounded_range
995
- (const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed)
996
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
997
-
998
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
999
- //! ordering compatible with the strict weak ordering used to create the
1000
- //! the tree.
1001
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
1002
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
1003
- //!
1004
- //! <b>Effects</b>: Returns an a pair with the following criteria:
1005
- //!
1006
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
1007
- //!
1008
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
1009
- //!
1010
- //! <b>Complexity</b>: Logarithmic.
1011
- //!
1012
- //! <b>Throws</b>: If "comp" throws.
1013
- //!
1014
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1015
- //! and lower_bound for lower_key and upper_key.
1016
- 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::rbtree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)
351
+ template<class KeyType, class KeyTypeKeyCompare>
1017
352
  std::pair<iterator,iterator> bounded_range
1018
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed)
1019
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
1020
-
1021
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
1022
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
1023
- //!
1024
- //! <b>Effects</b>: Returns an a pair with the following criteria:
1025
- //!
1026
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
1027
- //!
1028
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
1029
- //!
1030
- //! <b>Complexity</b>: Logarithmic.
1031
- //!
1032
- //! <b>Throws</b>: If the predicate throws.
1033
- //!
1034
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1035
- //! and lower_bound for lower_value and upper_value.
1036
- std::pair<const_iterator, const_iterator>
1037
- bounded_range(const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed) const
1038
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
1039
-
1040
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
1041
- //! ordering compatible with the strict weak ordering used to create the
1042
- //! the tree.
1043
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
1044
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
1045
- //!
1046
- //! <b>Effects</b>: Returns an a pair with the following criteria:
1047
- //!
1048
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
1049
- //!
1050
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
1051
- //!
1052
- //! <b>Complexity</b>: Logarithmic.
1053
- //!
1054
- //! <b>Throws</b>: If "comp" throws.
1055
- //!
1056
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
1057
- //! and lower_bound for lower_key and upper_key.
1058
- 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::rbtree::bounded_range(const key_type &,const key_type &,bool,bool)const
1059
356
  std::pair<const_iterator, const_iterator>
1060
- bounded_range
1061
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed) const
1062
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
1063
-
1064
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
1065
- //! appropriate type. Otherwise the behavior is undefined.
1066
- //!
1067
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the set
1068
- //! that points to the value
1069
- //!
1070
- //! <b>Complexity</b>: Constant.
1071
- //!
1072
- //! <b>Throws</b>: Nothing.
1073
- //!
1074
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1075
- //! is stateless.
1076
- static iterator s_iterator_to(reference value)
1077
- { return tree_type::s_iterator_to(value); }
1078
-
1079
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
1080
- //! appropriate type. Otherwise the behavior is undefined.
1081
- //!
1082
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
1083
- //! set that points to the value
1084
- //!
1085
- //! <b>Complexity</b>: Constant.
1086
- //!
1087
- //! <b>Throws</b>: Nothing.
1088
- //!
1089
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1090
- //! is stateless.
1091
- static const_iterator s_iterator_to(const_reference value)
1092
- { return tree_type::s_iterator_to(value); }
1093
-
1094
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
1095
- //! appropriate type. Otherwise the behavior is undefined.
1096
- //!
1097
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the set
1098
- //! that points to the value
1099
- //!
1100
- //! <b>Complexity</b>: Constant.
1101
- //!
1102
- //! <b>Throws</b>: Nothing.
1103
- iterator iterator_to(reference value)
1104
- { return tree_.iterator_to(value); }
1105
-
1106
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
1107
- //! appropriate type. Otherwise the behavior is undefined.
1108
- //!
1109
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
1110
- //! set that points to the value
1111
- //!
1112
- //! <b>Complexity</b>: Constant.
1113
- //!
1114
- //! <b>Throws</b>: Nothing.
1115
- const_iterator iterator_to(const_reference value) const
1116
- { return tree_.iterator_to(value); }
1117
-
1118
- //! <b>Requires</b>: value shall not be in a set/multiset.
1119
- //!
1120
- //! <b>Effects</b>: init_node puts the hook of a value in a well-known default
1121
- //! state.
1122
- //!
1123
- //! <b>Throws</b>: Nothing.
1124
- //!
1125
- //! <b>Complexity</b>: Constant time.
1126
- //!
1127
- //! <b>Note</b>: This function puts the hook in the well-known default state
1128
- //! used by auto_unlink and safe hooks.
1129
- static void init_node(reference value)
1130
- { tree_type::init_node(value); }
1131
-
1132
- //! <b>Effects</b>: Unlinks the leftmost node from the tree.
1133
- //!
1134
- //! <b>Complexity</b>: Average complexity is constant time.
1135
- //!
1136
- //! <b>Throws</b>: Nothing.
1137
- //!
1138
- //! <b>Notes</b>: This function breaks the tree and the tree can
1139
- //! only be used for more unlink_leftmost_without_rebalance calls.
1140
- //! This function is normally used to achieve a step by step
1141
- //! controlled destruction of the tree.
1142
- pointer unlink_leftmost_without_rebalance()
1143
- { return tree_.unlink_leftmost_without_rebalance(); }
1144
-
1145
- //! <b>Requires</b>: replace_this must be a valid iterator of *this
1146
- //! and with_this must not be inserted in any tree.
1147
- //!
1148
- //! <b>Effects</b>: Replaces replace_this in its position in the
1149
- //! tree with with_this. The tree does not need to be rebalanced.
1150
- //!
1151
- //! <b>Complexity</b>: Constant.
1152
- //!
1153
- //! <b>Throws</b>: Nothing.
1154
- //!
1155
- //! <b>Note</b>: This function will break container ordering invariants if
1156
- //! with_this is not equivalent to *replace_this according to the
1157
- //! ordering rules. This function is faster than erasing and inserting
1158
- //! the node, since no rebalancing or comparison is needed.
1159
- void replace_node(iterator replace_this, reference with_this)
1160
- { 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;
1161
358
 
1162
- /// @cond
1163
- friend bool operator==(const set_impl &x, const set_impl &y)
1164
- { return x.tree_ == y.tree_; }
359
+ //! @copydoc ::boost::intrusive::rbtree::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;
1165
363
 
1166
- friend bool operator<(const set_impl &x, const set_impl &y)
1167
- { return x.tree_ < y.tree_; }
1168
- /// @endcond
364
+ //! @copydoc ::boost::intrusive::rbtree::s_iterator_to(reference)
365
+ static iterator s_iterator_to(reference value);
366
+
367
+ //! @copydoc ::boost::intrusive::rbtree::s_iterator_to(const_reference)
368
+ static const_iterator s_iterator_to(const_reference value);
369
+
370
+ //! @copydoc ::boost::intrusive::rbtree::iterator_to(reference)
371
+ iterator iterator_to(reference value);
372
+
373
+ //! @copydoc ::boost::intrusive::rbtree::iterator_to(const_reference)const
374
+ const_iterator iterator_to(const_reference value) const;
375
+
376
+ //! @copydoc ::boost::intrusive::rbtree::init_node(reference)
377
+ static void init_node(reference value);
378
+
379
+ //! @copydoc ::boost::intrusive::rbtree::unlink_leftmost_without_rebalance
380
+ pointer unlink_leftmost_without_rebalance();
381
+
382
+ //! @copydoc ::boost::intrusive::rbtree::replace_node
383
+ void replace_node(iterator replace_this, reference with_this);
384
+
385
+ //! @copydoc ::boost::intrusive::rbtree::remove_node
386
+ void remove_node(reference value);
387
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1169
388
  };
1170
389
 
1171
390
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
391
+
1172
392
  template<class T, class ...Options>
1173
- #else
1174
- template<class Config>
1175
- #endif
1176
- inline bool operator!=
1177
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1178
- (const set_impl<T, Options...> &x, const set_impl<T, Options...> &y)
1179
- #else
1180
- (const set_impl<Config> &x, const set_impl<Config> &y)
1181
- #endif
1182
- { return !(x == y); }
393
+ bool operator!= (const set_impl<T, Options...> &x, const set_impl<T, Options...> &y);
1183
394
 
1184
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1185
395
  template<class T, class ...Options>
1186
- #else
1187
- template<class Config>
1188
- #endif
1189
- inline bool operator>
1190
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1191
- (const set_impl<T, Options...> &x, const set_impl<T, Options...> &y)
1192
- #else
1193
- (const set_impl<Config> &x, const set_impl<Config> &y)
1194
- #endif
1195
- { return y < x; }
396
+ bool operator>(const set_impl<T, Options...> &x, const set_impl<T, Options...> &y);
1196
397
 
1197
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1198
398
  template<class T, class ...Options>
1199
- #else
1200
- template<class Config>
1201
- #endif
1202
- inline bool operator<=
1203
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1204
- (const set_impl<T, Options...> &x, const set_impl<T, Options...> &y)
1205
- #else
1206
- (const set_impl<Config> &x, const set_impl<Config> &y)
1207
- #endif
1208
- { return !(y < x); }
399
+ bool operator<=(const set_impl<T, Options...> &x, const set_impl<T, Options...> &y);
1209
400
 
1210
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1211
401
  template<class T, class ...Options>
1212
- #else
1213
- template<class Config>
1214
- #endif
1215
- inline bool operator>=
1216
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1217
- (const set_impl<T, Options...> &x, const set_impl<T, Options...> &y)
1218
- #else
1219
- (const set_impl<Config> &x, const set_impl<Config> &y)
1220
- #endif
1221
- { return !(x < y); }
402
+ bool operator>=(const set_impl<T, Options...> &x, const set_impl<T, Options...> &y);
1222
403
 
1223
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1224
404
  template<class T, class ...Options>
1225
- #else
1226
- template<class Config>
1227
- #endif
1228
- inline void swap
1229
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1230
- (set_impl<T, Options...> &x, set_impl<T, Options...> &y)
1231
- #else
1232
- (set_impl<Config> &x, set_impl<Config> &y)
1233
- #endif
1234
- { x.swap(y); }
405
+ void swap(set_impl<T, Options...> &x, set_impl<T, Options...> &y);
406
+
407
+ #endif //#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1235
408
 
1236
409
  //! Helper metafunction to define a \c set that yields to the same type when the
1237
410
  //! same options (either explicitly or implicitly) are used.
1238
411
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1239
412
  template<class T, class ...Options>
1240
413
  #else
1241
- template<class T, class O1 = none, class O2 = none
1242
- , 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>
1243
417
  #endif
1244
418
  struct make_set
1245
419
  {
1246
420
  /// @cond
1247
- typedef set_impl
1248
- < typename make_rbtree_opt<T,
421
+ typedef typename pack_options
422
+ < rbtree_defaults,
1249
423
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1250
- O1, O2, O3, O4
424
+ O1, O2, O3, O4, O5, O6
1251
425
  #else
1252
426
  Options...
1253
427
  #endif
1254
- >::type
1255
- > 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 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;
1256
441
  /// @endcond
1257
442
  typedef implementation_defined type;
1258
443
  };
1259
444
 
1260
445
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1261
446
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1262
- 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>
1263
448
  #else
1264
449
  template<class T, class ...Options>
1265
450
  #endif
1266
451
  class set
1267
452
  : public make_set<T,
1268
453
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1269
- O1, O2, O3, O4
454
+ O1, O2, O3, O4, O5, O6
1270
455
  #else
1271
456
  Options...
1272
457
  #endif
@@ -1275,7 +460,7 @@ class set
1275
460
  typedef typename make_set
1276
461
  <T,
1277
462
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1278
- O1, O2, O3, O4
463
+ O1, O2, O3, O4, O5, O6
1279
464
  #else
1280
465
  Options...
1281
466
  #endif
@@ -1283,7 +468,7 @@ class set
1283
468
 
1284
469
  BOOST_MOVABLE_BUT_NOT_COPYABLE(set)
1285
470
  public:
1286
- typedef typename Base::value_compare value_compare;
471
+ typedef typename Base::key_compare key_compare;
1287
472
  typedef typename Base::value_traits value_traits;
1288
473
  typedef typename Base::iterator iterator;
1289
474
  typedef typename Base::const_iterator const_iterator;
@@ -1291,24 +476,32 @@ class set
1291
476
  //Assert if passed value traits are compatible with the type
1292
477
  BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
1293
478
 
1294
- set( const value_compare &cmp = value_compare()
1295
- , const value_traits &v_traits = value_traits())
479
+ explicit set( const key_compare &cmp = key_compare()
480
+ , const value_traits &v_traits = value_traits())
1296
481
  : Base(cmp, v_traits)
1297
482
  {}
1298
483
 
1299
484
  template<class Iterator>
1300
485
  set( Iterator b, Iterator e
1301
- , const value_compare &cmp = value_compare()
486
+ , const key_compare &cmp = key_compare()
1302
487
  , const value_traits &v_traits = value_traits())
1303
488
  : Base(b, e, cmp, v_traits)
1304
489
  {}
1305
490
 
1306
491
  set(BOOST_RV_REF(set) x)
1307
- : Base(::boost::move(static_cast<Base&>(x)))
492
+ : Base(BOOST_MOVE_BASE(Base, x))
1308
493
  {}
1309
494
 
1310
495
  set& operator=(BOOST_RV_REF(set) x)
1311
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
496
+ { return static_cast<set &>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
497
+
498
+ template <class Cloner, class Disposer>
499
+ void clone_from(const 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(set) src, Cloner cloner, Disposer disposer)
504
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
1312
505
 
1313
506
  static set &container_from_end_iterator(iterator end_iterator)
1314
507
  { return static_cast<set &>(Base::container_from_end_iterator(end_iterator)); }
@@ -1339,12 +532,15 @@ class set
1339
532
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1340
533
  template<class T, class ...Options>
1341
534
  #else
1342
- template<class Config>
535
+ template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
1343
536
  #endif
1344
537
  class multiset_impl
538
+ #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
539
+ : public bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, HeaderHolder>
540
+ #endif
1345
541
  {
1346
542
  /// @cond
1347
- typedef rbtree_impl<Config> tree_type;
543
+ typedef bstree_impl<ValueTraits, VoidOrKeyOfValue, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, HeaderHolder> tree_type;
1348
544
 
1349
545
  BOOST_MOVABLE_BUT_NOT_COPYABLE(multiset_impl)
1350
546
  typedef tree_type implementation_defined;
@@ -1352,6 +548,8 @@ class multiset_impl
1352
548
 
1353
549
  public:
1354
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;
1355
553
  typedef typename implementation_defined::value_traits value_traits;
1356
554
  typedef typename implementation_defined::pointer pointer;
1357
555
  typedef typename implementation_defined::const_pointer const_pointer;
@@ -1372,1107 +570,333 @@ class multiset_impl
1372
570
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
1373
571
  typedef typename implementation_defined::node_algorithms node_algorithms;
1374
572
 
1375
- static const bool constant_time_size = Config::constant_time_size;
1376
- //static const bool stateful_value_traits = detail::is_stateful_value_traits<real_value_traits>::value;
1377
-
1378
- /// @cond
1379
- private:
1380
- tree_type tree_;
1381
-
1382
- protected:
1383
- node &prot_header_node(){ return tree_.prot_header_node(); }
1384
- node const &prot_header_node() const{ return tree_.prot_header_node(); }
1385
- void prot_set_size(size_type s){ tree_.prot_set_size(s); }
1386
- value_compare &prot_comp(){ return tree_.prot_comp(); }
1387
- /// @endcond
573
+ static const bool constant_time_size = tree_type::constant_time_size;
1388
574
 
1389
575
  public:
1390
- //! <b>Effects</b>: Constructs an empty multiset.
1391
- //!
1392
- //! <b>Complexity</b>: Constant.
1393
- //!
1394
- //! <b>Throws</b>: If value_traits::node_traits::node
1395
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1396
- //! or the copy constructor/operator() of the value_compare object throws.
1397
- explicit multiset_impl( const value_compare &cmp = value_compare()
576
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(const key_compare &,const value_traits &)
577
+ explicit multiset_impl( const key_compare &cmp = key_compare()
1398
578
  , const value_traits &v_traits = value_traits())
1399
- : tree_(cmp, v_traits)
579
+ : tree_type(cmp, v_traits)
1400
580
  {}
1401
581
 
1402
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
1403
- //! cmp must be a comparison function that induces a strict weak ordering.
1404
- //!
1405
- //! <b>Effects</b>: Constructs an empty multiset and inserts elements from
1406
- //! [b, e).
1407
- //!
1408
- //! <b>Complexity</b>: Linear in N if [b, e) is already sorted using
1409
- //! comp and otherwise N * log N, where N is the distance between first and last
1410
- //!
1411
- //! <b>Throws</b>: If value_traits::node_traits::node
1412
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1413
- //! or the copy constructor/operator() of the value_compare object throws.
582
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(bool,Iterator,Iterator,const key_compare &,const value_traits &)
1414
583
  template<class Iterator>
1415
584
  multiset_impl( Iterator b, Iterator e
1416
- , const value_compare &cmp = value_compare()
585
+ , const key_compare &cmp = key_compare()
1417
586
  , const value_traits &v_traits = value_traits())
1418
- : tree_(false, b, e, cmp, v_traits)
587
+ : tree_type(false, b, e, cmp, v_traits)
1419
588
  {}
1420
589
 
1421
- //! <b>Effects</b>: to-do
1422
- //!
590
+ //! @copydoc ::boost::intrusive::rbtree::rbtree(rbtree &&)
1423
591
  multiset_impl(BOOST_RV_REF(multiset_impl) x)
1424
- : tree_(::boost::move(x.tree_))
592
+ : tree_type(BOOST_MOVE_BASE(tree_type, x))
1425
593
  {}
1426
594
 
1427
- //! <b>Effects</b>: to-do
1428
- //!
595
+ //! @copydoc ::boost::intrusive::rbtree::operator=(rbtree &&)
1429
596
  multiset_impl& operator=(BOOST_RV_REF(multiset_impl) x)
1430
- { tree_ = ::boost::move(x.tree_); return *this; }
1431
-
1432
- //! <b>Effects</b>: Detaches all elements from this. The objects in the set
1433
- //! are not deleted (i.e. no destructors are called).
1434
- //!
1435
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1436
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
1437
- //!
1438
- //! <b>Throws</b>: Nothing.
1439
- ~multiset_impl()
1440
- {}
597
+ { return static_cast<multiset_impl&>(tree_type::operator=(BOOST_MOVE_BASE(tree_type, x))); }
598
+
599
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
600
+ //! @copydoc ::boost::intrusive::rbtree::~rbtree()
601
+ ~multiset_impl();
602
+
603
+ //! @copydoc ::boost::intrusive::rbtree::begin()
604
+ iterator begin();
605
+
606
+ //! @copydoc ::boost::intrusive::rbtree::begin()const
607
+ const_iterator begin() const;
608
+
609
+ //! @copydoc ::boost::intrusive::rbtree::cbegin()const
610
+ const_iterator cbegin() const;
611
+
612
+ //! @copydoc ::boost::intrusive::rbtree::end()
613
+ iterator end();
614
+
615
+ //! @copydoc ::boost::intrusive::rbtree::end()const
616
+ const_iterator end() const;
617
+
618
+ //! @copydoc ::boost::intrusive::rbtree::cend()const
619
+ const_iterator cend() const;
620
+
621
+ //! @copydoc ::boost::intrusive::rbtree::rbegin()
622
+ reverse_iterator rbegin();
623
+
624
+ //! @copydoc ::boost::intrusive::rbtree::rbegin()const
625
+ const_reverse_iterator rbegin() const;
626
+
627
+ //! @copydoc ::boost::intrusive::rbtree::crbegin()const
628
+ const_reverse_iterator crbegin() const;
629
+
630
+ //! @copydoc ::boost::intrusive::rbtree::rend()
631
+ reverse_iterator rend();
632
+
633
+ //! @copydoc ::boost::intrusive::rbtree::rend()const
634
+ const_reverse_iterator rend() const;
635
+
636
+ //! @copydoc ::boost::intrusive::rbtree::crend()const
637
+ const_reverse_iterator crend() const;
638
+
639
+ //! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(iterator)
640
+ static multiset_impl &container_from_end_iterator(iterator end_iterator);
641
+
642
+ //! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(const_iterator)
643
+ static const multiset_impl &container_from_end_iterator(const_iterator end_iterator);
644
+
645
+ //! @copydoc ::boost::intrusive::rbtree::container_from_iterator(iterator)
646
+ static multiset_impl &container_from_iterator(iterator it);
647
+
648
+ //! @copydoc ::boost::intrusive::rbtree::container_from_iterator(const_iterator)
649
+ static const multiset_impl &container_from_iterator(const_iterator it);
650
+
651
+ //! @copydoc ::boost::intrusive::rbtree::key_comp()const
652
+ key_compare key_comp() const;
653
+
654
+ //! @copydoc ::boost::intrusive::rbtree::value_comp()const
655
+ value_compare value_comp() const;
1441
656
 
1442
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the multiset.
1443
- //!
1444
- //! <b>Complexity</b>: Constant.
1445
- //!
1446
- //! <b>Throws</b>: Nothing.
1447
- iterator begin()
1448
- { return tree_.begin(); }
1449
-
1450
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the multiset.
1451
- //!
1452
- //! <b>Complexity</b>: Constant.
1453
- //!
1454
- //! <b>Throws</b>: Nothing.
1455
- const_iterator begin() const
1456
- { return tree_.begin(); }
1457
-
1458
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning of the multiset.
1459
- //!
1460
- //! <b>Complexity</b>: Constant.
1461
- //!
1462
- //! <b>Throws</b>: Nothing.
1463
- const_iterator cbegin() const
1464
- { return tree_.cbegin(); }
1465
-
1466
- //! <b>Effects</b>: Returns an iterator pointing to the end of the multiset.
1467
- //!
1468
- //! <b>Complexity</b>: Constant.
1469
- //!
1470
- //! <b>Throws</b>: Nothing.
1471
- iterator end()
1472
- { return tree_.end(); }
1473
-
1474
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the multiset.
1475
- //!
1476
- //! <b>Complexity</b>: Constant.
1477
- //!
1478
- //! <b>Throws</b>: Nothing.
1479
- const_iterator end() const
1480
- { return tree_.end(); }
1481
-
1482
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the multiset.
1483
- //!
1484
- //! <b>Complexity</b>: Constant.
1485
- //!
1486
- //! <b>Throws</b>: Nothing.
1487
- const_iterator cend() const
1488
- { return tree_.cend(); }
1489
-
1490
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning of the
1491
- //! reversed multiset.
1492
- //!
1493
- //! <b>Complexity</b>: Constant.
1494
- //!
1495
- //! <b>Throws</b>: Nothing.
1496
- reverse_iterator rbegin()
1497
- { return tree_.rbegin(); }
1498
-
1499
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1500
- //! of the reversed multiset.
1501
- //!
1502
- //! <b>Complexity</b>: Constant.
1503
- //!
1504
- //! <b>Throws</b>: Nothing.
1505
- const_reverse_iterator rbegin() const
1506
- { return tree_.rbegin(); }
1507
-
1508
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1509
- //! of the reversed multiset.
1510
- //!
1511
- //! <b>Complexity</b>: Constant.
1512
- //!
1513
- //! <b>Throws</b>: Nothing.
1514
- const_reverse_iterator crbegin() const
1515
- { return tree_.crbegin(); }
1516
-
1517
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
1518
- //! of the reversed multiset.
1519
- //!
1520
- //! <b>Complexity</b>: Constant.
1521
- //!
1522
- //! <b>Throws</b>: Nothing.
1523
- reverse_iterator rend()
1524
- { return tree_.rend(); }
1525
-
1526
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1527
- //! of the reversed multiset.
1528
- //!
1529
- //! <b>Complexity</b>: Constant.
1530
- //!
1531
- //! <b>Throws</b>: Nothing.
1532
- const_reverse_iterator rend() const
1533
- { return tree_.rend(); }
1534
-
1535
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1536
- //! of the reversed multiset.
1537
- //!
1538
- //! <b>Complexity</b>: Constant.
1539
- //!
1540
- //! <b>Throws</b>: Nothing.
1541
- const_reverse_iterator crend() const
1542
- { return tree_.crend(); }
1543
-
1544
- //! <b>Precondition</b>: end_iterator must be a valid end iterator
1545
- //! of multiset.
1546
- //!
1547
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the end iterator
1548
- //!
1549
- //! <b>Throws</b>: Nothing.
1550
- //!
1551
- //! <b>Complexity</b>: Constant.
1552
- static multiset_impl &container_from_end_iterator(iterator end_iterator)
1553
- {
1554
- return *detail::parent_from_member<multiset_impl, tree_type>
1555
- ( &tree_type::container_from_end_iterator(end_iterator)
1556
- , &multiset_impl::tree_);
1557
- }
1558
-
1559
- //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
1560
- //! of multiset.
1561
- //!
1562
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the end iterator
1563
- //!
1564
- //! <b>Throws</b>: Nothing.
1565
- //!
1566
- //! <b>Complexity</b>: Constant.
1567
- static const multiset_impl &container_from_end_iterator(const_iterator end_iterator)
1568
- {
1569
- return *detail::parent_from_member<multiset_impl, tree_type>
1570
- ( &tree_type::container_from_end_iterator(end_iterator)
1571
- , &multiset_impl::tree_);
1572
- }
1573
-
1574
- //! <b>Precondition</b>: it must be a valid iterator of multiset.
1575
- //!
1576
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the iterator
1577
- //!
1578
- //! <b>Throws</b>: Nothing.
1579
- //!
1580
- //! <b>Complexity</b>: Logarithmic.
1581
- static multiset_impl &container_from_iterator(iterator it)
1582
- {
1583
- return *detail::parent_from_member<multiset_impl, tree_type>
1584
- ( &tree_type::container_from_iterator(it)
1585
- , &multiset_impl::tree_);
1586
- }
1587
-
1588
- //! <b>Precondition</b>: it must be a valid const_iterator of multiset.
1589
- //!
1590
- //! <b>Effects</b>: Returns a const reference to the multiset associated to the iterator
1591
- //!
1592
- //! <b>Throws</b>: Nothing.
1593
- //!
1594
- //! <b>Complexity</b>: Logarithmic.
1595
- static const multiset_impl &container_from_iterator(const_iterator it)
1596
- {
1597
- return *detail::parent_from_member<multiset_impl, tree_type>
1598
- ( &tree_type::container_from_iterator(it)
1599
- , &multiset_impl::tree_);
1600
- }
1601
-
1602
- //! <b>Effects</b>: Returns the key_compare object used by the multiset.
1603
- //!
1604
- //! <b>Complexity</b>: Constant.
1605
- //!
1606
- //! <b>Throws</b>: If key_compare copy-constructor throws.
1607
- key_compare key_comp() const
1608
- { return tree_.value_comp(); }
1609
-
1610
- //! <b>Effects</b>: Returns the value_compare object used by the multiset.
1611
- //!
1612
- //! <b>Complexity</b>: Constant.
1613
- //!
1614
- //! <b>Throws</b>: If value_compare copy-constructor throws.
1615
- value_compare value_comp() const
1616
- { return tree_.value_comp(); }
1617
-
1618
- //! <b>Effects</b>: Returns true if the container is empty.
1619
- //!
1620
- //! <b>Complexity</b>: Constant.
1621
- //!
1622
- //! <b>Throws</b>: Nothing.
1623
- bool empty() const
1624
- { return tree_.empty(); }
1625
-
1626
- //! <b>Effects</b>: Returns the number of elements stored in the multiset.
1627
- //!
1628
- //! <b>Complexity</b>: Linear to elements contained in *this if,
1629
- //! constant-time size option is enabled. Constant-time otherwise.
1630
- //!
1631
- //! <b>Throws</b>: Nothing.
1632
- size_type size() const
1633
- { return tree_.size(); }
1634
-
1635
- //! <b>Effects</b>: Swaps the contents of two multisets.
1636
- //!
1637
- //! <b>Complexity</b>: Constant.
1638
- //!
1639
- //! <b>Throws</b>: If the swap() call for the comparison functor
1640
- //! found using ADL throws. Strong guarantee.
1641
- void swap(multiset_impl& other)
1642
- { tree_.swap(other.tree_); }
1643
-
1644
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1645
- //! Cloner should yield to nodes equivalent to the original nodes.
1646
- //!
1647
- //! <b>Effects</b>: Erases all the elements from *this
1648
- //! calling Disposer::operator()(pointer), clones all the
1649
- //! elements from src calling Cloner::operator()(const_reference )
1650
- //! and inserts them on *this. Copies the predicate from the source container.
1651
- //!
1652
- //! If cloner throws, all cloned elements are unlinked and disposed
1653
- //! calling Disposer::operator()(pointer).
1654
- //!
1655
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
1656
- //!
1657
- //! <b>Throws</b>: If cloner throws or predicate copy assignment throws. Basic guarantee.
657
+ //! @copydoc ::boost::intrusive::rbtree::empty()const
658
+ bool empty() const;
659
+
660
+ //! @copydoc ::boost::intrusive::rbtree::size()const
661
+ size_type size() const;
662
+
663
+ //! @copydoc ::boost::intrusive::rbtree::swap
664
+ void swap(multiset_impl& other);
665
+
666
+ //! @copydoc ::boost::intrusive::rbtree::clone_from(const rbtree&,Cloner,Disposer)
667
+ template <class Cloner, class Disposer>
668
+ void clone_from(const 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::rbtree::clone_from(rbtree&&,Cloner,Disposer)
1658
677
  template <class Cloner, class Disposer>
1659
- void clone_from(const multiset_impl &src, Cloner cloner, Disposer disposer)
1660
- { tree_.clone_from(src.tree_, cloner, disposer); }
1661
-
1662
- //! <b>Requires</b>: value must be an lvalue
1663
- //!
1664
- //! <b>Effects</b>: Inserts value into the multiset.
1665
- //!
1666
- //! <b>Returns</b>: An iterator that points to the position where the new
1667
- //! element was inserted.
1668
- //!
1669
- //! <b>Complexity</b>: Average complexity for insert element is at
1670
- //! most logarithmic.
1671
- //!
1672
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
1673
- //!
1674
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1675
- //! No copy-constructors are called.
678
+ void clone_from(BOOST_RV_REF(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::rbtree::insert_equal(reference)
1676
682
  iterator insert(reference value)
1677
- { return tree_.insert_equal(value); }
1678
-
1679
- //! <b>Requires</b>: value must be an lvalue
1680
- //!
1681
- //! <b>Effects</b>: Inserts x into the multiset, using pos as a hint to
1682
- //! where it will be inserted.
1683
- //!
1684
- //! <b>Returns</b>: An iterator that points to the position where the new
1685
- //! element was inserted.
1686
- //!
1687
- //! <b>Complexity</b>: Logarithmic in general, but it is amortized
1688
- //! constant time if t is inserted immediately before hint.
1689
- //!
1690
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Strong guarantee.
1691
- //!
1692
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1693
- //! No copy-constructors are called.
683
+ { return tree_type::insert_equal(value); }
684
+
685
+ //! @copydoc ::boost::intrusive::rbtree::insert_equal(const_iterator,reference)
1694
686
  iterator insert(const_iterator hint, reference value)
1695
- { return tree_.insert_equal(hint, value); }
1696
-
1697
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
1698
- //! of type value_type.
1699
- //!
1700
- //! <b>Effects</b>: Inserts a range into the multiset.
1701
- //!
1702
- //! <b>Returns</b>: An iterator that points to the position where the new
1703
- //! element was inserted.
1704
- //!
1705
- //! <b>Complexity</b>: Insert range is in general O(N * log(N)), where N is the
1706
- //! size of the range. However, it is linear in N if the range is already sorted
1707
- //! by value_comp().
1708
- //!
1709
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1710
- //!
1711
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1712
- //! No copy-constructors are called.
687
+ { return tree_type::insert_equal(hint, value); }
688
+
689
+ //! @copydoc ::boost::intrusive::rbtree::insert_equal(Iterator,Iterator)
1713
690
  template<class Iterator>
1714
691
  void insert(Iterator b, Iterator e)
1715
- { tree_.insert_equal(b, e); }
1716
-
1717
- //! <b>Requires</b>: value must be an lvalue, "pos" must be
1718
- //! a valid iterator (or end) and must be the succesor of value
1719
- //! once inserted according to the predicate
1720
- //!
1721
- //! <b>Effects</b>: Inserts x into the tree before "pos".
1722
- //!
1723
- //! <b>Complexity</b>: Constant time.
1724
- //!
1725
- //! <b>Throws</b>: Nothing.
1726
- //!
1727
- //! <b>Note</b>: This function does not check preconditions so if "pos" is not
1728
- //! the successor of "value" tree ordering invariant will be broken.
1729
- //! This is a low-level function to be used only for performance reasons
1730
- //! by advanced users.
1731
- iterator insert_before(const_iterator pos, reference value)
1732
- { return tree_.insert_before(pos, value); }
1733
-
1734
- //! <b>Requires</b>: value must be an lvalue, and it must be no less
1735
- //! than the greatest inserted key
1736
- //!
1737
- //! <b>Effects</b>: Inserts x into the tree in the last position.
1738
- //!
1739
- //! <b>Complexity</b>: Constant time.
1740
- //!
1741
- //! <b>Throws</b>: Nothing.
1742
- //!
1743
- //! <b>Note</b>: This function does not check preconditions so if value is
1744
- //! less than the greatest inserted key tree ordering invariant will be broken.
1745
- //! This function is slightly more efficient than using "insert_before".
1746
- //! This is a low-level function to be used only for performance reasons
1747
- //! by advanced users.
1748
- void push_back(reference value)
1749
- { tree_.push_back(value); }
1750
-
1751
- //! <b>Requires</b>: value must be an lvalue, and it must be no greater
1752
- //! than the minimum inserted key
1753
- //!
1754
- //! <b>Effects</b>: Inserts x into the tree in the first position.
1755
- //!
1756
- //! <b>Complexity</b>: Constant time.
1757
- //!
1758
- //! <b>Throws</b>: Nothing.
1759
- //!
1760
- //! <b>Note</b>: This function does not check preconditions so if value is
1761
- //! greater than the minimum inserted key tree ordering invariant will be broken.
1762
- //! This function is slightly more efficient than using "insert_before".
1763
- //! This is a low-level function to be used only for performance reasons
1764
- //! by advanced users.
1765
- void push_front(reference value)
1766
- { tree_.push_front(value); }
1767
-
1768
- //! <b>Effects</b>: Erases the element pointed to by pos.
1769
- //!
1770
- //! <b>Complexity</b>: Average complexity is constant time.
1771
- //!
1772
- //! <b>Returns</b>: An iterator to the element after the erased element.
1773
- //!
1774
- //! <b>Throws</b>: Nothing.
1775
- //!
1776
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1777
- //! to the erased elements. No destructors are called.
1778
- iterator erase(const_iterator i)
1779
- { return tree_.erase(i); }
1780
-
1781
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1782
- //!
1783
- //! <b>Returns</b>: An iterator to the element after the erased elements.
1784
- //!
1785
- //! <b>Complexity</b>: Average complexity for erase range is at most
1786
- //! O(log(size() + N)), where N is the number of elements in the range.
1787
- //!
1788
- //! <b>Throws</b>: Nothing.
1789
- //!
1790
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1791
- //! to the erased elements. No destructors are called.
1792
- iterator erase(const_iterator b, iterator e)
1793
- { return tree_.erase(b, e); }
1794
-
1795
- //! <b>Effects</b>: Erases all the elements with the given value.
1796
- //!
1797
- //! <b>Returns</b>: The number of erased elements.
1798
- //!
1799
- //! <b>Complexity</b>: O(log(size() + this->count(value)).
1800
- //!
1801
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1802
- //!
1803
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1804
- //! to the erased elements. No destructors are called.
1805
- size_type erase(const_reference value)
1806
- { return tree_.erase(value); }
1807
-
1808
- //! <b>Effects</b>: Erases all the elements that compare equal with
1809
- //! the given key and the given comparison functor.
1810
- //!
1811
- //! <b>Returns</b>: The number of erased elements.
1812
- //!
1813
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
1814
- //!
1815
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
1816
- //!
1817
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1818
- //! to the erased elements. No destructors are called.
1819
- template<class KeyType, class KeyValueCompare>
1820
- size_type erase(const KeyType& key, KeyValueCompare comp
1821
- /// @cond
1822
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
1823
- /// @endcond
1824
- )
1825
- { return tree_.erase(key, comp); }
1826
-
1827
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1828
- //!
1829
- //! <b>Returns</b>: An iterator to the element after the erased element.
1830
- //!
1831
- //! <b>Effects</b>: Erases the element pointed to by pos.
1832
- //! Disposer::operator()(pointer) is called for the removed element.
1833
- //!
1834
- //! <b>Complexity</b>: Average complexity for erase element is constant time.
1835
- //!
1836
- //! <b>Throws</b>: Nothing.
1837
- //!
1838
- //! <b>Note</b>: Invalidates the iterators
1839
- //! to the erased elements.
1840
- template<class Disposer>
1841
- iterator erase_and_dispose(const_iterator i, Disposer disposer)
1842
- { 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::rbtree::insert_before
696
+ iterator insert_before(const_iterator pos, reference value);
697
+
698
+ //! @copydoc ::boost::intrusive::rbtree::push_back
699
+ void push_back(reference value);
700
+
701
+ //! @copydoc ::boost::intrusive::rbtree::push_front
702
+ void push_front(reference value);
1843
703
 
1844
- #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
704
+ //! @copydoc ::boost::intrusive::rbtree::erase(const_iterator)
705
+ iterator erase(const_iterator i);
706
+
707
+ //! @copydoc ::boost::intrusive::rbtree::erase(const_iterator,const_iterator)
708
+ iterator erase(const_iterator b, const_iterator e);
709
+
710
+ //! @copydoc ::boost::intrusive::rbtree::erase(const key_type &)
711
+ size_type erase(const key_type &key);
712
+
713
+ //! @copydoc ::boost::intrusive::rbtree::erase(const KeyType&,KeyTypeKeyCompare)
714
+ template<class KeyType, class KeyTypeKeyCompare>
715
+ size_type erase(const KeyType& key, KeyTypeKeyCompare comp);
716
+
717
+ //! @copydoc ::boost::intrusive::rbtree::erase_and_dispose(const_iterator,Disposer)
1845
718
  template<class Disposer>
1846
- iterator erase_and_dispose(iterator i, Disposer disposer)
1847
- { return this->erase_and_dispose(const_iterator(i), disposer); }
1848
- #endif
719
+ iterator erase_and_dispose(const_iterator i, Disposer disposer);
1849
720
 
1850
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1851
- //!
1852
- //! <b>Returns</b>: An iterator to the element after the erased elements.
1853
- //!
1854
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1855
- //! Disposer::operator()(pointer) is called for the removed elements.
1856
- //!
1857
- //! <b>Complexity</b>: Average complexity for erase range is at most
1858
- //! O(log(size() + N)), where N is the number of elements in the range.
1859
- //!
1860
- //! <b>Throws</b>: Nothing.
1861
- //!
1862
- //! <b>Note</b>: Invalidates the iterators
1863
- //! to the erased elements.
721
+ //! @copydoc ::boost::intrusive::rbtree::erase_and_dispose(const_iterator,const_iterator,Disposer)
1864
722
  template<class Disposer>
1865
- iterator erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
1866
- { return tree_.erase_and_dispose(b, e, disposer); }
1867
-
1868
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1869
- //!
1870
- //! <b>Effects</b>: Erases all the elements with the given value.
1871
- //! Disposer::operator()(pointer) is called for the removed elements.
1872
- //!
1873
- //! <b>Returns</b>: The number of erased elements.
1874
- //!
1875
- //! <b>Complexity</b>: O(log(size() + this->count(value)).
1876
- //!
1877
- //! <b>Throws</b>: If the internal value_compare ordering function throws. Basic guarantee.
1878
- //!
1879
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1880
- //! 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::rbtree::erase_and_dispose(const key_type &, Disposer)
1881
726
  template<class Disposer>
1882
- size_type erase_and_dispose(const_reference value, Disposer disposer)
1883
- { return tree_.erase_and_dispose(value, disposer); }
1884
-
1885
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1886
- //!
1887
- //! <b>Effects</b>: Erases all the elements with the given key.
1888
- //! according to the comparison functor "comp".
1889
- //! Disposer::operator()(pointer) is called for the removed elements.
1890
- //!
1891
- //! <b>Returns</b>: The number of erased elements.
1892
- //!
1893
- //! <b>Complexity</b>: O(log(size() + this->count(key, comp)).
1894
- //!
1895
- //! <b>Throws</b>: If comp ordering function throws. Basic guarantee.
1896
- //!
1897
- //! <b>Note</b>: Invalidates the iterators
1898
- //! to the erased elements.
1899
- template<class KeyType, class KeyValueCompare, class Disposer>
1900
- size_type erase_and_dispose(const KeyType& key, KeyValueCompare comp, Disposer disposer
1901
- /// @cond
1902
- , typename detail::enable_if_c<!detail::is_convertible<KeyValueCompare, const_iterator>::value >::type * = 0
1903
- /// @endcond
1904
- )
1905
- { return tree_.erase_and_dispose(key, comp, disposer); }
1906
-
1907
- //! <b>Effects</b>: Erases all the elements of the container.
1908
- //!
1909
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1910
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
1911
- //!
1912
- //! <b>Throws</b>: Nothing.
1913
- //!
1914
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1915
- //! to the erased elements. No destructors are called.
1916
- void clear()
1917
- { return tree_.clear(); }
1918
-
1919
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1920
- //!
1921
- //! <b>Effects</b>: Erases all the elements of the container.
1922
- //!
1923
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1924
- //! Disposer::operator()(pointer) is called for the removed elements.
1925
- //!
1926
- //! <b>Throws</b>: Nothing.
1927
- //!
1928
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1929
- //! 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::rbtree::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::rbtree::clear
734
+ void clear();
735
+
736
+ //! @copydoc ::boost::intrusive::rbtree::clear_and_dispose
1930
737
  template<class Disposer>
1931
- void clear_and_dispose(Disposer disposer)
1932
- { return tree_.clear_and_dispose(disposer); }
1933
-
1934
- //! <b>Effects</b>: Returns the number of contained elements with the given key
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 the internal value_compare ordering function throws.
1940
- size_type count(const_reference value) const
1941
- { return tree_.count(value); }
1942
-
1943
- //! <b>Effects</b>: Returns the number of contained elements with the same key
1944
- //! compared with the given comparison functor.
1945
- //!
1946
- //! <b>Complexity</b>: Logarithmic to the number of elements contained plus lineal
1947
- //! to number of objects with the given key.
1948
- //!
1949
- //! <b>Throws</b>: If comp ordering function throws.
1950
- template<class KeyType, class KeyValueCompare>
1951
- size_type count(const KeyType& key, KeyValueCompare comp) const
1952
- { return tree_.count(key, comp); }
1953
-
1954
- //! <b>Effects</b>: Returns an iterator to the first element whose
1955
- //! key is not less than k or end() if that element does not exist.
1956
- //!
1957
- //! <b>Complexity</b>: Logarithmic.
1958
- //!
1959
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
1960
- iterator lower_bound(const_reference value)
1961
- { return tree_.lower_bound(value); }
1962
-
1963
- //! <b>Requires</b>: comp must imply the same element order as
1964
- //! value_compare. Usually key is the part of the value_type
1965
- //! that is used in the ordering functor.
1966
- //!
1967
- //! <b>Effects</b>: Returns an iterator to the first element whose
1968
- //! key according to the comparison functor is not less than k or
1969
- //! end() if that element does not exist.
1970
- //!
1971
- //! <b>Complexity</b>: Logarithmic.
1972
- //!
1973
- //! <b>Throws</b>: If comp ordering function throws.
1974
- //!
1975
- //! <b>Note</b>: This function is used when constructing a value_type
1976
- //! is expensive and the value_type can be compared with a cheaper
1977
- //! key type. Usually this key is part of the value_type.
1978
- template<class KeyType, class KeyValueCompare>
1979
- iterator lower_bound(const KeyType& key, KeyValueCompare comp)
1980
- { return tree_.lower_bound(key, comp); }
1981
-
1982
- //! <b>Effects</b>: Returns a const iterator to the first element whose
1983
- //! key is not less than k or end() if that element does not exist.
1984
- //!
1985
- //! <b>Complexity</b>: Logarithmic.
1986
- //!
1987
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
1988
- const_iterator lower_bound(const_reference value) const
1989
- { return tree_.lower_bound(value); }
1990
-
1991
- //! <b>Requires</b>: comp must imply the same element order as
1992
- //! value_compare. Usually key is the part of the value_type
1993
- //! that is used in the ordering functor.
1994
- //!
1995
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
1996
- //! key according to the comparison functor is not less than k or
1997
- //! end() if that element does not exist.
1998
- //!
1999
- //! <b>Complexity</b>: Logarithmic.
2000
- //!
2001
- //! <b>Throws</b>: If comp ordering function throws.
2002
- //!
2003
- //! <b>Note</b>: This function is used when constructing a value_type
2004
- //! is expensive and the value_type can be compared with a cheaper
2005
- //! key type. Usually this key is part of the value_type.
2006
- template<class KeyType, class KeyValueCompare>
2007
- const_iterator lower_bound(const KeyType& key, KeyValueCompare comp) const
2008
- { return tree_.lower_bound(key, comp); }
2009
-
2010
- //! <b>Effects</b>: Returns an iterator to the first element whose
2011
- //! key is greater than k or end() if that element does not exist.
2012
- //!
2013
- //! <b>Complexity</b>: Logarithmic.
2014
- //!
2015
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2016
- iterator upper_bound(const_reference value)
2017
- { return tree_.upper_bound(value); }
2018
-
2019
- //! <b>Requires</b>: comp must imply the same element order as
2020
- //! value_compare. Usually key is the part of the value_type
2021
- //! that is used in the ordering functor.
2022
- //!
2023
- //! <b>Effects</b>: Returns an iterator to the first element whose
2024
- //! key according to the comparison functor is greater than key or
2025
- //! end() if that element does not exist.
2026
- //!
2027
- //! <b>Complexity</b>: Logarithmic.
2028
- //!
2029
- //! <b>Throws</b>: If comp ordering function throws.
2030
- //!
2031
- //! <b>Note</b>: This function is used when constructing a value_type
2032
- //! is expensive and the value_type can be compared with a cheaper
2033
- //! key type. Usually this key is part of the value_type.
2034
- template<class KeyType, class KeyValueCompare>
2035
- iterator upper_bound(const KeyType& key, KeyValueCompare comp)
2036
- { return tree_.upper_bound(key, comp); }
2037
-
2038
- //! <b>Effects</b>: Returns an iterator to the first element whose
2039
- //! key is greater than k or end() if that element does not exist.
2040
- //!
2041
- //! <b>Complexity</b>: Logarithmic.
2042
- //!
2043
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2044
- const_iterator upper_bound(const_reference value) const
2045
- { return tree_.upper_bound(value); }
2046
-
2047
- //! <b>Requires</b>: comp must imply the same element order as
2048
- //! value_compare. Usually key is the part of the value_type
2049
- //! that is used in the ordering functor.
2050
- //!
2051
- //! <b>Effects</b>: Returns a const_iterator to the first element whose
2052
- //! key according to the comparison functor is greater than key or
2053
- //! end() if that element does not exist.
2054
- //!
2055
- //! <b>Complexity</b>: Logarithmic.
2056
- //!
2057
- //! <b>Throws</b>: If comp ordering function throws.
2058
- //!
2059
- //! <b>Note</b>: This function is used when constructing a value_type
2060
- //! is expensive and the value_type can be compared with a cheaper
2061
- //! key type. Usually this key is part of the value_type.
2062
- template<class KeyType, class KeyValueCompare>
2063
- const_iterator upper_bound(const KeyType& key, KeyValueCompare comp) const
2064
- { return tree_.upper_bound(key, comp); }
2065
-
2066
- //! <b>Effects</b>: Finds an iterator to the first element whose value is
2067
- //! "value" or end() if that element does not exist.
2068
- //!
2069
- //! <b>Complexity</b>: Logarithmic.
2070
- //!
2071
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2072
- iterator find(const_reference value)
2073
- { return tree_.find(value); }
2074
-
2075
- //! <b>Requires</b>: comp must imply the same element order as
2076
- //! value_compare. Usually key is the part of the value_type
2077
- //! that is used in the ordering functor.
2078
- //!
2079
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
2080
- //! "key" according to the comparison functor or end() if that element
2081
- //! does not exist.
2082
- //!
2083
- //! <b>Complexity</b>: Logarithmic.
2084
- //!
2085
- //! <b>Throws</b>: If comp ordering function throws.
2086
- //!
2087
- //! <b>Note</b>: This function is used when constructing a value_type
2088
- //! is expensive and the value_type can be compared with a cheaper
2089
- //! key type. Usually this key is part of the value_type.
2090
- template<class KeyType, class KeyValueCompare>
2091
- iterator find(const KeyType& key, KeyValueCompare comp)
2092
- { return tree_.find(key, comp); }
2093
-
2094
- //! <b>Effects</b>: Finds a const_iterator to the first element whose value is
2095
- //! "value" or end() if that element does not exist.
2096
- //!
2097
- //! <b>Complexity</b>: Logarithmic.
2098
- //!
2099
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2100
- const_iterator find(const_reference value) const
2101
- { return tree_.find(value); }
2102
-
2103
- //! <b>Requires</b>: comp must imply the same element order as
2104
- //! value_compare. Usually key is the part of the value_type
2105
- //! that is used in the ordering functor.
2106
- //!
2107
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
2108
- //! "key" according to the comparison functor or end() if that element
2109
- //! does not exist.
2110
- //!
2111
- //! <b>Complexity</b>: Logarithmic.
2112
- //!
2113
- //! <b>Throws</b>: If comp ordering function throws.
2114
- //!
2115
- //! <b>Note</b>: This function is used when constructing a value_type
2116
- //! is expensive and the value_type can be compared with a cheaper
2117
- //! key type. Usually this key is part of the value_type.
2118
- template<class KeyType, class KeyValueCompare>
2119
- const_iterator find(const KeyType& key, KeyValueCompare comp) const
2120
- { return tree_.find(key, comp); }
2121
-
2122
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
2123
- //! an empty range that indicates the position where those elements would be
2124
- //! if they there is no elements with key k.
2125
- //!
2126
- //! <b>Complexity</b>: Logarithmic.
2127
- //!
2128
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
2129
- std::pair<iterator,iterator> equal_range(const_reference value)
2130
- { return tree_.equal_range(value); }
2131
-
2132
- //! <b>Requires</b>: comp must imply the same element order as
2133
- //! value_compare. Usually key is the part of the value_type
2134
- //! that is used in the ordering functor.
2135
- //!
2136
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
2137
- //! according to the comparison functor or an empty range
2138
- //! that indicates the position where those elements would be
2139
- //! if they there is no elements with key k.
2140
- //!
2141
- //! <b>Complexity</b>: Logarithmic.
2142
- //!
2143
- //! <b>Throws</b>: If comp ordering function throws.
2144
- //!
2145
- //! <b>Note</b>: This function is used when constructing a value_type
2146
- //! is expensive and the value_type can be compared with a cheaper
2147
- //! key type. Usually this key is part of the value_type.
2148
- template<class KeyType, class KeyValueCompare>
2149
- std::pair<iterator,iterator> equal_range(const KeyType& key, KeyValueCompare comp)
2150
- { return tree_.equal_range(key, comp); }
2151
-
2152
- //! <b>Effects</b>: Finds a range containing all elements whose key is k or
2153
- //! an empty range that indicates the position where those elements would be
2154
- //! if they there is no elements with key k.
2155
- //!
2156
- //! <b>Complexity</b>: Logarithmic.
2157
- //!
2158
- //! <b>Throws</b>: If the internal value_compare ordering function throws.
738
+ void clear_and_dispose(Disposer disposer);
739
+
740
+ //! @copydoc ::boost::intrusive::rbtree::count(const key_type &)const
741
+ size_type count(const key_type &key) const;
742
+
743
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::lower_bound(const key_type &)
748
+ iterator lower_bound(const key_type &key);
749
+
750
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::lower_bound(const key_type &)const
755
+ const_iterator lower_bound(const key_type &key) const;
756
+
757
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::upper_bound(const key_type &)
762
+ iterator upper_bound(const key_type &key);
763
+
764
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::upper_bound(const key_type &)const
769
+ const_iterator upper_bound(const key_type &key) const;
770
+
771
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::find(const key_type &)
776
+ iterator find(const key_type &key);
777
+
778
+ //! @copydoc ::boost::intrusive::rbtree::find(const KeyType&,KeyTypeKeyCompare)
779
+ template<class KeyType, class KeyTypeKeyCompare>
780
+ iterator find(const KeyType& key, KeyTypeKeyCompare comp);
781
+
782
+ //! @copydoc ::boost::intrusive::rbtree::find(const key_type &)const
783
+ const_iterator find(const key_type &key) const;
784
+
785
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::equal_range(const key_type &)
790
+ std::pair<iterator,iterator> equal_range(const key_type &key);
791
+
792
+ //! @copydoc ::boost::intrusive::rbtree::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::rbtree::equal_range(const key_type &)const
2159
797
  std::pair<const_iterator, const_iterator>
2160
- equal_range(const_reference value) const
2161
- { return tree_.equal_range(value); }
2162
-
2163
- //! <b>Requires</b>: comp must imply the same element order as
2164
- //! value_compare. Usually key is the part of the value_type
2165
- //! that is used in the ordering functor.
2166
- //!
2167
- //! <b>Effects</b>: Finds a range containing all elements whose key is k
2168
- //! according to the comparison functor or an empty range
2169
- //! that indicates the position where those elements would be
2170
- //! if they there is no elements with key k.
2171
- //!
2172
- //! <b>Complexity</b>: Logarithmic.
2173
- //!
2174
- //! <b>Throws</b>: If comp ordering function throws.
2175
- //!
2176
- //! <b>Note</b>: This function is used when constructing a value_type
2177
- //! is expensive and the value_type can be compared with a cheaper
2178
- //! key type. Usually this key is part of the value_type.
2179
- template<class KeyType, class KeyValueCompare>
798
+ equal_range(const key_type &key) const;
799
+
800
+ //! @copydoc ::boost::intrusive::rbtree::equal_range(const KeyType&,KeyTypeKeyCompare)const
801
+ template<class KeyType, class KeyTypeKeyCompare>
2180
802
  std::pair<const_iterator, const_iterator>
2181
- equal_range(const KeyType& key, KeyValueCompare comp) const
2182
- { return tree_.equal_range(key, comp); }
2183
-
2184
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
2185
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
2186
- //!
2187
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2188
- //!
2189
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
2190
- //!
2191
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
2192
- //!
2193
- //! <b>Complexity</b>: Logarithmic.
2194
- //!
2195
- //! <b>Throws</b>: If the predicate throws.
2196
- //!
2197
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2198
- //! and lower_bound for lower_value and upper_value.
803
+ equal_range(const KeyType& key, KeyTypeKeyCompare comp) const;
804
+
805
+ //! @copydoc ::boost::intrusive::rbtree::bounded_range(const key_type &,const key_type &,bool,bool)
2199
806
  std::pair<iterator,iterator> bounded_range
2200
- (const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed)
2201
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
2202
-
2203
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
2204
- //! ordering compatible with the strict weak ordering used to create the
2205
- //! the tree.
2206
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
2207
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
2208
- //!
2209
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2210
- //!
2211
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
2212
- //!
2213
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
2214
- //!
2215
- //! <b>Complexity</b>: Logarithmic.
2216
- //!
2217
- //! <b>Throws</b>: If "comp" throws.
2218
- //!
2219
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2220
- //! and lower_bound for lower_key and upper_key.
2221
- 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::rbtree::bounded_range(const KeyType&,const KeyType&,KeyTypeKeyCompare,bool,bool)
810
+ template<class KeyType, class KeyTypeKeyCompare>
2222
811
  std::pair<iterator,iterator> bounded_range
2223
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed)
2224
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
2225
-
2226
- //! <b>Requires</b>: 'lower_value' must not be greater than 'upper_value'. If
2227
- //! 'lower_value' == 'upper_value', ('left_closed' || 'right_closed') must be false.
2228
- //!
2229
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2230
- //!
2231
- //! first = lower_bound(lower_key) if left_closed, upper_bound(lower_key) otherwise
2232
- //!
2233
- //! second = upper_bound(upper_key) if right_closed, lower_bound(upper_key) otherwise
2234
- //!
2235
- //! <b>Complexity</b>: Logarithmic.
2236
- //!
2237
- //! <b>Throws</b>: If the predicate throws.
2238
- //!
2239
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2240
- //! and lower_bound for lower_value and upper_value.
2241
- std::pair<const_iterator, const_iterator>
2242
- bounded_range(const_reference lower_value, const_reference upper_value, bool left_closed, bool right_closed) const
2243
- { return tree_.bounded_range(lower_value, upper_value, left_closed, right_closed); }
2244
-
2245
- //! <b>Requires</b>: KeyValueCompare is a function object that induces a strict weak
2246
- //! ordering compatible with the strict weak ordering used to create the
2247
- //! the tree.
2248
- //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If
2249
- //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false.
2250
- //!
2251
- //! <b>Effects</b>: Returns an a pair with the following criteria:
2252
- //!
2253
- //! first = lower_bound(lower_key, comp) if left_closed, upper_bound(lower_key, comp) otherwise
2254
- //!
2255
- //! second = upper_bound(upper_key, comp) if right_closed, lower_bound(upper_key, comp) otherwise
2256
- //!
2257
- //! <b>Complexity</b>: Logarithmic.
2258
- //!
2259
- //! <b>Throws</b>: If "comp" throws.
2260
- //!
2261
- //! <b>Note</b>: This function can be more efficient than calling upper_bound
2262
- //! and lower_bound for lower_key and upper_key.
2263
- 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::rbtree::bounded_range(const key_type &,const key_type &,bool,bool)const
2264
815
  std::pair<const_iterator, const_iterator>
2265
- bounded_range
2266
- (const KeyType& lower_key, const KeyType& upper_key, KeyValueCompare comp, bool left_closed, bool right_closed) const
2267
- { return tree_.bounded_range(lower_key, upper_key, comp, left_closed, right_closed); }
2268
-
2269
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
2270
- //! appropriate type. Otherwise the behavior is undefined.
2271
- //!
2272
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the set
2273
- //! that points to the value
2274
- //!
2275
- //! <b>Complexity</b>: Constant.
2276
- //!
2277
- //! <b>Throws</b>: Nothing.
2278
- //!
2279
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
2280
- //! is stateless.
2281
- static iterator s_iterator_to(reference value)
2282
- { return tree_type::s_iterator_to(value); }
2283
-
2284
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
2285
- //! appropriate type. Otherwise the behavior is undefined.
2286
- //!
2287
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
2288
- //! set that points to the value
2289
- //!
2290
- //! <b>Complexity</b>: Constant.
2291
- //!
2292
- //! <b>Throws</b>: Nothing.
2293
- //!
2294
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
2295
- //! is stateless.
2296
- static const_iterator s_iterator_to(const_reference value)
2297
- { return tree_type::s_iterator_to(value); }
2298
-
2299
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
2300
- //! appropriate type. Otherwise the behavior is undefined.
2301
- //!
2302
- //! <b>Effects</b>: Returns: a valid iterator i belonging to the set
2303
- //! that points to the value
2304
- //!
2305
- //! <b>Complexity</b>: Constant.
2306
- //!
2307
- //! <b>Throws</b>: Nothing.
2308
- iterator iterator_to(reference value)
2309
- { return tree_.iterator_to(value); }
2310
-
2311
- //! <b>Requires</b>: value must be an lvalue and shall be in a set of
2312
- //! appropriate type. Otherwise the behavior is undefined.
2313
- //!
2314
- //! <b>Effects</b>: Returns: a valid const_iterator i belonging to the
2315
- //! set that points to the value
2316
- //!
2317
- //! <b>Complexity</b>: Constant.
2318
- //!
2319
- //! <b>Throws</b>: Nothing.
2320
- const_iterator iterator_to(const_reference value) const
2321
- { return tree_.iterator_to(value); }
2322
-
2323
- //! <b>Requires</b>: value shall not be in a set/multiset.
2324
- //!
2325
- //! <b>Effects</b>: init_node puts the hook of a value in a well-known default
2326
- //! state.
2327
- //!
2328
- //! <b>Throws</b>: Nothing.
2329
- //!
2330
- //! <b>Complexity</b>: Constant time.
2331
- //!
2332
- //! <b>Note</b>: This function puts the hook in the well-known default state
2333
- //! used by auto_unlink and safe hooks.
2334
- static void init_node(reference value)
2335
- { tree_type::init_node(value); }
2336
-
2337
- //! <b>Effects</b>: Unlinks the leftmost node from the tree.
2338
- //!
2339
- //! <b>Complexity</b>: Average complexity is constant time.
2340
- //!
2341
- //! <b>Throws</b>: Nothing.
2342
- //!
2343
- //! <b>Notes</b>: This function breaks the tree and the tree can
2344
- //! only be used for more unlink_leftmost_without_rebalance calls.
2345
- //! This function is normally used to achieve a step by step
2346
- //! controlled destruction of the tree.
2347
- pointer unlink_leftmost_without_rebalance()
2348
- { return tree_.unlink_leftmost_without_rebalance(); }
2349
-
2350
- //! <b>Requires</b>: replace_this must be a valid iterator of *this
2351
- //! and with_this must not be inserted in any tree.
2352
- //!
2353
- //! <b>Effects</b>: Replaces replace_this in its position in the
2354
- //! tree with with_this. The tree does not need to be rebalanced.
2355
- //!
2356
- //! <b>Complexity</b>: Constant.
2357
- //!
2358
- //! <b>Throws</b>: Nothing.
2359
- //!
2360
- //! <b>Note</b>: This function will break container ordering invariants if
2361
- //! with_this is not equivalent to *replace_this according to the
2362
- //! ordering rules. This function is faster than erasing and inserting
2363
- //! the node, since no rebalancing or comparison is needed.
2364
- void replace_node(iterator replace_this, reference with_this)
2365
- { tree_.replace_node(replace_this, with_this); }
2366
-
2367
- //! <b>Effects</b>: removes "value" from the container.
2368
- //!
2369
- //! <b>Throws</b>: Nothing.
2370
- //!
2371
- //! <b>Complexity</b>: Logarithmic time.
2372
- //!
2373
- //! <b>Note</b>: This static function is only usable with non-constant
2374
- //! time size containers that have stateless comparison functors.
2375
- //!
2376
- //! If the user calls
2377
- //! this function with a constant time size container or stateful comparison
2378
- //! functor a compilation error will be issued.
2379
- static void remove_node(reference value)
2380
- { tree_type::remove_node(value); }
816
+ bounded_range(const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed) const;
2381
817
 
2382
- /// @cond
2383
- friend bool operator==(const multiset_impl &x, const multiset_impl &y)
2384
- { return x.tree_ == y.tree_; }
818
+ //! @copydoc ::boost::intrusive::rbtree::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;
2385
822
 
2386
- friend bool operator<(const multiset_impl &x, const multiset_impl &y)
2387
- { return x.tree_ < y.tree_; }
2388
- /// @endcond
823
+ //! @copydoc ::boost::intrusive::rbtree::s_iterator_to(reference)
824
+ static iterator s_iterator_to(reference value);
825
+
826
+ //! @copydoc ::boost::intrusive::rbtree::s_iterator_to(const_reference)
827
+ static const_iterator s_iterator_to(const_reference value);
828
+
829
+ //! @copydoc ::boost::intrusive::rbtree::iterator_to(reference)
830
+ iterator iterator_to(reference value);
831
+
832
+ //! @copydoc ::boost::intrusive::rbtree::iterator_to(const_reference)const
833
+ const_iterator iterator_to(const_reference value) const;
834
+
835
+ //! @copydoc ::boost::intrusive::rbtree::init_node(reference)
836
+ static void init_node(reference value);
837
+
838
+ //! @copydoc ::boost::intrusive::rbtree::unlink_leftmost_without_rebalance
839
+ pointer unlink_leftmost_without_rebalance();
840
+
841
+ //! @copydoc ::boost::intrusive::rbtree::replace_node
842
+ void replace_node(iterator replace_this, reference with_this);
843
+
844
+ //! @copydoc ::boost::intrusive::rbtree::remove_node
845
+ void remove_node(reference value);
846
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
2389
847
  };
2390
848
 
2391
849
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
850
+
2392
851
  template<class T, class ...Options>
2393
- #else
2394
- template<class Config>
2395
- #endif
2396
- inline bool operator!=
2397
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2398
- (const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y)
2399
- #else
2400
- (const multiset_impl<Config> &x, const multiset_impl<Config> &y)
2401
- #endif
2402
- { return !(x == y); }
852
+ bool operator!= (const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y);
2403
853
 
2404
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2405
854
  template<class T, class ...Options>
2406
- #else
2407
- template<class Config>
2408
- #endif
2409
- inline bool operator>
2410
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2411
- (const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y)
2412
- #else
2413
- (const multiset_impl<Config> &x, const multiset_impl<Config> &y)
2414
- #endif
2415
- { return y < x; }
855
+ bool operator>(const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y);
2416
856
 
2417
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2418
857
  template<class T, class ...Options>
2419
- #else
2420
- template<class Config>
2421
- #endif
2422
- inline bool operator<=
2423
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2424
- (const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y)
2425
- #else
2426
- (const multiset_impl<Config> &x, const multiset_impl<Config> &y)
2427
- #endif
2428
- { return !(y < x); }
858
+ bool operator<=(const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y);
2429
859
 
2430
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2431
860
  template<class T, class ...Options>
2432
- #else
2433
- template<class Config>
2434
- #endif
2435
- inline bool operator>=
2436
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2437
- (const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y)
2438
- #else
2439
- (const multiset_impl<Config> &x, const multiset_impl<Config> &y)
2440
- #endif
2441
- { return !(x < y); }
861
+ bool operator>=(const multiset_impl<T, Options...> &x, const multiset_impl<T, Options...> &y);
2442
862
 
2443
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2444
863
  template<class T, class ...Options>
2445
- #else
2446
- template<class Config>
2447
- #endif
2448
- inline void swap
2449
- #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2450
- (multiset_impl<T, Options...> &x, multiset_impl<T, Options...> &y)
2451
- #else
2452
- (multiset_impl<Config> &x, multiset_impl<Config> &y)
2453
- #endif
2454
- { x.swap(y); }
864
+ void swap(multiset_impl<T, Options...> &x, multiset_impl<T, Options...> &y);
865
+
866
+ #endif //#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
2455
867
 
2456
868
  //! Helper metafunction to define a \c multiset that yields to the same type when the
2457
869
  //! same options (either explicitly or implicitly) are used.
2458
870
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2459
871
  template<class T, class ...Options>
2460
872
  #else
2461
- template<class T, class O1 = none, class O2 = none
2462
- , 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>
2463
876
  #endif
2464
877
  struct make_multiset
2465
878
  {
2466
879
  /// @cond
2467
- typedef multiset_impl
2468
- < typename make_rbtree_opt<T,
880
+ typedef typename pack_options
881
+ < rbtree_defaults,
2469
882
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2470
- O1, O2, O3, O4
883
+ O1, O2, O3, O4, O5, O6
2471
884
  #else
2472
885
  Options...
2473
886
  #endif
2474
- >::type
2475
- > implementation_defined;
887
+ >::type packed_options;
888
+
889
+ typedef typename detail::get_value_traits
890
+ <T, typename packed_options::proto_value_traits>::type value_traits;
891
+
892
+ typedef multiset_impl
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;
2476
900
  /// @endcond
2477
901
  typedef implementation_defined type;
2478
902
  };
@@ -2480,14 +904,14 @@ struct make_multiset
2480
904
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
2481
905
 
2482
906
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2483
- 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>
2484
908
  #else
2485
909
  template<class T, class ...Options>
2486
910
  #endif
2487
911
  class multiset
2488
912
  : public make_multiset<T,
2489
913
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2490
- O1, O2, O3, O4
914
+ O1, O2, O3, O4, O5, O6
2491
915
  #else
2492
916
  Options...
2493
917
  #endif
@@ -2495,7 +919,7 @@ class multiset
2495
919
  {
2496
920
  typedef typename make_multiset<T,
2497
921
  #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2498
- O1, O2, O3, O4
922
+ O1, O2, O3, O4, O5, O6
2499
923
  #else
2500
924
  Options...
2501
925
  #endif
@@ -2504,7 +928,7 @@ class multiset
2504
928
  BOOST_MOVABLE_BUT_NOT_COPYABLE(multiset)
2505
929
 
2506
930
  public:
2507
- typedef typename Base::value_compare value_compare;
931
+ typedef typename Base::key_compare key_compare;
2508
932
  typedef typename Base::value_traits value_traits;
2509
933
  typedef typename Base::iterator iterator;
2510
934
  typedef typename Base::const_iterator const_iterator;
@@ -2512,24 +936,32 @@ class multiset
2512
936
  //Assert if passed value traits are compatible with the type
2513
937
  BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
2514
938
 
2515
- multiset( const value_compare &cmp = value_compare()
939
+ multiset( const key_compare &cmp = key_compare()
2516
940
  , const value_traits &v_traits = value_traits())
2517
941
  : Base(cmp, v_traits)
2518
942
  {}
2519
943
 
2520
944
  template<class Iterator>
2521
945
  multiset( Iterator b, Iterator e
2522
- , const value_compare &cmp = value_compare()
946
+ , const key_compare &cmp = key_compare()
2523
947
  , const value_traits &v_traits = value_traits())
2524
948
  : Base(b, e, cmp, v_traits)
2525
949
  {}
2526
950
 
2527
951
  multiset(BOOST_RV_REF(multiset) x)
2528
- : Base(::boost::move(static_cast<Base&>(x)))
952
+ : Base(BOOST_MOVE_BASE(Base, x))
2529
953
  {}
2530
954
 
2531
955
  multiset& operator=(BOOST_RV_REF(multiset) x)
2532
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
956
+ { return static_cast<multiset &>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
957
+
958
+ template <class Cloner, class Disposer>
959
+ void clone_from(const 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(multiset) src, Cloner cloner, Disposer disposer)
964
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
2533
965
 
2534
966
  static multiset &container_from_end_iterator(iterator end_iterator)
2535
967
  { return static_cast<multiset &>(Base::container_from_end_iterator(end_iterator)); }