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 2006-2012
3
+ // (C) Copyright Ion Gaztanaga 2006-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,16 +13,26 @@
13
13
  #ifndef BOOST_INTRUSIVE_TRIVIAL_VALUE_TRAITS_HPP
14
14
  #define BOOST_INTRUSIVE_TRIVIAL_VALUE_TRAITS_HPP
15
15
 
16
+ #include <boost/intrusive/detail/config_begin.hpp>
17
+ #include <boost/intrusive/intrusive_fwd.hpp>
16
18
  #include <boost/intrusive/link_mode.hpp>
17
19
  #include <boost/intrusive/pointer_traits.hpp>
18
20
 
21
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
22
+ # pragma once
23
+ #endif
24
+
19
25
  namespace boost {
20
26
  namespace intrusive {
21
27
 
22
28
  //!This value traits template is used to create value traits
23
29
  //!from user defined node traits where value_traits::value_type and
24
30
  //!node_traits::node should be equal
25
- template<class NodeTraits, link_mode_type LinkMode = normal_link>
31
+ template<class NodeTraits, link_mode_type LinkMode
32
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
33
+ = safe_link
34
+ #endif
35
+ >
26
36
  struct trivial_value_traits
27
37
  {
28
38
  typedef NodeTraits node_traits;
@@ -43,4 +53,6 @@ struct trivial_value_traits
43
53
  } //namespace intrusive
44
54
  } //namespace boost
45
55
 
56
+ #include <boost/intrusive/detail/config_end.hpp>
57
+
46
58
  #endif //BOOST_INTRUSIVE_TRIVIAL_VALUE_TRAITS_HPP
@@ -1,7 +1,7 @@
1
1
  /////////////////////////////////////////////////////////////////////////////
2
2
  //
3
3
  // (C) Copyright Olaf Krzikalla 2004-2006.
4
- // (C) Copyright Ion Gaztanaga 2006-2012
4
+ // (C) Copyright Ion Gaztanaga 2006-2014
5
5
  //
6
6
  // Distributed under the Boost Software License, Version 1.0.
7
7
  // (See accompanying file LICENSE_1_0.txt or copy at
@@ -16,9 +16,12 @@
16
16
  #include <boost/intrusive/detail/config_begin.hpp>
17
17
  #include <boost/intrusive/intrusive_fwd.hpp>
18
18
  #include <boost/intrusive/hashtable.hpp>
19
- #include <boost/move/move.hpp>
20
- #include <iterator>
19
+ #include <boost/move/utility_core.hpp>
20
+ #include <boost/static_assert.hpp>
21
21
 
22
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
23
+ # pragma once
24
+ #endif
22
25
 
23
26
  namespace boost {
24
27
  namespace intrusive {
@@ -61,13 +64,24 @@ namespace intrusive {
61
64
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
62
65
  template<class T, class ...Options>
63
66
  #else
64
- template<class Config>
67
+ template<class ValueTraits, class VoidOrKeyOfValue, class VoidOrKeyHash, class VoidOrKeyEqual, class SizeType, class BucketTraits, std::size_t BoolFlags>
65
68
  #endif
66
69
  class unordered_set_impl
70
+ : public hashtable_impl<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags|hash_bool_flags::unique_keys_pos>
67
71
  {
68
72
  /// @cond
69
73
  private:
70
- typedef hashtable_impl<Config> table_type;
74
+ typedef hashtable_impl<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags|hash_bool_flags::unique_keys_pos> table_type;
75
+
76
+ template<class Iterator, class MaybeConstThis, class KeyType, class KeyHasher, class KeyEqual>
77
+ static std::pair<Iterator,Iterator> priv_equal_range(MaybeConstThis &c, const KeyType& key, KeyHasher hash_func, KeyEqual equal_func)
78
+ {
79
+ Iterator const it = c.find(key, hash_func, equal_func);
80
+ std::pair<Iterator,Iterator> ret(it, it);
81
+ if(it != c.end())
82
+ ++ret.second;
83
+ return ret;
84
+ }
71
85
 
72
86
  //! This class is
73
87
  //! movable
@@ -78,6 +92,8 @@ class unordered_set_impl
78
92
 
79
93
  public:
80
94
  typedef typename implementation_defined::value_type value_type;
95
+ typedef typename implementation_defined::key_type key_type;
96
+ typedef typename implementation_defined::key_of_value key_of_value;
81
97
  typedef typename implementation_defined::value_traits value_traits;
82
98
  typedef typename implementation_defined::bucket_traits bucket_traits;
83
99
  typedef typename implementation_defined::pointer pointer;
@@ -86,7 +102,6 @@ class unordered_set_impl
86
102
  typedef typename implementation_defined::const_reference const_reference;
87
103
  typedef typename implementation_defined::difference_type difference_type;
88
104
  typedef typename implementation_defined::size_type size_type;
89
- typedef typename implementation_defined::key_type key_type;
90
105
  typedef typename implementation_defined::key_equal key_equal;
91
106
  typedef typename implementation_defined::hasher hasher;
92
107
  typedef typename implementation_defined::bucket_type bucket_type;
@@ -102,48 +117,17 @@ class unordered_set_impl
102
117
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
103
118
  typedef typename implementation_defined::node_algorithms node_algorithms;
104
119
 
105
- /// @cond
106
- private:
107
- table_type table_;
108
- /// @endcond
109
-
110
120
  public:
111
121
 
112
- //! <b>Requires</b>: buckets must not be being used by any other resource.
113
- //!
114
- //! <b>Effects</b>: Constructs an empty unordered_set_impl, storing a reference
115
- //! to the bucket array and copies of the hasher and equal functors.
116
- //!
117
- //! <b>Complexity</b>: Constant.
118
- //!
119
- //! <b>Throws</b>: If value_traits::node_traits::node
120
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
121
- //! or the copy constructor or invocation of Hash or Equal throws.
122
- //!
123
- //! <b>Notes</b>: buckets array must be disposed only after
124
- //! *this is disposed.
122
+ //! @copydoc ::boost::intrusive::hashtable::hashtable(const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
125
123
  explicit unordered_set_impl( const bucket_traits &b_traits
126
124
  , const hasher & hash_func = hasher()
127
125
  , const key_equal &equal_func = key_equal()
128
126
  , const value_traits &v_traits = value_traits())
129
- : table_(b_traits, hash_func, equal_func, v_traits)
127
+ : table_type(b_traits, hash_func, equal_func, v_traits)
130
128
  {}
131
129
 
132
- //! <b>Requires</b>: buckets must not be being used by any other resource
133
- //! and Dereferencing iterator must yield an lvalue of type value_type.
134
- //!
135
- //! <b>Effects</b>: Constructs an empty unordered_set and inserts elements from
136
- //! [b, e).
137
- //!
138
- //! <b>Complexity</b>: If N is std::distance(b, e): Average case is O(N)
139
- //! (with a good hash function and with buckets_len >= N),worst case O(N2).
140
- //!
141
- //! <b>Throws</b>: If value_traits::node_traits::node
142
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
143
- //! or the copy constructor or invocation of hasher or key_equal throws.
144
- //!
145
- //! <b>Notes</b>: buckets array must be disposed only after
146
- //! *this is disposed.
130
+ //! @copydoc ::boost::intrusive::hashtable::hashtable(bool,Iterator,Iterator,const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
147
131
  template<class Iterator>
148
132
  unordered_set_impl( Iterator b
149
133
  , Iterator e
@@ -151,852 +135,272 @@ class unordered_set_impl
151
135
  , const hasher & hash_func = hasher()
152
136
  , const key_equal &equal_func = key_equal()
153
137
  , const value_traits &v_traits = value_traits())
154
- : table_(b_traits, hash_func, equal_func, v_traits)
155
- { table_.insert_unique(b, e); }
138
+ : table_type(true, b, e, b_traits, hash_func, equal_func, v_traits)
139
+ {}
156
140
 
157
- //! <b>Effects</b>: to-do
158
- //!
141
+ //! @copydoc ::boost::intrusive::hashtable::hashtable(hashtable&&)
159
142
  unordered_set_impl(BOOST_RV_REF(unordered_set_impl) x)
160
- : table_(::boost::move(x.table_))
143
+ : table_type(BOOST_MOVE_BASE(table_type, x))
161
144
  {}
162
145
 
163
- //! <b>Effects</b>: to-do
164
- //!
146
+ //! @copydoc ::boost::intrusive::hashtable::operator=(hashtable&&)
165
147
  unordered_set_impl& operator=(BOOST_RV_REF(unordered_set_impl) x)
166
- { table_ = ::boost::move(x.table_); return *this; }
148
+ { return static_cast<unordered_set_impl&>(table_type::operator=(BOOST_MOVE_BASE(table_type, x))); }
167
149
 
168
- //! <b>Effects</b>: Detaches all elements from this. The objects in the unordered_set
169
- //! are not deleted (i.e. no destructors are called).
170
- //!
171
- //! <b>Complexity</b>: Linear to the number of elements in the unordered_set, if
172
- //! it's a safe-mode or auto-unlink value. Otherwise constant.
173
- //!
174
- //! <b>Throws</b>: Nothing.
175
- ~unordered_set_impl()
176
- {}
150
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
151
+ //! @copydoc ::boost::intrusive::hashtable::~hashtable()
152
+ ~unordered_set_impl();
177
153
 
178
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the unordered_set.
179
- //!
180
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
181
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
182
- //!
183
- //! <b>Throws</b>: Nothing.
184
- iterator begin()
185
- { return table_.begin(); }
154
+ //! @copydoc ::boost::intrusive::hashtable::begin()
155
+ iterator begin();
186
156
 
187
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning
188
- //! of the unordered_set.
189
- //!
190
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
191
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
192
- //!
193
- //! <b>Throws</b>: Nothing.
194
- const_iterator begin() const
195
- { return table_.begin(); }
157
+ //! @copydoc ::boost::intrusive::hashtable::begin()const
158
+ const_iterator begin() const;
196
159
 
197
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning
198
- //! of the unordered_set.
199
- //!
200
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
201
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
202
- //!
203
- //! <b>Throws</b>: Nothing.
204
- const_iterator cbegin() const
205
- { return table_.cbegin(); }
160
+ //! @copydoc ::boost::intrusive::hashtable::cbegin()const
161
+ const_iterator cbegin() const;
206
162
 
207
- //! <b>Effects</b>: Returns an iterator pointing to the end of the unordered_set.
208
- //!
209
- //! <b>Complexity</b>: Constant.
210
- //!
211
- //! <b>Throws</b>: Nothing.
212
- iterator end()
213
- { return table_.end(); }
163
+ //! @copydoc ::boost::intrusive::hashtable::end()
164
+ iterator end();
214
165
 
215
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the unordered_set.
216
- //!
217
- //! <b>Complexity</b>: Constant.
218
- //!
219
- //! <b>Throws</b>: Nothing.
220
- const_iterator end() const
221
- { return table_.end(); }
166
+ //! @copydoc ::boost::intrusive::hashtable::end()const
167
+ const_iterator end() const;
222
168
 
223
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the unordered_set.
224
- //!
225
- //! <b>Complexity</b>: Constant.
226
- //!
227
- //! <b>Throws</b>: Nothing.
228
- const_iterator cend() const
229
- { return table_.cend(); }
169
+ //! @copydoc ::boost::intrusive::hashtable::cend()const
170
+ const_iterator cend() const;
230
171
 
231
- //! <b>Effects</b>: Returns the hasher object used by the unordered_set.
232
- //!
233
- //! <b>Complexity</b>: Constant.
234
- //!
235
- //! <b>Throws</b>: If hasher copy-constructor throws.
236
- hasher hash_function() const
237
- { return table_.hash_function(); }
172
+ //! @copydoc ::boost::intrusive::hashtable::hash_function()const
173
+ hasher hash_function() const;
238
174
 
239
- //! <b>Effects</b>: Returns the key_equal object used by the unordered_set.
240
- //!
241
- //! <b>Complexity</b>: Constant.
242
- //!
243
- //! <b>Throws</b>: If key_equal copy-constructor throws.
244
- key_equal key_eq() const
245
- { return table_.key_eq(); }
175
+ //! @copydoc ::boost::intrusive::hashtable::key_eq()const
176
+ key_equal key_eq() const;
246
177
 
247
- //! <b>Effects</b>: Returns true if the container is empty.
248
- //!
249
- //! <b>Complexity</b>: if constant-time size and cache_last options are disabled,
250
- //! average constant time (worst case, with empty() == true: O(this->bucket_count()).
251
- //! Otherwise constant.
252
- //!
253
- //! <b>Throws</b>: Nothing.
254
- bool empty() const
255
- { return table_.empty(); }
178
+ //! @copydoc ::boost::intrusive::hashtable::empty()const
179
+ bool empty() const;
256
180
 
257
- //! <b>Effects</b>: Returns the number of elements stored in the unordered_set.
258
- //!
259
- //! <b>Complexity</b>: Linear to elements contained in *this if
260
- //! constant-time size option is disabled. Constant-time otherwise.
261
- //!
262
- //! <b>Throws</b>: Nothing.
263
- size_type size() const
264
- { return table_.size(); }
181
+ //! @copydoc ::boost::intrusive::hashtable::size()const
182
+ size_type size() const;
265
183
 
266
- //! <b>Requires</b>: the hasher and the equality function unqualified swap
267
- //! call should not throw.
268
- //!
269
- //! <b>Effects</b>: Swaps the contents of two unordered_sets.
270
- //! Swaps also the contained bucket array and equality and hasher functors.
271
- //!
272
- //! <b>Complexity</b>: Constant.
273
- //!
274
- //! <b>Throws</b>: If the swap() call for the comparison or hash functors
275
- //! found using ADL throw. Basic guarantee.
276
- void swap(unordered_set_impl& other)
277
- { table_.swap(other.table_); }
278
-
279
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
280
- //! Cloner should yield to nodes that compare equal and produce the same
281
- //! hash than the original node.
282
- //!
283
- //! <b>Effects</b>: Erases all the elements from *this
284
- //! calling Disposer::operator()(pointer), clones all the
285
- //! elements from src calling Cloner::operator()(const_reference )
286
- //! and inserts them on *this. The hash function and the equality
287
- //! predicate are copied from the source.
288
- //!
289
- //! If store_hash option is true, this method does not use the hash function.
290
- //!
291
- //! If any operation throws, all cloned elements are unlinked and disposed
292
- //! calling Disposer::operator()(pointer).
293
- //!
294
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
295
- //!
296
- //! <b>Throws</b>: If cloner or hasher throw or hash or equality predicate copying
297
- //! throws. Basic guarantee.
184
+ //! @copydoc ::boost::intrusive::hashtable::hashtable
185
+ void swap(unordered_set_impl& other);
186
+
187
+ //! @copydoc ::boost::intrusive::hashtable::clone_from(const hashtable&,Cloner,Disposer)
298
188
  template <class Cloner, class Disposer>
299
- void clone_from(const unordered_set_impl &src, Cloner cloner, Disposer disposer)
300
- { table_.clone_from(src.table_, cloner, disposer); }
189
+ void clone_from(const unordered_set_impl &src, Cloner cloner, Disposer disposer);
301
190
 
302
- //! <b>Requires</b>: value must be an lvalue
303
- //!
304
- //! <b>Effects</b>: Tries to inserts value into the unordered_set.
305
- //!
306
- //! <b>Returns</b>: If the value
307
- //! is not already present inserts it and returns a pair containing the
308
- //! iterator to the new value and true. If there is an equivalent value
309
- //! returns a pair containing an iterator to the already present value
310
- //! and false.
311
- //!
312
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
313
- //!
314
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Strong guarantee.
315
- //!
316
- //! <b>Note</b>: Does not affect the validity of iterators and references.
317
- //! No copy-constructors are called.
191
+ #else
192
+
193
+ using table_type::clone_from;
194
+
195
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
196
+
197
+ //! @copydoc ::boost::intrusive::hashtable::clone_from(hashtable&&,Cloner,Disposer)
198
+ template <class Cloner, class Disposer>
199
+ void clone_from(BOOST_RV_REF(unordered_set_impl) src, Cloner cloner, Disposer disposer)
200
+ { table_type::clone_from(BOOST_MOVE_BASE(table_type, src), cloner, disposer); }
201
+
202
+ //! @copydoc ::boost::intrusive::hashtable::insert_unique(reference)
318
203
  std::pair<iterator, bool> insert(reference value)
319
- { return table_.insert_unique(value); }
204
+ { return table_type::insert_unique(value); }
320
205
 
321
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
322
- //! of type value_type.
323
- //!
324
- //! <b>Effects</b>: Equivalent to this->insert(t) for each element in [b, e).
325
- //!
326
- //! <b>Complexity</b>: Average case O(N), where N is std::distance(b, e).
327
- //! Worst case O(N*this->size()).
328
- //!
329
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
330
- //!
331
- //! <b>Note</b>: Does not affect the validity of iterators and references.
332
- //! No copy-constructors are called.
206
+ //! @copydoc ::boost::intrusive::hashtable::insert_unique(Iterator,Iterator)
333
207
  template<class Iterator>
334
208
  void insert(Iterator b, Iterator e)
335
- { table_.insert_unique(b, e); }
209
+ { table_type::insert_unique(b, e); }
336
210
 
337
- //! <b>Requires</b>: "hasher" must be a hash function that induces
338
- //! the same hash values as the stored hasher. The difference is that
339
- //! "hasher" hashes the given key instead of the value_type.
340
- //!
341
- //! "key_value_equal" must be a equality function that induces
342
- //! the same equality as key_equal. The difference is that
343
- //! "key_value_equal" compares an arbitrary key with the contained values.
344
- //!
345
- //! <b>Effects</b>: Checks if a value can be inserted in the unordered_set, using
346
- //! a user provided key instead of the value itself.
347
- //!
348
- //! <b>Returns</b>: If there is an equivalent value
349
- //! returns a pair containing an iterator to the already present value
350
- //! and false. If the value can be inserted returns true in the returned
351
- //! pair boolean and fills "commit_data" that is meant to be used with
352
- //! the "insert_commit" function.
353
- //!
354
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
355
- //!
356
- //! <b>Throws</b>: If hasher or key_value_equal throw. Strong guarantee.
357
- //!
358
- //! <b>Notes</b>: This function is used to improve performance when constructing
359
- //! a value_type is expensive: if there is an equivalent value
360
- //! the constructed object must be discarded. Many times, the part of the
361
- //! node that is used to impose the hash or the equality is much cheaper to
362
- //! construct than the value_type and this function offers the possibility to
363
- //! use that the part to check if the insertion will be successful.
364
- //!
365
- //! If the check is successful, the user can construct the value_type and use
366
- //! "insert_commit" to insert the object in constant-time.
367
- //!
368
- //! "commit_data" remains valid for a subsequent "insert_commit" only if no more
369
- //! objects are inserted or erased from the unordered_set.
370
- //!
371
- //! After a successful rehashing insert_commit_data remains valid.
372
- template<class KeyType, class KeyHasher, class KeyValueEqual>
211
+ //! @copydoc ::boost::intrusive::hashtable::insert_unique_check(const KeyType&,KeyHasher,KeyEqual,insert_commit_data&)
212
+ template<class KeyType, class KeyHasher, class KeyEqual>
373
213
  std::pair<iterator, bool> insert_check
374
- (const KeyType &key, KeyHasher hasher, KeyValueEqual key_value_equal, insert_commit_data &commit_data)
375
- { return table_.insert_unique_check(key, hasher, key_value_equal, commit_data); }
214
+ (const KeyType &key, KeyHasher hasher, KeyEqual key_value_equal, insert_commit_data &commit_data)
215
+ { return table_type::insert_unique_check(key, hasher, key_value_equal, commit_data); }
376
216
 
377
- //! <b>Requires</b>: value must be an lvalue of type value_type. commit_data
378
- //! must have been obtained from a previous call to "insert_check".
379
- //! No objects should have been inserted or erased from the unordered_set between
380
- //! the "insert_check" that filled "commit_data" and the call to "insert_commit".
381
- //!
382
- //! <b>Effects</b>: Inserts the value in the unordered_set using the information obtained
383
- //! from the "commit_data" that a previous "insert_check" filled.
384
- //!
385
- //! <b>Returns</b>: An iterator to the newly inserted object.
386
- //!
387
- //! <b>Complexity</b>: Constant time.
388
- //!
389
- //! <b>Throws</b>: Nothing.
390
- //!
391
- //! <b>Notes</b>: This function has only sense if a "insert_check" has been
392
- //! previously executed to fill "commit_data". No value should be inserted or
393
- //! erased between the "insert_check" and "insert_commit" calls.
394
- //!
395
- //! After a successful rehashing insert_commit_data remains valid.
217
+ //! @copydoc ::boost::intrusive::hashtable::insert_unique_commit
396
218
  iterator insert_commit(reference value, const insert_commit_data &commit_data)
397
- { return table_.insert_unique_commit(value, commit_data); }
219
+ { return table_type::insert_unique_commit(value, commit_data); }
398
220
 
399
- //! <b>Effects</b>: Erases the element pointed to by i.
400
- //!
401
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
402
- //!
403
- //! <b>Throws</b>: Nothing.
404
- //!
405
- //! <b>Note</b>: Invalidates the iterators (but not the references)
406
- //! to the erased element. No destructors are called.
407
- void erase(const_iterator i)
408
- { table_.erase(i); }
221
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
409
222
 
410
- //! <b>Effects</b>: Erases the range pointed to by b end e.
411
- //!
412
- //! <b>Complexity</b>: Average case O(std::distance(b, e)),
413
- //! worst case O(this->size()).
414
- //!
415
- //! <b>Throws</b>: Nothing.
416
- //!
417
- //! <b>Note</b>: Invalidates the iterators (but not the references)
418
- //! to the erased elements. No destructors are called.
419
- void erase(const_iterator b, const_iterator e)
420
- { table_.erase(b, e); }
223
+ //! @copydoc ::boost::intrusive::hashtable::erase(const_iterator)
224
+ void erase(const_iterator i);
421
225
 
422
- //! <b>Effects</b>: Erases all the elements with the given value.
423
- //!
424
- //! <b>Returns</b>: The number of erased elements.
425
- //!
426
- //! <b>Complexity</b>: Average case O(this->count(value)).
427
- //! Worst case O(this->size()).
428
- //!
429
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
430
- //!
431
- //! <b>Note</b>: Invalidates the iterators (but not the references)
432
- //! to the erased elements. No destructors are called.
433
- size_type erase(const_reference value)
434
- { return table_.erase(value); }
435
-
436
- //! <b>Requires</b>: "hasher" must be a hash function that induces
437
- //! the same hash values as the stored hasher. The difference is that
438
- //! "hasher" hashes the given key instead of the value_type.
439
- //!
440
- //! "key_value_equal" must be a equality function that induces
441
- //! the same equality as key_equal. The difference is that
442
- //! "key_value_equal" compares an arbitrary key with the contained values.
443
- //!
444
- //! <b>Effects</b>: Erases all the elements that have the same hash and
445
- //! compare equal with the given key.
446
- //!
447
- //! <b>Returns</b>: The number of erased elements.
448
- //!
449
- //! <b>Complexity</b>: Average case O(this->count(value)).
450
- //! Worst case O(this->size()).
451
- //!
452
- //! <b>Throws</b>: If hash_func or equal_func throw. Basic guarantee.
453
- //!
454
- //! <b>Note</b>: Invalidates the iterators (but not the references)
455
- //! to the erased elements. No destructors are called.
456
- template<class KeyType, class KeyHasher, class KeyValueEqual>
457
- size_type erase(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
458
- { return table_.erase(key, hash_func, equal_func); }
226
+ //! @copydoc ::boost::intrusive::hashtable::erase(const_iterator,const_iterator)
227
+ void erase(const_iterator b, const_iterator e);
459
228
 
460
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
461
- //!
462
- //! <b>Effects</b>: Erases the element pointed to by i.
463
- //! Disposer::operator()(pointer) is called for the removed element.
464
- //!
465
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
466
- //!
467
- //! <b>Throws</b>: Nothing.
468
- //!
469
- //! <b>Note</b>: Invalidates the iterators
470
- //! to the erased elements.
229
+ //! @copydoc ::boost::intrusive::hashtable::erase(const key_type &)
230
+ size_type erase(const key_type &key);
231
+
232
+ //! @copydoc ::boost::intrusive::hashtable::erase(const KeyType&,KeyHasher,KeyEqual)
233
+ template<class KeyType, class KeyHasher, class KeyEqual>
234
+ size_type erase(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func);
235
+
236
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const_iterator,Disposer)
471
237
  template<class Disposer>
472
- void erase_and_dispose(const_iterator i, Disposer disposer
473
- /// @cond
474
- , typename detail::enable_if_c<!detail::is_convertible<Disposer, const_iterator>::value >::type * = 0
475
- /// @endcond
476
- )
477
- { table_.erase_and_dispose(i, disposer); }
478
-
479
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
480
- //!
481
- //! <b>Effects</b>: Erases the range pointed to by b end e.
482
- //! Disposer::operator()(pointer) is called for the removed elements.
483
- //!
484
- //! <b>Complexity</b>: Average case O(std::distance(b, e)),
485
- //! worst case O(this->size()).
486
- //!
487
- //! <b>Throws</b>: Nothing.
488
- //!
489
- //! <b>Note</b>: Invalidates the iterators
490
- //! to the erased elements.
238
+ BOOST_INTRUSIVE_DOC1ST(void
239
+ , typename detail::disable_if_convertible<Disposer BOOST_INTRUSIVE_I const_iterator>::type)
240
+ erase_and_dispose(const_iterator i, Disposer disposer);
241
+
242
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const_iterator,const_iterator,Disposer)
491
243
  template<class Disposer>
492
- void erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
493
- { table_.erase_and_dispose(b, e, disposer); }
244
+ void erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer);
494
245
 
495
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
496
- //!
497
- //! <b>Effects</b>: Erases all the elements with the given value.
498
- //! Disposer::operator()(pointer) is called for the removed elements.
499
- //!
500
- //! <b>Returns</b>: The number of erased elements.
501
- //!
502
- //! <b>Complexity</b>: Average case O(this->count(value)).
503
- //! Worst case O(this->size()).
504
- //!
505
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
506
- //!
507
- //! <b>Note</b>: Invalidates the iterators (but not the references)
508
- //! to the erased elements. No destructors are called.
246
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const key_type &,Disposer)
509
247
  template<class Disposer>
510
- size_type erase_and_dispose(const_reference value, Disposer disposer)
511
- { return table_.erase_and_dispose(value, disposer); }
248
+ size_type erase_and_dispose(const key_type &key, Disposer disposer);
512
249
 
513
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
514
- //!
515
- //! <b>Effects</b>: Erases all the elements with the given key.
516
- //! according to the comparison functor "equal_func".
517
- //! Disposer::operator()(pointer) is called for the removed elements.
518
- //!
519
- //! <b>Returns</b>: The number of erased elements.
520
- //!
521
- //! <b>Complexity</b>: Average case O(this->count(value)).
522
- //! Worst case O(this->size()).
523
- //!
524
- //! <b>Throws</b>: If hash_func or equal_func throw. Basic guarantee.
525
- //!
526
- //! <b>Note</b>: Invalidates the iterators
527
- //! to the erased elements.
528
- template<class KeyType, class KeyHasher, class KeyValueEqual, class Disposer>
529
- size_type erase_and_dispose(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func, Disposer disposer)
530
- { return table_.erase_and_dispose(key, hash_func, equal_func, disposer); }
250
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const KeyType&,KeyHasher,KeyEqual,Disposer)
251
+ template<class KeyType, class KeyHasher, class KeyEqual, class Disposer>
252
+ size_type erase_and_dispose(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func, Disposer disposer);
531
253
 
532
- //! <b>Effects</b>: Erases all of the elements.
533
- //!
534
- //! <b>Complexity</b>: Linear to the number of elements on the container.
535
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
536
- //!
537
- //! <b>Throws</b>: Nothing.
538
- //!
539
- //! <b>Note</b>: Invalidates the iterators (but not the references)
540
- //! to the erased elements. No destructors are called.
541
- void clear()
542
- { return table_.clear(); }
254
+ //! @copydoc ::boost::intrusive::hashtable::clear
255
+ void clear();
543
256
 
544
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
545
- //!
546
- //! <b>Effects</b>: Erases all of the elements.
547
- //!
548
- //! <b>Complexity</b>: Linear to the number of elements on the container.
549
- //! Disposer::operator()(pointer) is called for the removed elements.
550
- //!
551
- //! <b>Throws</b>: Nothing.
552
- //!
553
- //! <b>Note</b>: Invalidates the iterators (but not the references)
554
- //! to the erased elements. No destructors are called.
257
+ //! @copydoc ::boost::intrusive::hashtable::clear_and_dispose
555
258
  template<class Disposer>
556
- void clear_and_dispose(Disposer disposer)
557
- { return table_.clear_and_dispose(disposer); }
259
+ void clear_and_dispose(Disposer disposer);
558
260
 
559
- //! <b>Effects</b>: Returns the number of contained elements with the given value
560
- //!
561
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
562
- //!
563
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
564
- size_type count(const_reference value) const
565
- { return table_.find(value) != end(); }
261
+ //! @copydoc ::boost::intrusive::hashtable::count(const key_type &)const
262
+ size_type count(const key_type &key) const;
566
263
 
567
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
568
- //! the same hash values as the stored hasher. The difference is that
569
- //! "hash_func" hashes the given key instead of the value_type.
570
- //!
571
- //! "equal_func" must be a equality function that induces
572
- //! the same equality as key_equal. The difference is that
573
- //! "equal_func" compares an arbitrary key with the contained values.
574
- //!
575
- //! <b>Effects</b>: Returns the number of contained elements with the given key
576
- //!
577
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
578
- //!
579
- //! <b>Throws</b>: If hash_func or equal_func throw.
580
- template<class KeyType, class KeyHasher, class KeyValueEqual>
581
- size_type count(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
582
- { return table_.find(key, hash_func, equal_func) != end(); }
264
+ //! @copydoc ::boost::intrusive::hashtable::count(const KeyType&,KeyHasher,KeyEqual)const
265
+ template<class KeyType, class KeyHasher, class KeyEqual>
266
+ size_type count(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const;
583
267
 
584
- //! <b>Effects</b>: Finds an iterator to the first element is equal to
585
- //! "value" or end() if that element does not exist.
586
- //!
587
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
588
- //!
589
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
590
- iterator find(const_reference value)
591
- { return table_.find(value); }
268
+ //! @copydoc ::boost::intrusive::hashtable::find(const key_type &)
269
+ iterator find(const key_type &key);
592
270
 
593
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
594
- //! the same hash values as the stored hasher. The difference is that
595
- //! "hash_func" hashes the given key instead of the value_type.
596
- //!
597
- //! "equal_func" must be a equality function that induces
598
- //! the same equality as key_equal. The difference is that
599
- //! "equal_func" compares an arbitrary key with the contained values.
600
- //!
601
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
602
- //! "key" according to the given hasher and equality functor or end() if
603
- //! that element does not exist.
604
- //!
605
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
606
- //!
607
- //! <b>Throws</b>: If hash_func or equal_func throw.
608
- //!
609
- //! <b>Note</b>: This function is used when constructing a value_type
610
- //! is expensive and the value_type can be compared with a cheaper
611
- //! key type. Usually this key is part of the value_type.
612
- template<class KeyType, class KeyHasher, class KeyValueEqual>
613
- iterator find(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
614
- { return table_.find(key, hash_func, equal_func); }
615
-
616
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
617
- //! "key" or end() if that element does not exist.
618
- //!
619
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
620
- //!
621
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
622
- const_iterator find(const_reference value) const
623
- { return table_.find(value); }
271
+ //! @copydoc ::boost::intrusive::hashtable::find(const KeyType &,KeyHasher,KeyEqual)
272
+ template<class KeyType, class KeyHasher, class KeyEqual>
273
+ iterator find(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func);
624
274
 
625
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
626
- //! the same hash values as the stored hasher. The difference is that
627
- //! "hash_func" hashes the given key instead of the value_type.
628
- //!
629
- //! "equal_func" must be a equality function that induces
630
- //! the same equality as key_equal. The difference is that
631
- //! "equal_func" compares an arbitrary key with the contained values.
632
- //!
633
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
634
- //! "key" according to the given hasher and equality functor or end() if
635
- //! that element does not exist.
636
- //!
637
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
638
- //!
639
- //! <b>Throws</b>: If hash_func or equal_func throw.
640
- //!
641
- //! <b>Note</b>: This function is used when constructing a value_type
642
- //! is expensive and the value_type can be compared with a cheaper
643
- //! key type. Usually this key is part of the value_type.
644
- template<class KeyType, class KeyHasher, class KeyValueEqual>
645
- const_iterator find(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
646
- { return table_.find(key, hash_func, equal_func); }
647
-
648
- //! <b>Effects</b>: Returns a range containing all elements with values equivalent
649
- //! to value. Returns std::make_pair(this->end(), this->end()) if no such
650
- //! elements exist.
651
- //!
652
- //! <b>Complexity</b>: Average case O(this->count(value)). Worst case O(this->size()).
653
- //!
654
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
655
- std::pair<iterator,iterator> equal_range(const_reference value)
656
- { return table_.equal_range(value); }
275
+ //! @copydoc ::boost::intrusive::hashtable::count(const key_type &)const
276
+ const_iterator find(const key_type &key) const;
657
277
 
658
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
659
- //! the same hash values as the stored hasher. The difference is that
660
- //! "hash_func" hashes the given key instead of the value_type.
661
- //!
662
- //! "equal_func" must be a equality function that induces
663
- //! the same equality as key_equal. The difference is that
664
- //! "equal_func" compares an arbitrary key with the contained values.
665
- //!
666
- //! <b>Effects</b>: Returns a range containing all elements with equivalent
667
- //! keys. Returns std::make_pair(this->end(), this->end()) if no such
668
- //! elements exist.
669
- //!
670
- //! <b>Complexity</b>: Average case O(this->count(key, hash_func, hash_func)).
671
- //! Worst case O(this->size()).
672
- //!
673
- //! <b>Throws</b>: If hash_func or the equal_func throw.
674
- //!
675
- //! <b>Note</b>: This function is used when constructing a value_type
676
- //! is expensive and the value_type can be compared with a cheaper
677
- //! key type. Usually this key is part of the value_type.
678
- template<class KeyType, class KeyHasher, class KeyValueEqual>
679
- std::pair<iterator,iterator> equal_range(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
680
- { return table_.equal_range(key, hash_func, equal_func); }
681
-
682
- //! <b>Effects</b>: Returns a range containing all elements with values equivalent
683
- //! to value. Returns std::make_pair(this->end(), this->end()) if no such
684
- //! elements exist.
685
- //!
686
- //! <b>Complexity</b>: Average case O(this->count(value)). Worst case O(this->size()).
687
- //!
688
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
278
+ //! @copydoc ::boost::intrusive::hashtable::find(const KeyType &,KeyHasher,KeyEqual)const
279
+ template<class KeyType, class KeyHasher, class KeyEqual>
280
+ const_iterator find(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const;
281
+ #endif
282
+
283
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const key_type&)
284
+ std::pair<iterator,iterator> equal_range(const key_type &key)
285
+ { return this->equal_range(key, this->hash_function(), this->key_eq()); }
286
+
287
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const KeyType &,KeyHasher,KeyEqual)
288
+ template<class KeyType, class KeyHasher, class KeyEqual>
289
+ std::pair<iterator,iterator> equal_range(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func)
290
+ { return this->priv_equal_range<iterator>(*this, key, hash_func, equal_func); }
291
+
292
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const key_type&)const
689
293
  std::pair<const_iterator, const_iterator>
690
- equal_range(const_reference value) const
691
- { return table_.equal_range(value); }
294
+ equal_range(const key_type &key) const
295
+ { return this->equal_range(key, this->hash_function(), this->key_eq()); }
692
296
 
693
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
694
- //! the same hash values as the stored hasher. The difference is that
695
- //! "hash_func" hashes the given key instead of the value_type.
696
- //!
697
- //! "equal_func" must be a equality function that induces
698
- //! the same equality as key_equal. The difference is that
699
- //! "equal_func" compares an arbitrary key with the contained values.
700
- //!
701
- //! <b>Effects</b>: Returns a range containing all elements with equivalent
702
- //! keys. Returns std::make_pair(this->end(), this->end()) if no such
703
- //! elements exist.
704
- //!
705
- //! <b>Complexity</b>: Average case O(this->count(key, hash_func, equal_func)).
706
- //! Worst case O(this->size()).
707
- //!
708
- //! <b>Throws</b>: If the hash_func or equal_func throw.
709
- //!
710
- //! <b>Note</b>: This function is used when constructing a value_type
711
- //! is expensive and the value_type can be compared with a cheaper
712
- //! key type. Usually this key is part of the value_type.
713
- template<class KeyType, class KeyHasher, class KeyValueEqual>
297
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const KeyType &,KeyHasher,KeyEqual)const
298
+ template<class KeyType, class KeyHasher, class KeyEqual>
714
299
  std::pair<const_iterator, const_iterator>
715
- equal_range(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
716
- { return table_.equal_range(key, hash_func, equal_func); }
300
+ equal_range(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const
301
+ { return this->priv_equal_range<const_iterator>(*this, key, hash_func, equal_func); }
717
302
 
718
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
719
- //! appropriate type. Otherwise the behavior is undefined.
720
- //!
721
- //! <b>Effects</b>: Returns: a valid iterator belonging to the unordered_set
722
- //! that points to the value
723
- //!
724
- //! <b>Complexity</b>: Constant.
725
- //!
726
- //! <b>Throws</b>: If the internal hash function throws.
727
- iterator iterator_to(reference value)
728
- { return table_.iterator_to(value); }
303
+ #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
304
+ //! @copydoc ::boost::intrusive::hashtable::iterator_to(reference)
305
+ iterator iterator_to(reference value);
729
306
 
730
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
731
- //! appropriate type. Otherwise the behavior is undefined.
732
- //!
733
- //! <b>Effects</b>: Returns: a valid const_iterator belonging to the
734
- //! unordered_set that points to the value
735
- //!
736
- //! <b>Complexity</b>: Constant.
737
- //!
738
- //! <b>Throws</b>: If the internal hash function throws.
739
- const_iterator iterator_to(const_reference value) const
740
- { return table_.iterator_to(value); }
307
+ //! @copydoc ::boost::intrusive::hashtable::iterator_to(const_reference)const
308
+ const_iterator iterator_to(const_reference value) const;
741
309
 
742
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
743
- //! appropriate type. Otherwise the behavior is undefined.
744
- //!
745
- //! <b>Effects</b>: Returns: a valid local_iterator belonging to the unordered_set
746
- //! that points to the value
747
- //!
748
- //! <b>Complexity</b>: Constant.
749
- //!
750
- //! <b>Throws</b>: Nothing.
751
- //!
752
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
753
- //! is stateless.
754
- static local_iterator s_local_iterator_to(reference value)
755
- { return table_type::s_local_iterator_to(value); }
310
+ //! @copydoc ::boost::intrusive::hashtable::s_local_iterator_to(reference)
311
+ static local_iterator s_local_iterator_to(reference value);
756
312
 
757
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
758
- //! appropriate type. Otherwise the behavior is undefined.
759
- //!
760
- //! <b>Effects</b>: Returns: a valid const_local_iterator belonging to
761
- //! the unordered_set that points to the value
762
- //!
763
- //! <b>Complexity</b>: Constant.
764
- //!
765
- //! <b>Throws</b>: Nothing.
766
- //!
767
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
768
- //! is stateless.
769
- static const_local_iterator s_local_iterator_to(const_reference value)
770
- { return table_type::s_local_iterator_to(value); }
313
+ //! @copydoc ::boost::intrusive::hashtable::s_local_iterator_to(const_reference)
314
+ static const_local_iterator s_local_iterator_to(const_reference value);
771
315
 
772
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
773
- //! appropriate type. Otherwise the behavior is undefined.
774
- //!
775
- //! <b>Effects</b>: Returns: a valid local_iterator belonging to the unordered_set
776
- //! that points to the value
777
- //!
778
- //! <b>Complexity</b>: Constant.
779
- //!
780
- //! <b>Throws</b>: Nothing.
781
- local_iterator local_iterator_to(reference value)
782
- { return table_.local_iterator_to(value); }
316
+ //! @copydoc ::boost::intrusive::hashtable::local_iterator_to(reference)
317
+ local_iterator local_iterator_to(reference value);
783
318
 
784
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
785
- //! appropriate type. Otherwise the behavior is undefined.
786
- //!
787
- //! <b>Effects</b>: Returns: a valid const_local_iterator belonging to
788
- //! the unordered_set that points to the value
789
- //!
790
- //! <b>Complexity</b>: Constant.
791
- //!
792
- //! <b>Throws</b>: Nothing.
793
- const_local_iterator local_iterator_to(const_reference value) const
794
- { return table_.local_iterator_to(value); }
319
+ //! @copydoc ::boost::intrusive::hashtable::local_iterator_to(const_reference)
320
+ const_local_iterator local_iterator_to(const_reference value) const;
795
321
 
796
- //! <b>Effects</b>: Returns the number of buckets passed in the constructor
797
- //! or the last rehash function.
798
- //!
799
- //! <b>Complexity</b>: Constant.
800
- //!
801
- //! <b>Throws</b>: Nothing.
802
- size_type bucket_count() const
803
- { return table_.bucket_count(); }
322
+ //! @copydoc ::boost::intrusive::hashtable::bucket_count
323
+ size_type bucket_count() const;
804
324
 
805
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
806
- //!
807
- //! <b>Effects</b>: Returns the number of elements in the nth bucket.
808
- //!
809
- //! <b>Complexity</b>: Constant.
810
- //!
811
- //! <b>Throws</b>: Nothing.
812
- size_type bucket_size(size_type n) const
813
- { return table_.bucket_size(n); }
325
+ //! @copydoc ::boost::intrusive::hashtable::bucket_size
326
+ size_type bucket_size(size_type n) const;
814
327
 
815
- //! <b>Effects</b>: Returns the index of the bucket in which elements
816
- //! with keys equivalent to k would be found, if any such element existed.
817
- //!
818
- //! <b>Complexity</b>: Constant.
819
- //!
820
- //! <b>Throws</b>: If the hash functor throws.
821
- //!
822
- //! <b>Note</b>: the return value is in the range [0, this->bucket_count()).
823
- size_type bucket(const value_type& k) const
824
- { return table_.bucket(k); }
328
+ //! @copydoc ::boost::intrusive::hashtable::bucket(const key_type&)const
329
+ size_type bucket(const key_type& k) const;
825
330
 
826
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
827
- //! the same hash values as the stored hasher. The difference is that
828
- //! "hash_func" hashes the given key instead of the value_type.
829
- //!
830
- //! <b>Effects</b>: Returns the index of the bucket in which elements
831
- //! with keys equivalent to k would be found, if any such element existed.
832
- //!
833
- //! <b>Complexity</b>: Constant.
834
- //!
835
- //! <b>Throws</b>: If hash_func throws.
836
- //!
837
- //! <b>Note</b>: the return value is in the range [0, this->bucket_count()).
331
+ //! @copydoc ::boost::intrusive::hashtable::bucket(const KeyType&,KeyHasher)const
838
332
  template<class KeyType, class KeyHasher>
839
- size_type bucket(const KeyType& k, KeyHasher hash_func) const
840
- { return table_.bucket(k, hash_func); }
333
+ size_type bucket(const KeyType& k, KeyHasher hash_func) const;
841
334
 
842
- //! <b>Effects</b>: Returns the bucket array pointer passed in the constructor
843
- //! or the last rehash function.
844
- //!
845
- //! <b>Complexity</b>: Constant.
846
- //!
847
- //! <b>Throws</b>: Nothing.
848
- bucket_ptr bucket_pointer() const
849
- { return table_.bucket_pointer(); }
335
+ //! @copydoc ::boost::intrusive::hashtable::bucket_pointer
336
+ bucket_ptr bucket_pointer() const;
850
337
 
851
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
852
- //!
853
- //! <b>Effects</b>: Returns a local_iterator pointing to the beginning
854
- //! of the sequence stored in the bucket n.
855
- //!
856
- //! <b>Complexity</b>: Constant.
857
- //!
858
- //! <b>Throws</b>: Nothing.
859
- //!
860
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
861
- //! containing all of the elements in the nth bucket.
862
- local_iterator begin(size_type n)
863
- { return table_.begin(n); }
338
+ //! @copydoc ::boost::intrusive::hashtable::begin(size_type)
339
+ local_iterator begin(size_type n);
864
340
 
865
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
866
- //!
867
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the beginning
868
- //! of the sequence stored in the bucket n.
869
- //!
870
- //! <b>Complexity</b>: Constant.
871
- //!
872
- //! <b>Throws</b>: Nothing.
873
- //!
874
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
875
- //! containing all of the elements in the nth bucket.
876
- const_local_iterator begin(size_type n) const
877
- { return table_.begin(n); }
341
+ //! @copydoc ::boost::intrusive::hashtable::begin(size_type)const
342
+ const_local_iterator begin(size_type n) const;
878
343
 
879
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
880
- //!
881
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the beginning
882
- //! of the sequence stored in the bucket n.
883
- //!
884
- //! <b>Complexity</b>: Constant.
885
- //!
886
- //! <b>Throws</b>: Nothing.
887
- //!
888
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
889
- //! containing all of the elements in the nth bucket.
890
- const_local_iterator cbegin(size_type n) const
891
- { return table_.cbegin(n); }
344
+ //! @copydoc ::boost::intrusive::hashtable::cbegin(size_type)const
345
+ const_local_iterator cbegin(size_type n) const;
892
346
 
893
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
894
- //!
895
- //! <b>Effects</b>: Returns a local_iterator pointing to the end
896
- //! of the sequence stored in the bucket n.
897
- //!
898
- //! <b>Complexity</b>: Constant.
899
- //!
900
- //! <b>Throws</b>: Nothing.
901
- //!
902
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
903
- //! containing all of the elements in the nth bucket.
904
- local_iterator end(size_type n)
905
- { return table_.end(n); }
347
+ //! @copydoc ::boost::intrusive::hashtable::end(size_type)
348
+ local_iterator end(size_type n);
906
349
 
907
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
908
- //!
909
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the end
910
- //! of the sequence stored in the bucket n.
911
- //!
912
- //! <b>Complexity</b>: Constant.
913
- //!
914
- //! <b>Throws</b>: Nothing.
915
- //!
916
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
917
- //! containing all of the elements in the nth bucket.
918
- const_local_iterator end(size_type n) const
919
- { return table_.end(n); }
350
+ //! @copydoc ::boost::intrusive::hashtable::end(size_type)const
351
+ const_local_iterator end(size_type n) const;
920
352
 
921
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
922
- //!
923
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the end
924
- //! of the sequence stored in the bucket n.
925
- //!
926
- //! <b>Complexity</b>: Constant.
927
- //!
928
- //! <b>Throws</b>: Nothing.
929
- //!
930
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
931
- //! containing all of the elements in the nth bucket.
932
- const_local_iterator cend(size_type n) const
933
- { return table_.cend(n); }
934
-
935
- //! <b>Requires</b>: new_buckets must be a pointer to a new bucket array
936
- //! or the same as the old bucket array. new_size is the length of the
937
- //! the array pointed by new_buckets. If new_buckets == this->bucket_pointer()
938
- //! n can be bigger or smaller than this->bucket_count().
939
- //!
940
- //! <b>Effects</b>: Updates the internal reference with the new bucket erases
941
- //! the values from the old bucket and inserts then in the new one.
942
- //!
943
- //! If store_hash option is true, this method does not use the hash function.
944
- //!
945
- //! <b>Complexity</b>: Average case linear in this->size(), worst case quadratic.
946
- //!
947
- //! <b>Throws</b>: If the hasher functor throws. Basic guarantee.
948
- void rehash(const bucket_traits &new_bucket_traits)
949
- { table_.rehash(new_bucket_traits); }
353
+ //! @copydoc ::boost::intrusive::hashtable::cend(size_type)const
354
+ const_local_iterator cend(size_type n) const;
950
355
 
951
- //! <b>Requires</b>:
952
- //!
953
- //! <b>Effects</b>:
954
- //!
955
- //! <b>Complexity</b>:
956
- //!
957
- //! <b>Throws</b>:
958
- //!
959
- //! <b>Note</b>: this method is only available if incremental<true> option is activated.
960
- bool incremental_rehash(bool grow = true)
961
- { return table_.incremental_rehash(grow); }
356
+ //! @copydoc ::boost::intrusive::hashtable::rehash(const bucket_traits &)
357
+ void rehash(const bucket_traits &new_bucket_traits);
962
358
 
963
- //! <b>Note</b>: this method is only available if incremental<true> option is activated.
964
- bool incremental_rehash(const bucket_traits &new_bucket_traits)
965
- { return table_.incremental_rehash(new_bucket_traits); }
359
+ //! @copydoc ::boost::intrusive::hashtable::incremental_rehash(bool)
360
+ bool incremental_rehash(bool grow = true);
966
361
 
967
- //! <b>Requires</b>:
968
- //!
969
- //! <b>Effects</b>:
970
- //!
971
- //! <b>Complexity</b>:
972
- //!
973
- //! <b>Throws</b>:
974
- size_type split_count() const
975
- { return table_.split_count(); }
976
-
977
- //! <b>Effects</b>: Returns the nearest new bucket count optimized for
978
- //! the container that is bigger than n. This suggestion can be used
979
- //! to create bucket arrays with a size that will usually improve
980
- //! container's performance. If such value does not exist, the
981
- //! higher possible value is returned.
982
- //!
983
- //! <b>Complexity</b>: Amortized constant time.
984
- //!
985
- //! <b>Throws</b>: Nothing.
986
- static size_type suggested_upper_bucket_count(size_type n)
987
- { return table_type::suggested_upper_bucket_count(n); }
988
-
989
- //! <b>Effects</b>: Returns the nearest new bucket count optimized for
990
- //! the container that is smaller than n. This suggestion can be used
991
- //! to create bucket arrays with a size that will usually improve
992
- //! container's performance. If such value does not exist, the
993
- //! lower possible value is returned.
994
- //!
995
- //! <b>Complexity</b>: Amortized constant time.
996
- //!
997
- //! <b>Throws</b>: Nothing.
998
- static size_type suggested_lower_bucket_count(size_type n)
999
- { return table_type::suggested_lower_bucket_count(n); }
362
+ //! @copydoc ::boost::intrusive::hashtable::incremental_rehash(const bucket_traits &)
363
+ bool incremental_rehash(const bucket_traits &new_bucket_traits);
364
+
365
+ //! @copydoc ::boost::intrusive::hashtable::split_count
366
+ size_type split_count() const;
367
+
368
+ //! @copydoc ::boost::intrusive::hashtable::suggested_upper_bucket_count
369
+ static size_type suggested_upper_bucket_count(size_type n);
370
+
371
+ //! @copydoc ::boost::intrusive::hashtable::suggested_lower_bucket_count
372
+ static size_type suggested_lower_bucket_count(size_type n);
373
+
374
+ #endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
375
+
376
+ friend bool operator==(const unordered_set_impl &x, const unordered_set_impl &y)
377
+ {
378
+ if(table_type::constant_time_size && x.size() != y.size()){
379
+ return false;
380
+ }
381
+ //Find each element of x in y
382
+ for (const_iterator ix = x.cbegin(), ex = x.cend(), ey = y.cend(); ix != ex; ++ix){
383
+ const_iterator iy = y.find(key_of_value()(*ix));
384
+ if (iy == ey || !(*ix == *iy))
385
+ return false;
386
+ }
387
+ return true;
388
+ }
389
+
390
+ friend bool operator!=(const unordered_set_impl &x, const unordered_set_impl &y)
391
+ { return !(x == y); }
392
+
393
+ friend bool operator<(const unordered_set_impl &x, const unordered_set_impl &y)
394
+ { return ::boost::intrusive::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
395
+
396
+ friend bool operator>(const unordered_set_impl &x, const unordered_set_impl &y)
397
+ { return y < x; }
398
+
399
+ friend bool operator<=(const unordered_set_impl &x, const unordered_set_impl &y)
400
+ { return !(y < x); }
401
+
402
+ friend bool operator>=(const unordered_set_impl &x, const unordered_set_impl &y)
403
+ { return !(x < y); }
1000
404
  };
1001
405
 
1002
406
  //! Helper metafunction to define an \c unordered_set that yields to the same type when the
@@ -1004,26 +408,46 @@ class unordered_set_impl
1004
408
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1005
409
  template<class T, class ...Options>
1006
410
  #else
1007
- template<class T, class O1 = none, class O2 = none
1008
- , class O3 = none, class O4 = none
1009
- , class O5 = none, class O6 = none
1010
- , class O7 = none, class O8 = none
1011
- , class O9 = none, class O10= none
411
+ template<class T, class O1 = void, class O2 = void
412
+ , class O3 = void, class O4 = void
413
+ , class O5 = void, class O6 = void
414
+ , class O7 = void, class O8 = void
415
+ , class O9 = void, class O10= void
1012
416
  >
1013
417
  #endif
1014
418
  struct make_unordered_set
1015
419
  {
1016
420
  /// @cond
421
+ typedef typename pack_options
422
+ < hashtable_defaults,
423
+ #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
424
+ O1, O2, O3, O4, O5, O6, O7, O8, O9, O10
425
+ #else
426
+ Options...
427
+ #endif
428
+ >::type packed_options;
429
+
430
+ typedef typename detail::get_value_traits
431
+ <T, typename packed_options::proto_value_traits>::type value_traits;
432
+
433
+ typedef typename make_bucket_traits
434
+ <T, true, packed_options>::type bucket_traits;
435
+
1017
436
  typedef unordered_set_impl
1018
- < typename make_hashtable_opt
1019
- <T, true,
1020
- #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
1021
- O1, O2, O3, O4, O5, O6, O7, O8, O9, O10
1022
- #else
1023
- Options...
1024
- #endif
1025
- >::type
437
+ < value_traits
438
+ , typename packed_options::key_of_value
439
+ , typename packed_options::hash
440
+ , typename packed_options::equal
441
+ , typename packed_options::size_type
442
+ , bucket_traits
443
+ , (std::size_t(true)*hash_bool_flags::unique_keys_pos)
444
+ | (std::size_t(packed_options::constant_time_size)*hash_bool_flags::constant_time_size_pos)
445
+ | (std::size_t(packed_options::power_2_buckets)*hash_bool_flags::power_2_buckets_pos)
446
+ | (std::size_t(packed_options::cache_begin)*hash_bool_flags::cache_begin_pos)
447
+ | (std::size_t(packed_options::compare_hash)*hash_bool_flags::compare_hash_pos)
448
+ | (std::size_t(packed_options::incremental)*hash_bool_flags::incremental_pos)
1026
449
  > implementation_defined;
450
+
1027
451
  /// @endcond
1028
452
  typedef implementation_defined type;
1029
453
  };
@@ -1067,10 +491,10 @@ class unordered_set
1067
491
  typedef typename Base::hasher hasher;
1068
492
  typedef typename Base::key_equal key_equal;
1069
493
 
1070
- unordered_set ( const bucket_traits &b_traits
1071
- , const hasher & hash_func = hasher()
1072
- , const key_equal &equal_func = key_equal()
1073
- , const value_traits &v_traits = value_traits())
494
+ explicit unordered_set ( const bucket_traits &b_traits
495
+ , const hasher & hash_func = hasher()
496
+ , const key_equal &equal_func = key_equal()
497
+ , const value_traits &v_traits = value_traits())
1074
498
  : Base(b_traits, hash_func, equal_func, v_traits)
1075
499
  {}
1076
500
 
@@ -1085,11 +509,19 @@ class unordered_set
1085
509
  {}
1086
510
 
1087
511
  unordered_set(BOOST_RV_REF(unordered_set) x)
1088
- : Base(::boost::move(static_cast<Base&>(x)))
512
+ : Base(BOOST_MOVE_BASE(Base, x))
1089
513
  {}
1090
514
 
1091
515
  unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
1092
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
516
+ { return static_cast<unordered_set&>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
517
+
518
+ template <class Cloner, class Disposer>
519
+ void clone_from(const unordered_set &src, Cloner cloner, Disposer disposer)
520
+ { Base::clone_from(src, cloner, disposer); }
521
+
522
+ template <class Cloner, class Disposer>
523
+ void clone_from(BOOST_RV_REF(unordered_set) src, Cloner cloner, Disposer disposer)
524
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
1093
525
  };
1094
526
 
1095
527
  #endif
@@ -1133,13 +565,14 @@ class unordered_set
1133
565
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1134
566
  template<class T, class ...Options>
1135
567
  #else
1136
- template<class Config>
568
+ template<class ValueTraits, class VoidOrKeyOfValue, class VoidOrKeyHash, class VoidOrKeyEqual, class SizeType, class BucketTraits, std::size_t BoolFlags>
1137
569
  #endif
1138
570
  class unordered_multiset_impl
571
+ : public hashtable_impl<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags>
1139
572
  {
1140
573
  /// @cond
1141
574
  private:
1142
- typedef hashtable_impl<Config> table_type;
575
+ typedef hashtable_impl<ValueTraits, VoidOrKeyOfValue, VoidOrKeyHash, VoidOrKeyEqual, BucketTraits, SizeType, BoolFlags> table_type;
1143
576
  /// @endcond
1144
577
 
1145
578
  //Movable
@@ -1149,6 +582,7 @@ class unordered_multiset_impl
1149
582
 
1150
583
  public:
1151
584
  typedef typename implementation_defined::value_type value_type;
585
+ typedef typename implementation_defined::key_type key_type;
1152
586
  typedef typename implementation_defined::value_traits value_traits;
1153
587
  typedef typename implementation_defined::bucket_traits bucket_traits;
1154
588
  typedef typename implementation_defined::pointer pointer;
@@ -1157,7 +591,6 @@ class unordered_multiset_impl
1157
591
  typedef typename implementation_defined::const_reference const_reference;
1158
592
  typedef typename implementation_defined::difference_type difference_type;
1159
593
  typedef typename implementation_defined::size_type size_type;
1160
- typedef typename implementation_defined::key_type key_type;
1161
594
  typedef typename implementation_defined::key_equal key_equal;
1162
595
  typedef typename implementation_defined::hasher hasher;
1163
596
  typedef typename implementation_defined::bucket_type bucket_type;
@@ -1173,48 +606,17 @@ class unordered_multiset_impl
1173
606
  typedef typename implementation_defined::const_node_ptr const_node_ptr;
1174
607
  typedef typename implementation_defined::node_algorithms node_algorithms;
1175
608
 
1176
- /// @cond
1177
- private:
1178
- table_type table_;
1179
- /// @endcond
1180
-
1181
609
  public:
1182
610
 
1183
- //! <b>Requires</b>: buckets must not be being used by any other resource.
1184
- //!
1185
- //! <b>Effects</b>: Constructs an empty unordered_multiset, storing a reference
1186
- //! to the bucket array and copies of the hasher and equal functors.
1187
- //!
1188
- //! <b>Complexity</b>: Constant.
1189
- //!
1190
- //! <b>Throws</b>: If value_traits::node_traits::node
1191
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1192
- //! or the copy constructor or invocation of Hash or Equal throws.
1193
- //!
1194
- //! <b>Notes</b>: buckets array must be disposed only after
1195
- //! *this is disposed.
611
+ //! @copydoc ::boost::intrusive::hashtable::hashtable(const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
1196
612
  explicit unordered_multiset_impl ( const bucket_traits &b_traits
1197
613
  , const hasher & hash_func = hasher()
1198
614
  , const key_equal &equal_func = key_equal()
1199
615
  , const value_traits &v_traits = value_traits())
1200
- : table_(b_traits, hash_func, equal_func, v_traits)
616
+ : table_type(b_traits, hash_func, equal_func, v_traits)
1201
617
  {}
1202
618
 
1203
- //! <b>Requires</b>: buckets must not be being used by any other resource
1204
- //! and Dereferencing iterator must yield an lvalue of type value_type.
1205
- //!
1206
- //! <b>Effects</b>: Constructs an empty unordered_multiset and inserts elements from
1207
- //! [b, e).
1208
- //!
1209
- //! <b>Complexity</b>: If N is std::distance(b, e): Average case is O(N)
1210
- //! (with a good hash function and with buckets_len >= N),worst case O(N2).
1211
- //!
1212
- //! <b>Throws</b>: If value_traits::node_traits::node
1213
- //! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
1214
- //! or the copy constructor or invocation of hasher or key_equal throws.
1215
- //!
1216
- //! <b>Notes</b>: buckets array must be disposed only after
1217
- //! *this is disposed.
619
+ //! @copydoc ::boost::intrusive::hashtable::hashtable(bool,Iterator,Iterator,const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
1218
620
  template<class Iterator>
1219
621
  unordered_multiset_impl ( Iterator b
1220
622
  , Iterator e
@@ -1222,795 +624,230 @@ class unordered_multiset_impl
1222
624
  , const hasher & hash_func = hasher()
1223
625
  , const key_equal &equal_func = key_equal()
1224
626
  , const value_traits &v_traits = value_traits())
1225
- : table_(b_traits, hash_func, equal_func, v_traits)
1226
- { table_.insert_equal(b, e); }
627
+ : table_type(false, b, e, b_traits, hash_func, equal_func, v_traits)
628
+ {}
1227
629
 
1228
630
  //! <b>Effects</b>: to-do
1229
631
  //!
1230
632
  unordered_multiset_impl(BOOST_RV_REF(unordered_multiset_impl) x)
1231
- : table_(::boost::move(x.table_))
633
+ : table_type(BOOST_MOVE_BASE(table_type, x))
1232
634
  {}
1233
635
 
1234
636
  //! <b>Effects</b>: to-do
1235
637
  //!
1236
638
  unordered_multiset_impl& operator=(BOOST_RV_REF(unordered_multiset_impl) x)
1237
- { table_ = ::boost::move(x.table_); return *this; }
639
+ { return static_cast<unordered_multiset_impl&>(table_type::operator=(BOOST_MOVE_BASE(table_type, x))); }
1238
640
 
1239
- //! <b>Effects</b>: Detaches all elements from this. The objects in the unordered_multiset
1240
- //! are not deleted (i.e. no destructors are called).
1241
- //!
1242
- //! <b>Complexity</b>: Linear to the number of elements in the unordered_multiset, if
1243
- //! it's a safe-mode or auto-unlink value. Otherwise constant.
1244
- //!
1245
- //! <b>Throws</b>: Nothing.
1246
- ~unordered_multiset_impl()
1247
- {}
641
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1248
642
 
1249
- //! <b>Effects</b>: Returns an iterator pointing to the beginning of the unordered_multiset.
1250
- //!
1251
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
1252
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
1253
- //!
1254
- //! <b>Throws</b>: Nothing.
1255
- iterator begin()
1256
- { return table_.begin(); }
643
+ //! @copydoc ::boost::intrusive::hashtable::~hashtable()
644
+ ~unordered_multiset_impl();
1257
645
 
1258
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning
1259
- //! of the unordered_multiset.
1260
- //!
1261
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
1262
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
1263
- //!
1264
- //! <b>Throws</b>: Nothing.
1265
- const_iterator begin() const
1266
- { return table_.begin(); }
646
+ //! @copydoc ::boost::intrusive::hashtable::begin()
647
+ iterator begin();
1267
648
 
1268
- //! <b>Effects</b>: Returns a const_iterator pointing to the beginning
1269
- //! of the unordered_multiset.
1270
- //!
1271
- //! <b>Complexity</b>: Constant time if `cache_begin<>` is true. Amortized
1272
- //! constant time with worst case (empty unordered_set) O(this->bucket_count())
1273
- //!
1274
- //! <b>Throws</b>: Nothing.
1275
- const_iterator cbegin() const
1276
- { return table_.cbegin(); }
649
+ //! @copydoc ::boost::intrusive::hashtable::begin()const
650
+ const_iterator begin() const;
1277
651
 
1278
- //! <b>Effects</b>: Returns an iterator pointing to the end of the unordered_multiset.
1279
- //!
1280
- //! <b>Complexity</b>: Constant.
1281
- //!
1282
- //! <b>Throws</b>: Nothing.
1283
- iterator end()
1284
- { return table_.end(); }
652
+ //! @copydoc ::boost::intrusive::hashtable::cbegin()const
653
+ const_iterator cbegin() const;
1285
654
 
1286
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the unordered_multiset.
1287
- //!
1288
- //! <b>Complexity</b>: Constant.
1289
- //!
1290
- //! <b>Throws</b>: Nothing.
1291
- const_iterator end() const
1292
- { return table_.end(); }
655
+ //! @copydoc ::boost::intrusive::hashtable::end()
656
+ iterator end();
1293
657
 
1294
- //! <b>Effects</b>: Returns a const_iterator pointing to the end of the unordered_multiset.
1295
- //!
1296
- //! <b>Complexity</b>: Constant.
1297
- //!
1298
- //! <b>Throws</b>: Nothing.
1299
- const_iterator cend() const
1300
- { return table_.cend(); }
658
+ //! @copydoc ::boost::intrusive::hashtable::end()const
659
+ const_iterator end() const;
1301
660
 
1302
- //! <b>Effects</b>: Returns the hasher object used by the unordered_set.
1303
- //!
1304
- //! <b>Complexity</b>: Constant.
1305
- //!
1306
- //! <b>Throws</b>: If hasher copy-constructor throws.
1307
- hasher hash_function() const
1308
- { return table_.hash_function(); }
661
+ //! @copydoc ::boost::intrusive::hashtable::cend()const
662
+ const_iterator cend() const;
1309
663
 
1310
- //! <b>Effects</b>: Returns the key_equal object used by the unordered_multiset.
1311
- //!
1312
- //! <b>Complexity</b>: Constant.
1313
- //!
1314
- //! <b>Throws</b>: If key_equal copy-constructor throws.
1315
- key_equal key_eq() const
1316
- { return table_.key_eq(); }
664
+ //! @copydoc ::boost::intrusive::hashtable::hash_function()const
665
+ hasher hash_function() const;
1317
666
 
1318
- //! <b>Effects</b>: Returns true if the container is empty.
1319
- //!
1320
- //! <b>Complexity</b>: if constant-time size and cache_last options are disabled,
1321
- //! average constant time (worst case, with empty() == true: O(this->bucket_count()).
1322
- //! Otherwise constant.
1323
- //!
1324
- //! <b>Throws</b>: Nothing.
1325
- bool empty() const
1326
- { return table_.empty(); }
667
+ //! @copydoc ::boost::intrusive::hashtable::key_eq()const
668
+ key_equal key_eq() const;
1327
669
 
1328
- //! <b>Effects</b>: Returns the number of elements stored in the unordered_multiset.
1329
- //!
1330
- //! <b>Complexity</b>: Linear to elements contained in *this if
1331
- //! constant-time size option is disabled. Constant-time otherwise.
1332
- //!
1333
- //! <b>Throws</b>: Nothing.
1334
- size_type size() const
1335
- { return table_.size(); }
670
+ //! @copydoc ::boost::intrusive::hashtable::empty()const
671
+ bool empty() const;
1336
672
 
1337
- //! <b>Requires</b>: the hasher and the equality function unqualified swap
1338
- //! call should not throw.
1339
- //!
1340
- //! <b>Effects</b>: Swaps the contents of two unordered_multisets.
1341
- //! Swaps also the contained bucket array and equality and hasher functors.
1342
- //!
1343
- //!
1344
- //! <b>Complexity</b>: Constant.
1345
- //!
1346
- //! <b>Throws</b>: If the swap() call for the comparison or hash functors
1347
- //! found using ADL throw. Basic guarantee.
1348
- void swap(unordered_multiset_impl& other)
1349
- { table_.swap(other.table_); }
1350
-
1351
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1352
- //! Cloner should yield to nodes that compare equal and produce the same
1353
- //! hash than the original node.
1354
- //!
1355
- //! <b>Effects</b>: Erases all the elements from *this
1356
- //! calling Disposer::operator()(pointer), clones all the
1357
- //! elements from src calling Cloner::operator()(const_reference )
1358
- //! and inserts them on *this. The hash function and the equality
1359
- //! predicate are copied from the source.
1360
- //!
1361
- //! If store_hash option is true, this method does not use the hash function.
1362
- //!
1363
- //! If any operation throws, all cloned elements are unlinked and disposed
1364
- //! calling Disposer::operator()(pointer).
1365
- //!
1366
- //! <b>Complexity</b>: Linear to erased plus inserted elements.
1367
- //!
1368
- //! <b>Throws</b>: If cloner or hasher throw or hash or equality predicate copying
1369
- //! throws. Basic guarantee.
673
+ //! @copydoc ::boost::intrusive::hashtable::size()const
674
+ size_type size() const;
675
+
676
+ //! @copydoc ::boost::intrusive::hashtable::hashtable
677
+ void swap(unordered_multiset_impl& other);
678
+
679
+ //! @copydoc ::boost::intrusive::hashtable::clone_from(const hashtable&,Cloner,Disposer)
1370
680
  template <class Cloner, class Disposer>
1371
- void clone_from(const unordered_multiset_impl &src, Cloner cloner, Disposer disposer)
1372
- { table_.clone_from(src.table_, cloner, disposer); }
681
+ void clone_from(const unordered_multiset_impl &src, Cloner cloner, Disposer disposer);
1373
682
 
1374
- //! <b>Requires</b>: value must be an lvalue
1375
- //!
1376
- //! <b>Effects</b>: Inserts value into the unordered_multiset.
1377
- //!
1378
- //! <b>Returns</b>: An iterator to the new inserted value.
1379
- //!
1380
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1381
- //!
1382
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Strong guarantee.
1383
- //!
1384
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1385
- //! No copy-constructors are called.
683
+ #else
684
+
685
+ using table_type::clone_from;
686
+
687
+ #endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
688
+
689
+ //! @copydoc ::boost::intrusive::hashtable::clone_from(hashtable&&,Cloner,Disposer)
690
+ template <class Cloner, class Disposer>
691
+ void clone_from(BOOST_RV_REF(unordered_multiset_impl) src, Cloner cloner, Disposer disposer)
692
+ { table_type::clone_from(BOOST_MOVE_BASE(table_type, src), cloner, disposer); }
693
+
694
+ //! @copydoc ::boost::intrusive::hashtable::insert_equal(reference)
1386
695
  iterator insert(reference value)
1387
- { return table_.insert_equal(value); }
696
+ { return table_type::insert_equal(value); }
1388
697
 
1389
- //! <b>Requires</b>: Dereferencing iterator must yield an lvalue
1390
- //! of type value_type.
1391
- //!
1392
- //! <b>Effects</b>: Equivalent to this->insert(t) for each element in [b, e).
1393
- //!
1394
- //! <b>Complexity</b>: Average case is O(N), where N is the
1395
- //! size of the range.
1396
- //!
1397
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
1398
- //!
1399
- //! <b>Note</b>: Does not affect the validity of iterators and references.
1400
- //! No copy-constructors are called.
698
+ //! @copydoc ::boost::intrusive::hashtable::insert_equal(Iterator,Iterator)
1401
699
  template<class Iterator>
1402
700
  void insert(Iterator b, Iterator e)
1403
- { table_.insert_equal(b, e); }
701
+ { table_type::insert_equal(b, e); }
1404
702
 
1405
- //! <b>Effects</b>: Erases the element pointed to by i.
1406
- //!
1407
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1408
- //!
1409
- //! <b>Throws</b>: Nothing.
1410
- //!
1411
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1412
- //! to the erased element. No destructors are called.
1413
- void erase(const_iterator i)
1414
- { table_.erase(i); }
703
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1415
704
 
1416
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1417
- //!
1418
- //! <b>Complexity</b>: Average case O(std::distance(b, e)),
1419
- //! worst case O(this->size()).
1420
- //!
1421
- //! <b>Throws</b>: Nothing.
1422
- //!
1423
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1424
- //! to the erased elements. No destructors are called.
1425
- void erase(const_iterator b, const_iterator e)
1426
- { table_.erase(b, e); }
705
+ //! @copydoc ::boost::intrusive::hashtable::erase(const_iterator)
706
+ void erase(const_iterator i);
1427
707
 
1428
- //! <b>Effects</b>: Erases all the elements with the given value.
1429
- //!
1430
- //! <b>Returns</b>: The number of erased elements.
1431
- //!
1432
- //! <b>Complexity</b>: Average case O(this->count(value)).
1433
- //! Worst case O(this->size()).
1434
- //!
1435
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
1436
- //!
1437
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1438
- //! to the erased elements. No destructors are called.
1439
- size_type erase(const_reference value)
1440
- { return table_.erase(value); }
1441
-
1442
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1443
- //! the same hash values as the stored hasher. The difference is that
1444
- //! "hash_func" hashes the given key instead of the value_type.
1445
- //!
1446
- //! "key_value_equal" must be a equality function that induces
1447
- //! the same equality as key_equal. The difference is that
1448
- //! "key_value_equal" compares an arbitrary key with the contained values.
1449
- //!
1450
- //! <b>Effects</b>: Erases all the elements that have the same hash and
1451
- //! compare equal with the given key.
1452
- //!
1453
- //! <b>Returns</b>: The number of erased elements.
1454
- //!
1455
- //! <b>Complexity</b>: Average case O(this->count(value)).
1456
- //! Worst case O(this->size()).
1457
- //!
1458
- //! <b>Throws</b>: If the hash_func or the equal_func functors throws.
1459
- //! Basic guarantee.
1460
- //!
1461
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1462
- //! to the erased elements. No destructors are called.
1463
- template<class KeyType, class KeyHasher, class KeyValueEqual>
1464
- size_type erase(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
1465
- { return table_.erase(key, hash_func, equal_func); }
708
+ //! @copydoc ::boost::intrusive::hashtable::erase(const_iterator,const_iterator)
709
+ void erase(const_iterator b, const_iterator e);
1466
710
 
1467
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1468
- //!
1469
- //! <b>Effects</b>: Erases the element pointed to by i.
1470
- //! Disposer::operator()(pointer) is called for the removed element.
1471
- //!
1472
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1473
- //!
1474
- //! <b>Throws</b>: Nothing.
1475
- //!
1476
- //! <b>Note</b>: Invalidates the iterators
1477
- //! to the erased elements.
1478
- template<class Disposer>
1479
- void erase_and_dispose(const_iterator i, Disposer disposer
1480
- /// @cond
1481
- , typename detail::enable_if_c<!detail::is_convertible<Disposer, const_iterator>::value >::type * = 0
1482
- /// @endcond
1483
- )
1484
- { table_.erase_and_dispose(i, disposer); }
1485
-
1486
- #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
711
+ //! @copydoc ::boost::intrusive::hashtable::erase(const key_type &)
712
+ size_type erase(const key_type &key);
713
+
714
+ //! @copydoc ::boost::intrusive::hashtable::erase(const KeyType&,KeyHasher,KeyEqual)
715
+ template<class KeyType, class KeyHasher, class KeyEqual>
716
+ size_type erase(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func);
717
+
718
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const_iterator,Disposer)
1487
719
  template<class Disposer>
1488
- void erase_and_dispose(const_iterator i, Disposer disposer)
1489
- { this->erase_and_dispose(const_iterator(i), disposer); }
1490
- #endif
720
+ BOOST_INTRUSIVE_DOC1ST(void
721
+ , typename detail::disable_if_convertible<Disposer BOOST_INTRUSIVE_I const_iterator>::type)
722
+ erase_and_dispose(const_iterator i, Disposer disposer);
1491
723
 
1492
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1493
- //!
1494
- //! <b>Effects</b>: Erases the range pointed to by b end e.
1495
- //! Disposer::operator()(pointer) is called for the removed elements.
1496
- //!
1497
- //! <b>Complexity</b>: Average case O(std::distance(b, e)),
1498
- //! worst case O(this->size()).
1499
- //!
1500
- //! <b>Throws</b>: Nothing.
1501
- //!
1502
- //! <b>Note</b>: Invalidates the iterators
1503
- //! to the erased elements.
724
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const_iterator,const_iterator,Disposer)
1504
725
  template<class Disposer>
1505
- void erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer)
1506
- { table_.erase_and_dispose(b, e, disposer); }
726
+ void erase_and_dispose(const_iterator b, const_iterator e, Disposer disposer);
1507
727
 
1508
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1509
- //!
1510
- //! <b>Effects</b>: Erases all the elements with the given value.
1511
- //! Disposer::operator()(pointer) is called for the removed elements.
1512
- //!
1513
- //! <b>Returns</b>: The number of erased elements.
1514
- //!
1515
- //! <b>Complexity</b>: Average case O(this->count(value)).
1516
- //! Worst case O(this->size()).
1517
- //!
1518
- //! <b>Throws</b>: If the internal hasher or the equality functor throws. Basic guarantee.
1519
- //!
1520
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1521
- //! to the erased elements. No destructors are called.
728
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const key_type &,Disposer)
1522
729
  template<class Disposer>
1523
- size_type erase_and_dispose(const_reference value, Disposer disposer)
1524
- { return table_.erase_and_dispose(value, disposer); }
730
+ size_type erase_and_dispose(const key_type &key, Disposer disposer);
1525
731
 
1526
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1527
- //!
1528
- //! <b>Effects</b>: Erases all the elements with the given key.
1529
- //! according to the comparison functor "equal_func".
1530
- //! Disposer::operator()(pointer) is called for the removed elements.
1531
- //!
1532
- //! <b>Returns</b>: The number of erased elements.
1533
- //!
1534
- //! <b>Complexity</b>: Average case O(this->count(value)).
1535
- //! Worst case O(this->size()).
1536
- //!
1537
- //! <b>Throws</b>: If hash_func or equal_func throw. Basic guarantee.
1538
- //!
1539
- //! <b>Note</b>: Invalidates the iterators
1540
- //! to the erased elements.
1541
- template<class KeyType, class KeyHasher, class KeyValueEqual, class Disposer>
1542
- size_type erase_and_dispose(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func, Disposer disposer)
1543
- { return table_.erase_and_dispose(key, hash_func, equal_func, disposer); }
732
+ //! @copydoc ::boost::intrusive::hashtable::erase_and_dispose(const KeyType&,KeyHasher,KeyEqual,Disposer)
733
+ template<class KeyType, class KeyHasher, class KeyEqual, class Disposer>
734
+ size_type erase_and_dispose(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func, Disposer disposer);
1544
735
 
1545
- //! <b>Effects</b>: Erases all the elements of the container.
1546
- //!
1547
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1548
- //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
1549
- //!
1550
- //! <b>Throws</b>: Nothing.
1551
- //!
1552
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1553
- //! to the erased elements. No destructors are called.
1554
- void clear()
1555
- { return table_.clear(); }
736
+ //! @copydoc ::boost::intrusive::hashtable::clear
737
+ void clear();
1556
738
 
1557
- //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1558
- //!
1559
- //! <b>Effects</b>: Erases all the elements of the container.
1560
- //!
1561
- //! <b>Complexity</b>: Linear to the number of elements on the container.
1562
- //! Disposer::operator()(pointer) is called for the removed elements.
1563
- //!
1564
- //! <b>Throws</b>: Nothing.
1565
- //!
1566
- //! <b>Note</b>: Invalidates the iterators (but not the references)
1567
- //! to the erased elements. No destructors are called.
739
+ //! @copydoc ::boost::intrusive::hashtable::clear_and_dispose
1568
740
  template<class Disposer>
1569
- void clear_and_dispose(Disposer disposer)
1570
- { return table_.clear_and_dispose(disposer); }
741
+ void clear_and_dispose(Disposer disposer);
1571
742
 
1572
- //! <b>Effects</b>: Returns the number of contained elements with the given key
1573
- //!
1574
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1575
- //!
1576
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1577
- size_type count(const_reference value) const
1578
- { return table_.count(value); }
743
+ //! @copydoc ::boost::intrusive::hashtable::count(const key_type &)const
744
+ size_type count(const key_type &key) const;
1579
745
 
1580
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1581
- //! the same hash values as the stored hasher. The difference is that
1582
- //! "hash_func" hashes the given key instead of the value_type.
1583
- //!
1584
- //! "key_value_equal" must be a equality function that induces
1585
- //! the same equality as key_equal. The difference is that
1586
- //! "key_value_equal" compares an arbitrary key with the contained values.
1587
- //!
1588
- //! <b>Effects</b>: Returns the number of contained elements with the given key
1589
- //!
1590
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1591
- //!
1592
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1593
- template<class KeyType, class KeyHasher, class KeyValueEqual>
1594
- size_type count(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
1595
- { return table_.count(key, hash_func, equal_func); }
746
+ //! @copydoc ::boost::intrusive::hashtable::count(const KeyType&,KeyHasher,KeyEqual)const
747
+ template<class KeyType, class KeyHasher, class KeyEqual>
748
+ size_type count(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const;
1596
749
 
1597
- //! <b>Effects</b>: Finds an iterator to the first element whose value is
1598
- //! "value" or end() if that element does not exist.
1599
- //!
1600
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1601
- //!
1602
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1603
- iterator find(const_reference value)
1604
- { return table_.find(value); }
750
+ //! @copydoc ::boost::intrusive::hashtable::find(const key_type &)
751
+ iterator find(const key_type &key);
1605
752
 
1606
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1607
- //! the same hash values as the stored hasher. The difference is that
1608
- //! "hash_func" hashes the given key instead of the value_type.
1609
- //!
1610
- //! "key_value_equal" must be a equality function that induces
1611
- //! the same equality as key_equal. The difference is that
1612
- //! "key_value_equal" compares an arbitrary key with the contained values.
1613
- //!
1614
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
1615
- //! "key" according to the given hasher and equality functor or end() if
1616
- //! that element does not exist.
1617
- //!
1618
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1619
- //!
1620
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1621
- //!
1622
- //! <b>Note</b>: This function is used when constructing a value_type
1623
- //! is expensive and the value_type can be compared with a cheaper
1624
- //! key type. Usually this key is part of the value_type.
1625
- template<class KeyType, class KeyHasher, class KeyValueEqual>
1626
- iterator find(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
1627
- { return table_.find(key, hash_func, equal_func); }
1628
-
1629
- //! <b>Effects</b>: Finds a const_iterator to the first element whose key is
1630
- //! "key" or end() if that element does not exist.
1631
- //!
1632
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1633
- //!
1634
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1635
- const_iterator find(const_reference value) const
1636
- { return table_.find(value); }
753
+ //! @copydoc ::boost::intrusive::hashtable::find(const KeyType &,KeyHasher,KeyEqual)
754
+ template<class KeyType, class KeyHasher, class KeyEqual>
755
+ iterator find(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func);
1637
756
 
1638
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1639
- //! the same hash values as the stored hasher. The difference is that
1640
- //! "hash_func" hashes the given key instead of the value_type.
1641
- //!
1642
- //! "key_value_equal" must be a equality function that induces
1643
- //! the same equality as key_equal. The difference is that
1644
- //! "key_value_equal" compares an arbitrary key with the contained values.
1645
- //!
1646
- //! <b>Effects</b>: Finds an iterator to the first element whose key is
1647
- //! "key" according to the given hasher and equality functor or end() if
1648
- //! that element does not exist.
1649
- //!
1650
- //! <b>Complexity</b>: Average case O(1), worst case O(this->size()).
1651
- //!
1652
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1653
- //!
1654
- //! <b>Note</b>: This function is used when constructing a value_type
1655
- //! is expensive and the value_type can be compared with a cheaper
1656
- //! key type. Usually this key is part of the value_type.
1657
- template<class KeyType, class KeyHasher, class KeyValueEqual>
1658
- const_iterator find(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
1659
- { return table_.find(key, hash_func, equal_func); }
1660
-
1661
- //! <b>Effects</b>: Returns a range containing all elements with values equivalent
1662
- //! to value. Returns std::make_pair(this->end(), this->end()) if no such
1663
- //! elements exist.
1664
- //!
1665
- //! <b>Complexity</b>: Average case O(this->count(value)). Worst case O(this->size()).
1666
- //!
1667
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1668
- std::pair<iterator,iterator> equal_range(const_reference value)
1669
- { return table_.equal_range(value); }
757
+ //! @copydoc ::boost::intrusive::hashtable::count(const key_type &)const
758
+ const_iterator find(const key_type &key) const;
1670
759
 
1671
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1672
- //! the same hash values as the stored hasher. The difference is that
1673
- //! "hash_func" hashes the given key instead of the value_type.
1674
- //!
1675
- //! "key_value_equal" must be a equality function that induces
1676
- //! the same equality as key_equal. The difference is that
1677
- //! "key_value_equal" compares an arbitrary key with the contained values.
1678
- //!
1679
- //! <b>Effects</b>: Returns a range containing all elements with equivalent
1680
- //! keys. Returns std::make_pair(this->end(), this->end()) if no such
1681
- //! elements exist.
1682
- //!
1683
- //! <b>Complexity</b>: Average case O(this->count(key, hash_func, equal_func)).
1684
- //! Worst case O(this->size()).
1685
- //!
1686
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1687
- //!
1688
- //! <b>Note</b>: This function is used when constructing a value_type
1689
- //! is expensive and the value_type can be compared with a cheaper
1690
- //! key type. Usually this key is part of the value_type.
1691
- template<class KeyType, class KeyHasher, class KeyValueEqual>
1692
- std::pair<iterator,iterator> equal_range
1693
- (const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func)
1694
- { return table_.equal_range(key, hash_func, equal_func); }
1695
-
1696
- //! <b>Effects</b>: Returns a range containing all elements with values equivalent
1697
- //! to value. Returns std::make_pair(this->end(), this->end()) if no such
1698
- //! elements exist.
1699
- //!
1700
- //! <b>Complexity</b>: Average case O(this->count(value)). Worst case O(this->size()).
1701
- //!
1702
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
760
+ //! @copydoc ::boost::intrusive::hashtable::find(const KeyType &,KeyHasher,KeyEqual)const
761
+ template<class KeyType, class KeyHasher, class KeyEqual>
762
+ const_iterator find(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const;
763
+
764
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const key_type&)
765
+ std::pair<iterator,iterator> equal_range(const key_type &key);
766
+
767
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const KeyType &,KeyHasher,KeyEqual)
768
+ template<class KeyType, class KeyHasher, class KeyEqual>
769
+ std::pair<iterator,iterator> equal_range(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func);
770
+
771
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const key_type&)const
1703
772
  std::pair<const_iterator, const_iterator>
1704
- equal_range(const_reference value) const
1705
- { return table_.equal_range(value); }
773
+ equal_range(const key_type &key) const;
1706
774
 
1707
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1708
- //! the same hash values as the stored hasher. The difference is that
1709
- //! "hash_func" hashes the given key instead of the value_type.
1710
- //!
1711
- //! "key_value_equal" must be a equality function that induces
1712
- //! the same equality as key_equal. The difference is that
1713
- //! "key_value_equal" compares an arbitrary key with the contained values.
1714
- //!
1715
- //! <b>Effects</b>: Returns a range containing all elements with equivalent
1716
- //! keys. Returns std::make_pair(this->end(), this->end()) if no such
1717
- //! elements exist.
1718
- //!
1719
- //! <b>Complexity</b>: Average case O(this->count(key, hash_func, equal_func)).
1720
- //! Worst case O(this->size()).
1721
- //!
1722
- //! <b>Throws</b>: If the internal hasher or the equality functor throws.
1723
- //!
1724
- //! <b>Note</b>: This function is used when constructing a value_type
1725
- //! is expensive and the value_type can be compared with a cheaper
1726
- //! key type. Usually this key is part of the value_type.
1727
- template<class KeyType, class KeyHasher, class KeyValueEqual>
775
+ //! @copydoc ::boost::intrusive::hashtable::equal_range(const KeyType &,KeyHasher,KeyEqual)const
776
+ template<class KeyType, class KeyHasher, class KeyEqual>
1728
777
  std::pair<const_iterator, const_iterator>
1729
- equal_range(const KeyType& key, KeyHasher hash_func, KeyValueEqual equal_func) const
1730
- { return table_.equal_range(key, hash_func, equal_func); }
778
+ equal_range(const KeyType& key, KeyHasher hash_func, KeyEqual equal_func) const;
1731
779
 
1732
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_multiset of
1733
- //! appropriate type. Otherwise the behavior is undefined.
1734
- //!
1735
- //! <b>Effects</b>: Returns: a valid iterator belonging to the unordered_multiset
1736
- //! that points to the value
1737
- //!
1738
- //! <b>Complexity</b>: Constant.
1739
- //!
1740
- //! <b>Throws</b>: If the hash function throws.
1741
- iterator iterator_to(reference value)
1742
- { return table_.iterator_to(value); }
780
+ //! @copydoc ::boost::intrusive::hashtable::iterator_to(reference)
781
+ iterator iterator_to(reference value);
1743
782
 
1744
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_multiset of
1745
- //! appropriate type. Otherwise the behavior is undefined.
1746
- //!
1747
- //! <b>Effects</b>: Returns: a valid const_iterator belonging to the
1748
- //! unordered_multiset that points to the value
1749
- //!
1750
- //! <b>Complexity</b>: Constant.
1751
- //!
1752
- //! <b>Throws</b>: If the hash function throws.
1753
- const_iterator iterator_to(const_reference value) const
1754
- { return table_.iterator_to(value); }
783
+ //! @copydoc ::boost::intrusive::hashtable::iterator_to(const_reference)const
784
+ const_iterator iterator_to(const_reference value) const;
1755
785
 
1756
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
1757
- //! appropriate type. Otherwise the behavior is undefined.
1758
- //!
1759
- //! <b>Effects</b>: Returns: a valid local_iterator belonging to the unordered_set
1760
- //! that points to the value
1761
- //!
1762
- //! <b>Complexity</b>: Constant.
1763
- //!
1764
- //! <b>Throws</b>: Nothing.
1765
- //!
1766
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1767
- //! is stateless.
1768
- static local_iterator s_local_iterator_to(reference value)
1769
- { return table_type::s_local_iterator_to(value); }
786
+ //! @copydoc ::boost::intrusive::hashtable::s_local_iterator_to(reference)
787
+ static local_iterator s_local_iterator_to(reference value);
1770
788
 
1771
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
1772
- //! appropriate type. Otherwise the behavior is undefined.
1773
- //!
1774
- //! <b>Effects</b>: Returns: a valid const_local_iterator belonging to
1775
- //! the unordered_set that points to the value
1776
- //!
1777
- //! <b>Complexity</b>: Constant.
1778
- //!
1779
- //! <b>Throws</b>: Nothing.
1780
- //!
1781
- //! <b>Note</b>: This static function is available only if the <i>value traits</i>
1782
- //! is stateless.
1783
- static const_local_iterator s_local_iterator_to(const_reference value)
1784
- { return table_type::s_local_iterator_to(value); }
789
+ //! @copydoc ::boost::intrusive::hashtable::s_local_iterator_to(const_reference)
790
+ static const_local_iterator s_local_iterator_to(const_reference value);
1785
791
 
1786
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
1787
- //! appropriate type. Otherwise the behavior is undefined.
1788
- //!
1789
- //! <b>Effects</b>: Returns: a valid local_iterator belonging to the unordered_set
1790
- //! that points to the value
1791
- //!
1792
- //! <b>Complexity</b>: Constant.
1793
- //!
1794
- //! <b>Throws</b>: Nothing.
1795
- local_iterator local_iterator_to(reference value)
1796
- { return table_.local_iterator_to(value); }
792
+ //! @copydoc ::boost::intrusive::hashtable::local_iterator_to(reference)
793
+ local_iterator local_iterator_to(reference value);
1797
794
 
1798
- //! <b>Requires</b>: value must be an lvalue and shall be in a unordered_set of
1799
- //! appropriate type. Otherwise the behavior is undefined.
1800
- //!
1801
- //! <b>Effects</b>: Returns: a valid const_local_iterator belonging to
1802
- //! the unordered_set that points to the value
1803
- //!
1804
- //! <b>Complexity</b>: Constant.
1805
- //!
1806
- //! <b>Throws</b>: Nothing.
1807
- const_local_iterator local_iterator_to(const_reference value) const
1808
- { return table_.local_iterator_to(value); }
795
+ //! @copydoc ::boost::intrusive::hashtable::local_iterator_to(const_reference)
796
+ const_local_iterator local_iterator_to(const_reference value) const;
1809
797
 
1810
- //! <b>Effects</b>: Returns the number of buckets passed in the constructor
1811
- //! or the last rehash function.
1812
- //!
1813
- //! <b>Complexity</b>: Constant.
1814
- //!
1815
- //! <b>Throws</b>: Nothing.
1816
- size_type bucket_count() const
1817
- { return table_.bucket_count(); }
798
+ //! @copydoc ::boost::intrusive::hashtable::bucket_count
799
+ size_type bucket_count() const;
1818
800
 
1819
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1820
- //!
1821
- //! <b>Effects</b>: Returns the number of elements in the nth bucket.
1822
- //!
1823
- //! <b>Complexity</b>: Constant.
1824
- //!
1825
- //! <b>Throws</b>: Nothing.
1826
- size_type bucket_size(size_type n) const
1827
- { return table_.bucket_size(n); }
801
+ //! @copydoc ::boost::intrusive::hashtable::bucket_size
802
+ size_type bucket_size(size_type n) const;
1828
803
 
1829
- //! <b>Effects</b>: Returns the index of the bucket in which elements
1830
- //! with keys equivalent to k would be found, if any such element existed.
1831
- //!
1832
- //! <b>Complexity</b>: Constant.
1833
- //!
1834
- //! <b>Throws</b>: If the hash functor throws.
1835
- //!
1836
- //! <b>Note</b>: the return value is in the range [0, this->bucket_count()).
1837
- size_type bucket(const value_type& k) const
1838
- { return table_.bucket(k); }
804
+ //! @copydoc ::boost::intrusive::hashtable::bucket(const key_type&)const
805
+ size_type bucket(const key_type& k) const;
1839
806
 
1840
- //! <b>Requires</b>: "hash_func" must be a hash function that induces
1841
- //! the same hash values as the stored hasher. The difference is that
1842
- //! "hash_func" hashes the given key instead of the value_type.
1843
- //!
1844
- //! <b>Effects</b>: Returns the index of the bucket in which elements
1845
- //! with keys equivalent to k would be found, if any such element existed.
1846
- //!
1847
- //! <b>Complexity</b>: Constant.
1848
- //!
1849
- //! <b>Throws</b>: If the hash functor throws.
1850
- //!
1851
- //! <b>Note</b>: the return value is in the range [0, this->bucket_count()).
807
+ //! @copydoc ::boost::intrusive::hashtable::bucket(const KeyType&,KeyHasher)const
1852
808
  template<class KeyType, class KeyHasher>
1853
- size_type bucket(const KeyType& k, const KeyHasher &hash_func) const
1854
- { return table_.bucket(k, hash_func); }
809
+ size_type bucket(const KeyType& k, KeyHasher hash_func) const;
1855
810
 
1856
- //! <b>Effects</b>: Returns the bucket array pointer passed in the constructor
1857
- //! or the last rehash function.
1858
- //!
1859
- //! <b>Complexity</b>: Constant.
1860
- //!
1861
- //! <b>Throws</b>: Nothing.
1862
- bucket_ptr bucket_pointer() const
1863
- { return table_.bucket_pointer(); }
811
+ //! @copydoc ::boost::intrusive::hashtable::bucket_pointer
812
+ bucket_ptr bucket_pointer() const;
1864
813
 
1865
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1866
- //!
1867
- //! <b>Effects</b>: Returns a local_iterator pointing to the beginning
1868
- //! of the sequence stored in the bucket n.
1869
- //!
1870
- //! <b>Complexity</b>: Constant.
1871
- //!
1872
- //! <b>Throws</b>: Nothing.
1873
- //!
1874
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1875
- //! containing all of the elements in the nth bucket.
1876
- local_iterator begin(size_type n)
1877
- { return table_.begin(n); }
814
+ //! @copydoc ::boost::intrusive::hashtable::begin(size_type)
815
+ local_iterator begin(size_type n);
1878
816
 
1879
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1880
- //!
1881
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the beginning
1882
- //! of the sequence stored in the bucket n.
1883
- //!
1884
- //! <b>Complexity</b>: Constant.
1885
- //!
1886
- //! <b>Throws</b>: Nothing.
1887
- //!
1888
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1889
- //! containing all of the elements in the nth bucket.
1890
- const_local_iterator begin(size_type n) const
1891
- { return table_.begin(n); }
817
+ //! @copydoc ::boost::intrusive::hashtable::begin(size_type)const
818
+ const_local_iterator begin(size_type n) const;
1892
819
 
1893
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1894
- //!
1895
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the beginning
1896
- //! of the sequence stored in the bucket n.
1897
- //!
1898
- //! <b>Complexity</b>: Constant.
1899
- //!
1900
- //! <b>Throws</b>: Nothing.
1901
- //!
1902
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1903
- //! containing all of the elements in the nth bucket.
1904
- const_local_iterator cbegin(size_type n) const
1905
- { return table_.cbegin(n); }
820
+ //! @copydoc ::boost::intrusive::hashtable::cbegin(size_type)const
821
+ const_local_iterator cbegin(size_type n) const;
1906
822
 
1907
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1908
- //!
1909
- //! <b>Effects</b>: Returns a local_iterator pointing to the end
1910
- //! of the sequence stored in the bucket n.
1911
- //!
1912
- //! <b>Complexity</b>: Constant.
1913
- //!
1914
- //! <b>Throws</b>: Nothing.
1915
- //!
1916
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1917
- //! containing all of the elements in the nth bucket.
1918
- local_iterator end(size_type n)
1919
- { return table_.end(n); }
823
+ //! @copydoc ::boost::intrusive::hashtable::end(size_type)
824
+ local_iterator end(size_type n);
1920
825
 
1921
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1922
- //!
1923
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the end
1924
- //! of the sequence stored in the bucket n.
1925
- //!
1926
- //! <b>Complexity</b>: Constant.
1927
- //!
1928
- //! <b>Throws</b>: Nothing.
1929
- //!
1930
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1931
- //! containing all of the elements in the nth bucket.
1932
- const_local_iterator end(size_type n) const
1933
- { return table_.end(n); }
826
+ //! @copydoc ::boost::intrusive::hashtable::end(size_type)const
827
+ const_local_iterator end(size_type n) const;
1934
828
 
1935
- //! <b>Requires</b>: n is in the range [0, this->bucket_count()).
1936
- //!
1937
- //! <b>Effects</b>: Returns a const_local_iterator pointing to the end
1938
- //! of the sequence stored in the bucket n.
1939
- //!
1940
- //! <b>Complexity</b>: Constant.
1941
- //!
1942
- //! <b>Throws</b>: Nothing.
1943
- //!
1944
- //! <b>Note</b>: [this->begin(n), this->end(n)) is a valid range
1945
- //! containing all of the elements in the nth bucket.
1946
- const_local_iterator cend(size_type n) const
1947
- { return table_.cend(n); }
1948
-
1949
- //! <b>Requires</b>: new_buckets must be a pointer to a new bucket array
1950
- //! or the same as the old bucket array. new_size is the length of the
1951
- //! the array pointed by new_buckets. If new_buckets == this->bucket_pointer()
1952
- //! n can be bigger or smaller than this->bucket_count().
1953
- //!
1954
- //! <b>Effects</b>: Updates the internal reference with the new bucket erases
1955
- //! the values from the old bucket and inserts then in the new one.
1956
- //!
1957
- //! If store_hash option is true, this method does not use the hash function.
1958
- //!
1959
- //! <b>Complexity</b>: Average case linear in this->size(), worst case quadratic.
1960
- //!
1961
- //! <b>Throws</b>: If the hasher functor throws.
1962
- void rehash(const bucket_traits &new_bucket_traits)
1963
- { table_.rehash(new_bucket_traits); }
829
+ //! @copydoc ::boost::intrusive::hashtable::cend(size_type)const
830
+ const_local_iterator cend(size_type n) const;
1964
831
 
1965
- //! <b>Requires</b>:
1966
- //!
1967
- //! <b>Effects</b>:
1968
- //!
1969
- //! <b>Complexity</b>:
1970
- //!
1971
- //! <b>Throws</b>:
1972
- //!
1973
- //! <b>Note</b>: this method is only available if incremental<true> option is activated.
1974
- bool incremental_rehash(bool grow = true)
1975
- { return table_.incremental_rehash(grow); }
832
+ //! @copydoc ::boost::intrusive::hashtable::rehash(const bucket_traits &)
833
+ void rehash(const bucket_traits &new_bucket_traits);
1976
834
 
1977
- //! <b>Note</b>: this method is only available if incremental<true> option is activated.
1978
- bool incremental_rehash(const bucket_traits &new_bucket_traits)
1979
- { return table_.incremental_rehash(new_bucket_traits); }
835
+ //! @copydoc ::boost::intrusive::hashtable::incremental_rehash(bool)
836
+ bool incremental_rehash(bool grow = true);
1980
837
 
1981
- //! <b>Requires</b>:
1982
- //!
1983
- //! <b>Effects</b>:
1984
- //!
1985
- //! <b>Complexity</b>:
1986
- //!
1987
- //! <b>Throws</b>:
1988
- size_type split_count() const
1989
- { return table_.split_count(); }
1990
-
1991
- //! <b>Effects</b>: Returns the nearest new bucket count optimized for
1992
- //! the container that is bigger than n. This suggestion can be used
1993
- //! to create bucket arrays with a size that will usually improve
1994
- //! container's performance. If such value does not exist, the
1995
- //! higher possible value is returned.
1996
- //!
1997
- //! <b>Complexity</b>: Amortized constant time.
1998
- //!
1999
- //! <b>Throws</b>: Nothing.
2000
- static size_type suggested_upper_bucket_count(size_type n)
2001
- { return table_type::suggested_upper_bucket_count(n); }
2002
-
2003
- //! <b>Effects</b>: Returns the nearest new bucket count optimized for
2004
- //! the container that is smaller than n. This suggestion can be used
2005
- //! to create bucket arrays with a size that will usually improve
2006
- //! container's performance. If such value does not exist, the
2007
- //! lower possible value is returned.
2008
- //!
2009
- //! <b>Complexity</b>: Amortized constant time.
2010
- //!
2011
- //! <b>Throws</b>: Nothing.
2012
- static size_type suggested_lower_bucket_count(size_type n)
2013
- { return table_type::suggested_lower_bucket_count(n); }
838
+ //! @copydoc ::boost::intrusive::hashtable::incremental_rehash(const bucket_traits &)
839
+ bool incremental_rehash(const bucket_traits &new_bucket_traits);
840
+
841
+ //! @copydoc ::boost::intrusive::hashtable::split_count
842
+ size_type split_count() const;
843
+
844
+ //! @copydoc ::boost::intrusive::hashtable::suggested_upper_bucket_count
845
+ static size_type suggested_upper_bucket_count(size_type n);
846
+
847
+ //! @copydoc ::boost::intrusive::hashtable::suggested_lower_bucket_count
848
+ static size_type suggested_lower_bucket_count(size_type n);
849
+
850
+ #endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
2014
851
  };
2015
852
 
2016
853
  //! Helper metafunction to define an \c unordered_multiset that yields to the same type when the
@@ -2018,26 +855,46 @@ class unordered_multiset_impl
2018
855
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2019
856
  template<class T, class ...Options>
2020
857
  #else
2021
- template<class T, class O1 = none, class O2 = none
2022
- , class O3 = none, class O4 = none
2023
- , class O5 = none, class O6 = none
2024
- , class O7 = none, class O8 = none
2025
- , class O9 = none, class O10= none
858
+ template<class T, class O1 = void, class O2 = void
859
+ , class O3 = void, class O4 = void
860
+ , class O5 = void, class O6 = void
861
+ , class O7 = void, class O8 = void
862
+ , class O9 = void, class O10= void
2026
863
  >
2027
864
  #endif
2028
865
  struct make_unordered_multiset
2029
866
  {
2030
867
  /// @cond
868
+ typedef typename pack_options
869
+ < hashtable_defaults,
870
+ #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
871
+ O1, O2, O3, O4, O5, O6, O7, O8, O9, O10
872
+ #else
873
+ Options...
874
+ #endif
875
+ >::type packed_options;
876
+
877
+ typedef typename detail::get_value_traits
878
+ <T, typename packed_options::proto_value_traits>::type value_traits;
879
+
880
+ typedef typename make_bucket_traits
881
+ <T, true, packed_options>::type bucket_traits;
882
+
2031
883
  typedef unordered_multiset_impl
2032
- < typename make_hashtable_opt
2033
- <T, false,
2034
- #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
2035
- O1, O2, O3, O4, O5, O6, O7, O8, O9, O10
2036
- #else
2037
- Options...
2038
- #endif
2039
- >::type
884
+ < value_traits
885
+ , typename packed_options::key_of_value
886
+ , typename packed_options::hash
887
+ , typename packed_options::equal
888
+ , typename packed_options::size_type
889
+ , bucket_traits
890
+ , (std::size_t(false)*hash_bool_flags::unique_keys_pos)
891
+ | (std::size_t(packed_options::constant_time_size)*hash_bool_flags::constant_time_size_pos)
892
+ | (std::size_t(packed_options::power_2_buckets)*hash_bool_flags::power_2_buckets_pos)
893
+ | (std::size_t(packed_options::cache_begin)*hash_bool_flags::cache_begin_pos)
894
+ | (std::size_t(packed_options::compare_hash)*hash_bool_flags::compare_hash_pos)
895
+ | (std::size_t(packed_options::incremental)*hash_bool_flags::incremental_pos)
2040
896
  > implementation_defined;
897
+
2041
898
  /// @endcond
2042
899
  typedef implementation_defined type;
2043
900
  };
@@ -2080,10 +937,10 @@ class unordered_multiset
2080
937
  typedef typename Base::hasher hasher;
2081
938
  typedef typename Base::key_equal key_equal;
2082
939
 
2083
- unordered_multiset( const bucket_traits &b_traits
2084
- , const hasher & hash_func = hasher()
2085
- , const key_equal &equal_func = key_equal()
2086
- , const value_traits &v_traits = value_traits())
940
+ explicit unordered_multiset( const bucket_traits &b_traits
941
+ , const hasher & hash_func = hasher()
942
+ , const key_equal &equal_func = key_equal()
943
+ , const value_traits &v_traits = value_traits())
2087
944
  : Base(b_traits, hash_func, equal_func, v_traits)
2088
945
  {}
2089
946
 
@@ -2098,11 +955,19 @@ class unordered_multiset
2098
955
  {}
2099
956
 
2100
957
  unordered_multiset(BOOST_RV_REF(unordered_multiset) x)
2101
- : Base(::boost::move(static_cast<Base&>(x)))
958
+ : Base(BOOST_MOVE_BASE(Base, x))
2102
959
  {}
2103
960
 
2104
961
  unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
2105
- { this->Base::operator=(::boost::move(static_cast<Base&>(x))); return *this; }
962
+ { return static_cast<unordered_multiset&>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
963
+
964
+ template <class Cloner, class Disposer>
965
+ void clone_from(const unordered_multiset &src, Cloner cloner, Disposer disposer)
966
+ { Base::clone_from(src, cloner, disposer); }
967
+
968
+ template <class Cloner, class Disposer>
969
+ void clone_from(BOOST_RV_REF(unordered_multiset) src, Cloner cloner, Disposer disposer)
970
+ { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
2106
971
  };
2107
972
 
2108
973
  #endif