passenger 5.0.24 → 5.0.25

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

Potentially problematic release.


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

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