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,87 +1,99 @@
1
1
  //////////////////////////////////////////////////////////////////////////////
2
2
  //
3
- // (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
3
+ // (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost
4
4
  // Software License, Version 1.0. (See accompanying file
5
5
  // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
6
  //
7
7
  // See http://www.boost.org/libs/container for documentation.
8
8
  //
9
9
  //////////////////////////////////////////////////////////////////////////////
10
-
11
10
  #ifndef BOOST_CONTAINER_MAP_HPP
12
11
  #define BOOST_CONTAINER_MAP_HPP
13
12
 
14
- #if (defined _MSC_VER) && (_MSC_VER >= 1200)
13
+ #ifndef BOOST_CONFIG_HPP
14
+ # include <boost/config.hpp>
15
+ #endif
16
+
17
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
15
18
  # pragma once
16
19
  #endif
17
20
 
18
21
  #include <boost/container/detail/config_begin.hpp>
19
22
  #include <boost/container/detail/workaround.hpp>
20
23
 
24
+ // container
21
25
  #include <boost/container/container_fwd.hpp>
22
- #include <utility>
23
- #include <functional>
24
- #include <memory>
26
+ #include <boost/container/new_allocator.hpp> //new_allocator
27
+ #include <boost/container/throw_exception.hpp>
28
+ // container/detail
29
+ #include <boost/container/detail/mpl.hpp>
25
30
  #include <boost/container/detail/tree.hpp>
31
+ #include <boost/container/detail/type_traits.hpp>
26
32
  #include <boost/container/detail/value_init.hpp>
27
- #include <boost/type_traits/has_trivial_destructor.hpp>
28
- #include <boost/container/detail/mpl.hpp>
29
- #include <boost/container/detail/utilities.hpp>
30
33
  #include <boost/container/detail/pair.hpp>
31
- #include <boost/container/detail/type_traits.hpp>
32
- #include <boost/container/throw_exception.hpp>
33
- #include <boost/move/utility.hpp>
34
+ // move
35
+ #include <boost/move/traits.hpp>
36
+ #include <boost/move/utility_core.hpp>
37
+ // move/detail
38
+ #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
39
+ #include <boost/move/detail/fwd_macros.hpp>
40
+ #endif
34
41
  #include <boost/move/detail/move_helpers.hpp>
42
+ // intrusive/detail
43
+ #include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
44
+ #include <boost/intrusive/detail/minimal_less_equal_header.hpp>//less, equal
45
+ // other
35
46
  #include <boost/static_assert.hpp>
36
- #include <boost/container/detail/value_init.hpp>
37
- #include <boost/detail/no_exceptions_support.hpp>
47
+ #include <boost/core/no_exceptions_support.hpp>
48
+ // std
49
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
50
+ #include <initializer_list>
51
+ #endif
38
52
 
39
53
  namespace boost {
40
54
  namespace container {
41
55
 
42
- /// @cond
43
- // Forward declarations of operators == and <, needed for friend declarations.
44
- template <class Key, class T, class Compare, class Allocator>
45
- inline bool operator==(const map<Key,T,Compare,Allocator>& x,
46
- const map<Key,T,Compare,Allocator>& y);
47
-
48
- template <class Key, class T, class Compare, class Allocator>
49
- inline bool operator<(const map<Key,T,Compare,Allocator>& x,
50
- const map<Key,T,Compare,Allocator>& y);
51
- /// @endcond
56
+ #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
52
57
 
53
58
  //! A map is a kind of associative container that supports unique keys (contains at
54
59
  //! most one of each key value) and provides for fast retrieval of values of another
55
60
  //! type T based on the keys. The map class supports bidirectional iterators.
56
61
  //!
57
62
  //! A map satisfies all of the requirements of a container and of a reversible
58
- //! container and of an associative container. For a
59
- //! map<Key,T> the key_type is Key and the value_type is std::pair<const Key,T>.
60
- //!
61
- //! Compare is the ordering function for Keys (e.g. <i>std::less<Key></i>).
63
+ //! container and of an associative container. The <code>value_type</code> stored
64
+ //! by this container is the value_type is std::pair<const Key, T>.
62
65
  //!
63
- //! Allocator is the allocator to allocate the value_types
64
- //! (e.g. <i>allocator< std::pair<const Key, T> > </i>).
65
- #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
66
- template <class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator< std::pair< const Key, T> > >
66
+ //! \tparam Key is the key_type of the map
67
+ //! \tparam T is the <code>mapped_type</code>
68
+ //! \tparam Compare is the ordering function for Keys (e.g. <i>std::less<Key></i>).
69
+ //! \tparam Allocator is the allocator to allocate the <code>value_type</code>s
70
+ //! (e.g. <i>allocator< std::pair<const Key, T> > </i>).
71
+ //! \tparam MapOptions is an packed option type generated using using boost::container::tree_assoc_options.
72
+ template < class Key, class T, class Compare = std::less<Key>
73
+ , class Allocator = new_allocator< std::pair< const Key, T> >, class MapOptions = tree_assoc_defaults >
67
74
  #else
68
- template <class Key, class T, class Compare, class Allocator>
75
+ template <class Key, class T, class Compare, class Allocator, class MapOptions>
69
76
  #endif
70
77
  class map
78
+ ///@cond
79
+ : public container_detail::tree
80
+ < Key, std::pair<const Key, T>
81
+ , container_detail::select1st< std::pair<const Key, T> >
82
+ , Compare, Allocator, MapOptions>
83
+ ///@endcond
71
84
  {
72
- /// @cond
85
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
73
86
  private:
74
87
  BOOST_COPYABLE_AND_MOVABLE(map)
75
88
 
76
89
  typedef std::pair<const Key, T> value_type_impl;
77
- typedef container_detail::rbtree
78
- <Key, value_type_impl, container_detail::select1st<value_type_impl>, Compare, Allocator> tree_t;
90
+ typedef container_detail::tree
91
+ <Key, value_type_impl, container_detail::select1st<value_type_impl>, Compare, Allocator, MapOptions> base_t;
79
92
  typedef container_detail::pair <Key, T> movable_value_type_impl;
80
93
  typedef container_detail::tree_value_compare
81
94
  < Key, value_type_impl, Compare, container_detail::select1st<value_type_impl>
82
95
  > value_compare_impl;
83
- tree_t m_tree; // red-black tree representing map
84
- /// @endcond
96
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
85
97
 
86
98
  public:
87
99
  //////////////////////////////////////////////
@@ -90,9 +102,10 @@ class map
90
102
  //
91
103
  //////////////////////////////////////////////
92
104
 
93
- typedef Key key_type;
94
- typedef T mapped_type;
95
- typedef std::pair<const Key, T> value_type;
105
+ typedef Key key_type;
106
+ typedef ::boost::container::allocator_traits<Allocator> allocator_traits_type;
107
+ typedef T mapped_type;
108
+ typedef std::pair<const Key, T> value_type;
96
109
  typedef typename boost::container::allocator_traits<Allocator>::pointer pointer;
97
110
  typedef typename boost::container::allocator_traits<Allocator>::const_pointer const_pointer;
98
111
  typedef typename boost::container::allocator_traits<Allocator>::reference reference;
@@ -100,13 +113,13 @@ class map
100
113
  typedef typename boost::container::allocator_traits<Allocator>::size_type size_type;
101
114
  typedef typename boost::container::allocator_traits<Allocator>::difference_type difference_type;
102
115
  typedef Allocator allocator_type;
103
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
116
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::stored_allocator_type) stored_allocator_type;
104
117
  typedef BOOST_CONTAINER_IMPDEF(value_compare_impl) value_compare;
105
118
  typedef Compare key_compare;
106
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::iterator) iterator;
107
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_iterator) const_iterator;
108
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::reverse_iterator) reverse_iterator;
109
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_reverse_iterator) const_reverse_iterator;
119
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::iterator) iterator;
120
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_iterator) const_iterator;
121
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::reverse_iterator) reverse_iterator;
122
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_reverse_iterator) const_reverse_iterator;
110
123
  typedef std::pair<key_type, mapped_type> nonconst_value_type;
111
124
  typedef BOOST_CONTAINER_IMPDEF(movable_value_type_impl) movable_value_type;
112
125
 
@@ -120,9 +133,9 @@ class map
120
133
  //!
121
134
  //! <b>Complexity</b>: Constant.
122
135
  map()
123
- : m_tree()
136
+ : base_t()
124
137
  {
125
- //Allocator type must be std::pair<CONST Key, T>
138
+ //A type must be std::pair<CONST Key, T>
126
139
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
127
140
  }
128
141
 
@@ -130,11 +143,20 @@ class map
130
143
  //! and allocator.
131
144
  //!
132
145
  //! <b>Complexity</b>: Constant.
133
- explicit map(const Compare& comp,
134
- const allocator_type& a = allocator_type())
135
- : m_tree(comp, a)
146
+ explicit map(const Compare& comp, const allocator_type& a = allocator_type())
147
+ : base_t(comp, a)
136
148
  {
137
- //Allocator type must be std::pair<CONST Key, T>
149
+ //A type must be std::pair<CONST Key, T>
150
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
151
+ }
152
+
153
+ //! <b>Effects</b>: Constructs an empty map using the specified allocator.
154
+ //!
155
+ //! <b>Complexity</b>: Constant.
156
+ explicit map(const allocator_type& a)
157
+ : base_t(a)
158
+ {
159
+ //A type must be std::pair<CONST Key, T>
138
160
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
139
161
  }
140
162
 
@@ -146,9 +168,22 @@ class map
146
168
  template <class InputIterator>
147
169
  map(InputIterator first, InputIterator last, const Compare& comp = Compare(),
148
170
  const allocator_type& a = allocator_type())
149
- : m_tree(true, first, last, comp, a)
171
+ : base_t(true, first, last, comp, a)
150
172
  {
151
- //Allocator type must be std::pair<CONST Key, T>
173
+ //A type must be std::pair<CONST Key, T>
174
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
175
+ }
176
+
177
+ //! <b>Effects</b>: Constructs an empty map using the specified
178
+ //! allocator, and inserts elements from the range [first ,last ).
179
+ //!
180
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
181
+ //! comp and otherwise N logN, where N is last - first.
182
+ template <class InputIterator>
183
+ map(InputIterator first, InputIterator last, const allocator_type& a)
184
+ : base_t(true, first, last, Compare(), a)
185
+ {
186
+ //A type must be std::pair<CONST Key, T>
152
187
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
153
188
  }
154
189
 
@@ -160,22 +195,68 @@ class map
160
195
  //! unique values.
161
196
  //!
162
197
  //! <b>Complexity</b>: Linear in N.
198
+ //!
199
+ //! <b>Note</b>: Non-standard extension.
163
200
  template <class InputIterator>
164
201
  map( ordered_unique_range_t, InputIterator first, InputIterator last
165
202
  , const Compare& comp = Compare(), const allocator_type& a = allocator_type())
166
- : m_tree(ordered_range, first, last, comp, a)
203
+ : base_t(ordered_range, first, last, comp, a)
167
204
  {
168
- //Allocator type must be std::pair<CONST Key, T>
205
+ //A type must be std::pair<CONST Key, T>
169
206
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
170
207
  }
171
208
 
209
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
210
+ //! <b>Effects</b>: Constructs an empty map using the specified comparison object and
211
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
212
+ //!
213
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
214
+ //! comp and otherwise N logN, where N is il.first() - il.end().
215
+ map(std::initializer_list<value_type> il, const Compare& comp = Compare(), const allocator_type& a = allocator_type())
216
+ : base_t(true, il.begin(), il.end(), comp, a)
217
+ {
218
+ //A type must be std::pair<CONST Key, T>
219
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
220
+ }
221
+
222
+ //! <b>Effects</b>: Constructs an empty map using the specified
223
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
224
+ //!
225
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
226
+ //! comp and otherwise N logN, where N is il.first() - il.end().
227
+ map(std::initializer_list<value_type> il, const allocator_type& a)
228
+ : base_t(true, il.begin(), il.end(), Compare(), a)
229
+ {
230
+ //A type must be std::pair<CONST Key, T>
231
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
232
+ }
233
+
234
+ //! <b>Effects</b>: Constructs an empty set using the specified comparison object and
235
+ //! allocator, and inserts elements from the ordered unique range [il.begin(), il.end()). This function
236
+ //! is more efficient than the normal range creation for ordered ranges.
237
+ //!
238
+ //! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate and must be
239
+ //! unique values.
240
+ //!
241
+ //! <b>Complexity</b>: Linear in N.
242
+ //!
243
+ //! <b>Note</b>: Non-standard extension.
244
+ map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp = Compare(),
245
+ const allocator_type& a = allocator_type())
246
+ : base_t(ordered_range, il.begin(), il.end(), comp, a)
247
+ {
248
+ //A type must be std::pair<CONST Key, T>
249
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
250
+ }
251
+ #endif
252
+
172
253
  //! <b>Effects</b>: Copy constructs a map.
173
254
  //!
174
255
  //! <b>Complexity</b>: Linear in x.size().
175
256
  map(const map& x)
176
- : m_tree(x.m_tree)
257
+ : base_t(static_cast<const base_t&>(x))
177
258
  {
178
- //Allocator type must be std::pair<CONST Key, T>
259
+ //A type must be std::pair<CONST Key, T>
179
260
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
180
261
  }
181
262
 
@@ -185,9 +266,9 @@ class map
185
266
  //!
186
267
  //! <b>Postcondition</b>: x is emptied.
187
268
  map(BOOST_RV_REF(map) x)
188
- : m_tree(boost::move(x.m_tree))
269
+ : base_t(BOOST_MOVE_BASE(base_t, x))
189
270
  {
190
- //Allocator type must be std::pair<CONST Key, T>
271
+ //A type must be std::pair<CONST Key, T>
191
272
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
192
273
  }
193
274
 
@@ -195,9 +276,9 @@ class map
195
276
  //!
196
277
  //! <b>Complexity</b>: Linear in x.size().
197
278
  map(const map& x, const allocator_type &a)
198
- : m_tree(x.m_tree, a)
279
+ : base_t(static_cast<const base_t&>(x), a)
199
280
  {
200
- //Allocator type must be std::pair<CONST Key, T>
281
+ //A type must be std::pair<CONST Key, T>
201
282
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
202
283
  }
203
284
 
@@ -208,9 +289,9 @@ class map
208
289
  //!
209
290
  //! <b>Postcondition</b>: x is emptied.
210
291
  map(BOOST_RV_REF(map) x, const allocator_type &a)
211
- : m_tree(boost::move(x.m_tree), a)
292
+ : base_t(BOOST_MOVE_BASE(base_t, x), a)
212
293
  {
213
- //Allocator type must be std::pair<CONST Key, T>
294
+ //A type must be std::pair<CONST Key, T>
214
295
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
215
296
  }
216
297
 
@@ -218,20 +299,40 @@ class map
218
299
  //!
219
300
  //! <b>Complexity</b>: Linear in x.size().
220
301
  map& operator=(BOOST_COPY_ASSIGN_REF(map) x)
221
- { m_tree = x.m_tree; return *this; }
302
+ { return static_cast<map&>(this->base_t::operator=(static_cast<const base_t&>(x))); }
222
303
 
223
304
  //! <b>Effects</b>: this->swap(x.get()).
224
305
  //!
225
- //! <b>Complexity</b>: Constant.
306
+ //! <b>Throws</b>: If allocator_traits_type::propagate_on_container_move_assignment
307
+ //! is false and (allocation throws or value_type's move constructor throws)
308
+ //!
309
+ //! <b>Complexity</b>: Constant if allocator_traits_type::
310
+ //! propagate_on_container_move_assignment is true or
311
+ //! this->get>allocator() == x.get_allocator(). Linear otherwise.
226
312
  map& operator=(BOOST_RV_REF(map) x)
227
- { m_tree = boost::move(x.m_tree); return *this; }
313
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
314
+ && boost::container::container_detail::is_nothrow_move_assignable<Compare>::value )
315
+
316
+ { return static_cast<map&>(this->base_t::operator=(BOOST_MOVE_BASE(base_t, x))); }
317
+
318
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
319
+ //! <b>Effects</b>: Assign content of il to *this.
320
+ //!
321
+ map& operator=(std::initializer_list<value_type> il)
322
+ {
323
+ this->clear();
324
+ insert(il.begin(), il.end());
325
+ return *this;
326
+ }
327
+ #endif
328
+
329
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
228
330
 
229
- //! <b>Effects</b>: Returns a copy of the Allocator that
331
+ //! <b>Effects</b>: Returns a copy of the allocator that
230
332
  //! was passed to the object's constructor.
231
333
  //!
232
334
  //! <b>Complexity</b>: Constant.
233
- allocator_type get_allocator() const BOOST_CONTAINER_NOEXCEPT
234
- { return m_tree.get_allocator(); }
335
+ allocator_type get_allocator() const;
235
336
 
236
337
  //! <b>Effects</b>: Returns a reference to the internal allocator.
237
338
  //!
@@ -240,8 +341,7 @@ class map
240
341
  //! <b>Complexity</b>: Constant.
241
342
  //!
242
343
  //! <b>Note</b>: Non-standard extension.
243
- stored_allocator_type &get_stored_allocator() BOOST_CONTAINER_NOEXCEPT
244
- { return m_tree.get_stored_allocator(); }
344
+ stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW;
245
345
 
246
346
  //! <b>Effects</b>: Returns a reference to the internal allocator.
247
347
  //!
@@ -250,107 +350,89 @@ class map
250
350
  //! <b>Complexity</b>: Constant.
251
351
  //!
252
352
  //! <b>Note</b>: Non-standard extension.
253
- const stored_allocator_type &get_stored_allocator() const BOOST_CONTAINER_NOEXCEPT
254
- { return m_tree.get_stored_allocator(); }
255
-
256
- //////////////////////////////////////////////
257
- //
258
- // iterators
259
- //
260
- //////////////////////////////////////////////
353
+ const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
261
354
 
262
355
  //! <b>Effects</b>: Returns an iterator to the first element contained in the container.
263
356
  //!
264
357
  //! <b>Throws</b>: Nothing.
265
358
  //!
266
359
  //! <b>Complexity</b>: Constant.
267
- iterator begin() BOOST_CONTAINER_NOEXCEPT
268
- { return m_tree.begin(); }
360
+ iterator begin() BOOST_NOEXCEPT_OR_NOTHROW;
269
361
 
270
362
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
271
363
  //!
272
364
  //! <b>Throws</b>: Nothing.
273
365
  //!
274
366
  //! <b>Complexity</b>: Constant.
275
- const_iterator begin() const BOOST_CONTAINER_NOEXCEPT
276
- { return this->cbegin(); }
367
+ const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW;
277
368
 
278
- //! <b>Effects</b>: Returns an iterator to the end of the container.
369
+ //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
279
370
  //!
280
371
  //! <b>Throws</b>: Nothing.
281
372
  //!
282
373
  //! <b>Complexity</b>: Constant.
283
- iterator end() BOOST_CONTAINER_NOEXCEPT
284
- { return m_tree.end(); }
374
+ const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
285
375
 
286
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
376
+ //! <b>Effects</b>: Returns an iterator to the end of the container.
287
377
  //!
288
378
  //! <b>Throws</b>: Nothing.
289
379
  //!
290
380
  //! <b>Complexity</b>: Constant.
291
- const_iterator end() const BOOST_CONTAINER_NOEXCEPT
292
- { return this->cend(); }
381
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW;
293
382
 
294
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
295
- //! of the reversed container.
383
+ //! <b>Effects</b>: Returns a const_iterator to the end of the container.
296
384
  //!
297
385
  //! <b>Throws</b>: Nothing.
298
386
  //!
299
387
  //! <b>Complexity</b>: Constant.
300
- reverse_iterator rbegin() BOOST_CONTAINER_NOEXCEPT
301
- { return m_tree.rbegin(); }
388
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW;
302
389
 
303
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
304
- //! of the reversed container.
390
+ //! <b>Effects</b>: Returns a const_iterator to the end of the container.
305
391
  //!
306
392
  //! <b>Throws</b>: Nothing.
307
393
  //!
308
394
  //! <b>Complexity</b>: Constant.
309
- const_reverse_iterator rbegin() const BOOST_CONTAINER_NOEXCEPT
310
- { return this->crbegin(); }
395
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW;
311
396
 
312
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
397
+ //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
313
398
  //! of the reversed container.
314
399
  //!
315
400
  //! <b>Throws</b>: Nothing.
316
401
  //!
317
402
  //! <b>Complexity</b>: Constant.
318
- reverse_iterator rend() BOOST_CONTAINER_NOEXCEPT
319
- { return m_tree.rend(); }
403
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW;
320
404
 
321
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
405
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
322
406
  //! of the reversed container.
323
407
  //!
324
408
  //! <b>Throws</b>: Nothing.
325
409
  //!
326
410
  //! <b>Complexity</b>: Constant.
327
- const_reverse_iterator rend() const BOOST_CONTAINER_NOEXCEPT
328
- { return this->crend(); }
411
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
329
412
 
330
- //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
413
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
414
+ //! of the reversed container.
331
415
  //!
332
416
  //! <b>Throws</b>: Nothing.
333
417
  //!
334
418
  //! <b>Complexity</b>: Constant.
335
- const_iterator cbegin() const BOOST_CONTAINER_NOEXCEPT
336
- { return m_tree.begin(); }
419
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
337
420
 
338
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
421
+ //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
422
+ //! of the reversed container.
339
423
  //!
340
424
  //! <b>Throws</b>: Nothing.
341
425
  //!
342
426
  //! <b>Complexity</b>: Constant.
343
- const_iterator cend() const BOOST_CONTAINER_NOEXCEPT
344
- { return m_tree.end(); }
427
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW;
345
428
 
346
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
429
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
347
430
  //! of the reversed container.
348
431
  //!
349
432
  //! <b>Throws</b>: Nothing.
350
433
  //!
351
434
  //! <b>Complexity</b>: Constant.
352
- const_reverse_iterator crbegin() const BOOST_CONTAINER_NOEXCEPT
353
- { return m_tree.rbegin(); }
435
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW;
354
436
 
355
437
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
356
438
  //! of the reversed container.
@@ -358,50 +440,36 @@ class map
358
440
  //! <b>Throws</b>: Nothing.
359
441
  //!
360
442
  //! <b>Complexity</b>: Constant.
361
- const_reverse_iterator crend() const BOOST_CONTAINER_NOEXCEPT
362
- { return m_tree.rend(); }
363
-
364
- //////////////////////////////////////////////
365
- //
366
- // capacity
367
- //
368
- //////////////////////////////////////////////
443
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW;
369
444
 
370
445
  //! <b>Effects</b>: Returns true if the container contains no elements.
371
446
  //!
372
447
  //! <b>Throws</b>: Nothing.
373
448
  //!
374
449
  //! <b>Complexity</b>: Constant.
375
- bool empty() const BOOST_CONTAINER_NOEXCEPT
376
- { return m_tree.empty(); }
450
+ bool empty() const BOOST_NOEXCEPT_OR_NOTHROW;
377
451
 
378
452
  //! <b>Effects</b>: Returns the number of the elements contained in the container.
379
453
  //!
380
454
  //! <b>Throws</b>: Nothing.
381
455
  //!
382
456
  //! <b>Complexity</b>: Constant.
383
- size_type size() const BOOST_CONTAINER_NOEXCEPT
384
- { return m_tree.size(); }
457
+ size_type size() const BOOST_NOEXCEPT_OR_NOTHROW;
385
458
 
386
459
  //! <b>Effects</b>: Returns the largest possible size of the container.
387
460
  //!
388
461
  //! <b>Throws</b>: Nothing.
389
462
  //!
390
463
  //! <b>Complexity</b>: Constant.
391
- size_type max_size() const BOOST_CONTAINER_NOEXCEPT
392
- { return m_tree.max_size(); }
464
+ size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW;
393
465
 
394
- //////////////////////////////////////////////
395
- //
396
- // element access
397
- //
398
- //////////////////////////////////////////////
466
+ #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
399
467
 
400
468
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
401
469
  //! Effects: If there is no key equivalent to x in the map, inserts
402
470
  //! value_type(x, T()) into the map.
403
471
  //!
404
- //! Returns: Allocator reference to the mapped_type corresponding to x in *this.
472
+ //! Returns: A reference to the mapped_type corresponding to x in *this.
405
473
  //!
406
474
  //! Complexity: Logarithmic.
407
475
  mapped_type& operator[](const key_type &k);
@@ -409,15 +477,19 @@ class map
409
477
  //! Effects: If there is no key equivalent to x in the map, inserts
410
478
  //! value_type(boost::move(x), T()) into the map (the key is move-constructed)
411
479
  //!
412
- //! Returns: Allocator reference to the mapped_type corresponding to x in *this.
480
+ //! Returns: A reference to the mapped_type corresponding to x in *this.
413
481
  //!
414
482
  //! Complexity: Logarithmic.
415
483
  mapped_type& operator[](key_type &&k);
484
+ #elif defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN)
485
+ //in compilers like GCC 3.4, we can't catch temporaries
486
+ mapped_type& operator[](const key_type &k) { return this->priv_subscript(k); }
487
+ mapped_type& operator[](BOOST_RV_REF(key_type) k) { return this->priv_subscript(::boost::move(k)); }
416
488
  #else
417
- BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
489
+ BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
418
490
  #endif
419
491
 
420
- //! Returns: Allocator reference to the element whose key is equivalent to x.
492
+ //! Returns: A reference to the element whose key is equivalent to x.
421
493
  //! Throws: An exception object of type out_of_range if no such element is present.
422
494
  //! Complexity: logarithmic.
423
495
  T& at(const key_type& k)
@@ -429,7 +501,7 @@ class map
429
501
  return i->second;
430
502
  }
431
503
 
432
- //! Returns: Allocator reference to the element whose key is equivalent to x.
504
+ //! Returns: A reference to the element whose key is equivalent to x.
433
505
  //! Throws: An exception object of type out_of_range if no such element is present.
434
506
  //! Complexity: logarithmic.
435
507
  const T& at(const key_type& k) const
@@ -456,7 +528,7 @@ class map
456
528
  //!
457
529
  //! <b>Complexity</b>: Logarithmic.
458
530
  std::pair<iterator,bool> insert(const value_type& x)
459
- { return m_tree.insert_unique(x); }
531
+ { return this->base_t::insert_unique(x); }
460
532
 
461
533
  //! <b>Effects</b>: Inserts a new value_type created from the pair if and only if
462
534
  //! there is no element in the container with key equivalent to the key of x.
@@ -467,7 +539,7 @@ class map
467
539
  //!
468
540
  //! <b>Complexity</b>: Logarithmic.
469
541
  std::pair<iterator,bool> insert(const nonconst_value_type& x)
470
- { return m_tree.insert_unique(x); }
542
+ { return this->base_t::insert_unique(x); }
471
543
 
472
544
  //! <b>Effects</b>: Inserts a new value_type move constructed from the pair if and
473
545
  //! only if there is no element in the container with key equivalent to the key of x.
@@ -478,7 +550,7 @@ class map
478
550
  //!
479
551
  //! <b>Complexity</b>: Logarithmic.
480
552
  std::pair<iterator,bool> insert(BOOST_RV_REF(nonconst_value_type) x)
481
- { return m_tree.insert_unique(boost::move(x)); }
553
+ { return this->base_t::insert_unique(boost::move(x)); }
482
554
 
483
555
  //! <b>Effects</b>: Inserts a new value_type move constructed from the pair if and
484
556
  //! only if there is no element in the container with key equivalent to the key of x.
@@ -489,7 +561,7 @@ class map
489
561
  //!
490
562
  //! <b>Complexity</b>: Logarithmic.
491
563
  std::pair<iterator,bool> insert(BOOST_RV_REF(movable_value_type) x)
492
- { return m_tree.insert_unique(boost::move(x)); }
564
+ { return this->base_t::insert_unique(boost::move(x)); }
493
565
 
494
566
  //! <b>Effects</b>: Move constructs a new value from x if and only if there is
495
567
  //! no element in the container with key equivalent to the key of x.
@@ -500,7 +572,7 @@ class map
500
572
  //!
501
573
  //! <b>Complexity</b>: Logarithmic.
502
574
  std::pair<iterator,bool> insert(BOOST_RV_REF(value_type) x)
503
- { return m_tree.insert_unique(boost::move(x)); }
575
+ { return this->base_t::insert_unique(boost::move(x)); }
504
576
 
505
577
  //! <b>Effects</b>: Inserts a copy of x in the container if and only if there is
506
578
  //! no element in the container with key equivalent to the key of x.
@@ -511,8 +583,8 @@ class map
511
583
  //!
512
584
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
513
585
  //! is inserted right before p.
514
- iterator insert(const_iterator position, const value_type& x)
515
- { return m_tree.insert_unique(position, x); }
586
+ iterator insert(const_iterator p, const value_type& x)
587
+ { return this->base_t::insert_unique(p, x); }
516
588
 
517
589
  //! <b>Effects</b>: Move constructs a new value from x if and only if there is
518
590
  //! no element in the container with key equivalent to the key of x.
@@ -523,8 +595,8 @@ class map
523
595
  //!
524
596
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
525
597
  //! is inserted right before p.
526
- iterator insert(const_iterator position, BOOST_RV_REF(nonconst_value_type) x)
527
- { return m_tree.insert_unique(position, boost::move(x)); }
598
+ iterator insert(const_iterator p, BOOST_RV_REF(nonconst_value_type) x)
599
+ { return this->base_t::insert_unique(p, boost::move(x)); }
528
600
 
529
601
  //! <b>Effects</b>: Move constructs a new value from x if and only if there is
530
602
  //! no element in the container with key equivalent to the key of x.
@@ -535,8 +607,8 @@ class map
535
607
  //!
536
608
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
537
609
  //! is inserted right before p.
538
- iterator insert(const_iterator position, BOOST_RV_REF(movable_value_type) x)
539
- { return m_tree.insert_unique(position, boost::move(x)); }
610
+ iterator insert(const_iterator p, BOOST_RV_REF(movable_value_type) x)
611
+ { return this->base_t::insert_unique(p, boost::move(x)); }
540
612
 
541
613
  //! <b>Effects</b>: Inserts a copy of x in the container.
542
614
  //! p is a hint pointing to where the insert should start to search.
@@ -544,8 +616,8 @@ class map
544
616
  //! <b>Returns</b>: An iterator pointing to the element with key equivalent to the key of x.
545
617
  //!
546
618
  //! <b>Complexity</b>: Logarithmic.
547
- iterator insert(const_iterator position, const nonconst_value_type& x)
548
- { return m_tree.insert_unique(position, x); }
619
+ iterator insert(const_iterator p, const nonconst_value_type& x)
620
+ { return this->base_t::insert_unique(p, x); }
549
621
 
550
622
  //! <b>Effects</b>: Inserts an element move constructed from x in the container.
551
623
  //! p is a hint pointing to where the insert should start to search.
@@ -553,8 +625,8 @@ class map
553
625
  //! <b>Returns</b>: An iterator pointing to the element with key equivalent to the key of x.
554
626
  //!
555
627
  //! <b>Complexity</b>: Logarithmic.
556
- iterator insert(const_iterator position, BOOST_RV_REF(value_type) x)
557
- { return m_tree.insert_unique(position, boost::move(x)); }
628
+ iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
629
+ { return this->base_t::insert_unique(p, boost::move(x)); }
558
630
 
559
631
  //! <b>Requires</b>: first, last are not iterators into *this.
560
632
  //!
@@ -564,9 +636,18 @@ class map
564
636
  //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from first to last)
565
637
  template <class InputIterator>
566
638
  void insert(InputIterator first, InputIterator last)
567
- { m_tree.insert_unique(first, last); }
639
+ { this->base_t::insert_unique(first, last); }
640
+
641
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
642
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()) if and only
643
+ //! if there is no element with key equivalent to the key of that element.
644
+ //!
645
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from il.begin() to il.end())
646
+ void insert(std::initializer_list<value_type> il)
647
+ { this->base_t::insert_unique(il.begin(), il.end()); }
648
+ #endif
568
649
 
569
- #if defined(BOOST_CONTAINER_PERFECT_FORWARDING) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
650
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
570
651
 
571
652
  //! <b>Effects</b>: Inserts an object x of type T constructed with
572
653
  //! std::forward<Args>(args)... in the container if and only if there is
@@ -580,8 +661,8 @@ class map
580
661
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
581
662
  //! is inserted right before p.
582
663
  template <class... Args>
583
- std::pair<iterator,bool> emplace(Args&&... args)
584
- { return m_tree.emplace_unique(boost::forward<Args>(args)...); }
664
+ std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
665
+ { return this->base_t::emplace_unique(boost::forward<Args>(args)...); }
585
666
 
586
667
  //! <b>Effects</b>: Inserts an object of type T constructed with
587
668
  //! std::forward<Args>(args)... in the container if and only if there is
@@ -594,52 +675,49 @@ class map
594
675
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
595
676
  //! is inserted right before p.
596
677
  template <class... Args>
597
- iterator emplace_hint(const_iterator hint, Args&&... args)
598
- { return m_tree.emplace_hint_unique(hint, boost::forward<Args>(args)...); }
599
-
600
- #else //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
678
+ iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
679
+ { return this->base_t::emplace_hint_unique(p, boost::forward<Args>(args)...); }
680
+
681
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
682
+
683
+ #define BOOST_CONTAINER_MAP_EMPLACE_CODE(N) \
684
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
685
+ std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
686
+ { return this->base_t::emplace_unique(BOOST_MOVE_FWD##N); }\
687
+ \
688
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
689
+ iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
690
+ { return this->base_t::emplace_hint_unique(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
691
+ //
692
+ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_MAP_EMPLACE_CODE)
693
+ #undef BOOST_CONTAINER_MAP_EMPLACE_CODE
601
694
 
602
- #define BOOST_PP_LOCAL_MACRO(n) \
603
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
604
- std::pair<iterator,bool> emplace(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
605
- { return m_tree.emplace_unique(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
606
- \
607
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
608
- iterator emplace_hint(const_iterator hint \
609
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
610
- { return m_tree.emplace_hint_unique(hint \
611
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _));} \
612
- //!
613
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
614
- #include BOOST_PP_LOCAL_ITERATE()
695
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
615
696
 
616
- #endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
697
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
617
698
 
618
- //! <b>Effects</b>: Erases the element pointed to by position.
699
+ //! <b>Effects</b>: Erases the element pointed to by p.
619
700
  //!
620
701
  //! <b>Returns</b>: Returns an iterator pointing to the element immediately
621
702
  //! following q prior to the element being erased. If no such element exists,
622
703
  //! returns end().
623
704
  //!
624
705
  //! <b>Complexity</b>: Amortized constant time
625
- iterator erase(const_iterator position) BOOST_CONTAINER_NOEXCEPT
626
- { return m_tree.erase(position); }
706
+ iterator erase(const_iterator p) BOOST_NOEXCEPT_OR_NOTHROW;
627
707
 
628
708
  //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
629
709
  //!
630
710
  //! <b>Returns</b>: Returns the number of erased elements.
631
711
  //!
632
712
  //! <b>Complexity</b>: log(size()) + count(k)
633
- size_type erase(const key_type& x) BOOST_CONTAINER_NOEXCEPT
634
- { return m_tree.erase(x); }
713
+ size_type erase(const key_type& x) BOOST_NOEXCEPT_OR_NOTHROW;
635
714
 
636
715
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
637
716
  //!
638
717
  //! <b>Returns</b>: Returns last.
639
718
  //!
640
719
  //! <b>Complexity</b>: log(size())+N where N is the distance from first to last.
641
- iterator erase(const_iterator first, const_iterator last) BOOST_CONTAINER_NOEXCEPT
642
- { return m_tree.erase(first, last); }
720
+ iterator erase(const_iterator first, const_iterator last) BOOST_NOEXCEPT_OR_NOTHROW;
643
721
 
644
722
  //! <b>Effects</b>: Swaps the contents of *this and x.
645
723
  //!
@@ -647,116 +725,134 @@ class map
647
725
  //!
648
726
  //! <b>Complexity</b>: Constant.
649
727
  void swap(map& x)
650
- { m_tree.swap(x.m_tree); }
728
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
729
+ && boost::container::container_detail::is_nothrow_swappable<Compare>::value )
651
730
 
652
731
  //! <b>Effects</b>: erase(a.begin(),a.end()).
653
732
  //!
654
733
  //! <b>Postcondition</b>: size() == 0.
655
734
  //!
656
735
  //! <b>Complexity</b>: linear in size().
657
- void clear() BOOST_CONTAINER_NOEXCEPT
658
- { m_tree.clear(); }
659
-
660
- //////////////////////////////////////////////
661
- //
662
- // observers
663
- //
664
- //////////////////////////////////////////////
736
+ void clear() BOOST_NOEXCEPT_OR_NOTHROW;
665
737
 
666
738
  //! <b>Effects</b>: Returns the comparison object out
667
739
  //! of which a was constructed.
668
740
  //!
669
741
  //! <b>Complexity</b>: Constant.
670
- key_compare key_comp() const
671
- { return m_tree.key_comp(); }
742
+ key_compare key_comp() const;
672
743
 
673
744
  //! <b>Effects</b>: Returns an object of value_compare constructed out
674
745
  //! of the comparison object.
675
746
  //!
676
747
  //! <b>Complexity</b>: Constant.
677
- value_compare value_comp() const
678
- { return value_compare(m_tree.key_comp()); }
679
-
680
- //////////////////////////////////////////////
681
- //
682
- // map operations
683
- //
684
- //////////////////////////////////////////////
748
+ value_compare value_comp() const;
685
749
 
686
750
  //! <b>Returns</b>: An iterator pointing to an element with the key
687
751
  //! equivalent to x, or end() if such an element is not found.
688
752
  //!
689
753
  //! <b>Complexity</b>: Logarithmic.
690
- iterator find(const key_type& x)
691
- { return m_tree.find(x); }
754
+ iterator find(const key_type& x);
692
755
 
693
- //! <b>Returns</b>: Allocator const_iterator pointing to an element with the key
756
+ //! <b>Returns</b>: A const_iterator pointing to an element with the key
694
757
  //! equivalent to x, or end() if such an element is not found.
695
758
  //!
696
759
  //! <b>Complexity</b>: Logarithmic.
697
- const_iterator find(const key_type& x) const
698
- { return m_tree.find(x); }
760
+ const_iterator find(const key_type& x) const;
761
+
762
+ #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
699
763
 
700
764
  //! <b>Returns</b>: The number of elements with key equivalent to x.
701
765
  //!
702
766
  //! <b>Complexity</b>: log(size())+count(k)
703
767
  size_type count(const key_type& x) const
704
- { return m_tree.find(x) == m_tree.end() ? 0 : 1; }
768
+ { return static_cast<size_type>(this->find(x) != this->cend()); }
769
+
770
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
705
771
 
706
772
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
707
773
  //! than k, or a.end() if such an element is not found.
708
774
  //!
709
775
  //! <b>Complexity</b>: Logarithmic
710
- iterator lower_bound(const key_type& x)
711
- { return m_tree.lower_bound(x); }
776
+ iterator lower_bound(const key_type& x);
712
777
 
713
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
778
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
714
779
  //! less than k, or a.end() if such an element is not found.
715
780
  //!
716
781
  //! <b>Complexity</b>: Logarithmic
717
- const_iterator lower_bound(const key_type& x) const
718
- { return m_tree.lower_bound(x); }
782
+ const_iterator lower_bound(const key_type& x) const;
719
783
 
720
784
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
721
785
  //! than x, or end() if such an element is not found.
722
786
  //!
723
787
  //! <b>Complexity</b>: Logarithmic
724
- iterator upper_bound(const key_type& x)
725
- { return m_tree.upper_bound(x); }
788
+ iterator upper_bound(const key_type& x);
726
789
 
727
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
790
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
728
791
  //! less than x, or end() if such an element is not found.
729
792
  //!
730
793
  //! <b>Complexity</b>: Logarithmic
731
- const_iterator upper_bound(const key_type& x) const
732
- { return m_tree.upper_bound(x); }
794
+ const_iterator upper_bound(const key_type& x) const;
733
795
 
734
796
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
735
797
  //!
736
798
  //! <b>Complexity</b>: Logarithmic
737
- std::pair<iterator,iterator> equal_range(const key_type& x)
738
- { return m_tree.equal_range(x); }
799
+ std::pair<iterator,iterator> equal_range(const key_type& x);
739
800
 
740
801
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
741
802
  //!
742
803
  //! <b>Complexity</b>: Logarithmic
743
- std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const
744
- { return m_tree.equal_range(x); }
745
-
746
- /// @cond
747
- template <class K1, class T1, class C1, class A1>
748
- friend bool operator== (const map<K1, T1, C1, A1>&,
749
- const map<K1, T1, C1, A1>&);
750
- template <class K1, class T1, class C1, class A1>
751
- friend bool operator< (const map<K1, T1, C1, A1>&,
752
- const map<K1, T1, C1, A1>&);
804
+ std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
805
+
806
+ //! <b>Effects</b>: Rebalances the tree. It's a no-op for Red-Black and AVL trees.
807
+ //!
808
+ //! <b>Complexity</b>: Linear
809
+ void rebalance();
810
+
811
+ //! <b>Effects</b>: Returns true if x and y are equal
812
+ //!
813
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
814
+ friend bool operator==(const map& x, const map& y);
815
+
816
+ //! <b>Effects</b>: Returns true if x and y are unequal
817
+ //!
818
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
819
+ friend bool operator!=(const map& x, const map& y);
820
+
821
+ //! <b>Effects</b>: Returns true if x is less than y
822
+ //!
823
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
824
+ friend bool operator<(const map& x, const map& y);
825
+
826
+ //! <b>Effects</b>: Returns true if x is greater than y
827
+ //!
828
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
829
+ friend bool operator>(const map& x, const map& y);
830
+
831
+ //! <b>Effects</b>: Returns true if x is equal or less than y
832
+ //!
833
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
834
+ friend bool operator<=(const map& x, const map& y);
835
+
836
+ //! <b>Effects</b>: Returns true if x is equal or greater than y
837
+ //!
838
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
839
+ friend bool operator>=(const map& x, const map& y);
840
+
841
+ //! <b>Effects</b>: x.swap(y)
842
+ //!
843
+ //! <b>Complexity</b>: Constant.
844
+ friend void swap(map& x, map& y);
845
+
846
+ #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
847
+
848
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
753
849
  private:
754
850
  mapped_type& priv_subscript(const key_type &k)
755
851
  {
756
852
  //we can optimize this
757
- iterator i = lower_bound(k);
853
+ iterator i = this->lower_bound(k);
758
854
  // i->first is greater than or equivalent to k.
759
- if (i == end() || key_comp()(k, (*i).first)){
855
+ if (i == this->end() || this->key_comp()(k, (*i).first)){
760
856
  container_detail::value_init<mapped_type> m;
761
857
  movable_value_type val(k, boost::move(m.m_t));
762
858
  i = insert(i, boost::move(val));
@@ -768,9 +864,9 @@ class map
768
864
  {
769
865
  key_type &k = mk;
770
866
  //we can optimize this
771
- iterator i = lower_bound(k);
867
+ iterator i = this->lower_bound(k);
772
868
  // i->first is greater than or equivalent to k.
773
- if (i == end() || key_comp()(k, (*i).first)){
869
+ if (i == this->end() || this->key_comp()(k, (*i).first)){
774
870
  container_detail::value_init<mapped_type> m;
775
871
  movable_value_type val(boost::move(k), boost::move(m.m_t));
776
872
  i = insert(i, boost::move(val));
@@ -778,68 +874,30 @@ class map
778
874
  return (*i).second;
779
875
  }
780
876
 
781
- /// @endcond
877
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
782
878
  };
783
879
 
784
- template <class Key, class T, class Compare, class Allocator>
785
- inline bool operator==(const map<Key,T,Compare,Allocator>& x,
786
- const map<Key,T,Compare,Allocator>& y)
787
- { return x.m_tree == y.m_tree; }
788
-
789
- template <class Key, class T, class Compare, class Allocator>
790
- inline bool operator<(const map<Key,T,Compare,Allocator>& x,
791
- const map<Key,T,Compare,Allocator>& y)
792
- { return x.m_tree < y.m_tree; }
793
-
794
- template <class Key, class T, class Compare, class Allocator>
795
- inline bool operator!=(const map<Key,T,Compare,Allocator>& x,
796
- const map<Key,T,Compare,Allocator>& y)
797
- { return !(x == y); }
798
-
799
- template <class Key, class T, class Compare, class Allocator>
800
- inline bool operator>(const map<Key,T,Compare,Allocator>& x,
801
- const map<Key,T,Compare,Allocator>& y)
802
- { return y < x; }
803
-
804
- template <class Key, class T, class Compare, class Allocator>
805
- inline bool operator<=(const map<Key,T,Compare,Allocator>& x,
806
- const map<Key,T,Compare,Allocator>& y)
807
- { return !(y < x); }
808
-
809
- template <class Key, class T, class Compare, class Allocator>
810
- inline bool operator>=(const map<Key,T,Compare,Allocator>& x,
811
- const map<Key,T,Compare,Allocator>& y)
812
- { return !(x < y); }
813
-
814
- template <class Key, class T, class Compare, class Allocator>
815
- inline void swap(map<Key,T,Compare,Allocator>& x, map<Key,T,Compare,Allocator>& y)
816
- { x.swap(y); }
817
-
818
- /// @cond
819
880
 
820
- // Forward declaration of operators < and ==, needed for friend declaration.
821
-
822
- template <class Key, class T, class Compare, class Allocator>
823
- inline bool operator==(const multimap<Key,T,Compare,Allocator>& x,
824
- const multimap<Key,T,Compare,Allocator>& y);
825
-
826
- template <class Key, class T, class Compare, class Allocator>
827
- inline bool operator<(const multimap<Key,T,Compare,Allocator>& x,
828
- const multimap<Key,T,Compare,Allocator>& y);
881
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
829
882
 
830
883
  } //namespace container {
831
884
 
832
885
  //!has_trivial_destructor_after_move<> == true_type
833
886
  //!specialization for optimizations
834
- template <class K, class T, class C, class Allocator>
835
- struct has_trivial_destructor_after_move<boost::container::map<K, T, C, Allocator> >
887
+ template <class Key, class T, class Compare, class Allocator>
888
+ struct has_trivial_destructor_after_move<boost::container::map<Key, T, Compare, Allocator> >
836
889
  {
837
- static const bool value = has_trivial_destructor_after_move<Allocator>::value && has_trivial_destructor_after_move<C>::value;
890
+ typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
891
+ static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
892
+ ::boost::has_trivial_destructor_after_move<pointer>::value &&
893
+ ::boost::has_trivial_destructor_after_move<Compare>::value;
838
894
  };
839
895
 
840
896
  namespace container {
841
897
 
842
- /// @endcond
898
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
899
+
900
+ #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
843
901
 
844
902
  //! A multimap is a kind of associative container that supports equivalent keys
845
903
  //! (possibly containing multiple copies of the same key value) and provides for
@@ -847,33 +905,42 @@ namespace container {
847
905
  //! supports bidirectional iterators.
848
906
  //!
849
907
  //! A multimap satisfies all of the requirements of a container and of a reversible
850
- //! container and of an associative container. For a
851
- //! map<Key,T> the key_type is Key and the value_type is std::pair<const Key,T>.
852
- //!
853
- //! Compare is the ordering function for Keys (e.g. <i>std::less<Key></i>).
908
+ //! container and of an associative container. The <code>value_type</code> stored
909
+ //! by this container is the value_type is std::pair<const Key, T>.
854
910
  //!
855
- //! Allocator is the allocator to allocate the value_types
856
- //!(e.g. <i>allocator< std::pair<<b>const</b> Key, T> ></i>).
857
- #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
858
- template <class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator< std::pair< const Key, T> > >
911
+ //! \tparam Key is the key_type of the map
912
+ //! \tparam Value is the <code>mapped_type</code>
913
+ //! \tparam Compare is the ordering function for Keys (e.g. <i>std::less<Key></i>).
914
+ //! \tparam Allocator is the allocator to allocate the <code>value_type</code>s
915
+ //! (e.g. <i>allocator< std::pair<const Key, T> > </i>).
916
+ //! \tparam MultiMapOptions is an packed option type generated using using boost::container::tree_assoc_options.
917
+ template < class Key, class T, class Compare = std::less<Key>
918
+ , class Allocator = new_allocator< std::pair< const Key, T> >, class MultiMapOptions = tree_assoc_defaults>
859
919
  #else
860
- template <class Key, class T, class Compare, class Allocator>
920
+ template <class Key, class T, class Compare, class Allocator, class MultiMapOptions>
861
921
  #endif
862
922
  class multimap
923
+ ///@cond
924
+ : public container_detail::tree
925
+ < Key, std::pair<const Key, T>
926
+ , container_detail::select1st< std::pair<const Key, T> >
927
+ , Compare, Allocator, MultiMapOptions>
928
+ ///@endcond
863
929
  {
864
- /// @cond
930
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
865
931
  private:
866
932
  BOOST_COPYABLE_AND_MOVABLE(multimap)
867
933
 
868
934
  typedef std::pair<const Key, T> value_type_impl;
869
- typedef container_detail::rbtree
870
- <Key, value_type_impl, container_detail::select1st<value_type_impl>, Compare, Allocator> tree_t;
935
+ typedef container_detail::tree
936
+ <Key, value_type_impl, container_detail::select1st<value_type_impl>, Compare, Allocator, MultiMapOptions> base_t;
871
937
  typedef container_detail::pair <Key, T> movable_value_type_impl;
872
938
  typedef container_detail::tree_value_compare
873
939
  < Key, value_type_impl, Compare, container_detail::select1st<value_type_impl>
874
940
  > value_compare_impl;
875
- tree_t m_tree; // red-black tree representing map
876
- /// @endcond
941
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
942
+
943
+ typedef ::boost::container::allocator_traits<Allocator> allocator_traits_type;
877
944
 
878
945
  public:
879
946
  //////////////////////////////////////////////
@@ -892,13 +959,13 @@ class multimap
892
959
  typedef typename boost::container::allocator_traits<Allocator>::size_type size_type;
893
960
  typedef typename boost::container::allocator_traits<Allocator>::difference_type difference_type;
894
961
  typedef Allocator allocator_type;
895
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
962
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::stored_allocator_type) stored_allocator_type;
896
963
  typedef BOOST_CONTAINER_IMPDEF(value_compare_impl) value_compare;
897
964
  typedef Compare key_compare;
898
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::iterator) iterator;
899
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_iterator) const_iterator;
900
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::reverse_iterator) reverse_iterator;
901
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_reverse_iterator) const_reverse_iterator;
965
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::iterator) iterator;
966
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_iterator) const_iterator;
967
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::reverse_iterator) reverse_iterator;
968
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_reverse_iterator) const_reverse_iterator;
902
969
  typedef std::pair<key_type, mapped_type> nonconst_value_type;
903
970
  typedef BOOST_CONTAINER_IMPDEF(movable_value_type_impl) movable_value_type;
904
971
 
@@ -912,9 +979,19 @@ class multimap
912
979
  //!
913
980
  //! <b>Complexity</b>: Constant.
914
981
  multimap()
915
- : m_tree()
982
+ : base_t()
983
+ {
984
+ //A type must be std::pair<CONST Key, T>
985
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
986
+ }
987
+
988
+ //! <b>Effects</b>: Constructs an empty multimap using the specified allocator.
989
+ //!
990
+ //! <b>Complexity</b>: Constant.
991
+ explicit multimap(const Compare& comp, const allocator_type& a = allocator_type())
992
+ : base_t(comp, a)
916
993
  {
917
- //Allocator type must be std::pair<CONST Key, T>
994
+ //A type must be std::pair<CONST Key, T>
918
995
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
919
996
  }
920
997
 
@@ -922,10 +999,10 @@ class multimap
922
999
  //! object and allocator.
923
1000
  //!
924
1001
  //! <b>Complexity</b>: Constant.
925
- explicit multimap(const Compare& comp, const allocator_type& a = allocator_type())
926
- : m_tree(comp, a)
1002
+ explicit multimap(const allocator_type& a)
1003
+ : base_t(a)
927
1004
  {
928
- //Allocator type must be std::pair<CONST Key, T>
1005
+ //A type must be std::pair<CONST Key, T>
929
1006
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
930
1007
  }
931
1008
 
@@ -938,9 +1015,22 @@ class multimap
938
1015
  multimap(InputIterator first, InputIterator last,
939
1016
  const Compare& comp = Compare(),
940
1017
  const allocator_type& a = allocator_type())
941
- : m_tree(false, first, last, comp, a)
1018
+ : base_t(false, first, last, comp, a)
942
1019
  {
943
- //Allocator type must be std::pair<CONST Key, T>
1020
+ //A type must be std::pair<CONST Key, T>
1021
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
1022
+ }
1023
+
1024
+ //! <b>Effects</b>: Constructs an empty multimap using the specified
1025
+ //! allocator, and inserts elements from the range [first ,last ).
1026
+ //!
1027
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1028
+ //! comp and otherwise N logN, where N is last - first.
1029
+ template <class InputIterator>
1030
+ multimap(InputIterator first, InputIterator last, const allocator_type& a)
1031
+ : base_t(false, first, last, Compare(), a)
1032
+ {
1033
+ //A type must be std::pair<CONST Key, T>
944
1034
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
945
1035
  }
946
1036
 
@@ -951,19 +1041,65 @@ class multimap
951
1041
  //! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
952
1042
  //!
953
1043
  //! <b>Complexity</b>: Linear in N.
1044
+ //!
1045
+ //! <b>Note</b>: Non-standard extension.
954
1046
  template <class InputIterator>
955
1047
  multimap(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp = Compare(),
956
1048
  const allocator_type& a = allocator_type())
957
- : m_tree(ordered_range, first, last, comp, a)
1049
+ : base_t(ordered_range, first, last, comp, a)
958
1050
  {}
959
1051
 
1052
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1053
+ //! <b>Effects</b>: Constructs an empty multimap using the specified comparison object and
1054
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
1055
+ //!
1056
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1057
+ //! comp and otherwise N logN, where N is il.first() - il.end().
1058
+ multimap(std::initializer_list<value_type> il, const Compare& comp = Compare(),
1059
+ const allocator_type& a = allocator_type())
1060
+ : base_t(false, il.begin(), il.end(), comp, a)
1061
+ {
1062
+ //A type must be std::pair<CONST Key, T>
1063
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
1064
+ }
1065
+
1066
+ //! <b>Effects</b>: Constructs an empty multimap using the specified
1067
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
1068
+ //!
1069
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1070
+ //! comp and otherwise N logN, where N is il.first() - il.end().
1071
+ multimap(std::initializer_list<value_type> il, const allocator_type& a)
1072
+ : base_t(false, il.begin(), il.end(), Compare(), a)
1073
+ {
1074
+ //A type must be std::pair<CONST Key, T>
1075
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
1076
+ }
1077
+
1078
+ //! <b>Effects</b>: Constructs an empty set using the specified comparison object and
1079
+ //! allocator, and inserts elements from the ordered range [il.begin(), il.end()). This function
1080
+ //! is more efficient than the normal range creation for ordered ranges.
1081
+ //!
1082
+ //! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate.
1083
+ //!
1084
+ //! <b>Complexity</b>: Linear in N.
1085
+ //!
1086
+ //! <b>Note</b>: Non-standard extension.
1087
+ multimap(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp = Compare(),
1088
+ const allocator_type& a = allocator_type())
1089
+ : base_t(ordered_range, il.begin(), il.end(), comp, a)
1090
+ {
1091
+ //A type must be std::pair<CONST Key, T>
1092
+ BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
1093
+ }
1094
+ #endif
1095
+
960
1096
  //! <b>Effects</b>: Copy constructs a multimap.
961
1097
  //!
962
1098
  //! <b>Complexity</b>: Linear in x.size().
963
1099
  multimap(const multimap& x)
964
- : m_tree(x.m_tree)
1100
+ : base_t(static_cast<const base_t&>(x))
965
1101
  {
966
- //Allocator type must be std::pair<CONST Key, T>
1102
+ //A type must be std::pair<CONST Key, T>
967
1103
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
968
1104
  }
969
1105
 
@@ -973,9 +1109,9 @@ class multimap
973
1109
  //!
974
1110
  //! <b>Postcondition</b>: x is emptied.
975
1111
  multimap(BOOST_RV_REF(multimap) x)
976
- : m_tree(boost::move(x.m_tree))
1112
+ : base_t(BOOST_MOVE_BASE(base_t, x))
977
1113
  {
978
- //Allocator type must be std::pair<CONST Key, T>
1114
+ //A type must be std::pair<CONST Key, T>
979
1115
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
980
1116
  }
981
1117
 
@@ -983,9 +1119,9 @@ class multimap
983
1119
  //!
984
1120
  //! <b>Complexity</b>: Linear in x.size().
985
1121
  multimap(const multimap& x, const allocator_type &a)
986
- : m_tree(x.m_tree, a)
1122
+ : base_t(static_cast<const base_t&>(x), a)
987
1123
  {
988
- //Allocator type must be std::pair<CONST Key, T>
1124
+ //A type must be std::pair<CONST Key, T>
989
1125
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
990
1126
  }
991
1127
 
@@ -995,9 +1131,9 @@ class multimap
995
1131
  //!
996
1132
  //! <b>Postcondition</b>: x is emptied.
997
1133
  multimap(BOOST_RV_REF(multimap) x, const allocator_type &a)
998
- : m_tree(boost::move(x.m_tree), a)
1134
+ : base_t(BOOST_MOVE_BASE(base_t, x), a)
999
1135
  {
1000
- //Allocator type must be std::pair<CONST Key, T>
1136
+ //A type must be std::pair<CONST Key, T>
1001
1137
  BOOST_STATIC_ASSERT((container_detail::is_same<std::pair<const Key, T>, typename Allocator::value_type>::value));
1002
1138
  }
1003
1139
 
@@ -1005,186 +1141,86 @@ class multimap
1005
1141
  //!
1006
1142
  //! <b>Complexity</b>: Linear in x.size().
1007
1143
  multimap& operator=(BOOST_COPY_ASSIGN_REF(multimap) x)
1008
- { m_tree = x.m_tree; return *this; }
1144
+ { return static_cast<multimap&>(this->base_t::operator=(static_cast<const base_t&>(x))); }
1009
1145
 
1010
1146
  //! <b>Effects</b>: this->swap(x.get()).
1011
1147
  //!
1012
1148
  //! <b>Complexity</b>: Constant.
1013
1149
  multimap& operator=(BOOST_RV_REF(multimap) x)
1014
- { m_tree = boost::move(x.m_tree); return *this; }
1150
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
1151
+ && boost::container::container_detail::is_nothrow_move_assignable<Compare>::value )
1152
+ { return static_cast<multimap&>(this->base_t::operator=(BOOST_MOVE_BASE(base_t, x))); }
1015
1153
 
1016
- //! <b>Effects</b>: Returns a copy of the Allocator that
1017
- //! was passed to the object's constructor.
1154
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1155
+ //! <b>Effects</b>: Assign content of il to *this.
1018
1156
  //!
1019
- //! <b>Complexity</b>: Constant.
1020
- allocator_type get_allocator() const BOOST_CONTAINER_NOEXCEPT
1021
- { return m_tree.get_allocator(); }
1157
+ multimap& operator=(std::initializer_list<value_type> il)
1158
+ {
1159
+ this->clear();
1160
+ insert(il.begin(), il.end());
1161
+ return *this;
1162
+ }
1163
+ #endif
1022
1164
 
1023
- //! <b>Effects</b>: Returns a reference to the internal allocator.
1024
- //!
1025
- //! <b>Throws</b>: Nothing
1026
- //!
1027
- //! <b>Complexity</b>: Constant.
1028
- //!
1029
- //! <b>Note</b>: Non-standard extension.
1030
- stored_allocator_type &get_stored_allocator() BOOST_CONTAINER_NOEXCEPT
1031
- { return m_tree.get_stored_allocator(); }
1165
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1032
1166
 
1033
- //! <b>Effects</b>: Returns a reference to the internal allocator.
1034
- //!
1035
- //! <b>Throws</b>: Nothing
1036
- //!
1037
- //! <b>Complexity</b>: Constant.
1038
- //!
1039
- //! <b>Note</b>: Non-standard extension.
1040
- const stored_allocator_type &get_stored_allocator() const BOOST_CONTAINER_NOEXCEPT
1041
- { return m_tree.get_stored_allocator(); }
1167
+ //! @copydoc ::boost::container::set::get_allocator()
1168
+ allocator_type get_allocator() const;
1042
1169
 
1043
- //////////////////////////////////////////////
1044
- //
1045
- // iterators
1046
- //
1047
- //////////////////////////////////////////////
1170
+ //! @copydoc ::boost::container::set::get_stored_allocator()
1171
+ stored_allocator_type &get_stored_allocator();
1048
1172
 
1049
- //! <b>Effects</b>: Returns an iterator to the first element contained in the container.
1050
- //!
1051
- //! <b>Throws</b>: Nothing.
1052
- //!
1053
- //! <b>Complexity</b>: Constant.
1054
- iterator begin() BOOST_CONTAINER_NOEXCEPT
1055
- { return m_tree.begin(); }
1173
+ //! @copydoc ::boost::container::set::get_stored_allocator() const
1174
+ const stored_allocator_type &get_stored_allocator() const;
1056
1175
 
1057
- //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
1058
- //!
1059
- //! <b>Throws</b>: Nothing.
1060
- //!
1061
- //! <b>Complexity</b>: Constant.
1062
- const_iterator begin() const BOOST_CONTAINER_NOEXCEPT
1063
- { return this->cbegin(); }
1176
+ //! @copydoc ::boost::container::set::begin()
1177
+ iterator begin();
1064
1178
 
1065
- //! <b>Effects</b>: Returns an iterator to the end of the container.
1066
- //!
1067
- //! <b>Throws</b>: Nothing.
1068
- //!
1069
- //! <b>Complexity</b>: Constant.
1070
- iterator end() BOOST_CONTAINER_NOEXCEPT
1071
- { return m_tree.end(); }
1179
+ //! @copydoc ::boost::container::set::begin() const
1180
+ const_iterator begin() const;
1072
1181
 
1073
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
1074
- //!
1075
- //! <b>Throws</b>: Nothing.
1076
- //!
1077
- //! <b>Complexity</b>: Constant.
1078
- const_iterator end() const BOOST_CONTAINER_NOEXCEPT
1079
- { return this->cend(); }
1182
+ //! @copydoc ::boost::container::set::cbegin() const
1183
+ const_iterator cbegin() const;
1080
1184
 
1081
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
1082
- //! of the reversed container.
1083
- //!
1084
- //! <b>Throws</b>: Nothing.
1085
- //!
1086
- //! <b>Complexity</b>: Constant.
1087
- reverse_iterator rbegin() BOOST_CONTAINER_NOEXCEPT
1088
- { return m_tree.rbegin(); }
1185
+ //! @copydoc ::boost::container::set::end()
1186
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW;
1089
1187
 
1090
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1091
- //! of the reversed container.
1092
- //!
1093
- //! <b>Throws</b>: Nothing.
1094
- //!
1095
- //! <b>Complexity</b>: Constant.
1096
- const_reverse_iterator rbegin() const BOOST_CONTAINER_NOEXCEPT
1097
- { return this->crbegin(); }
1188
+ //! @copydoc ::boost::container::set::end() const
1189
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW;
1098
1190
 
1099
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
1100
- //! of the reversed container.
1101
- //!
1102
- //! <b>Throws</b>: Nothing.
1103
- //!
1104
- //! <b>Complexity</b>: Constant.
1105
- reverse_iterator rend() BOOST_CONTAINER_NOEXCEPT
1106
- { return m_tree.rend(); }
1191
+ //! @copydoc ::boost::container::set::cend() const
1192
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW;
1107
1193
 
1108
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1109
- //! of the reversed container.
1110
- //!
1111
- //! <b>Throws</b>: Nothing.
1112
- //!
1113
- //! <b>Complexity</b>: Constant.
1114
- const_reverse_iterator rend() const BOOST_CONTAINER_NOEXCEPT
1115
- { return this->crend(); }
1194
+ //! @copydoc ::boost::container::set::rbegin()
1195
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW;
1116
1196
 
1117
- //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
1118
- //!
1119
- //! <b>Throws</b>: Nothing.
1120
- //!
1121
- //! <b>Complexity</b>: Constant.
1122
- const_iterator cbegin() const BOOST_CONTAINER_NOEXCEPT
1123
- { return m_tree.begin(); }
1197
+ //! @copydoc ::boost::container::set::rbegin() const
1198
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
1124
1199
 
1125
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
1126
- //!
1127
- //! <b>Throws</b>: Nothing.
1128
- //!
1129
- //! <b>Complexity</b>: Constant.
1130
- const_iterator cend() const BOOST_CONTAINER_NOEXCEPT
1131
- { return m_tree.end(); }
1200
+ //! @copydoc ::boost::container::set::crbegin() const
1201
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
1132
1202
 
1133
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
1134
- //! of the reversed container.
1135
- //!
1136
- //! <b>Throws</b>: Nothing.
1137
- //!
1138
- //! <b>Complexity</b>: Constant.
1139
- const_reverse_iterator crbegin() const BOOST_CONTAINER_NOEXCEPT
1140
- { return m_tree.rbegin(); }
1203
+ //! @copydoc ::boost::container::set::rend()
1204
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW;
1141
1205
 
1142
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1143
- //! of the reversed container.
1144
- //!
1145
- //! <b>Throws</b>: Nothing.
1146
- //!
1147
- //! <b>Complexity</b>: Constant.
1148
- const_reverse_iterator crend() const BOOST_CONTAINER_NOEXCEPT
1149
- { return m_tree.rend(); }
1206
+ //! @copydoc ::boost::container::set::rend() const
1207
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW;
1150
1208
 
1151
- //////////////////////////////////////////////
1152
- //
1153
- // capacity
1154
- //
1155
- //////////////////////////////////////////////
1209
+ //! @copydoc ::boost::container::set::crend() const
1210
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW;
1156
1211
 
1157
- //! <b>Effects</b>: Returns true if the container contains no elements.
1158
- //!
1159
- //! <b>Throws</b>: Nothing.
1160
- //!
1161
- //! <b>Complexity</b>: Constant.
1162
- bool empty() const BOOST_CONTAINER_NOEXCEPT
1163
- { return m_tree.empty(); }
1212
+ //! @copydoc ::boost::container::set::empty() const
1213
+ bool empty() const;
1164
1214
 
1165
- //! <b>Effects</b>: Returns the number of the elements contained in the container.
1166
- //!
1167
- //! <b>Throws</b>: Nothing.
1168
- //!
1169
- //! <b>Complexity</b>: Constant.
1170
- size_type size() const BOOST_CONTAINER_NOEXCEPT
1171
- { return m_tree.size(); }
1215
+ //! @copydoc ::boost::container::set::size() const
1216
+ size_type size() const;
1172
1217
 
1173
- //! <b>Effects</b>: Returns the largest possible size of the container.
1174
- //!
1175
- //! <b>Throws</b>: Nothing.
1176
- //!
1177
- //! <b>Complexity</b>: Constant.
1178
- size_type max_size() const BOOST_CONTAINER_NOEXCEPT
1179
- { return m_tree.max_size(); }
1218
+ //! @copydoc ::boost::container::set::max_size() const
1219
+ size_type max_size() const;
1180
1220
 
1181
- //////////////////////////////////////////////
1182
- //
1183
- // modifiers
1184
- //
1185
- //////////////////////////////////////////////
1221
+ #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1186
1222
 
1187
- #if defined(BOOST_CONTAINER_PERFECT_FORWARDING) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1223
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1188
1224
 
1189
1225
  //! <b>Effects</b>: Inserts an object of type T constructed with
1190
1226
  //! std::forward<Args>(args)... in the container.
@@ -1196,8 +1232,8 @@ class multimap
1196
1232
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1197
1233
  //! is inserted right before p.
1198
1234
  template <class... Args>
1199
- iterator emplace(Args&&... args)
1200
- { return m_tree.emplace_equal(boost::forward<Args>(args)...); }
1235
+ iterator emplace(BOOST_FWD_REF(Args)... args)
1236
+ { return this->base_t::emplace_equal(boost::forward<Args>(args)...); }
1201
1237
 
1202
1238
  //! <b>Effects</b>: Inserts an object of type T constructed with
1203
1239
  //! std::forward<Args>(args)... in the container.
@@ -1209,54 +1245,52 @@ class multimap
1209
1245
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1210
1246
  //! is inserted right before p.
1211
1247
  template <class... Args>
1212
- iterator emplace_hint(const_iterator hint, Args&&... args)
1213
- { return m_tree.emplace_hint_equal(hint, boost::forward<Args>(args)...); }
1214
-
1215
- #else //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
1216
-
1217
- #define BOOST_PP_LOCAL_MACRO(n) \
1218
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
1219
- iterator emplace(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
1220
- { return m_tree.emplace_equal(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
1221
- \
1222
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
1223
- iterator emplace_hint(const_iterator hint \
1224
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
1225
- { return m_tree.emplace_hint_equal(hint \
1226
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _));} \
1227
- //!
1228
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
1229
- #include BOOST_PP_LOCAL_ITERATE()
1248
+ iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
1249
+ { return this->base_t::emplace_hint_equal(p, boost::forward<Args>(args)...); }
1250
+
1251
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1252
+
1253
+ #define BOOST_CONTAINER_MULTIMAP_EMPLACE_CODE(N) \
1254
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1255
+ iterator emplace(BOOST_MOVE_UREF##N)\
1256
+ { return this->base_t::emplace_equal(BOOST_MOVE_FWD##N); }\
1257
+ \
1258
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1259
+ iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1260
+ { return this->base_t::emplace_hint_equal(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
1261
+ //
1262
+ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_MULTIMAP_EMPLACE_CODE)
1263
+ #undef BOOST_CONTAINER_MULTIMAP_EMPLACE_CODE
1230
1264
 
1231
- #endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
1265
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1232
1266
 
1233
1267
  //! <b>Effects</b>: Inserts x and returns the iterator pointing to the
1234
1268
  //! newly inserted element.
1235
1269
  //!
1236
1270
  //! <b>Complexity</b>: Logarithmic.
1237
1271
  iterator insert(const value_type& x)
1238
- { return m_tree.insert_equal(x); }
1272
+ { return this->base_t::insert_equal(x); }
1239
1273
 
1240
1274
  //! <b>Effects</b>: Inserts a new value constructed from x and returns
1241
1275
  //! the iterator pointing to the newly inserted element.
1242
1276
  //!
1243
1277
  //! <b>Complexity</b>: Logarithmic.
1244
1278
  iterator insert(const nonconst_value_type& x)
1245
- { return m_tree.insert_equal(x); }
1279
+ { return this->base_t::insert_equal(x); }
1246
1280
 
1247
1281
  //! <b>Effects</b>: Inserts a new value move-constructed from x and returns
1248
1282
  //! the iterator pointing to the newly inserted element.
1249
1283
  //!
1250
1284
  //! <b>Complexity</b>: Logarithmic.
1251
1285
  iterator insert(BOOST_RV_REF(nonconst_value_type) x)
1252
- { return m_tree.insert_equal(boost::move(x)); }
1286
+ { return this->base_t::insert_equal(boost::move(x)); }
1253
1287
 
1254
1288
  //! <b>Effects</b>: Inserts a new value move-constructed from x and returns
1255
1289
  //! the iterator pointing to the newly inserted element.
1256
1290
  //!
1257
1291
  //! <b>Complexity</b>: Logarithmic.
1258
1292
  iterator insert(BOOST_RV_REF(movable_value_type) x)
1259
- { return m_tree.insert_equal(boost::move(x)); }
1293
+ { return this->base_t::insert_equal(boost::move(x)); }
1260
1294
 
1261
1295
  //! <b>Effects</b>: Inserts a copy of x in the container.
1262
1296
  //! p is a hint pointing to where the insert should start to search.
@@ -1266,8 +1300,8 @@ class multimap
1266
1300
  //!
1267
1301
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1268
1302
  //! is inserted right before p.
1269
- iterator insert(const_iterator position, const value_type& x)
1270
- { return m_tree.insert_equal(position, x); }
1303
+ iterator insert(const_iterator p, const value_type& x)
1304
+ { return this->base_t::insert_equal(p, x); }
1271
1305
 
1272
1306
  //! <b>Effects</b>: Inserts a new value constructed from x in the container.
1273
1307
  //! p is a hint pointing to where the insert should start to search.
@@ -1277,8 +1311,8 @@ class multimap
1277
1311
  //!
1278
1312
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1279
1313
  //! is inserted right before p.
1280
- iterator insert(const_iterator position, const nonconst_value_type& x)
1281
- { return m_tree.insert_equal(position, x); }
1314
+ iterator insert(const_iterator p, const nonconst_value_type& x)
1315
+ { return this->base_t::insert_equal(p, x); }
1282
1316
 
1283
1317
  //! <b>Effects</b>: Inserts a new value move constructed from x in the container.
1284
1318
  //! p is a hint pointing to where the insert should start to search.
@@ -1288,8 +1322,8 @@ class multimap
1288
1322
  //!
1289
1323
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1290
1324
  //! is inserted right before p.
1291
- iterator insert(const_iterator position, BOOST_RV_REF(nonconst_value_type) x)
1292
- { return m_tree.insert_equal(position, boost::move(x)); }
1325
+ iterator insert(const_iterator p, BOOST_RV_REF(nonconst_value_type) x)
1326
+ { return this->base_t::insert_equal(p, boost::move(x)); }
1293
1327
 
1294
1328
  //! <b>Effects</b>: Inserts a new value move constructed from x in the container.
1295
1329
  //! p is a hint pointing to where the insert should start to search.
@@ -1299,8 +1333,8 @@ class multimap
1299
1333
  //!
1300
1334
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if t
1301
1335
  //! is inserted right before p.
1302
- iterator insert(const_iterator position, BOOST_RV_REF(movable_value_type) x)
1303
- { return m_tree.insert_equal(position, boost::move(x)); }
1336
+ iterator insert(const_iterator p, BOOST_RV_REF(movable_value_type) x)
1337
+ { return this->base_t::insert_equal(p, boost::move(x)); }
1304
1338
 
1305
1339
  //! <b>Requires</b>: first, last are not iterators into *this.
1306
1340
  //!
@@ -1309,200 +1343,157 @@ class multimap
1309
1343
  //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from first to last)
1310
1344
  template <class InputIterator>
1311
1345
  void insert(InputIterator first, InputIterator last)
1312
- { m_tree.insert_equal(first, last); }
1346
+ { this->base_t::insert_equal(first, last); }
1313
1347
 
1314
- //! <b>Effects</b>: Erases the element pointed to by position.
1348
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1349
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end().
1315
1350
  //!
1316
- //! <b>Returns</b>: Returns an iterator pointing to the element immediately
1317
- //! following q prior to the element being erased. If no such element exists,
1318
- //! returns end().
1319
- //!
1320
- //! <b>Complexity</b>: Amortized constant time
1321
- iterator erase(const_iterator position) BOOST_CONTAINER_NOEXCEPT
1322
- { return m_tree.erase(position); }
1351
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from il.begin() to il.end())
1352
+ void insert(std::initializer_list<value_type> il)
1353
+ { this->base_t::insert_equal(il.begin(), il.end()); }
1354
+ #endif
1323
1355
 
1324
- //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
1325
- //!
1326
- //! <b>Returns</b>: Returns the number of erased elements.
1327
- //!
1328
- //! <b>Complexity</b>: log(size()) + count(k)
1329
- size_type erase(const key_type& x) BOOST_CONTAINER_NOEXCEPT
1330
- { return m_tree.erase(x); }
1356
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1331
1357
 
1332
- //! <b>Effects</b>: Erases all the elements in the range [first, last).
1333
- //!
1334
- //! <b>Returns</b>: Returns last.
1335
- //!
1336
- //! <b>Complexity</b>: log(size())+N where N is the distance from first to last.
1337
- iterator erase(const_iterator first, const_iterator last) BOOST_CONTAINER_NOEXCEPT
1338
- { return m_tree.erase(first, last); }
1358
+ //! @copydoc ::boost::container::set::erase(const_iterator)
1359
+ iterator erase(const_iterator p);
1339
1360
 
1340
- //! <b>Effects</b>: Swaps the contents of *this and x.
1341
- //!
1342
- //! <b>Throws</b>: Nothing.
1343
- //!
1344
- //! <b>Complexity</b>: Constant.
1345
- void swap(multimap& x)
1346
- { m_tree.swap(x.m_tree); }
1361
+ //! @copydoc ::boost::container::set::erase(const key_type&)
1362
+ size_type erase(const key_type& x);
1347
1363
 
1348
- //! <b>Effects</b>: erase(a.begin(),a.end()).
1349
- //!
1350
- //! <b>Postcondition</b>: size() == 0.
1351
- //!
1352
- //! <b>Complexity</b>: linear in size().
1353
- void clear() BOOST_CONTAINER_NOEXCEPT
1354
- { m_tree.clear(); }
1364
+ //! @copydoc ::boost::container::set::erase(const_iterator,const_iterator)
1365
+ iterator erase(const_iterator first, const_iterator last);
1355
1366
 
1356
- //////////////////////////////////////////////
1357
- //
1358
- // observers
1359
- //
1360
- //////////////////////////////////////////////
1367
+ //! @copydoc ::boost::container::set::swap
1368
+ void swap(multiset& x)
1369
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
1370
+ && boost::container::container_detail::is_nothrow_swappable<Compare>::value );
1361
1371
 
1362
- //! <b>Effects</b>: Returns the comparison object out
1363
- //! of which a was constructed.
1364
- //!
1365
- //! <b>Complexity</b>: Constant.
1366
- key_compare key_comp() const
1367
- { return m_tree.key_comp(); }
1372
+ //! @copydoc ::boost::container::set::clear
1373
+ void clear() BOOST_NOEXCEPT_OR_NOTHROW;
1368
1374
 
1369
- //! <b>Effects</b>: Returns an object of value_compare constructed out
1370
- //! of the comparison object.
1371
- //!
1372
- //! <b>Complexity</b>: Constant.
1373
- value_compare value_comp() const
1374
- { return value_compare(m_tree.key_comp()); }
1375
+ //! @copydoc ::boost::container::set::key_comp
1376
+ key_compare key_comp() const;
1375
1377
 
1376
- //////////////////////////////////////////////
1377
- //
1378
- // map operations
1379
- //
1380
- //////////////////////////////////////////////
1378
+ //! @copydoc ::boost::container::set::value_comp
1379
+ value_compare value_comp() const;
1381
1380
 
1382
1381
  //! <b>Returns</b>: An iterator pointing to an element with the key
1383
1382
  //! equivalent to x, or end() if such an element is not found.
1384
1383
  //!
1385
1384
  //! <b>Complexity</b>: Logarithmic.
1386
- iterator find(const key_type& x)
1387
- { return m_tree.find(x); }
1385
+ iterator find(const key_type& x);
1388
1386
 
1389
- //! <b>Returns</b>: Allocator const iterator pointing to an element with the key
1387
+ //! <b>Returns</b>: A const iterator pointing to an element with the key
1390
1388
  //! equivalent to x, or end() if such an element is not found.
1391
1389
  //!
1392
1390
  //! <b>Complexity</b>: Logarithmic.
1393
- const_iterator find(const key_type& x) const
1394
- { return m_tree.find(x); }
1391
+ const_iterator find(const key_type& x) const;
1395
1392
 
1396
1393
  //! <b>Returns</b>: The number of elements with key equivalent to x.
1397
1394
  //!
1398
1395
  //! <b>Complexity</b>: log(size())+count(k)
1399
- size_type count(const key_type& x) const
1400
- { return m_tree.count(x); }
1396
+ size_type count(const key_type& x) const;
1401
1397
 
1402
1398
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
1403
1399
  //! than k, or a.end() if such an element is not found.
1404
1400
  //!
1405
1401
  //! <b>Complexity</b>: Logarithmic
1406
- iterator lower_bound(const key_type& x)
1407
- {return m_tree.lower_bound(x); }
1402
+ iterator lower_bound(const key_type& x);
1408
1403
 
1409
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
1404
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
1410
1405
  //! less than k, or a.end() if such an element is not found.
1411
1406
  //!
1412
1407
  //! <b>Complexity</b>: Logarithmic
1413
- const_iterator lower_bound(const key_type& x) const
1414
- { return m_tree.lower_bound(x); }
1408
+ const_iterator lower_bound(const key_type& x) const;
1415
1409
 
1416
1410
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
1417
1411
  //! than x, or end() if such an element is not found.
1418
1412
  //!
1419
1413
  //! <b>Complexity</b>: Logarithmic
1420
- iterator upper_bound(const key_type& x)
1421
- { return m_tree.upper_bound(x); }
1414
+ iterator upper_bound(const key_type& x);
1422
1415
 
1423
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
1416
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
1424
1417
  //! less than x, or end() if such an element is not found.
1425
1418
  //!
1426
1419
  //! <b>Complexity</b>: Logarithmic
1427
- const_iterator upper_bound(const key_type& x) const
1428
- { return m_tree.upper_bound(x); }
1420
+ const_iterator upper_bound(const key_type& x) const;
1429
1421
 
1430
1422
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1431
1423
  //!
1432
1424
  //! <b>Complexity</b>: Logarithmic
1433
- std::pair<iterator,iterator> equal_range(const key_type& x)
1434
- { return m_tree.equal_range(x); }
1425
+ std::pair<iterator,iterator> equal_range(const key_type& x);
1435
1426
 
1436
1427
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1437
1428
  //!
1438
1429
  //! <b>Complexity</b>: Logarithmic
1439
- std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const
1440
- { return m_tree.equal_range(x); }
1441
-
1442
- /// @cond
1443
- template <class K1, class T1, class C1, class A1>
1444
- friend bool operator== (const multimap<K1, T1, C1, A1>& x,
1445
- const multimap<K1, T1, C1, A1>& y);
1446
-
1447
- template <class K1, class T1, class C1, class A1>
1448
- friend bool operator< (const multimap<K1, T1, C1, A1>& x,
1449
- const multimap<K1, T1, C1, A1>& y);
1450
- /// @endcond
1451
- };
1430
+ std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
1452
1431
 
1453
- template <class Key, class T, class Compare, class Allocator>
1454
- inline bool operator==(const multimap<Key,T,Compare,Allocator>& x,
1455
- const multimap<Key,T,Compare,Allocator>& y)
1456
- { return x.m_tree == y.m_tree; }
1432
+ //! <b>Effects</b>: Rebalances the tree. It's a no-op for Red-Black and AVL trees.
1433
+ //!
1434
+ //! <b>Complexity</b>: Linear
1435
+ void rebalance();
1457
1436
 
1458
- template <class Key, class T, class Compare, class Allocator>
1459
- inline bool operator<(const multimap<Key,T,Compare,Allocator>& x,
1460
- const multimap<Key,T,Compare,Allocator>& y)
1461
- { return x.m_tree < y.m_tree; }
1437
+ //! <b>Effects</b>: Returns true if x and y are equal
1438
+ //!
1439
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1440
+ friend bool operator==(const multimap& x, const multimap& y);
1462
1441
 
1463
- template <class Key, class T, class Compare, class Allocator>
1464
- inline bool operator!=(const multimap<Key,T,Compare,Allocator>& x,
1465
- const multimap<Key,T,Compare,Allocator>& y)
1466
- { return !(x == y); }
1442
+ //! <b>Effects</b>: Returns true if x and y are unequal
1443
+ //!
1444
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1445
+ friend bool operator!=(const multimap& x, const multimap& y);
1467
1446
 
1468
- template <class Key, class T, class Compare, class Allocator>
1469
- inline bool operator>(const multimap<Key,T,Compare,Allocator>& x,
1470
- const multimap<Key,T,Compare,Allocator>& y)
1471
- { return y < x; }
1447
+ //! <b>Effects</b>: Returns true if x is less than y
1448
+ //!
1449
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1450
+ friend bool operator<(const multimap& x, const multimap& y);
1472
1451
 
1473
- template <class Key, class T, class Compare, class Allocator>
1474
- inline bool operator<=(const multimap<Key,T,Compare,Allocator>& x,
1475
- const multimap<Key,T,Compare,Allocator>& y)
1476
- { return !(y < x); }
1452
+ //! <b>Effects</b>: Returns true if x is greater than y
1453
+ //!
1454
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1455
+ friend bool operator>(const multimap& x, const multimap& y);
1477
1456
 
1478
- template <class Key, class T, class Compare, class Allocator>
1479
- inline bool operator>=(const multimap<Key,T,Compare,Allocator>& x,
1480
- const multimap<Key,T,Compare,Allocator>& y)
1481
- { return !(x < y); }
1457
+ //! <b>Effects</b>: Returns true if x is equal or less than y
1458
+ //!
1459
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1460
+ friend bool operator<=(const multimap& x, const multimap& y);
1482
1461
 
1483
- template <class Key, class T, class Compare, class Allocator>
1484
- inline void swap(multimap<Key,T,Compare,Allocator>& x, multimap<Key,T,Compare,Allocator>& y)
1485
- { x.swap(y); }
1462
+ //! <b>Effects</b>: Returns true if x is equal or greater than y
1463
+ //!
1464
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1465
+ friend bool operator>=(const multimap& x, const multimap& y);
1486
1466
 
1487
- /// @cond
1467
+ //! <b>Effects</b>: x.swap(y)
1468
+ //!
1469
+ //! <b>Complexity</b>: Constant.
1470
+ friend void swap(multimap& x, multimap& y);
1471
+
1472
+ #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1473
+ };
1474
+
1475
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1488
1476
 
1489
1477
  } //namespace container {
1490
1478
 
1491
1479
  //!has_trivial_destructor_after_move<> == true_type
1492
1480
  //!specialization for optimizations
1493
- template <class K, class T, class C, class Allocator>
1494
- struct has_trivial_destructor_after_move<boost::container::multimap<K, T, C, Allocator> >
1481
+ template <class Key, class T, class Compare, class Allocator>
1482
+ struct has_trivial_destructor_after_move<boost::container::multimap<Key, T, Compare, Allocator> >
1495
1483
  {
1496
- static const bool value = has_trivial_destructor_after_move<Allocator>::value && has_trivial_destructor_after_move<C>::value;
1484
+ typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
1485
+ static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
1486
+ ::boost::has_trivial_destructor_after_move<pointer>::value &&
1487
+ ::boost::has_trivial_destructor_after_move<Compare>::value;
1497
1488
  };
1498
1489
 
1499
1490
  namespace container {
1500
1491
 
1501
- /// @endcond
1492
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1502
1493
 
1503
1494
  }}
1504
1495
 
1505
1496
  #include <boost/container/detail/config_end.hpp>
1506
1497
 
1507
- #endif /* BOOST_CONTAINER_MAP_HPP */
1498
+ #endif // BOOST_CONTAINER_MAP_HPP
1508
1499