passenger 6.0.15 → 6.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +46 -2
  3. data/build/integration_tests.rb +6 -6
  4. data/build/ruby_tests.rb +1 -1
  5. data/build/test_basics.rb +0 -1
  6. data/src/agent/Core/Config.h +1 -1
  7. data/src/agent/Core/Controller/Config.h +1 -1
  8. data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  12. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
  13. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +686 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +56 -0
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +81 -25
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +68 -8
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +46 -11
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +4 -4
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +1 -1
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +4 -4
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +2 -2
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +2 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +3 -3
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +3 -3
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +4 -4
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +2 -2
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +2 -2
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +13 -3
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +14 -3
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +13 -3
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +30 -305
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +17 -18
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +98 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +81 -15
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +4 -4
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +19 -11
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +37 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +3 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +10 -2
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +14 -1
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +18 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +1 -2
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +7 -3
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +4 -14
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +22 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +447 -142
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +57 -8
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +51 -6
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +5 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +41 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +5 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +13 -2
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +13 -2
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +9 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +11 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +52 -8
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +13 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +5 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +39 -6
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +5 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +39 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +5 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +5 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +5 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +5 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +5 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +5 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +5 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +5 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +6 -9
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +3 -3
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +3 -3
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +70 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +146 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +35 -5
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +13 -3
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +7 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +180 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +89 -66
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +66 -45
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +13 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1134 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +130 -106
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +377 -3
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +168 -29
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +149 -203
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +256 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +76 -80
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +40 -14
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +12 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +12 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +12 -3
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +25 -6
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +25 -6
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +34 -45
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +28 -6
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +33 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +13 -3
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +21 -9
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +33 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +12 -3
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +40 -9
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +27 -6
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +104 -24
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +12 -3
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +70 -15
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +25 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +38 -30
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +27 -6
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -13
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +2 -2
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +17 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +3 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +13 -3
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +11 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -13
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +23 -18
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +2 -2
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +4 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  148. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
  152. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +2 -2
  153. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +10 -3
  157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +9 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +9 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +6 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +8 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +33 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +9 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +29 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +13 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +80 -95
  170. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +10 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +738 -34
  173. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +38 -10
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +1 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +2 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +3 -4
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1150 -1213
  178. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +104 -12
  180. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +1 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +31 -331
  183. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +173 -0
  185. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +133 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +461 -566
  187. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +24 -24
  188. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +91 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +32 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -16
  195. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +2 -2
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +159 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +9 -9
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +45 -45
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +8 -8
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +37 -38
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +145 -90
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +2 -0
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +7 -7
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +5 -5
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +11 -9
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +7 -7
  227. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +8 -5
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +4 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +2 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +8 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  238. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  239. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +6 -2
  240. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +7 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +2 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +10 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +38 -43
  246. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +52 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  249. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  250. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +37 -7
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +1921 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +66 -82
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +6 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +109 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +732 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +49 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +586 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +49 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +166 -66
  263. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +145 -28
  264. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  265. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +143 -261
  266. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +763 -947
  267. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1477 -1487
  268. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
  269. data/src/ruby_native_extension/extconf.rb +1 -1
  270. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  271. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -2
  272. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
  273. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +5 -5
  274. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  275. metadata +36 -19
  276. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  277. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  278. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  279. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  280. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  281. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  282. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  283. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  284. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  285. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
  288. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  289. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  290. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  291. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  292. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
@@ -45,7 +45,7 @@
45
45
 
46
46
  namespace boost { namespace container { namespace dtl {
47
47
 
48
- template<class Allocator, class FwdIt, class Iterator>
48
+ template<class Allocator, class FwdIt>
49
49
  struct move_insert_range_proxy
50
50
  {
51
51
  typedef typename allocator_traits<Allocator>::value_type value_type;
@@ -54,12 +54,14 @@ struct move_insert_range_proxy
54
54
  : first_(first)
55
55
  {}
56
56
 
57
+ template<class Iterator>
57
58
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
58
59
  {
59
60
  this->first_ = ::boost::container::uninitialized_move_alloc_n_source
60
61
  (a, this->first_, n, p);
61
62
  }
62
63
 
64
+ template<class Iterator>
63
65
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n)
64
66
  {
65
67
  this->first_ = ::boost::container::move_n_source(this->first_, n, p);
@@ -69,7 +71,7 @@ struct move_insert_range_proxy
69
71
  };
70
72
 
71
73
 
72
- template<class Allocator, class FwdIt, class Iterator>
74
+ template<class Allocator, class FwdIt>
73
75
  struct insert_range_proxy
74
76
  {
75
77
  typedef typename allocator_traits<Allocator>::value_type value_type;
@@ -78,11 +80,13 @@ struct insert_range_proxy
78
80
  : first_(first)
79
81
  {}
80
82
 
83
+ template<class Iterator>
81
84
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
82
85
  {
83
86
  this->first_ = ::boost::container::uninitialized_copy_alloc_n_source(a, this->first_, n, p);
84
87
  }
85
88
 
89
+ template<class Iterator>
86
90
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n)
87
91
  {
88
92
  this->first_ = ::boost::container::copy_n_source(this->first_, n, p);
@@ -92,7 +96,7 @@ struct insert_range_proxy
92
96
  };
93
97
 
94
98
 
95
- template<class Allocator, class Iterator>
99
+ template<class Allocator>
96
100
  struct insert_n_copies_proxy
97
101
  {
98
102
  typedef typename allocator_traits<Allocator>::value_type value_type;
@@ -101,9 +105,11 @@ struct insert_n_copies_proxy
101
105
  : v_(v)
102
106
  {}
103
107
 
108
+ template<class Iterator>
104
109
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
105
110
  { boost::container::uninitialized_fill_alloc_n(a, v_, n, p); }
106
111
 
112
+ template<class Iterator>
107
113
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
108
114
  {
109
115
  while (n){
@@ -116,16 +122,18 @@ struct insert_n_copies_proxy
116
122
  const value_type &v_;
117
123
  };
118
124
 
119
- template<class Allocator, class Iterator>
125
+ template<class Allocator>
120
126
  struct insert_value_initialized_n_proxy
121
127
  {
122
128
  typedef ::boost::container::allocator_traits<Allocator> alloc_traits;
123
129
  typedef typename allocator_traits<Allocator>::value_type value_type;
124
130
  typedef typename dtl::aligned_storage<sizeof(value_type), dtl::alignment_of<value_type>::value>::type storage_t;
125
131
 
132
+ template<class Iterator>
126
133
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
127
134
  { boost::container::uninitialized_value_init_alloc_n(a, n, p); }
128
135
 
136
+ template<class Iterator>
129
137
  void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
130
138
  {
131
139
  while (n){
@@ -140,16 +148,18 @@ struct insert_value_initialized_n_proxy
140
148
  }
141
149
  };
142
150
 
143
- template<class Allocator, class Iterator>
151
+ template<class Allocator>
144
152
  struct insert_default_initialized_n_proxy
145
153
  {
146
154
  typedef ::boost::container::allocator_traits<Allocator> alloc_traits;
147
155
  typedef typename allocator_traits<Allocator>::value_type value_type;
148
156
  typedef typename dtl::aligned_storage<sizeof(value_type), dtl::alignment_of<value_type>::value>::type storage_t;
149
157
 
158
+ template<class Iterator>
150
159
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
151
160
  { boost::container::uninitialized_default_init_alloc_n(a, n, p); }
152
161
 
162
+ template<class Iterator>
153
163
  void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
154
164
  {
155
165
  if(!is_pod<value_type>::value){
@@ -166,7 +176,7 @@ struct insert_default_initialized_n_proxy
166
176
  }
167
177
  };
168
178
 
169
- template<class Allocator, class Iterator>
179
+ template<class Allocator>
170
180
  struct insert_copy_proxy
171
181
  {
172
182
  typedef boost::container::allocator_traits<Allocator> alloc_traits;
@@ -178,12 +188,14 @@ struct insert_copy_proxy
178
188
  : v_(v)
179
189
  {}
180
190
 
191
+ template<class Iterator>
181
192
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
182
193
  {
183
194
  BOOST_ASSERT(n == 1); (void)n;
184
195
  alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), v_);
185
196
  }
186
197
 
198
+ template<class Iterator>
187
199
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
188
200
  {
189
201
  BOOST_ASSERT(n == 1); (void)n;
@@ -194,7 +206,7 @@ struct insert_copy_proxy
194
206
  };
195
207
 
196
208
 
197
- template<class Allocator, class Iterator>
209
+ template<class Allocator>
198
210
  struct insert_move_proxy
199
211
  {
200
212
  typedef boost::container::allocator_traits<Allocator> alloc_traits;
@@ -206,12 +218,14 @@ struct insert_move_proxy
206
218
  : v_(v)
207
219
  {}
208
220
 
221
+ template<class Iterator>
209
222
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
210
223
  {
211
224
  BOOST_ASSERT(n == 1); (void)n;
212
225
  alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::move(v_) );
213
226
  }
214
227
 
228
+ template<class Iterator>
215
229
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
216
230
  {
217
231
  BOOST_ASSERT(n == 1); (void)n;
@@ -222,15 +236,15 @@ struct insert_move_proxy
222
236
  };
223
237
 
224
238
  template<class It, class Allocator>
225
- BOOST_CONTAINER_FORCEINLINE insert_move_proxy<Allocator, It> get_insert_value_proxy(BOOST_RV_REF(typename boost::container::iterator_traits<It>::value_type) v)
239
+ BOOST_CONTAINER_FORCEINLINE insert_move_proxy<Allocator> get_insert_value_proxy(BOOST_RV_REF(typename boost::container::iterator_traits<It>::value_type) v)
226
240
  {
227
- return insert_move_proxy<Allocator, It>(v);
241
+ return insert_move_proxy<Allocator>(v);
228
242
  }
229
243
 
230
244
  template<class It, class Allocator>
231
- BOOST_CONTAINER_FORCEINLINE insert_copy_proxy<Allocator, It> get_insert_value_proxy(const typename boost::container::iterator_traits<It>::value_type &v)
245
+ BOOST_CONTAINER_FORCEINLINE insert_copy_proxy<Allocator> get_insert_value_proxy(const typename boost::container::iterator_traits<It>::value_type &v)
232
246
  {
233
- return insert_copy_proxy<Allocator, It>(v);
247
+ return insert_copy_proxy<Allocator>(v);
234
248
  }
235
249
 
236
250
  }}} //namespace boost { namespace container { namespace dtl {
@@ -244,7 +258,7 @@ namespace boost {
244
258
  namespace container {
245
259
  namespace dtl {
246
260
 
247
- template<class Allocator, class Iterator, class ...Args>
261
+ template<class Allocator, class ...Args>
248
262
  struct insert_nonmovable_emplace_proxy
249
263
  {
250
264
  typedef boost::container::allocator_traits<Allocator> alloc_traits;
@@ -257,11 +271,12 @@ struct insert_nonmovable_emplace_proxy
257
271
  : args_(args...)
258
272
  {}
259
273
 
274
+ template<class Iterator>
260
275
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
261
276
  { this->priv_uninitialized_copy_some_and_update(a, index_tuple_t(), p, n); }
262
277
 
263
278
  private:
264
- template<std::size_t ...IdxPack>
279
+ template<std::size_t ...IdxPack, class Iterator>
265
280
  BOOST_CONTAINER_FORCEINLINE void priv_uninitialized_copy_some_and_update(Allocator &a, const index_tuple<IdxPack...>&, Iterator p, std::size_t n)
266
281
  {
267
282
  BOOST_ASSERT(n == 1); (void)n;
@@ -272,11 +287,11 @@ struct insert_nonmovable_emplace_proxy
272
287
  tuple<Args&...> args_;
273
288
  };
274
289
 
275
- template<class Allocator, class Iterator, class ...Args>
290
+ template<class Allocator, class ...Args>
276
291
  struct insert_emplace_proxy
277
- : public insert_nonmovable_emplace_proxy<Allocator, Iterator, Args...>
292
+ : public insert_nonmovable_emplace_proxy<Allocator, Args...>
278
293
  {
279
- typedef insert_nonmovable_emplace_proxy<Allocator, Iterator, Args...> base_t;
294
+ typedef insert_nonmovable_emplace_proxy<Allocator, Args...> base_t;
280
295
  typedef boost::container::allocator_traits<Allocator> alloc_traits;
281
296
  typedef typename base_t::value_type value_type;
282
297
  typedef typename base_t::index_tuple_t index_tuple_t;
@@ -287,12 +302,13 @@ struct insert_emplace_proxy
287
302
  : base_t(::boost::forward<Args>(args)...)
288
303
  {}
289
304
 
305
+ template<class Iterator>
290
306
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
291
307
  { this->priv_copy_some_and_update(a, index_tuple_t(), p, n); }
292
308
 
293
309
  private:
294
310
 
295
- template<std::size_t ...IdxPack>
311
+ template<std::size_t ...IdxPack, class Iterator>
296
312
  BOOST_CONTAINER_FORCEINLINE void priv_copy_some_and_update(Allocator &a, const index_tuple<IdxPack...>&, Iterator p, std::size_t n)
297
313
  {
298
314
  BOOST_ASSERT(n ==1); (void)n;
@@ -312,55 +328,55 @@ struct insert_emplace_proxy
312
328
  };
313
329
 
314
330
  //Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
315
- template<class Allocator, class Iterator>
316
- struct insert_emplace_proxy<Allocator, Iterator, typename boost::container::allocator_traits<Allocator>::value_type>
317
- : public insert_move_proxy<Allocator, Iterator>
331
+ template<class Allocator>
332
+ struct insert_emplace_proxy<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
333
+ : public insert_move_proxy<Allocator>
318
334
  {
319
335
  static const bool single_value = true;
320
336
 
321
337
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(typename boost::container::allocator_traits<Allocator>::value_type &&v)
322
- : insert_move_proxy<Allocator, Iterator>(v)
338
+ : insert_move_proxy<Allocator>(v)
323
339
  {}
324
340
  };
325
341
 
326
342
  //We use "add_const" here as adding "const" only confuses MSVC12(and maybe later) provoking
327
343
  //compiler error C2752 ("more than one partial specialization matches").
328
344
  //Any problem is solvable with an extra layer of indirection? ;-)
329
- template<class Allocator, class Iterator>
330
- struct insert_emplace_proxy<Allocator, Iterator
345
+ template<class Allocator>
346
+ struct insert_emplace_proxy<Allocator
331
347
  , typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type
332
348
  >
333
- : public insert_copy_proxy<Allocator, Iterator>
349
+ : public insert_copy_proxy<Allocator>
334
350
  {
335
351
 
336
352
  static const bool single_value = true;
337
353
 
338
354
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
339
- : insert_copy_proxy<Allocator, Iterator>(v)
355
+ : insert_copy_proxy<Allocator>(v)
340
356
  {}
341
357
  };
342
358
 
343
- template<class Allocator, class Iterator>
344
- struct insert_emplace_proxy<Allocator, Iterator, typename boost::container::allocator_traits<Allocator>::value_type &>
345
- : public insert_copy_proxy<Allocator, Iterator>
359
+ template<class Allocator>
360
+ struct insert_emplace_proxy<Allocator, typename boost::container::allocator_traits<Allocator>::value_type &>
361
+ : public insert_copy_proxy<Allocator>
346
362
  {
347
363
  static const bool single_value = true;
348
364
 
349
365
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
350
- : insert_copy_proxy<Allocator, Iterator>(v)
366
+ : insert_copy_proxy<Allocator>(v)
351
367
  {}
352
368
  };
353
369
 
354
- template<class Allocator, class Iterator>
355
- struct insert_emplace_proxy<Allocator, Iterator
370
+ template<class Allocator>
371
+ struct insert_emplace_proxy<Allocator
356
372
  , typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type &
357
373
  >
358
- : public insert_copy_proxy<Allocator, Iterator>
374
+ : public insert_copy_proxy<Allocator>
359
375
  {
360
376
  static const bool single_value = true;
361
377
 
362
378
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
363
- : insert_copy_proxy<Allocator, Iterator>(v)
379
+ : insert_copy_proxy<Allocator>(v)
364
380
  {}
365
381
  };
366
382
 
@@ -375,7 +391,7 @@ namespace container {
375
391
  namespace dtl {
376
392
 
377
393
  #define BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE(N) \
378
- template< class Allocator, class Iterator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
394
+ template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
379
395
  struct insert_nonmovable_emplace_proxy##N\
380
396
  {\
381
397
  typedef boost::container::allocator_traits<Allocator> alloc_traits;\
@@ -386,12 +402,14 @@ struct insert_nonmovable_emplace_proxy##N\
386
402
  BOOST_CONTAINER_FORCEINLINE explicit insert_nonmovable_emplace_proxy##N(BOOST_MOVE_UREF##N)\
387
403
  BOOST_MOVE_COLON##N BOOST_MOVE_FWD_INIT##N {}\
388
404
  \
405
+ template<class Iterator>\
389
406
  BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\
390
407
  {\
391
408
  BOOST_ASSERT(n == 1); (void)n;\
392
409
  alloc_traits::construct(a, boost::movelib::iterator_to_raw_pointer(p) BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\
393
410
  }\
394
411
  \
412
+ template<class Iterator>\
395
413
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator, std::size_t)\
396
414
  { BOOST_ASSERT(false); }\
397
415
  \
@@ -399,12 +417,12 @@ struct insert_nonmovable_emplace_proxy##N\
399
417
  BOOST_MOVE_MREF##N\
400
418
  };\
401
419
  \
402
- template< class Allocator, class Iterator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
420
+ template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
403
421
  struct insert_emplace_proxy_arg##N\
404
- : insert_nonmovable_emplace_proxy##N< Allocator, Iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N >\
422
+ : insert_nonmovable_emplace_proxy##N< Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N >\
405
423
  {\
406
424
  typedef insert_nonmovable_emplace_proxy##N\
407
- < Allocator, Iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N > base_t;\
425
+ < Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N > base_t;\
408
426
  typedef typename base_t::value_type value_type;\
409
427
  typedef boost::container::allocator_traits<Allocator> alloc_traits;\
410
428
  \
@@ -413,6 +431,7 @@ struct insert_emplace_proxy_arg##N\
413
431
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg##N(BOOST_MOVE_UREF##N)\
414
432
  : base_t(BOOST_MOVE_FWD##N){}\
415
433
  \
434
+ template<class Iterator>\
416
435
  BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\
417
436
  {\
418
437
  BOOST_ASSERT(n == 1); (void)n;\
@@ -437,79 +456,79 @@ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE)
437
456
  #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
438
457
 
439
458
  //Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
440
- template<class Allocator, class Iterator>
441
- struct insert_emplace_proxy_arg1<Allocator, Iterator, ::boost::rv<typename boost::container::allocator_traits<Allocator>::value_type> >
442
- : public insert_move_proxy<Allocator, Iterator>
459
+ template<class Allocator>
460
+ struct insert_emplace_proxy_arg1<Allocator, ::boost::rv<typename boost::container::allocator_traits<Allocator>::value_type> >
461
+ : public insert_move_proxy<Allocator>
443
462
  {
444
463
  static const bool single_value = true;
445
464
 
446
465
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits<Allocator>::value_type &v)
447
- : insert_move_proxy<Allocator, Iterator>(v)
466
+ : insert_move_proxy<Allocator>(v)
448
467
  {}
449
468
  };
450
469
 
451
- template<class Allocator, class Iterator>
452
- struct insert_emplace_proxy_arg1<Allocator, Iterator, typename boost::container::allocator_traits<Allocator>::value_type>
453
- : public insert_copy_proxy<Allocator, Iterator>
470
+ template<class Allocator>
471
+ struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
472
+ : public insert_copy_proxy<Allocator>
454
473
  {
455
474
  static const bool single_value = true;
456
475
 
457
476
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
458
- : insert_copy_proxy<Allocator, Iterator>(v)
477
+ : insert_copy_proxy<Allocator>(v)
459
478
  {}
460
479
  };
461
480
 
462
481
  #else //e.g. MSVC10 & MSVC11
463
482
 
464
483
  //Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
465
- template<class Allocator, class Iterator>
466
- struct insert_emplace_proxy_arg1<Allocator, Iterator, typename boost::container::allocator_traits<Allocator>::value_type>
467
- : public insert_move_proxy<Allocator, Iterator>
484
+ template<class Allocator>
485
+ struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
486
+ : public insert_move_proxy<Allocator>
468
487
  {
469
488
  static const bool single_value = true;
470
489
 
471
490
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits<Allocator>::value_type &&v)
472
- : insert_move_proxy<Allocator, Iterator>(v)
491
+ : insert_move_proxy<Allocator>(v)
473
492
  {}
474
493
  };
475
494
 
476
495
  //We use "add_const" here as adding "const" only confuses MSVC10&11 provoking
477
496
  //compiler error C2752 ("more than one partial specialization matches").
478
497
  //Any problem is solvable with an extra layer of indirection? ;-)
479
- template<class Allocator, class Iterator>
480
- struct insert_emplace_proxy_arg1<Allocator, Iterator
498
+ template<class Allocator>
499
+ struct insert_emplace_proxy_arg1<Allocator
481
500
  , typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type
482
501
  >
483
- : public insert_copy_proxy<Allocator, Iterator>
502
+ : public insert_copy_proxy<Allocator>
484
503
  {
485
504
  static const bool single_value = true;
486
505
 
487
506
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
488
- : insert_copy_proxy<Allocator, Iterator>(v)
507
+ : insert_copy_proxy<Allocator>(v)
489
508
  {}
490
509
  };
491
510
 
492
- template<class Allocator, class Iterator>
493
- struct insert_emplace_proxy_arg1<Allocator, Iterator, typename boost::container::allocator_traits<Allocator>::value_type &>
494
- : public insert_copy_proxy<Allocator, Iterator>
511
+ template<class Allocator>
512
+ struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type &>
513
+ : public insert_copy_proxy<Allocator>
495
514
  {
496
515
  static const bool single_value = true;
497
516
 
498
517
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
499
- : insert_copy_proxy<Allocator, Iterator>(v)
518
+ : insert_copy_proxy<Allocator>(v)
500
519
  {}
501
520
  };
502
521
 
503
- template<class Allocator, class Iterator>
504
- struct insert_emplace_proxy_arg1<Allocator, Iterator
522
+ template<class Allocator>
523
+ struct insert_emplace_proxy_arg1<Allocator
505
524
  , typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type &
506
525
  >
507
- : public insert_copy_proxy<Allocator, Iterator>
526
+ : public insert_copy_proxy<Allocator>
508
527
  {
509
528
  static const bool single_value = true;
510
529
 
511
530
  BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
512
- : insert_copy_proxy<Allocator, Iterator>(v)
531
+ : insert_copy_proxy<Allocator>(v)
513
532
  {}
514
533
  };
515
534
 
@@ -519,40 +538,6 @@ struct insert_emplace_proxy_arg1<Allocator, Iterator
519
538
 
520
539
  #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
521
540
 
522
- namespace boost { namespace container { namespace dtl {
523
-
524
- template <class T>
525
- struct has_single_value
526
- {
527
- private:
528
- struct two {char array_[2];};
529
- template<bool Arg> struct wrapper;
530
- template <class U> static two test(int, ...);
531
- template <class U> static char test(int, const wrapper<U::single_value>*);
532
- public:
533
- static const bool value = sizeof(test<T>(0, 0)) == 1;
534
- void dummy(){}
535
- };
536
-
537
- template<class InsertionProxy, bool = has_single_value<InsertionProxy>::value>
538
- struct is_single_value_proxy_impl
539
- {
540
- static const bool value = InsertionProxy::single_value;
541
- };
542
-
543
- template<class InsertionProxy>
544
- struct is_single_value_proxy_impl<InsertionProxy, false>
545
- {
546
- static const bool value = false;
547
- };
548
-
549
- template<class InsertionProxy>
550
- struct is_single_value_proxy
551
- : is_single_value_proxy_impl<InsertionProxy>
552
- {};
553
-
554
- }}} //namespace boost { namespace container { namespace dtl {
555
-
556
541
  #include <boost/container/detail/config_end.hpp>
557
542
 
558
543
  #endif //#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP
@@ -48,3 +48,13 @@
48
48
  #pragma warning (disable : 4996) // "function": was declared deprecated
49
49
 
50
50
  #endif //BOOST_MSVC
51
+
52
+
53
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
54
+ #pragma GCC diagnostic push
55
+ //Sign conversion warnings broken before GCC 9.3
56
+ //(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87519)
57
+ #if BOOST_GCC < 90300
58
+ #pragma GCC diagnostic ignored "-Wsign-conversion"
59
+ #endif
60
+ #endif
@@ -11,3 +11,6 @@
11
11
  #pragma warning (pop)
12
12
  #endif
13
13
 
14
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
15
+ #pragma GCC diagnostic pop
16
+ #endif