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,59 +1,54 @@
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_FLAT_SET_HPP
12
11
  #define BOOST_CONTAINER_FLAT_SET_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
25
+ #include <boost/container/allocator_traits.hpp>
21
26
  #include <boost/container/container_fwd.hpp>
22
- #include <utility>
23
- #include <functional>
24
- #include <memory>
27
+ #include <boost/container/new_allocator.hpp> //new_allocator
28
+ // container/detail
25
29
  #include <boost/container/detail/flat_tree.hpp>
26
30
  #include <boost/container/detail/mpl.hpp>
27
- #include <boost/container/allocator_traits.hpp>
28
- #include <boost/move/utility.hpp>
31
+ // move
32
+ #include <boost/move/traits.hpp>
33
+ #include <boost/move/utility_core.hpp>
34
+ // move/detail
35
+ #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
36
+ #include <boost/move/detail/fwd_macros.hpp>
37
+ #endif
29
38
  #include <boost/move/detail/move_helpers.hpp>
39
+ // intrusive/detail
40
+ #include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
41
+ #include <boost/intrusive/detail/minimal_less_equal_header.hpp>//less, equal
42
+ // std
43
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
44
+ #include <initializer_list>
45
+ #endif
30
46
 
31
47
  namespace boost {
32
48
  namespace container {
33
49
 
34
- /// @cond
35
- // Forward declarations of operators < and ==, needed for friend declaration.
36
-
37
- #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
38
- template <class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> >
39
- #else
40
- template <class Key, class Compare, class Allocator>
41
- #endif
42
- class flat_set;
43
-
44
- template <class Key, class Compare, class Allocator>
45
- inline bool operator==(const flat_set<Key,Compare,Allocator>& x,
46
- const flat_set<Key,Compare,Allocator>& y);
47
-
48
- template <class Key, class Compare, class Allocator>
49
- inline bool operator<(const flat_set<Key,Compare,Allocator>& x,
50
- const flat_set<Key,Compare,Allocator>& y);
51
- /// @endcond
52
-
53
50
  //! flat_set is a Sorted Associative Container that stores objects of type Key.
54
- //! flat_set is a Simple Associative Container, meaning that its value type,
55
- //! as well as its key type, is Key. It is also a Unique Associative Container,
56
- //! meaning that no two elements are the same.
51
+ //! It is also a Unique Associative Container, meaning that no two elements are the same.
57
52
  //!
58
53
  //! flat_set is similar to std::set but it's implemented like an ordered vector.
59
54
  //! This means that inserting a new element into a flat_set invalidates
@@ -61,19 +56,27 @@ inline bool operator<(const flat_set<Key,Compare,Allocator>& x,
61
56
  //!
62
57
  //! Erasing an element of a flat_set invalidates iterators and references
63
58
  //! pointing to elements that come after (their keys are bigger) the erased element.
59
+ //!
60
+ //! This container provides random-access iterators.
61
+ //!
62
+ //! \tparam Key is the type to be inserted in the set, which is also the key_type
63
+ //! \tparam Compare is the comparison functor used to order keys
64
+ //! \tparam Allocator is the allocator to be used to allocate memory for this container
64
65
  #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
65
- template <class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> >
66
+ template <class Key, class Compare = std::less<Key>, class Allocator = new_allocator<Key> >
66
67
  #else
67
68
  template <class Key, class Compare, class Allocator>
68
69
  #endif
69
70
  class flat_set
71
+ ///@cond
72
+ : public container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator>
73
+ ///@endcond
70
74
  {
71
- /// @cond
75
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
72
76
  private:
73
77
  BOOST_COPYABLE_AND_MOVABLE(flat_set)
74
- typedef container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator> tree_t;
75
- tree_t m_flat_tree; // flat tree representing flat_set
76
- /// @endcond
78
+ typedef container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator> base_t;
79
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
77
80
 
78
81
  public:
79
82
  //////////////////////////////////////////////
@@ -85,6 +88,7 @@ class flat_set
85
88
  typedef Key value_type;
86
89
  typedef Compare key_compare;
87
90
  typedef Compare value_compare;
91
+ typedef ::boost::container::allocator_traits<Allocator> allocator_traits_type;
88
92
  typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
89
93
  typedef typename ::boost::container::allocator_traits<Allocator>::const_pointer const_pointer;
90
94
  typedef typename ::boost::container::allocator_traits<Allocator>::reference reference;
@@ -92,11 +96,11 @@ class flat_set
92
96
  typedef typename ::boost::container::allocator_traits<Allocator>::size_type size_type;
93
97
  typedef typename ::boost::container::allocator_traits<Allocator>::difference_type difference_type;
94
98
  typedef Allocator allocator_type;
95
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
96
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::iterator) iterator;
97
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_iterator) const_iterator;
98
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::reverse_iterator) reverse_iterator;
99
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_reverse_iterator) const_reverse_iterator;
99
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::stored_allocator_type) stored_allocator_type;
100
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::iterator) iterator;
101
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_iterator) const_iterator;
102
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::reverse_iterator) reverse_iterator;
103
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_reverse_iterator) const_reverse_iterator;
100
104
 
101
105
  public:
102
106
  //////////////////////////////////////////////
@@ -105,23 +109,30 @@ class flat_set
105
109
  //
106
110
  //////////////////////////////////////////////
107
111
 
108
- //! <b>Effects</b>: Default constructs an empty flat_set.
112
+ //! <b>Effects</b>: Default constructs an empty container.
109
113
  //!
110
114
  //! <b>Complexity</b>: Constant.
111
115
  explicit flat_set()
112
- : m_flat_tree()
116
+ : base_t()
113
117
  {}
114
118
 
115
- //! <b>Effects</b>: Constructs an empty flat_set using the specified
119
+ //! <b>Effects</b>: Constructs an empty container using the specified
116
120
  //! comparison object and allocator.
117
121
  //!
118
122
  //! <b>Complexity</b>: Constant.
119
123
  explicit flat_set(const Compare& comp,
120
124
  const allocator_type& a = allocator_type())
121
- : m_flat_tree(comp, a)
125
+ : base_t(comp, a)
126
+ {}
127
+
128
+ //! <b>Effects</b>: Constructs an empty container using the specified allocator.
129
+ //!
130
+ //! <b>Complexity</b>: Constant.
131
+ explicit flat_set(const allocator_type& a)
132
+ : base_t(a)
122
133
  {}
123
134
 
124
- //! <b>Effects</b>: Constructs an empty set using the specified comparison object and
135
+ //! <b>Effects</b>: Constructs an empty container using the specified comparison object and
125
136
  //! allocator, and inserts elements from the range [first ,last ).
126
137
  //!
127
138
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
@@ -130,10 +141,20 @@ class flat_set
130
141
  flat_set(InputIterator first, InputIterator last,
131
142
  const Compare& comp = Compare(),
132
143
  const allocator_type& a = allocator_type())
133
- : m_flat_tree(true, first, last, comp, a)
144
+ : base_t(true, first, last, comp, a)
134
145
  {}
135
146
 
136
- //! <b>Effects</b>: Constructs an empty flat_set using the specified comparison object and
147
+ //! <b>Effects</b>: Constructs an empty container using the specified
148
+ //! allocator, and inserts elements from the range [first ,last ).
149
+ //!
150
+ //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
151
+ //! comp and otherwise N logN, where N is last - first.
152
+ template <class InputIterator>
153
+ flat_set(InputIterator first, InputIterator last, const allocator_type& a)
154
+ : base_t(true, first, last, Compare(), a)
155
+ {}
156
+
157
+ //! <b>Effects</b>: Constructs an empty container using the specified comparison object and
137
158
  //! allocator, and inserts elements from the ordered unique range [first ,last). This function
138
159
  //! is more efficient than the normal range creation for ordered ranges.
139
160
  //!
@@ -147,58 +168,111 @@ class flat_set
147
168
  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last,
148
169
  const Compare& comp = Compare(),
149
170
  const allocator_type& a = allocator_type())
150
- : m_flat_tree(ordered_range, first, last, comp, a)
171
+ : base_t(ordered_range, first, last, comp, a)
172
+ {}
173
+
174
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
175
+ //! <b>Effects</b>: Constructs an empty container using the specified comparison object and
176
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
177
+ //!
178
+ //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
179
+ //! comp and otherwise N logN, where N is il.begin() - il.end().
180
+ flat_set(std::initializer_list<value_type> il, const Compare& comp = Compare(),
181
+ const allocator_type& a = allocator_type())
182
+ : base_t(true, il.begin(), il.end(), comp, a)
183
+ {}
184
+
185
+ //! <b>Effects</b>: Constructs an empty container using the specified
186
+ //! allocator, and inserts elements from the range [il.begin(), il.end()).
187
+ //!
188
+ //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
189
+ //! comp and otherwise N logN, where N is il.begin() - il.end().
190
+ flat_set(std::initializer_list<value_type> il, const allocator_type& a)
191
+ : base_t(true, il.begin(), il.end(), Compare(), a)
151
192
  {}
152
193
 
153
- //! <b>Effects</b>: Copy constructs a set.
194
+ //! <b>Effects</b>: Constructs an empty container using the specified comparison object and
195
+ //! allocator, and inserts elements from the ordered unique range [il.begin(), il.end()). This function
196
+ //! is more efficient than the normal range creation for ordered ranges.
197
+ //!
198
+ //! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate and must be
199
+ //! unique values.
200
+ //!
201
+ //! <b>Complexity</b>: Linear in N.
202
+ //!
203
+ //! <b>Note</b>: Non-standard extension.
204
+ flat_set(ordered_unique_range_t, std::initializer_list<value_type> il,
205
+ const Compare& comp = Compare(), const allocator_type& a = allocator_type())
206
+ : base_t(ordered_range, il.begin(), il.end(), comp, a)
207
+ {}
208
+ #endif
209
+
210
+ //! <b>Effects</b>: Copy constructs the container.
154
211
  //!
155
212
  //! <b>Complexity</b>: Linear in x.size().
156
213
  flat_set(const flat_set& x)
157
- : m_flat_tree(x.m_flat_tree)
214
+ : base_t(static_cast<const base_t&>(x))
158
215
  {}
159
216
 
160
- //! <b>Effects</b>: Move constructs a set. Constructs *this using x's resources.
217
+ //! <b>Effects</b>: Move constructs thecontainer. Constructs *this using x's resources.
161
218
  //!
162
219
  //! <b>Complexity</b>: Constant.
163
220
  //!
164
221
  //! <b>Postcondition</b>: x is emptied.
165
- flat_set(BOOST_RV_REF(flat_set) mx)
166
- : m_flat_tree(boost::move(mx.m_flat_tree))
222
+ flat_set(BOOST_RV_REF(flat_set) x)
223
+ : base_t(BOOST_MOVE_BASE(base_t, x))
167
224
  {}
168
225
 
169
- //! <b>Effects</b>: Copy constructs a set using the specified allocator.
226
+ //! <b>Effects</b>: Copy constructs a container using the specified allocator.
170
227
  //!
171
228
  //! <b>Complexity</b>: Linear in x.size().
172
229
  flat_set(const flat_set& x, const allocator_type &a)
173
- : m_flat_tree(x.m_flat_tree, a)
230
+ : base_t(static_cast<const base_t&>(x), a)
174
231
  {}
175
232
 
176
- //! <b>Effects</b>: Move constructs a set using the specified allocator.
233
+ //! <b>Effects</b>: Move constructs a container using the specified allocator.
177
234
  //! Constructs *this using x's resources.
178
235
  //!
179
- //! <b>Complexity</b>: Constant if a == mx.get_allocator(), linear otherwise
180
- flat_set(BOOST_RV_REF(flat_set) mx, const allocator_type &a)
181
- : m_flat_tree(boost::move(mx.m_flat_tree), a)
236
+ //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise
237
+ flat_set(BOOST_RV_REF(flat_set) x, const allocator_type &a)
238
+ : base_t(BOOST_MOVE_BASE(base_t, x), a)
182
239
  {}
183
240
 
184
241
  //! <b>Effects</b>: Makes *this a copy of x.
185
242
  //!
186
243
  //! <b>Complexity</b>: Linear in x.size().
187
244
  flat_set& operator=(BOOST_COPY_ASSIGN_REF(flat_set) x)
188
- { m_flat_tree = x.m_flat_tree; return *this; }
189
-
190
- //! <b>Effects</b>: Makes *this a copy of the previous value of xx.
191
- //!
192
- //! <b>Complexity</b>: Linear in x.size().
193
- flat_set& operator=(BOOST_RV_REF(flat_set) mx)
194
- { m_flat_tree = boost::move(mx.m_flat_tree); return *this; }
245
+ { return static_cast<flat_set&>(this->base_t::operator=(static_cast<const base_t&>(x))); }
246
+
247
+ //! <b>Throws</b>: If allocator_traits_type::propagate_on_container_move_assignment
248
+ //! is false and (allocation throws or value_type's move constructor throws)
249
+ //!
250
+ //! <b>Complexity</b>: Constant if allocator_traits_type::
251
+ //! propagate_on_container_move_assignment is true or
252
+ //! this->get>allocator() == x.get_allocator(). Linear otherwise.
253
+ flat_set& operator=(BOOST_RV_REF(flat_set) x)
254
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
255
+ && boost::container::container_detail::is_nothrow_move_assignable<Compare>::value )
256
+ { return static_cast<flat_set&>(this->base_t::operator=(BOOST_MOVE_BASE(base_t, x))); }
257
+
258
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
259
+ //! <b>Effects</b>: Copy all elements from il to *this.
260
+ //!
261
+ //! <b>Complexity</b>: Linear in il.size().
262
+ flat_set& operator=(std::initializer_list<value_type> il)
263
+ {
264
+ this->clear();
265
+ this->insert(il.begin(), il.end());
266
+ return *this;
267
+ }
268
+ #endif
195
269
 
196
- //! <b>Effects</b>: Returns a copy of the Allocator that
270
+ #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
271
+ //! <b>Effects</b>: Returns a copy of the allocator that
197
272
  //! was passed to the object's constructor.
198
273
  //!
199
274
  //! <b>Complexity</b>: Constant.
200
- allocator_type get_allocator() const BOOST_CONTAINER_NOEXCEPT
201
- { return m_flat_tree.get_allocator(); }
275
+ allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
202
276
 
203
277
  //! <b>Effects</b>: Returns a reference to the internal allocator.
204
278
  //!
@@ -207,8 +281,7 @@ class flat_set
207
281
  //! <b>Complexity</b>: Constant.
208
282
  //!
209
283
  //! <b>Note</b>: Non-standard extension.
210
- stored_allocator_type &get_stored_allocator() BOOST_CONTAINER_NOEXCEPT
211
- { return m_flat_tree.get_stored_allocator(); }
284
+ stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW;
212
285
 
213
286
  //! <b>Effects</b>: Returns a reference to the internal allocator.
214
287
  //!
@@ -217,46 +290,35 @@ class flat_set
217
290
  //! <b>Complexity</b>: Constant.
218
291
  //!
219
292
  //! <b>Note</b>: Non-standard extension.
220
- const stored_allocator_type &get_stored_allocator() const BOOST_CONTAINER_NOEXCEPT
221
- { return m_flat_tree.get_stored_allocator(); }
222
-
223
- //////////////////////////////////////////////
224
- //
225
- // iterators
226
- //
227
- //////////////////////////////////////////////
293
+ const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
228
294
 
229
295
  //! <b>Effects</b>: Returns an iterator to the first element contained in the container.
230
296
  //!
231
297
  //! <b>Throws</b>: Nothing.
232
298
  //!
233
299
  //! <b>Complexity</b>: Constant.
234
- iterator begin() BOOST_CONTAINER_NOEXCEPT
235
- { return m_flat_tree.begin(); }
300
+ iterator begin() BOOST_NOEXCEPT_OR_NOTHROW;
236
301
 
237
302
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
238
303
  //!
239
304
  //! <b>Throws</b>: Nothing.
240
305
  //!
241
306
  //! <b>Complexity</b>: Constant.
242
- const_iterator begin() const BOOST_CONTAINER_NOEXCEPT
243
- { return m_flat_tree.begin(); }
307
+ const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW;
244
308
 
245
309
  //! <b>Effects</b>: Returns an iterator to the end of the container.
246
310
  //!
247
311
  //! <b>Throws</b>: Nothing.
248
312
  //!
249
313
  //! <b>Complexity</b>: Constant.
250
- iterator end() BOOST_CONTAINER_NOEXCEPT
251
- { return m_flat_tree.end(); }
314
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW;
252
315
 
253
316
  //! <b>Effects</b>: Returns a const_iterator to the end of the container.
254
317
  //!
255
318
  //! <b>Throws</b>: Nothing.
256
319
  //!
257
320
  //! <b>Complexity</b>: Constant.
258
- const_iterator end() const BOOST_CONTAINER_NOEXCEPT
259
- { return m_flat_tree.end(); }
321
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW;
260
322
 
261
323
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
262
324
  //! of the reversed container.
@@ -264,8 +326,7 @@ class flat_set
264
326
  //! <b>Throws</b>: Nothing.
265
327
  //!
266
328
  //! <b>Complexity</b>: Constant.
267
- reverse_iterator rbegin() BOOST_CONTAINER_NOEXCEPT
268
- { return m_flat_tree.rbegin(); }
329
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW;
269
330
 
270
331
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
271
332
  //! of the reversed container.
@@ -273,8 +334,7 @@ class flat_set
273
334
  //! <b>Throws</b>: Nothing.
274
335
  //!
275
336
  //! <b>Complexity</b>: Constant.
276
- const_reverse_iterator rbegin() const BOOST_CONTAINER_NOEXCEPT
277
- { return m_flat_tree.rbegin(); }
337
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
278
338
 
279
339
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
280
340
  //! of the reversed container.
@@ -282,8 +342,7 @@ class flat_set
282
342
  //! <b>Throws</b>: Nothing.
283
343
  //!
284
344
  //! <b>Complexity</b>: Constant.
285
- reverse_iterator rend() BOOST_CONTAINER_NOEXCEPT
286
- { return m_flat_tree.rend(); }
345
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW;
287
346
 
288
347
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
289
348
  //! of the reversed container.
@@ -291,24 +350,21 @@ class flat_set
291
350
  //! <b>Throws</b>: Nothing.
292
351
  //!
293
352
  //! <b>Complexity</b>: Constant.
294
- const_reverse_iterator rend() const BOOST_CONTAINER_NOEXCEPT
295
- { return m_flat_tree.rend(); }
353
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW;
296
354
 
297
355
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
298
356
  //!
299
357
  //! <b>Throws</b>: Nothing.
300
358
  //!
301
359
  //! <b>Complexity</b>: Constant.
302
- const_iterator cbegin() const BOOST_CONTAINER_NOEXCEPT
303
- { return m_flat_tree.cbegin(); }
360
+ const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
304
361
 
305
362
  //! <b>Effects</b>: Returns a const_iterator to the end of the container.
306
363
  //!
307
364
  //! <b>Throws</b>: Nothing.
308
365
  //!
309
366
  //! <b>Complexity</b>: Constant.
310
- const_iterator cend() const BOOST_CONTAINER_NOEXCEPT
311
- { return m_flat_tree.cend(); }
367
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW;
312
368
 
313
369
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
314
370
  //! of the reversed container.
@@ -316,8 +372,7 @@ class flat_set
316
372
  //! <b>Throws</b>: Nothing.
317
373
  //!
318
374
  //! <b>Complexity</b>: Constant.
319
- const_reverse_iterator crbegin() const BOOST_CONTAINER_NOEXCEPT
320
- { return m_flat_tree.crbegin(); }
375
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
321
376
 
322
377
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
323
378
  //! of the reversed container.
@@ -325,39 +380,28 @@ class flat_set
325
380
  //! <b>Throws</b>: Nothing.
326
381
  //!
327
382
  //! <b>Complexity</b>: Constant.
328
- const_reverse_iterator crend() const BOOST_CONTAINER_NOEXCEPT
329
- { return m_flat_tree.crend(); }
330
-
331
-
332
- //////////////////////////////////////////////
333
- //
334
- // capacity
335
- //
336
- //////////////////////////////////////////////
383
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW;
337
384
 
338
385
  //! <b>Effects</b>: Returns true if the container contains no elements.
339
386
  //!
340
387
  //! <b>Throws</b>: Nothing.
341
388
  //!
342
389
  //! <b>Complexity</b>: Constant.
343
- bool empty() const BOOST_CONTAINER_NOEXCEPT
344
- { return m_flat_tree.empty(); }
390
+ bool empty() const BOOST_NOEXCEPT_OR_NOTHROW;
345
391
 
346
392
  //! <b>Effects</b>: Returns the number of the elements contained in the container.
347
393
  //!
348
394
  //! <b>Throws</b>: Nothing.
349
395
  //!
350
396
  //! <b>Complexity</b>: Constant.
351
- size_type size() const BOOST_CONTAINER_NOEXCEPT
352
- { return m_flat_tree.size(); }
397
+ size_type size() const BOOST_NOEXCEPT_OR_NOTHROW;
353
398
 
354
399
  //! <b>Effects</b>: Returns the largest possible size of the container.
355
400
  //!
356
401
  //! <b>Throws</b>: Nothing.
357
402
  //!
358
403
  //! <b>Complexity</b>: Constant.
359
- size_type max_size() const BOOST_CONTAINER_NOEXCEPT
360
- { return m_flat_tree.max_size(); }
404
+ size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW;
361
405
 
362
406
  //! <b>Effects</b>: Number of elements for which memory has been allocated.
363
407
  //! capacity() is always greater than or equal to size().
@@ -365,8 +409,7 @@ class flat_set
365
409
  //! <b>Throws</b>: Nothing.
366
410
  //!
367
411
  //! <b>Complexity</b>: Constant.
368
- size_type capacity() const BOOST_CONTAINER_NOEXCEPT
369
- { return m_flat_tree.capacity(); }
412
+ size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW;
370
413
 
371
414
  //! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
372
415
  //! effect. Otherwise, it is a request for allocation of additional memory.
@@ -377,8 +420,7 @@ class flat_set
377
420
  //!
378
421
  //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
379
422
  //! to values might be invalidated.
380
- void reserve(size_type cnt)
381
- { m_flat_tree.reserve(cnt); }
423
+ void reserve(size_type cnt);
382
424
 
383
425
  //! <b>Effects</b>: Tries to deallocate the excess of memory created
384
426
  // with previous allocations. The size of the vector is unchanged
@@ -386,8 +428,9 @@ class flat_set
386
428
  //! <b>Throws</b>: If memory allocation throws, or Key's copy constructor throws.
387
429
  //!
388
430
  //! <b>Complexity</b>: Linear to size().
389
- void shrink_to_fit()
390
- { m_flat_tree.shrink_to_fit(); }
431
+ void shrink_to_fit();
432
+
433
+ #endif // #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
391
434
 
392
435
  //////////////////////////////////////////////
393
436
  //
@@ -395,7 +438,7 @@ class flat_set
395
438
  //
396
439
  //////////////////////////////////////////////
397
440
 
398
- #if defined(BOOST_CONTAINER_PERFECT_FORWARDING) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
441
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
399
442
 
400
443
  //! <b>Effects</b>: Inserts an object x of type Key constructed with
401
444
  //! std::forward<Args>(args)... if and only if there is no element in the container
@@ -410,8 +453,8 @@ class flat_set
410
453
  //!
411
454
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
412
455
  template <class... Args>
413
- std::pair<iterator,bool> emplace(Args&&... args)
414
- { return m_flat_tree.emplace_unique(boost::forward<Args>(args)...); }
456
+ std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
457
+ { return this->base_t::emplace_unique(boost::forward<Args>(args)...); }
415
458
 
416
459
  //! <b>Effects</b>: Inserts an object of type Key constructed with
417
460
  //! std::forward<Args>(args)... in the container if and only if there is
@@ -426,26 +469,24 @@ class flat_set
426
469
  //!
427
470
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
428
471
  template <class... Args>
429
- iterator emplace_hint(const_iterator hint, Args&&... args)
430
- { return m_flat_tree.emplace_hint_unique(hint, boost::forward<Args>(args)...); }
431
-
432
- #else //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
433
-
434
- #define BOOST_PP_LOCAL_MACRO(n) \
435
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
436
- std::pair<iterator,bool> emplace(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
437
- { return m_flat_tree.emplace_unique(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
438
- \
439
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
440
- iterator emplace_hint(const_iterator hint \
441
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
442
- { return m_flat_tree.emplace_hint_unique \
443
- (hint BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
444
- //!
445
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
446
- #include BOOST_PP_LOCAL_ITERATE()
472
+ iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
473
+ { return this->base_t::emplace_hint_unique(p, boost::forward<Args>(args)...); }
474
+
475
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
476
+
477
+ #define BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE(N) \
478
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
479
+ std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
480
+ { return this->base_t::emplace_unique(BOOST_MOVE_FWD##N); }\
481
+ \
482
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
483
+ iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
484
+ { return this->base_t::emplace_hint_unique(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
485
+ //
486
+ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE)
487
+ #undef BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE
447
488
 
448
- #endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
489
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
449
490
 
450
491
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
451
492
  //! <b>Effects</b>: Inserts x if and only if there is no element in the container
@@ -503,9 +544,9 @@ class flat_set
503
544
  //! right before p) plus insertion linear to the elements with bigger keys than x.
504
545
  //!
505
546
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
506
- iterator insert(const_iterator position, value_type &&x);
547
+ iterator insert(const_iterator p, value_type &&x);
507
548
  #else
508
- BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, value_type, iterator, this->priv_insert, const_iterator)
549
+ BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, value_type, iterator, this->priv_insert, const_iterator, const_iterator)
509
550
  #endif
510
551
 
511
552
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -519,7 +560,7 @@ class flat_set
519
560
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
520
561
  template <class InputIterator>
521
562
  void insert(InputIterator first, InputIterator last)
522
- { m_flat_tree.insert_unique(first, last); }
563
+ { this->base_t::insert_unique(first, last); }
523
564
 
524
565
  //! <b>Requires</b>: first, last are not iterators into *this and
525
566
  //! must be ordered according to the predicate and must be
@@ -534,20 +575,46 @@ class flat_set
534
575
  //! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
535
576
  template <class InputIterator>
536
577
  void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
537
- { m_flat_tree.insert_unique(ordered_unique_range, first, last); }
578
+ { this->base_t::insert_unique(ordered_unique_range, first, last); }
579
+
580
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
581
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()) if and only
582
+ //! if there is no element with key equivalent to the key of that element.
583
+ //!
584
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from il.begin() to il.end())
585
+ //! search time plus N*size() insertion time.
586
+ //!
587
+ //! <b>Note</b>: If an element is inserted it might invalidate elements.
588
+ void insert(std::initializer_list<value_type> il)
589
+ { this->base_t::insert_unique(il.begin(), il.end()); }
590
+
591
+ //! <b>Requires</b>: Range [il.begin(), il.end()) must be ordered according to the predicate
592
+ //! and must be unique values.
593
+ //!
594
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()) .This function
595
+ //! is more efficient than the normal range creation for ordered ranges.
596
+ //!
597
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from il.begin() to il.end())
598
+ //! search time plus N*size() insertion time.
599
+ //!
600
+ //! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
601
+ void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
602
+ { this->base_t::insert_unique(ordered_unique_range, il.begin(), il.end()); }
603
+ #endif
604
+
605
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
538
606
 
539
- //! <b>Effects</b>: Erases the element pointed to by position.
607
+ //! <b>Effects</b>: Erases the element pointed to by p.
540
608
  //!
541
609
  //! <b>Returns</b>: Returns an iterator pointing to the element immediately
542
610
  //! following q prior to the element being erased. If no such element exists,
543
611
  //! returns end().
544
612
  //!
545
- //! <b>Complexity</b>: Linear to the elements with keys bigger than position
613
+ //! <b>Complexity</b>: Linear to the elements with keys bigger than p
546
614
  //!
547
615
  //! <b>Note</b>: Invalidates elements with keys
548
616
  //! not less than the erased element.
549
- iterator erase(const_iterator position)
550
- { return m_flat_tree.erase(position); }
617
+ iterator erase(const_iterator p);
551
618
 
552
619
  //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
553
620
  //!
@@ -555,8 +622,7 @@ class flat_set
555
622
  //!
556
623
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
557
624
  //! linear to the elements with bigger keys.
558
- size_type erase(const key_type& x)
559
- { return m_flat_tree.erase(x); }
625
+ size_type erase(const key_type& x);
560
626
 
561
627
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
562
628
  //!
@@ -566,8 +632,7 @@ class flat_set
566
632
  //!
567
633
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
568
634
  //! linear to the elements with bigger keys.
569
- iterator erase(const_iterator first, const_iterator last)
570
- { return m_flat_tree.erase(first, last); }
635
+ iterator erase(const_iterator first, const_iterator last);
571
636
 
572
637
  //! <b>Effects</b>: Swaps the contents of *this and x.
573
638
  //!
@@ -575,210 +640,239 @@ class flat_set
575
640
  //!
576
641
  //! <b>Complexity</b>: Constant.
577
642
  void swap(flat_set& x)
578
- { m_flat_tree.swap(x.m_flat_tree); }
643
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
644
+ && boost::container::container_detail::is_nothrow_swappable<Compare>::value );
579
645
 
580
646
  //! <b>Effects</b>: erase(a.begin(),a.end()).
581
647
  //!
582
648
  //! <b>Postcondition</b>: size() == 0.
583
649
  //!
584
650
  //! <b>Complexity</b>: linear in size().
585
- void clear() BOOST_CONTAINER_NOEXCEPT
586
- { m_flat_tree.clear(); }
587
-
588
- //////////////////////////////////////////////
589
- //
590
- // observers
591
- //
592
- //////////////////////////////////////////////
651
+ void clear() BOOST_NOEXCEPT_OR_NOTHROW;
593
652
 
594
653
  //! <b>Effects</b>: Returns the comparison object out
595
654
  //! of which a was constructed.
596
655
  //!
597
656
  //! <b>Complexity</b>: Constant.
598
- key_compare key_comp() const
599
- { return m_flat_tree.key_comp(); }
657
+ key_compare key_comp() const;
600
658
 
601
659
  //! <b>Effects</b>: Returns an object of value_compare constructed out
602
660
  //! of the comparison object.
603
661
  //!
604
662
  //! <b>Complexity</b>: Constant.
605
- value_compare value_comp() const
606
- { return m_flat_tree.key_comp(); }
607
-
608
- //////////////////////////////////////////////
609
- //
610
- // set operations
611
- //
612
- //////////////////////////////////////////////
663
+ value_compare value_comp() const;
613
664
 
614
665
  //! <b>Returns</b>: An iterator pointing to an element with the key
615
666
  //! equivalent to x, or end() if such an element is not found.
616
667
  //!
617
668
  //! <b>Complexity</b>: Logarithmic.
618
- iterator find(const key_type& x)
619
- { return m_flat_tree.find(x); }
669
+ iterator find(const key_type& x);
620
670
 
621
- //! <b>Returns</b>: Allocator const_iterator pointing to an element with the key
671
+ //! <b>Returns</b>: A const_iterator pointing to an element with the key
622
672
  //! equivalent to x, or end() if such an element is not found.
623
673
  //!
624
- //! <b>Complexity</b>: Logarithmic.s
625
- const_iterator find(const key_type& x) const
626
- { return m_flat_tree.find(x); }
674
+ //! <b>Complexity</b>: Logarithmic.
675
+ const_iterator find(const key_type& x) const;
676
+
677
+ //! <b>Requires</b>: size() >= n.
678
+ //!
679
+ //! <b>Effects</b>: Returns an iterator to the nth element
680
+ //! from the beginning of the container. Returns end()
681
+ //! if n == size().
682
+ //!
683
+ //! <b>Throws</b>: Nothing.
684
+ //!
685
+ //! <b>Complexity</b>: Constant.
686
+ //!
687
+ //! <b>Note</b>: Non-standard extension
688
+ iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW;
689
+
690
+ //! <b>Requires</b>: size() >= n.
691
+ //!
692
+ //! <b>Effects</b>: Returns a const_iterator to the nth element
693
+ //! from the beginning of the container. Returns end()
694
+ //! if n == size().
695
+ //!
696
+ //! <b>Throws</b>: Nothing.
697
+ //!
698
+ //! <b>Complexity</b>: Constant.
699
+ //!
700
+ //! <b>Note</b>: Non-standard extension
701
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW;
702
+
703
+ //! <b>Requires</b>: size() >= n.
704
+ //!
705
+ //! <b>Effects</b>: Returns an iterator to the nth element
706
+ //! from the beginning of the container. Returns end()
707
+ //! if n == size().
708
+ //!
709
+ //! <b>Throws</b>: Nothing.
710
+ //!
711
+ //! <b>Complexity</b>: Constant.
712
+ //!
713
+ //! <b>Note</b>: Non-standard extension
714
+ size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW;
715
+
716
+ //! <b>Requires</b>: begin() <= p <= end().
717
+ //!
718
+ //! <b>Effects</b>: Returns the index of the element pointed by p
719
+ //! and size() if p == end().
720
+ //!
721
+ //! <b>Throws</b>: Nothing.
722
+ //!
723
+ //! <b>Complexity</b>: Constant.
724
+ //!
725
+ //! <b>Note</b>: Non-standard extension
726
+ size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW;
727
+
728
+ #endif // #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
627
729
 
628
730
  //! <b>Returns</b>: The number of elements with key equivalent to x.
629
731
  //!
630
732
  //! <b>Complexity</b>: log(size())+count(k)
631
733
  size_type count(const key_type& x) const
632
- { return m_flat_tree.find(x) == m_flat_tree.end() ? 0 : 1; }
734
+ { return static_cast<size_type>(this->base_t::find(x) != this->base_t::cend()); }
633
735
 
736
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
634
737
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
635
738
  //! than k, or a.end() if such an element is not found.
636
739
  //!
637
740
  //! <b>Complexity</b>: Logarithmic
638
- iterator lower_bound(const key_type& x)
639
- { return m_flat_tree.lower_bound(x); }
741
+ iterator lower_bound(const key_type& x);
640
742
 
641
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
743
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
642
744
  //! less than k, or a.end() if such an element is not found.
643
745
  //!
644
746
  //! <b>Complexity</b>: Logarithmic
645
- const_iterator lower_bound(const key_type& x) const
646
- { return m_flat_tree.lower_bound(x); }
747
+ const_iterator lower_bound(const key_type& x) const;
647
748
 
648
749
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
649
750
  //! than x, or end() if such an element is not found.
650
751
  //!
651
752
  //! <b>Complexity</b>: Logarithmic
652
- iterator upper_bound(const key_type& x)
653
- { return m_flat_tree.upper_bound(x); }
753
+ iterator upper_bound(const key_type& x);
654
754
 
655
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
755
+ //! <b>Returns</b>: A const iterator pointing to the first element with key not
656
756
  //! less than x, or end() if such an element is not found.
657
757
  //!
658
758
  //! <b>Complexity</b>: Logarithmic
659
- const_iterator upper_bound(const key_type& x) const
660
- { return m_flat_tree.upper_bound(x); }
759
+ const_iterator upper_bound(const key_type& x) const;
760
+
761
+ #endif // #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
661
762
 
662
763
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
663
764
  //!
664
765
  //! <b>Complexity</b>: Logarithmic
665
766
  std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
666
- { return m_flat_tree.equal_range(x); }
767
+ { return this->base_t::lower_bound_range(x); }
667
768
 
668
769
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
669
770
  //!
670
771
  //! <b>Complexity</b>: Logarithmic
671
772
  std::pair<iterator,iterator> equal_range(const key_type& x)
672
- { return m_flat_tree.equal_range(x); }
773
+ { return this->base_t::lower_bound_range(x); }
673
774
 
674
- /// @cond
675
- template <class K1, class C1, class A1>
676
- friend bool operator== (const flat_set<K1,C1,A1>&, const flat_set<K1,C1,A1>&);
775
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
677
776
 
678
- template <class K1, class C1, class A1>
679
- friend bool operator< (const flat_set<K1,C1,A1>&, const flat_set<K1,C1,A1>&);
777
+ //! <b>Effects</b>: Returns true if x and y are equal
778
+ //!
779
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
780
+ friend bool operator==(const flat_set& x, const flat_set& y);
680
781
 
681
- private:
682
- template<class KeyType>
683
- std::pair<iterator, bool> priv_insert(BOOST_FWD_REF(KeyType) x)
684
- { return m_flat_tree.insert_unique(::boost::forward<KeyType>(x)); }
782
+ //! <b>Effects</b>: Returns true if x and y are unequal
783
+ //!
784
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
785
+ friend bool operator!=(const flat_set& x, const flat_set& y);
685
786
 
686
- template<class KeyType>
687
- iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
688
- { return m_flat_tree.insert_unique(p, ::boost::forward<KeyType>(x)); }
689
- /// @endcond
690
- };
787
+ //! <b>Effects</b>: Returns true if x is less than y
788
+ //!
789
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
790
+ friend bool operator<(const flat_set& x, const flat_set& y);
691
791
 
692
- template <class Key, class Compare, class Allocator>
693
- inline bool operator==(const flat_set<Key,Compare,Allocator>& x,
694
- const flat_set<Key,Compare,Allocator>& y)
695
- { return x.m_flat_tree == y.m_flat_tree; }
792
+ //! <b>Effects</b>: Returns true if x is greater than y
793
+ //!
794
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
795
+ friend bool operator>(const flat_set& x, const flat_set& y);
696
796
 
697
- template <class Key, class Compare, class Allocator>
698
- inline bool operator<(const flat_set<Key,Compare,Allocator>& x,
699
- const flat_set<Key,Compare,Allocator>& y)
700
- { return x.m_flat_tree < y.m_flat_tree; }
797
+ //! <b>Effects</b>: Returns true if x is equal or less than y
798
+ //!
799
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
800
+ friend bool operator<=(const flat_set& x, const flat_set& y);
701
801
 
702
- template <class Key, class Compare, class Allocator>
703
- inline bool operator!=(const flat_set<Key,Compare,Allocator>& x,
704
- const flat_set<Key,Compare,Allocator>& y)
705
- { return !(x == y); }
802
+ //! <b>Effects</b>: Returns true if x is equal or greater than y
803
+ //!
804
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
805
+ friend bool operator>=(const flat_set& x, const flat_set& y);
706
806
 
707
- template <class Key, class Compare, class Allocator>
708
- inline bool operator>(const flat_set<Key,Compare,Allocator>& x,
709
- const flat_set<Key,Compare,Allocator>& y)
710
- { return y < x; }
807
+ //! <b>Effects</b>: x.swap(y)
808
+ //!
809
+ //! <b>Complexity</b>: Constant.
810
+ friend void swap(flat_set& x, flat_set& y);
711
811
 
712
- template <class Key, class Compare, class Allocator>
713
- inline bool operator<=(const flat_set<Key,Compare,Allocator>& x,
714
- const flat_set<Key,Compare,Allocator>& y)
715
- { return !(y < x); }
812
+ #endif //#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
716
813
 
717
- template <class Key, class Compare, class Allocator>
718
- inline bool operator>=(const flat_set<Key,Compare,Allocator>& x,
719
- const flat_set<Key,Compare,Allocator>& y)
720
- { return !(x < y); }
814
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
815
+ private:
816
+ template<class KeyType>
817
+ std::pair<iterator, bool> priv_insert(BOOST_FWD_REF(KeyType) x)
818
+ { return this->base_t::insert_unique(::boost::forward<KeyType>(x)); }
721
819
 
722
- template <class Key, class Compare, class Allocator>
723
- inline void swap(flat_set<Key,Compare,Allocator>& x, flat_set<Key,Compare,Allocator>& y)
724
- { x.swap(y); }
820
+ template<class KeyType>
821
+ iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
822
+ { return this->base_t::insert_unique(p, ::boost::forward<KeyType>(x)); }
823
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
824
+ };
725
825
 
726
- /// @cond
826
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
727
827
 
728
828
  } //namespace container {
729
829
 
730
830
  //!has_trivial_destructor_after_move<> == true_type
731
831
  //!specialization for optimizations
732
- template <class Key, class C, class Allocator>
733
- struct has_trivial_destructor_after_move<boost::container::flat_set<Key, C, Allocator> >
832
+ template <class Key, class Compare, class Allocator>
833
+ struct has_trivial_destructor_after_move<boost::container::flat_set<Key, Compare, Allocator> >
734
834
  {
735
- static const bool value = has_trivial_destructor_after_move<Allocator>::value &&has_trivial_destructor_after_move<C>::value;
835
+ typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
836
+ static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
837
+ ::boost::has_trivial_destructor_after_move<pointer>::value &&
838
+ ::boost::has_trivial_destructor_after_move<Compare>::value;
736
839
  };
737
840
 
738
841
  namespace container {
739
842
 
740
- // Forward declaration of operators < and ==, needed for friend declaration.
741
-
742
- #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
743
- template <class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> >
744
- #else
745
- template <class Key, class Compare, class Allocator>
746
- #endif
747
- class flat_multiset;
748
-
749
- template <class Key, class Compare, class Allocator>
750
- inline bool operator==(const flat_multiset<Key,Compare,Allocator>& x,
751
- const flat_multiset<Key,Compare,Allocator>& y);
752
-
753
- template <class Key, class Compare, class Allocator>
754
- inline bool operator<(const flat_multiset<Key,Compare,Allocator>& x,
755
- const flat_multiset<Key,Compare,Allocator>& y);
756
- /// @endcond
843
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
757
844
 
758
845
  //! flat_multiset is a Sorted Associative Container that stores objects of type Key.
759
- //! flat_multiset is a Simple Associative Container, meaning that its value type,
760
- //! as well as its key type, is Key.
761
- //! flat_Multiset can store multiple copies of the same key value.
846
+ //!
847
+ //! flat_multiset can store multiple copies of the same key value.
762
848
  //!
763
849
  //! flat_multiset is similar to std::multiset but it's implemented like an ordered vector.
764
850
  //! This means that inserting a new element into a flat_multiset invalidates
765
851
  //! previous iterators and references
766
852
  //!
767
- //! Erasing an element of a flat_multiset invalidates iterators and references
768
- //! pointing to elements that come after (their keys are equal or bigger) the erased element.
853
+ //! Erasing an element invalidates iterators and references
854
+ //! pointing to elements that come after (their keys are bigger) the erased element.
855
+ //!
856
+ //! This container provides random-access iterators.
857
+ //!
858
+ //! \tparam Key is the type to be inserted in the multiset, which is also the key_type
859
+ //! \tparam Compare is the comparison functor used to order keys
860
+ //! \tparam Allocator is the allocator to be used to allocate memory for this container
769
861
  #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
770
- template <class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> >
862
+ template <class Key, class Compare = std::less<Key>, class Allocator = new_allocator<Key> >
771
863
  #else
772
864
  template <class Key, class Compare, class Allocator>
773
865
  #endif
774
866
  class flat_multiset
867
+ ///@cond
868
+ : public container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator>
869
+ ///@endcond
775
870
  {
776
- /// @cond
871
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
777
872
  private:
778
873
  BOOST_COPYABLE_AND_MOVABLE(flat_multiset)
779
- typedef container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator> tree_t;
780
- tree_t m_flat_tree; // flat tree representing flat_multiset
781
- /// @endcond
874
+ typedef container_detail::flat_tree<Key, Key, container_detail::identity<Key>, Compare, Allocator> base_t;
875
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
782
876
 
783
877
  public:
784
878
  //////////////////////////////////////////////
@@ -790,6 +884,7 @@ class flat_multiset
790
884
  typedef Key value_type;
791
885
  typedef Compare key_compare;
792
886
  typedef Compare value_compare;
887
+ typedef ::boost::container::allocator_traits<Allocator> allocator_traits_type;
793
888
  typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
794
889
  typedef typename ::boost::container::allocator_traits<Allocator>::const_pointer const_pointer;
795
890
  typedef typename ::boost::container::allocator_traits<Allocator>::reference reference;
@@ -797,28 +892,40 @@ class flat_multiset
797
892
  typedef typename ::boost::container::allocator_traits<Allocator>::size_type size_type;
798
893
  typedef typename ::boost::container::allocator_traits<Allocator>::difference_type difference_type;
799
894
  typedef Allocator allocator_type;
800
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
801
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::iterator) iterator;
802
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_iterator) const_iterator;
803
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::reverse_iterator) reverse_iterator;
804
- typedef typename BOOST_CONTAINER_IMPDEF(tree_t::const_reverse_iterator) const_reverse_iterator;
895
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::stored_allocator_type) stored_allocator_type;
896
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::iterator) iterator;
897
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_iterator) const_iterator;
898
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::reverse_iterator) reverse_iterator;
899
+ typedef typename BOOST_CONTAINER_IMPDEF(base_t::const_reverse_iterator) const_reverse_iterator;
805
900
 
806
- //! <b>Effects</b>: Default constructs an empty flat_multiset.
807
- //!
808
- //! <b>Complexity</b>: Constant.
901
+ //! @copydoc ::boost::container::flat_set::flat_set()
809
902
  explicit flat_multiset()
810
- : m_flat_tree()
903
+ : base_t()
811
904
  {}
812
905
 
906
+ //! @copydoc ::boost::container::flat_set::flat_set(const Compare&, const allocator_type&)
813
907
  explicit flat_multiset(const Compare& comp,
814
908
  const allocator_type& a = allocator_type())
815
- : m_flat_tree(comp, a) {}
909
+ : base_t(comp, a)
910
+ {}
911
+
912
+ //! @copydoc ::boost::container::flat_set::flat_set(const allocator_type&)
913
+ explicit flat_multiset(const allocator_type& a)
914
+ : base_t(a)
915
+ {}
816
916
 
917
+ //! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator, const Compare& comp, const allocator_type&)
817
918
  template <class InputIterator>
818
919
  flat_multiset(InputIterator first, InputIterator last,
819
920
  const Compare& comp = Compare(),
820
921
  const allocator_type& a = allocator_type())
821
- : m_flat_tree(false, first, last, comp, a)
922
+ : base_t(false, first, last, comp, a)
923
+ {}
924
+
925
+ //! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator, const allocator_type&)
926
+ template <class InputIterator>
927
+ flat_multiset(InputIterator first, InputIterator last, const allocator_type& a)
928
+ : base_t(false, first, last, Compare(), a)
822
929
  {}
823
930
 
824
931
  //! <b>Effects</b>: Constructs an empty flat_multiset using the specified comparison object and
@@ -834,240 +941,134 @@ class flat_multiset
834
941
  flat_multiset(ordered_range_t, InputIterator first, InputIterator last,
835
942
  const Compare& comp = Compare(),
836
943
  const allocator_type& a = allocator_type())
837
- : m_flat_tree(ordered_range, first, last, comp, a)
944
+ : base_t(ordered_range, first, last, comp, a)
838
945
  {}
839
946
 
840
- //! <b>Effects</b>: Copy constructs a flat_multiset.
841
- //!
842
- //! <b>Complexity</b>: Linear in x.size().
947
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
948
+ //! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type>, const Compare& comp, const allocator_type&)
949
+ flat_multiset(std::initializer_list<value_type> il, const Compare& comp = Compare(),
950
+ const allocator_type& a = allocator_type())
951
+ : base_t(false, il.begin(), il.end(), comp, a)
952
+ {}
953
+
954
+ //! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type>, const allocator_type&)
955
+ flat_multiset(std::initializer_list<value_type> il, const allocator_type& a)
956
+ : base_t(false, il.begin(), il.end(), Compare(), a)
957
+ {}
958
+
959
+ //! @copydoc ::boost::container::flat_set::flat_set(ordered_unique_range_t, std::initializer_list<value_type>, const Compare& comp, const allocator_type&)
960
+ flat_multiset(ordered_unique_range_t, std::initializer_list<value_type> il,
961
+ const Compare& comp = Compare(), const allocator_type& a = allocator_type())
962
+ : base_t(ordered_range, il.begin(), il.end(), comp, a)
963
+ {}
964
+ #endif
965
+
966
+ //! @copydoc ::boost::container::flat_set::flat_set(const flat_set &)
843
967
  flat_multiset(const flat_multiset& x)
844
- : m_flat_tree(x.m_flat_tree)
968
+ : base_t(static_cast<const base_t&>(x))
845
969
  {}
846
970
 
847
- //! <b>Effects</b>: Move constructs a flat_multiset. Constructs *this using x's resources.
848
- //!
849
- //! <b>Complexity</b>: Constant.
850
- //!
851
- //! <b>Postcondition</b>: x is emptied.
852
- flat_multiset(BOOST_RV_REF(flat_multiset) mx)
853
- : m_flat_tree(boost::move(mx.m_flat_tree))
971
+ //! @copydoc ::boost::container::flat_set::flat_set(flat_set &&)
972
+ flat_multiset(BOOST_RV_REF(flat_multiset) x)
973
+ : base_t(boost::move(static_cast<base_t&>(x)))
854
974
  {}
855
975
 
856
- //! <b>Effects</b>: Copy constructs a flat_multiset using the specified allocator.
857
- //!
858
- //! <b>Complexity</b>: Linear in x.size().
976
+ //! @copydoc ::boost::container::flat_set::flat_set(const flat_set &, const allocator_type &)
859
977
  flat_multiset(const flat_multiset& x, const allocator_type &a)
860
- : m_flat_tree(x.m_flat_tree, a)
978
+ : base_t(static_cast<const base_t&>(x), a)
861
979
  {}
862
980
 
863
- //! <b>Effects</b>: Move constructs a flat_multiset using the specified allocator.
864
- //! Constructs *this using x's resources.
865
- //!
866
- //! <b>Complexity</b>: Constant if a == mx.get_allocator(), linear otherwise
867
- flat_multiset(BOOST_RV_REF(flat_multiset) mx, const allocator_type &a)
868
- : m_flat_tree(boost::move(mx.m_flat_tree), a)
981
+ //! @copydoc ::boost::container::flat_set::flat_set(flat_set &&, const allocator_type &)
982
+ flat_multiset(BOOST_RV_REF(flat_multiset) x, const allocator_type &a)
983
+ : base_t(BOOST_MOVE_BASE(base_t, x), a)
869
984
  {}
870
985
 
871
- //! <b>Effects</b>: Makes *this a copy of x.
872
- //!
873
- //! <b>Complexity</b>: Linear in x.size().
986
+ //! @copydoc ::boost::container::flat_set::operator=(const flat_set &)
874
987
  flat_multiset& operator=(BOOST_COPY_ASSIGN_REF(flat_multiset) x)
875
- { m_flat_tree = x.m_flat_tree; return *this; }
988
+ { return static_cast<flat_multiset&>(this->base_t::operator=(static_cast<const base_t&>(x))); }
989
+
990
+ //! @copydoc ::boost::container::flat_set::operator=(flat_set &&)
991
+ flat_multiset& operator=(BOOST_RV_REF(flat_multiset) x)
992
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
993
+ && boost::container::container_detail::is_nothrow_move_assignable<Compare>::value )
994
+ { return static_cast<flat_multiset&>(this->base_t::operator=(BOOST_MOVE_BASE(base_t, x))); }
995
+
996
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
997
+ //! @copydoc ::boost::container::flat_set::operator=(std::initializer_list<value_type>)
998
+ flat_multiset& operator=(std::initializer_list<value_type> il)
999
+ {
1000
+ this->clear();
1001
+ this->insert(il.begin(), il.end());
1002
+ return *this;
1003
+ }
1004
+ #endif
876
1005
 
877
- //! <b>Effects</b>: Makes *this a copy of x.
878
- //!
879
- //! <b>Complexity</b>: Linear in x.size().
880
- flat_multiset& operator=(BOOST_RV_REF(flat_multiset) mx)
881
- { m_flat_tree = boost::move(mx.m_flat_tree); return *this; }
1006
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
882
1007
 
883
- //! <b>Effects</b>: Returns a copy of the Allocator that
884
- //! was passed to the object's constructor.
885
- //!
886
- //! <b>Complexity</b>: Constant.
887
- allocator_type get_allocator() const BOOST_CONTAINER_NOEXCEPT
888
- { return m_flat_tree.get_allocator(); }
1008
+ //! @copydoc ::boost::container::flat_set::get_allocator()
1009
+ allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
889
1010
 
890
- //! <b>Effects</b>: Returns a reference to the internal allocator.
891
- //!
892
- //! <b>Throws</b>: Nothing
893
- //!
894
- //! <b>Complexity</b>: Constant.
895
- //!
896
- //! <b>Note</b>: Non-standard extension.
897
- stored_allocator_type &get_stored_allocator() BOOST_CONTAINER_NOEXCEPT
898
- { return m_flat_tree.get_stored_allocator(); }
1011
+ //! @copydoc ::boost::container::flat_set::get_stored_allocator()
1012
+ stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW;
899
1013
 
900
- //! <b>Effects</b>: Returns a reference to the internal allocator.
901
- //!
902
- //! <b>Throws</b>: Nothing
903
- //!
904
- //! <b>Complexity</b>: Constant.
905
- //!
906
- //! <b>Note</b>: Non-standard extension.
907
- const stored_allocator_type &get_stored_allocator() const BOOST_CONTAINER_NOEXCEPT
908
- { return m_flat_tree.get_stored_allocator(); }
1014
+ //! @copydoc ::boost::container::flat_set::get_stored_allocator() const
1015
+ const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
909
1016
 
910
- //! <b>Effects</b>: Returns an iterator to the first element contained in the container.
911
- //!
912
- //! <b>Throws</b>: Nothing.
913
- //!
914
- //! <b>Complexity</b>: Constant.
915
- iterator begin() BOOST_CONTAINER_NOEXCEPT
916
- { return m_flat_tree.begin(); }
1017
+ //! @copydoc ::boost::container::flat_set::begin()
1018
+ iterator begin() BOOST_NOEXCEPT_OR_NOTHROW;
917
1019
 
918
- //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
919
- //!
920
- //! <b>Throws</b>: Nothing.
921
- //!
922
- //! <b>Complexity</b>: Constant.
923
- const_iterator begin() const
924
- { return m_flat_tree.begin(); }
1020
+ //! @copydoc ::boost::container::flat_set::begin() const
1021
+ const_iterator begin() const;
925
1022
 
926
- //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
927
- //!
928
- //! <b>Throws</b>: Nothing.
929
- //!
930
- //! <b>Complexity</b>: Constant.
931
- const_iterator cbegin() const BOOST_CONTAINER_NOEXCEPT
932
- { return m_flat_tree.cbegin(); }
1023
+ //! @copydoc ::boost::container::flat_set::cbegin() const
1024
+ const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
933
1025
 
934
- //! <b>Effects</b>: Returns an iterator to the end of the container.
935
- //!
936
- //! <b>Throws</b>: Nothing.
937
- //!
938
- //! <b>Complexity</b>: Constant.
939
- iterator end() BOOST_CONTAINER_NOEXCEPT
940
- { return m_flat_tree.end(); }
1026
+ //! @copydoc ::boost::container::flat_set::end()
1027
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW;
941
1028
 
942
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
943
- //!
944
- //! <b>Throws</b>: Nothing.
945
- //!
946
- //! <b>Complexity</b>: Constant.
947
- const_iterator end() const BOOST_CONTAINER_NOEXCEPT
948
- { return m_flat_tree.end(); }
1029
+ //! @copydoc ::boost::container::flat_set::end() const
1030
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW;
949
1031
 
950
- //! <b>Effects</b>: Returns a const_iterator to the end of the container.
951
- //!
952
- //! <b>Throws</b>: Nothing.
953
- //!
954
- //! <b>Complexity</b>: Constant.
955
- const_iterator cend() const BOOST_CONTAINER_NOEXCEPT
956
- { return m_flat_tree.cend(); }
1032
+ //! @copydoc ::boost::container::flat_set::cend() const
1033
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW;
957
1034
 
958
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
959
- //! of the reversed container.
960
- //!
961
- //! <b>Throws</b>: Nothing.
962
- //!
963
- //! <b>Complexity</b>: Constant.
964
- reverse_iterator rbegin() BOOST_CONTAINER_NOEXCEPT
965
- { return m_flat_tree.rbegin(); }
1035
+ //! @copydoc ::boost::container::flat_set::rbegin()
1036
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW;
966
1037
 
967
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
968
- //! of the reversed container.
969
- //!
970
- //! <b>Throws</b>: Nothing.
971
- //!
972
- //! <b>Complexity</b>: Constant.
973
- const_reverse_iterator rbegin() const BOOST_CONTAINER_NOEXCEPT
974
- { return m_flat_tree.rbegin(); }
1038
+ //! @copydoc ::boost::container::flat_set::rbegin() const
1039
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
975
1040
 
976
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
977
- //! of the reversed container.
978
- //!
979
- //! <b>Throws</b>: Nothing.
980
- //!
981
- //! <b>Complexity</b>: Constant.
982
- const_reverse_iterator crbegin() const BOOST_CONTAINER_NOEXCEPT
983
- { return m_flat_tree.crbegin(); }
1041
+ //! @copydoc ::boost::container::flat_set::crbegin() const
1042
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
984
1043
 
985
- //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
986
- //! of the reversed container.
987
- //!
988
- //! <b>Throws</b>: Nothing.
989
- //!
990
- //! <b>Complexity</b>: Constant.
991
- reverse_iterator rend() BOOST_CONTAINER_NOEXCEPT
992
- { return m_flat_tree.rend(); }
1044
+ //! @copydoc ::boost::container::flat_set::rend()
1045
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW;
993
1046
 
994
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
995
- //! of the reversed container.
996
- //!
997
- //! <b>Throws</b>: Nothing.
998
- //!
999
- //! <b>Complexity</b>: Constant.
1000
- const_reverse_iterator rend() const BOOST_CONTAINER_NOEXCEPT
1001
- { return m_flat_tree.rend(); }
1047
+ //! @copydoc ::boost::container::flat_set::rend() const
1048
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW;
1002
1049
 
1003
- //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
1004
- //! of the reversed container.
1005
- //!
1006
- //! <b>Throws</b>: Nothing.
1007
- //!
1008
- //! <b>Complexity</b>: Constant.
1009
- const_reverse_iterator crend() const BOOST_CONTAINER_NOEXCEPT
1010
- { return m_flat_tree.crend(); }
1050
+ //! @copydoc ::boost::container::flat_set::crend() const
1051
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW;
1011
1052
 
1012
- //////////////////////////////////////////////
1013
- //
1014
- // capacity
1015
- //
1016
- //////////////////////////////////////////////
1053
+ //! @copydoc ::boost::container::flat_set::empty() const
1054
+ bool empty() const BOOST_NOEXCEPT_OR_NOTHROW;
1017
1055
 
1018
- //! <b>Effects</b>: Returns true if the container contains no elements.
1019
- //!
1020
- //! <b>Throws</b>: Nothing.
1021
- //!
1022
- //! <b>Complexity</b>: Constant.
1023
- bool empty() const BOOST_CONTAINER_NOEXCEPT
1024
- { return m_flat_tree.empty(); }
1056
+ //! @copydoc ::boost::container::flat_set::size() const
1057
+ size_type size() const BOOST_NOEXCEPT_OR_NOTHROW;
1025
1058
 
1026
- //! <b>Effects</b>: Returns the number of the elements contained in the container.
1027
- //!
1028
- //! <b>Throws</b>: Nothing.
1029
- //!
1030
- //! <b>Complexity</b>: Constant.
1031
- size_type size() const BOOST_CONTAINER_NOEXCEPT
1032
- { return m_flat_tree.size(); }
1059
+ //! @copydoc ::boost::container::flat_set::max_size() const
1060
+ size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW;
1033
1061
 
1034
- //! <b>Effects</b>: Returns the largest possible size of the container.
1035
- //!
1036
- //! <b>Throws</b>: Nothing.
1037
- //!
1038
- //! <b>Complexity</b>: Constant.
1039
- size_type max_size() const BOOST_CONTAINER_NOEXCEPT
1040
- { return m_flat_tree.max_size(); }
1062
+ //! @copydoc ::boost::container::flat_set::capacity() const
1063
+ size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW;
1041
1064
 
1042
- //! <b>Effects</b>: Number of elements for which memory has been allocated.
1043
- //! capacity() is always greater than or equal to size().
1044
- //!
1045
- //! <b>Throws</b>: Nothing.
1046
- //!
1047
- //! <b>Complexity</b>: Constant.
1048
- size_type capacity() const BOOST_CONTAINER_NOEXCEPT
1049
- { return m_flat_tree.capacity(); }
1065
+ //! @copydoc ::boost::container::flat_set::reserve(size_type)
1066
+ void reserve(size_type cnt);
1050
1067
 
1051
- //! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
1052
- //! effect. Otherwise, it is a request for allocation of additional memory.
1053
- //! If the request is successful, then capacity() is greater than or equal to
1054
- //! n; otherwise, capacity() is unchanged. In either case, size() is unchanged.
1055
- //!
1056
- //! <b>Throws</b>: If memory allocation allocation throws or Key's copy constructor throws.
1057
- //!
1058
- //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
1059
- //! to values might be invalidated.
1060
- void reserve(size_type cnt)
1061
- { m_flat_tree.reserve(cnt); }
1068
+ //! @copydoc ::boost::container::flat_set::shrink_to_fit()
1069
+ void shrink_to_fit();
1062
1070
 
1063
- //! <b>Effects</b>: Tries to deallocate the excess of memory created
1064
- // with previous allocations. The size of the vector is unchanged
1065
- //!
1066
- //! <b>Throws</b>: If memory allocation throws, or Key's copy constructor throws.
1067
- //!
1068
- //! <b>Complexity</b>: Linear to size().
1069
- void shrink_to_fit()
1070
- { m_flat_tree.shrink_to_fit(); }
1071
+ #endif // #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1071
1072
 
1072
1073
  //////////////////////////////////////////////
1073
1074
  //
@@ -1075,7 +1076,7 @@ class flat_multiset
1075
1076
  //
1076
1077
  //////////////////////////////////////////////
1077
1078
 
1078
- #if defined(BOOST_CONTAINER_PERFECT_FORWARDING) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1079
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1079
1080
 
1080
1081
  //! <b>Effects</b>: Inserts an object of type Key constructed with
1081
1082
  //! std::forward<Args>(args)... and returns the iterator pointing to the
@@ -1086,8 +1087,8 @@ class flat_multiset
1086
1087
  //!
1087
1088
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1088
1089
  template <class... Args>
1089
- iterator emplace(Args&&... args)
1090
- { return m_flat_tree.emplace_equal(boost::forward<Args>(args)...); }
1090
+ iterator emplace(BOOST_FWD_REF(Args)... args)
1091
+ { return this->base_t::emplace_equal(boost::forward<Args>(args)...); }
1091
1092
 
1092
1093
  //! <b>Effects</b>: Inserts an object of type Key constructed with
1093
1094
  //! std::forward<Args>(args)... in the container.
@@ -1101,26 +1102,24 @@ class flat_multiset
1101
1102
  //!
1102
1103
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1103
1104
  template <class... Args>
1104
- iterator emplace_hint(const_iterator hint, Args&&... args)
1105
- { return m_flat_tree.emplace_hint_equal(hint, boost::forward<Args>(args)...); }
1106
-
1107
- #else //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
1108
-
1109
- #define BOOST_PP_LOCAL_MACRO(n) \
1110
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
1111
- iterator emplace(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
1112
- { return m_flat_tree.emplace_equal(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
1113
- \
1114
- BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
1115
- iterator emplace_hint(const_iterator hint \
1116
- BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
1117
- { return m_flat_tree.emplace_hint_equal \
1118
- (hint BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _)); } \
1119
- //!
1120
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
1121
- #include BOOST_PP_LOCAL_ITERATE()
1105
+ iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
1106
+ { return this->base_t::emplace_hint_equal(p, boost::forward<Args>(args)...); }
1107
+
1108
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1109
+
1110
+ #define BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE(N) \
1111
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1112
+ iterator emplace(BOOST_MOVE_UREF##N)\
1113
+ { return this->base_t::emplace_equal(BOOST_MOVE_FWD##N); }\
1114
+ \
1115
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1116
+ iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1117
+ { return this->base_t::emplace_hint_equal(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
1118
+ //
1119
+ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE)
1120
+ #undef BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE
1122
1121
 
1123
- #endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
1122
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1124
1123
 
1125
1124
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1126
1125
  //! <b>Effects</b>: Inserts x and returns the iterator pointing to the
@@ -1167,9 +1166,9 @@ class flat_multiset
1167
1166
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1168
1167
  //!
1169
1168
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1170
- iterator insert(const_iterator position, value_type &&x);
1169
+ iterator insert(const_iterator p, value_type &&x);
1171
1170
  #else
1172
- BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, value_type, iterator, this->priv_insert, const_iterator)
1171
+ BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, value_type, iterator, this->priv_insert, const_iterator, const_iterator)
1173
1172
  #endif
1174
1173
 
1175
1174
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -1182,7 +1181,7 @@ class flat_multiset
1182
1181
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1183
1182
  template <class InputIterator>
1184
1183
  void insert(InputIterator first, InputIterator last)
1185
- { m_flat_tree.insert_equal(first, last); }
1184
+ { this->base_t::insert_equal(first, last); }
1186
1185
 
1187
1186
  //! <b>Requires</b>: first, last are not iterators into *this and
1188
1187
  //! must be ordered according to the predicate.
@@ -1196,213 +1195,165 @@ class flat_multiset
1196
1195
  //! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
1197
1196
  template <class InputIterator>
1198
1197
  void insert(ordered_range_t, InputIterator first, InputIterator last)
1199
- { m_flat_tree.insert_equal(ordered_range, first, last); }
1200
-
1201
- //! <b>Effects</b>: Erases the element pointed to by position.
1202
- //!
1203
- //! <b>Returns</b>: Returns an iterator pointing to the element immediately
1204
- //! following q prior to the element being erased. If no such element exists,
1205
- //! returns end().
1206
- //!
1207
- //! <b>Complexity</b>: Linear to the elements with keys bigger than position
1208
- //!
1209
- //! <b>Note</b>: Invalidates elements with keys
1210
- //! not less than the erased element.
1211
- iterator erase(const_iterator position)
1212
- { return m_flat_tree.erase(position); }
1198
+ { this->base_t::insert_equal(ordered_range, first, last); }
1213
1199
 
1214
- //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
1200
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1201
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()).
1215
1202
  //!
1216
- //! <b>Returns</b>: Returns the number of erased elements.
1203
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from first to last)
1204
+ //! search time plus N*size() insertion time.
1217
1205
  //!
1218
- //! <b>Complexity</b>: Logarithmic search time plus erasure time
1219
- //! linear to the elements with bigger keys.
1220
- size_type erase(const key_type& x)
1221
- { return m_flat_tree.erase(x); }
1206
+ //! <b>Note</b>: If an element is inserted it might invalidate elements.
1207
+ void insert(std::initializer_list<value_type> il)
1208
+ { this->base_t::insert_equal(il.begin(), il.end()); }
1222
1209
 
1223
- //! <b>Effects</b>: Erases all the elements in the range [first, last).
1210
+ //! <b>Requires</b>: Range [il.begin(), il.end()) must be ordered according to the predicate.
1224
1211
  //!
1225
- //! <b>Returns</b>: Returns last.
1212
+ //! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()). This function
1213
+ //! is more efficient than the normal range creation for ordered ranges.
1226
1214
  //!
1227
- //! <b>Complexity</b>: size()*N where N is the distance from first to last.
1215
+ //! <b>Complexity</b>: At most N log(size()+N) (N is the distance from il.begin() to il.end())
1216
+ //! search time plus N*size() insertion time.
1228
1217
  //!
1229
- //! <b>Complexity</b>: Logarithmic search time plus erasure time
1230
- //! linear to the elements with bigger keys.
1231
- iterator erase(const_iterator first, const_iterator last)
1232
- { return m_flat_tree.erase(first, last); }
1218
+ //! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
1219
+ void insert(ordered_range_t, std::initializer_list<value_type> il)
1220
+ { this->base_t::insert_equal(ordered_range, il.begin(), il.end()); }
1221
+ #endif
1233
1222
 
1234
- //! <b>Effects</b>: Swaps the contents of *this and x.
1235
- //!
1236
- //! <b>Throws</b>: Nothing.
1237
- //!
1238
- //! <b>Complexity</b>: Constant.
1223
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1224
+
1225
+ //! @copydoc ::boost::container::flat_set::erase(const_iterator)
1226
+ iterator erase(const_iterator p);
1227
+
1228
+ //! @copydoc ::boost::container::flat_set::erase(const key_type&)
1229
+ size_type erase(const key_type& x);
1230
+
1231
+ //! @copydoc ::boost::container::flat_set::erase(const_iterator,const_iterator)
1232
+ iterator erase(const_iterator first, const_iterator last);
1233
+
1234
+ //! @copydoc ::boost::container::flat_set::swap
1239
1235
  void swap(flat_multiset& x)
1240
- { m_flat_tree.swap(x.m_flat_tree); }
1236
+ BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
1237
+ && boost::container::container_detail::is_nothrow_swappable<Compare>::value );
1241
1238
 
1242
- //! <b>Effects</b>: erase(a.begin(),a.end()).
1243
- //!
1244
- //! <b>Postcondition</b>: size() == 0.
1245
- //!
1246
- //! <b>Complexity</b>: linear in size().
1247
- void clear() BOOST_CONTAINER_NOEXCEPT
1248
- { m_flat_tree.clear(); }
1239
+ //! @copydoc ::boost::container::flat_set::clear
1240
+ void clear() BOOST_NOEXCEPT_OR_NOTHROW;
1249
1241
 
1250
- //////////////////////////////////////////////
1251
- //
1252
- // observers
1253
- //
1254
- //////////////////////////////////////////////
1242
+ //! @copydoc ::boost::container::flat_set::key_comp
1243
+ key_compare key_comp() const;
1255
1244
 
1256
- //! <b>Effects</b>: Returns the comparison object out
1257
- //! of which a was constructed.
1258
- //!
1259
- //! <b>Complexity</b>: Constant.
1260
- key_compare key_comp() const
1261
- { return m_flat_tree.key_comp(); }
1245
+ //! @copydoc ::boost::container::flat_set::value_comp
1246
+ value_compare value_comp() const;
1262
1247
 
1263
- //! <b>Effects</b>: Returns an object of value_compare constructed out
1264
- //! of the comparison object.
1265
- //!
1266
- //! <b>Complexity</b>: Constant.
1267
- value_compare value_comp() const
1268
- { return m_flat_tree.key_comp(); }
1248
+ //! @copydoc ::boost::container::flat_set::find(const key_type& )
1249
+ iterator find(const key_type& x);
1269
1250
 
1270
- //////////////////////////////////////////////
1271
- //
1272
- // set operations
1273
- //
1274
- //////////////////////////////////////////////
1251
+ //! @copydoc ::boost::container::flat_set::find(const key_type& ) const
1252
+ const_iterator find(const key_type& x) const;
1275
1253
 
1276
- //! <b>Returns</b>: An iterator pointing to an element with the key
1277
- //! equivalent to x, or end() if such an element is not found.
1278
- //!
1279
- //! <b>Complexity</b>: Logarithmic.
1280
- iterator find(const key_type& x)
1281
- { return m_flat_tree.find(x); }
1254
+ //! @copydoc ::boost::container::flat_set::nth(size_type)
1255
+ iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW;
1282
1256
 
1283
- //! <b>Returns</b>: Allocator const_iterator pointing to an element with the key
1284
- //! equivalent to x, or end() if such an element is not found.
1285
- //!
1286
- //! <b>Complexity</b>: Logarithmic.s
1287
- const_iterator find(const key_type& x) const
1288
- { return m_flat_tree.find(x); }
1257
+ //! @copydoc ::boost::container::flat_set::nth(size_type) const
1258
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW;
1289
1259
 
1290
- //! <b>Returns</b>: The number of elements with key equivalent to x.
1260
+ //! @copydoc ::boost::container::flat_set::index_of(iterator)
1261
+ size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW;
1262
+
1263
+ //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const
1264
+ size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW;
1265
+
1266
+ //! @copydoc ::boost::container::flat_set::count(const key_type& ) const
1267
+ size_type count(const key_type& x) const;
1268
+
1269
+ //! @copydoc ::boost::container::flat_set::lower_bound(const key_type& )
1270
+ iterator lower_bound(const key_type& x);
1271
+
1272
+ //! @copydoc ::boost::container::flat_set::lower_bound(const key_type& ) const
1273
+ const_iterator lower_bound(const key_type& x) const;
1274
+
1275
+ //! @copydoc ::boost::container::flat_set::upper_bound(const key_type& )
1276
+ iterator upper_bound(const key_type& x);
1277
+
1278
+ //! @copydoc ::boost::container::flat_set::upper_bound(const key_type& ) const
1279
+ const_iterator upper_bound(const key_type& x) const;
1280
+
1281
+ //! @copydoc ::boost::container::flat_set::equal_range(const key_type& ) const
1282
+ std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const;
1283
+
1284
+ //! @copydoc ::boost::container::flat_set::equal_range(const key_type& )
1285
+ std::pair<iterator,iterator> equal_range(const key_type& x);
1286
+
1287
+ //! <b>Effects</b>: Returns true if x and y are equal
1291
1288
  //!
1292
- //! <b>Complexity</b>: log(size())+count(k)
1293
- size_type count(const key_type& x) const
1294
- { return m_flat_tree.count(x); }
1289
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1290
+ friend bool operator==(const flat_multiset& x, const flat_multiset& y);
1295
1291
 
1296
- //! <b>Returns</b>: An iterator pointing to the first element with key not less
1297
- //! than k, or a.end() if such an element is not found.
1292
+ //! <b>Effects</b>: Returns true if x and y are unequal
1298
1293
  //!
1299
- //! <b>Complexity</b>: Logarithmic
1300
- iterator lower_bound(const key_type& x)
1301
- { return m_flat_tree.lower_bound(x); }
1294
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1295
+ friend bool operator!=(const flat_multiset& x, const flat_multiset& y);
1302
1296
 
1303
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
1304
- //! less than k, or a.end() if such an element is not found.
1297
+ //! <b>Effects</b>: Returns true if x is less than y
1305
1298
  //!
1306
- //! <b>Complexity</b>: Logarithmic
1307
- const_iterator lower_bound(const key_type& x) const
1308
- { return m_flat_tree.lower_bound(x); }
1299
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1300
+ friend bool operator<(const flat_multiset& x, const flat_multiset& y);
1309
1301
 
1310
- //! <b>Returns</b>: An iterator pointing to the first element with key not less
1311
- //! than x, or end() if such an element is not found.
1302
+ //! <b>Effects</b>: Returns true if x is greater than y
1312
1303
  //!
1313
- //! <b>Complexity</b>: Logarithmic
1314
- iterator upper_bound(const key_type& x)
1315
- { return m_flat_tree.upper_bound(x); }
1304
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1305
+ friend bool operator>(const flat_multiset& x, const flat_multiset& y);
1316
1306
 
1317
- //! <b>Returns</b>: Allocator const iterator pointing to the first element with key not
1318
- //! less than x, or end() if such an element is not found.
1307
+ //! <b>Effects</b>: Returns true if x is equal or less than y
1319
1308
  //!
1320
- //! <b>Complexity</b>: Logarithmic
1321
- const_iterator upper_bound(const key_type& x) const
1322
- { return m_flat_tree.upper_bound(x); }
1309
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1310
+ friend bool operator<=(const flat_multiset& x, const flat_multiset& y);
1323
1311
 
1324
- //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1312
+ //! <b>Effects</b>: Returns true if x is equal or greater than y
1325
1313
  //!
1326
- //! <b>Complexity</b>: Logarithmic
1327
- std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
1328
- { return m_flat_tree.equal_range(x); }
1314
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
1315
+ friend bool operator>=(const flat_multiset& x, const flat_multiset& y);
1329
1316
 
1330
- //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1317
+ //! <b>Effects</b>: x.swap(y)
1331
1318
  //!
1332
- //! <b>Complexity</b>: Logarithmic
1333
- std::pair<iterator,iterator> equal_range(const key_type& x)
1334
- { return m_flat_tree.equal_range(x); }
1335
-
1336
- /// @cond
1337
- template <class K1, class C1, class A1>
1338
- friend bool operator== (const flat_multiset<K1,C1,A1>&,
1339
- const flat_multiset<K1,C1,A1>&);
1340
- template <class K1, class C1, class A1>
1341
- friend bool operator< (const flat_multiset<K1,C1,A1>&,
1342
- const flat_multiset<K1,C1,A1>&);
1319
+ //! <b>Complexity</b>: Constant.
1320
+ friend void swap(flat_multiset& x, flat_multiset& y);
1321
+
1322
+ #endif //#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
1323
+
1324
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1343
1325
  private:
1344
1326
  template <class KeyType>
1345
1327
  iterator priv_insert(BOOST_FWD_REF(KeyType) x)
1346
- { return m_flat_tree.insert_equal(::boost::forward<KeyType>(x)); }
1328
+ { return this->base_t::insert_equal(::boost::forward<KeyType>(x)); }
1347
1329
 
1348
1330
  template <class KeyType>
1349
1331
  iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
1350
- { return m_flat_tree.insert_equal(p, ::boost::forward<KeyType>(x)); }
1351
- /// @endcond
1332
+ { return this->base_t::insert_equal(p, ::boost::forward<KeyType>(x)); }
1333
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1352
1334
  };
1353
1335
 
1354
- template <class Key, class Compare, class Allocator>
1355
- inline bool operator==(const flat_multiset<Key,Compare,Allocator>& x,
1356
- const flat_multiset<Key,Compare,Allocator>& y)
1357
- { return x.m_flat_tree == y.m_flat_tree; }
1358
-
1359
- template <class Key, class Compare, class Allocator>
1360
- inline bool operator<(const flat_multiset<Key,Compare,Allocator>& x,
1361
- const flat_multiset<Key,Compare,Allocator>& y)
1362
- { return x.m_flat_tree < y.m_flat_tree; }
1363
-
1364
- template <class Key, class Compare, class Allocator>
1365
- inline bool operator!=(const flat_multiset<Key,Compare,Allocator>& x,
1366
- const flat_multiset<Key,Compare,Allocator>& y)
1367
- { return !(x == y); }
1368
-
1369
- template <class Key, class Compare, class Allocator>
1370
- inline bool operator>(const flat_multiset<Key,Compare,Allocator>& x,
1371
- const flat_multiset<Key,Compare,Allocator>& y)
1372
- { return y < x; }
1373
-
1374
- template <class Key, class Compare, class Allocator>
1375
- inline bool operator<=(const flat_multiset<Key,Compare,Allocator>& x,
1376
- const flat_multiset<Key,Compare,Allocator>& y)
1377
- { return !(y < x); }
1378
-
1379
- template <class Key, class Compare, class Allocator>
1380
- inline bool operator>=(const flat_multiset<Key,Compare,Allocator>& x,
1381
- const flat_multiset<Key,Compare,Allocator>& y)
1382
- { return !(x < y); }
1383
-
1384
- template <class Key, class Compare, class Allocator>
1385
- inline void swap(flat_multiset<Key,Compare,Allocator>& x, flat_multiset<Key,Compare,Allocator>& y)
1386
- { x.swap(y); }
1387
-
1388
- /// @cond
1336
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1389
1337
 
1390
1338
  } //namespace container {
1391
1339
 
1392
1340
  //!has_trivial_destructor_after_move<> == true_type
1393
1341
  //!specialization for optimizations
1394
- template <class Key, class C, class Allocator>
1395
- struct has_trivial_destructor_after_move<boost::container::flat_multiset<Key, C, Allocator> >
1342
+ template <class Key, class Compare, class Allocator>
1343
+ struct has_trivial_destructor_after_move<boost::container::flat_multiset<Key, Compare, Allocator> >
1396
1344
  {
1397
- static const bool value = has_trivial_destructor_after_move<Allocator>::value && has_trivial_destructor_after_move<C>::value;
1345
+ typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
1346
+ static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
1347
+ ::boost::has_trivial_destructor_after_move<pointer>::value &&
1348
+ ::boost::has_trivial_destructor_after_move<Compare>::value;
1398
1349
  };
1399
1350
 
1400
1351
  namespace container {
1401
1352
 
1402
- /// @endcond
1353
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1403
1354
 
1404
1355
  }}
1405
1356
 
1406
1357
  #include <boost/container/detail/config_end.hpp>
1407
1358
 
1408
- #endif /* BOOST_CONTAINER_FLAT_SET_HPP */
1359
+ #endif // BOOST_CONTAINER_FLAT_SET_HPP