passenger 6.0.19 → 6.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +65 -3
  3. data/CONTRIBUTORS +2 -0
  4. data/README.md +2 -2
  5. data/bin/passenger-install-nginx-module +4 -4
  6. data/build/integration_tests.rb +2 -1
  7. data/build/support/cxx_dependency_map.rb +155 -54
  8. data/dev/copy_boost_headers +21 -7
  9. data/dev/nginx_version_sha256 +72 -0
  10. data/package.json +15 -15
  11. data/src/agent/AgentMain.cpp +2 -8
  12. data/src/agent/Core/AdminPanelConnector.h +2 -3
  13. data/src/agent/Core/ApiServer.h +1 -1
  14. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
  15. data/src/agent/Core/Config.h +6 -3
  16. data/src/agent/Core/Controller/AppResponse.h +0 -1
  17. data/src/agent/Core/Controller/Config.h +2 -2
  18. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  19. data/src/agent/Core/CoreMain.cpp +1 -0
  20. data/src/agent/Core/ResponseCache.h +3 -2
  21. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  22. data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
  23. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
  24. data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
  25. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
  26. data/src/agent/MainFunctions.h +38 -0
  27. data/src/agent/Shared/ApiServerUtils.h +3 -2
  28. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  29. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
  30. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
  31. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
  32. data/src/agent/Watchdog/ApiServer.h +1 -1
  33. data/src/agent/Watchdog/Config.h +1 -1
  34. data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
  35. data/src/apache2_module/Hooks.cpp +26 -1
  36. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  37. data/src/cxx_supportlib/Constants.h +1 -1
  38. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  39. data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
  40. data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
  41. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  42. data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
  43. data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
  44. data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
  45. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
  46. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
  47. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
  48. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  49. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  50. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  51. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
  52. data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
  53. data/src/cxx_supportlib/ServerKit/Context.h +6 -0
  54. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  55. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +99 -64
  56. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
  57. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  58. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  59. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  60. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  61. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  62. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  63. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  64. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  65. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  66. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  67. data/src/cxx_supportlib/StaticString.h +3 -1
  68. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  69. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
  70. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
  71. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
  72. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
  73. data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
  74. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
  75. data/src/cxx_supportlib/Utils.cpp +1 -1
  76. data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
  77. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +194 -56
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +30 -52
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +282 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +178 -863
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +73 -23
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +108 -151
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +97 -299
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +97 -288
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +90 -288
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +551 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +365 -290
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -39
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +33 -49
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -39
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +60 -272
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +37 -34
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +302 -262
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +3 -3
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +155 -963
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +41 -3
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +40 -3
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +20 -3
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +20 -3
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +6 -6
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +101 -123
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -15
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +13 -4
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +2 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +17 -8
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +69 -35
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +2 -2
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +15 -6
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +9 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +26 -18
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +2 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +12 -4
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +57 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +209 -0
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +195 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +209 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +6 -3
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +6 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +17 -9
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +6 -3
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +6 -3
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +2 -3
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +5 -4
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +4 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +11 -12
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +5 -4
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +6 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +7 -4
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +6 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +6 -3
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +6 -3
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +5 -4
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +20 -3
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +13 -43
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +61 -25
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +37 -4
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +89 -12
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +41 -4
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +40 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +41 -4
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +41 -4
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +41 -4
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +40 -4
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +20 -20
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +135 -38
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +37 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +4 -4
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +4 -4
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +20 -3
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +12 -3
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +11 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +36 -34
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +268 -991
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +56 -34
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +56 -34
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +5 -4
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +1 -1
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +27 -20
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +193 -38
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +143 -14
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +24 -9
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +77 -17
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +20 -12
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +50 -50
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +3 -3
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +1 -1
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +46 -34
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +1 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +62 -20
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +48 -45
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +18 -4
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +5 -5
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +3 -3
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +1 -1
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +15 -21
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +13 -13
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +99 -107
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +66 -25
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +123 -73
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +73 -31
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +2 -1
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +43 -411
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +207 -423
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +5 -4
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +79 -425
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +28 -36
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +13 -3
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +86 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +36 -34
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +173 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +24 -24
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
  620. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
  621. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  622. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
  624. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
  625. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
  626. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  627. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -28
  628. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -3
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -16
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +5 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +6 -4
  633. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +0 -49
  634. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  635. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  636. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  637. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  638. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  639. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  640. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  643. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
  644. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  645. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
  646. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
  647. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
  648. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +230 -1740
  649. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  650. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  651. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +1 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
  656. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  657. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
  658. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
  659. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  661. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -1
  663. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  664. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  666. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  668. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
  669. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  670. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  672. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +8 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
  676. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
  678. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +4 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
  682. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  684. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
  685. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +4 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +13 -3
  691. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +8 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +56 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +32 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +16 -1
  697. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
  698. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
  699. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
  700. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +0 -29
  701. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +144 -145
  702. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +4 -5
  703. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +48 -49
  704. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  705. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  706. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
  707. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +1 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +71 -69
  709. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
  710. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +38 -40
  711. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +165 -153
  712. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
  713. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
  714. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
  715. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
  716. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +44 -46
  717. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +10 -11
  718. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
  719. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +0 -8
  720. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  721. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +83 -84
  722. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  723. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +77 -1
  724. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +81 -85
  725. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -233
  726. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +86 -86
  727. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
  728. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -110
  729. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
  730. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
  731. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +29 -17
  732. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
  733. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  734. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  736. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -82
  737. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
  738. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -26
  739. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +147 -122
  740. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +109 -110
  741. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
  742. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +165 -194
  743. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +4 -5
  744. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +263 -199
  745. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
  747. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +296 -61
  748. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  749. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  750. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +38 -124
  751. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +1 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -20
  753. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
  754. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -40
  755. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
  757. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +22 -8
  759. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +362 -31
  760. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  762. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  763. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  764. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  765. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  766. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  767. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +7 -7
  768. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
  769. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  771. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  772. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  773. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  774. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +33 -36
  775. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +3 -3
  776. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  780. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
  781. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  783. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +17 -17
  785. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
  786. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +29 -5
  787. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +2 -0
  789. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
  790. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  791. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  792. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  793. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  794. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +22 -10
  795. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  796. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  797. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  798. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
  800. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
  801. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  802. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
  803. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
  804. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  805. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  806. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  807. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  809. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  811. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  812. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  813. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  814. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  815. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  816. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +49 -198
  817. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  818. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +277 -420
  819. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  820. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  821. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  822. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
  823. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
  824. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
  825. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
  826. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
  827. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
  828. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +7 -7
  829. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
  830. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
  831. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +5 -5
  832. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +10 -10
  833. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  834. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  835. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  836. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
  837. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  838. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  839. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  840. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  842. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
  843. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -20
  844. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  845. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
  846. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  847. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
  848. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
  849. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  851. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  852. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  853. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -20
  854. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  855. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  856. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  857. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +58 -1
  858. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
  859. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
  860. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +57 -58
  861. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
  862. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  863. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
  864. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
  865. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
  866. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
  867. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
  868. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
  869. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +61 -62
  870. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
  871. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
  872. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
  873. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
  875. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
  876. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  877. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  878. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  879. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  880. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  881. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  882. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  883. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  884. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +612 -645
  885. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
  886. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
  887. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  888. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  890. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
  891. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  892. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  893. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
  894. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  895. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  896. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  897. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
  898. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
  899. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  900. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  901. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  902. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +5 -3
  903. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +20 -19
  904. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +41 -56
  905. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  906. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +3 -2
  907. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +32 -34
  908. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +4 -5
  909. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  910. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  911. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
  913. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  914. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
  915. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  916. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +65 -24
  917. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
  918. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  919. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +72 -23
  920. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +81 -1
  921. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  922. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  923. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  924. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +8 -6
  925. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +97 -17
  926. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
  927. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +11 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +140 -4
  929. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +108 -4
  931. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +13 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  934. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +1 -1
  935. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +4 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +18 -5
  937. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  938. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
  939. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +10 -0
  940. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +180 -3
  941. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +2 -96
  942. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +3 -3
  944. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  945. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  946. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
  947. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +5 -4
  948. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +3 -3
  949. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +2 -2
  950. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  951. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  952. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  953. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +4 -4
  954. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
  955. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  956. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  957. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
  958. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
  959. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  960. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  961. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
  962. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  963. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  964. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  965. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  966. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  970. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  971. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
  972. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  973. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  975. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  976. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
  978. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  981. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  982. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  983. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  984. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  985. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  986. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +9 -9
  987. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
  988. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +23 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  991. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  992. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +1 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +2 -11
  994. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -0
  995. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +1 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +1 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +1 -0
  1000. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +2 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -11
  1002. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +1 -0
  1003. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +4 -8
  1004. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  1005. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +14 -50
  1006. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +16 -55
  1007. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +62 -124
  1008. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
  1009. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  1010. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
  1011. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  1012. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  1013. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
  1015. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +14 -13
  1016. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
  1017. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  1018. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
  1019. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
  1020. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
  1021. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  1022. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  1023. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  1024. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  1025. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  1026. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  1027. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  1028. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  1029. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  1030. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  1031. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  1032. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  1033. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  1034. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  1035. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  1036. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  1037. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  1040. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  1041. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  1042. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  1043. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +2 -2
  1044. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
  1045. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  1046. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1050. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  1052. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  1053. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  1054. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  1055. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  1056. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  1057. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  1058. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  1059. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  1060. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  1061. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  1062. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  1063. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  1064. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  1065. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  1066. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  1067. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  1068. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  1069. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  1070. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  1071. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  1072. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  1073. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  1074. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  1075. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  1076. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  1077. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +860 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +51 -0
  1079. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
  1080. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
  1086. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1764 -0
  1087. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2271 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  1089. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +86 -0
  1090. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +44 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1092. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +204 -0
  1093. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +139 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +92 -0
  1095. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  1096. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1097. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1098. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +651 -0
  1099. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +52 -0
  1100. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +356 -1118
  1101. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1103. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1104. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  1105. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +96 -150
  1106. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  1107. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  1108. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  1109. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  1110. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  1111. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  1112. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +136 -19
  1113. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
  1114. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +171 -103
  1115. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -6
  1116. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +70 -46
  1117. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -6
  1118. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +406 -899
  1119. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -13
  1120. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
  1121. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +44 -0
  1122. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +699 -0
  1123. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +44 -0
  1124. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +253 -618
  1125. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -14
  1126. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1127. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
  1128. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1129. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1130. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
  1131. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
  1132. data/src/helper-scripts/wsgi-loader.py +2 -2
  1133. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1134. data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
  1135. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  1136. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +3 -1
  1137. data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
  1138. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +8 -10
  1139. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
  1140. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
  1141. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1142. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
  1143. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  1144. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
  1145. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
  1146. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  1147. metadata +109 -150
  1148. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  1149. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  1150. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
  1152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1161. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
  1162. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
  1163. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
  1164. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1165. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
  1166. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1167. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1168. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1169. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1170. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
  1171. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1172. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
  1173. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
  1174. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1175. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
  1176. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
  1177. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
  1178. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
  1179. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
  1180. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
  1181. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
  1182. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
  1183. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1184. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1185. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -300
  1186. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -275
  1187. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1188. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -300
  1189. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1190. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1191. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1192. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1193. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1194. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1195. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1196. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1197. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1198. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1199. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1200. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1201. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1202. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1203. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1204. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1205. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1206. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
  1207. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
  1208. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
  1209. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
  1210. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1211. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1212. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1213. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1214. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1215. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1216. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1217. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
  1218. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
  1219. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1220. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1221. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1222. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1223. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1224. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1225. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  1226. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -1278
  1228. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +0 -133
  1229. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1230. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1231. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1232. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1233. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  1234. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1235. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1236. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1237. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1238. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1239. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1240. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1241. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1242. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1243. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1244. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1245. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1246. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1247. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1248. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1249. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1250. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1251. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1252. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1253. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1254. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1255. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1256. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1257. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1258. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1259. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1260. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1261. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1262. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1263. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1264. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1265. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1266. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1267. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1268. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1269. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1270. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1271. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1272. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1273. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1274. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1275. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1276. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1277. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1278. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1279. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1280. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1281. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1282. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1283. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1284. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1285. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1286. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1287. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1288. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1289. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1290. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1291. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +0 -1921
  1292. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -64
  1293. /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
@@ -1,7 +1,7 @@
1
-
2
1
  // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
3
2
  // Copyright (C) 2005-2011 Daniel James.
4
- // Copyright (C) 2022 Christian Mazakas
3
+ // Copyright (C) 2022-2023 Christian Mazakas
4
+ // Copyright (C) 2024 Joaquin M Lopez Munoz.
5
5
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
6
6
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
7
 
@@ -15,15 +15,13 @@
15
15
  #pragma once
16
16
  #endif
17
17
 
18
- #include <boost/core/explicit_operator_bool.hpp>
19
- #include <boost/functional/hash.hpp>
20
- #include <boost/move/move.hpp>
18
+ #include <boost/unordered/detail/serialize_fca_container.hpp>
21
19
  #include <boost/unordered/detail/set.hpp>
22
20
  #include <boost/unordered/detail/type_traits.hpp>
23
21
 
24
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
22
+ #include <boost/container_hash/hash.hpp>
23
+
25
24
  #include <initializer_list>
26
- #endif
27
25
 
28
26
  #if defined(BOOST_MSVC)
29
27
  #pragma warning(push)
@@ -40,9 +38,6 @@ namespace boost {
40
38
  namespace unordered {
41
39
  template <class T, class H, class P, class A> class unordered_set
42
40
  {
43
- #if defined(BOOST_UNORDERED_USE_MOVE)
44
- BOOST_COPYABLE_AND_MOVABLE(unordered_set)
45
- #endif
46
41
  template <typename, typename, typename, typename>
47
42
  friend class unordered_multiset;
48
43
 
@@ -95,28 +90,23 @@ namespace boost {
95
90
 
96
91
  unordered_set(unordered_set const&);
97
92
 
98
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
99
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
100
- unordered_set(BOOST_RV_REF(unordered_set) other)
101
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
93
+ unordered_set(unordered_set&& other)
94
+ noexcept(table::nothrow_move_constructible)
102
95
  : table_(other.table_, boost::unordered::detail::move_tag())
103
96
  {
104
97
  // The move is done in table_
105
98
  }
106
- #endif
107
99
 
108
100
  explicit unordered_set(allocator_type const&);
109
101
 
110
102
  unordered_set(unordered_set const&, allocator_type const&);
111
103
 
112
- unordered_set(BOOST_RV_REF(unordered_set), allocator_type const&);
104
+ unordered_set(unordered_set&&, allocator_type const&);
113
105
 
114
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
115
106
  unordered_set(std::initializer_list<value_type>,
116
107
  size_type = boost::unordered::detail::default_bucket_count,
117
108
  const hasher& = hasher(), const key_equal& l = key_equal(),
118
109
  const allocator_type& = allocator_type());
119
- #endif
120
110
 
121
111
  explicit unordered_set(size_type, const allocator_type&);
122
112
 
@@ -132,7 +122,6 @@ namespace boost {
132
122
  unordered_set(
133
123
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
134
124
 
135
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
136
125
  unordered_set(std::initializer_list<value_type>, const allocator_type&);
137
126
 
138
127
  unordered_set(
@@ -140,283 +129,139 @@ namespace boost {
140
129
 
141
130
  unordered_set(std::initializer_list<value_type>, size_type, const hasher&,
142
131
  const allocator_type&);
143
- #endif
144
132
 
145
133
  // Destructor
146
134
 
147
- ~unordered_set() BOOST_NOEXCEPT;
135
+ ~unordered_set() noexcept;
148
136
 
149
- // Assign
137
+ // Assign
150
138
 
151
- #if defined(BOOST_UNORDERED_USE_MOVE)
152
- unordered_set& operator=(BOOST_COPY_ASSIGN_REF(unordered_set) x)
153
- {
154
- table_.assign(x.table_, boost::unordered::detail::true_type());
155
- return *this;
156
- }
157
-
158
- unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
159
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
160
- boost::is_nothrow_move_assignable<H>::value&&
161
- boost::is_nothrow_move_assignable<P>::value)
162
- {
163
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
164
- return *this;
165
- }
166
- #else
167
139
  unordered_set& operator=(unordered_set const& x)
168
140
  {
169
- table_.assign(x.table_, boost::unordered::detail::true_type());
141
+ table_.assign(x.table_, std::true_type());
170
142
  return *this;
171
143
  }
172
144
 
173
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
174
145
  unordered_set& operator=(unordered_set&& x)
175
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
176
- boost::is_nothrow_move_assignable<H>::value&&
177
- boost::is_nothrow_move_assignable<P>::value)
146
+ noexcept(value_allocator_traits::is_always_equal::value&&
147
+ std::is_nothrow_move_assignable<H>::value&&
148
+ std::is_nothrow_move_assignable<P>::value)
178
149
  {
179
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
150
+ table_.move_assign(x.table_, std::true_type());
180
151
  return *this;
181
152
  }
182
- #endif
183
- #endif
184
153
 
185
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
186
154
  unordered_set& operator=(std::initializer_list<value_type>);
187
- #endif
188
155
 
189
- allocator_type get_allocator() const BOOST_NOEXCEPT
156
+ allocator_type get_allocator() const noexcept
190
157
  {
191
- return table_.node_alloc();
158
+ return allocator_type(table_.node_alloc());
192
159
  }
193
160
 
194
161
  // iterators
195
162
 
196
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
163
+ iterator begin() noexcept { return iterator(table_.begin()); }
197
164
 
198
- const_iterator begin() const BOOST_NOEXCEPT
165
+ const_iterator begin() const noexcept
199
166
  {
200
167
  return const_iterator(table_.begin());
201
168
  }
202
169
 
203
- iterator end() BOOST_NOEXCEPT { return iterator(); }
170
+ iterator end() noexcept { return iterator(); }
204
171
 
205
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
172
+ const_iterator end() const noexcept { return const_iterator(); }
206
173
 
207
- const_iterator cbegin() const BOOST_NOEXCEPT
174
+ const_iterator cbegin() const noexcept
208
175
  {
209
176
  return const_iterator(table_.begin());
210
177
  }
211
178
 
212
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
179
+ const_iterator cend() const noexcept { return const_iterator(); }
213
180
 
214
181
  // size and capacity
215
182
 
216
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
183
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
217
184
  {
218
185
  return table_.size_ == 0;
219
186
  }
220
187
 
221
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
188
+ size_type size() const noexcept { return table_.size_; }
222
189
 
223
- size_type max_size() const BOOST_NOEXCEPT;
190
+ size_type max_size() const noexcept;
224
191
 
225
- // emplace
192
+ // emplace
226
193
 
227
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
228
-
229
- template <class... Args>
230
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
194
+ template <class... Args> std::pair<iterator, bool> emplace(Args&&... args)
231
195
  {
232
196
  return table_.emplace_unique(
233
- table::extractor::extract(boost::forward<Args>(args)...),
234
- boost::forward<Args>(args)...);
235
- }
236
-
237
- #else
238
-
239
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
240
-
241
- // 0 argument emplace requires special treatment in case
242
- // the container is instantiated with a value type that
243
- // doesn't have a default constructor.
244
-
245
- std::pair<iterator, bool> emplace(
246
- boost::unordered::detail::empty_emplace =
247
- boost::unordered::detail::empty_emplace(),
248
- value_type v = value_type())
249
- {
250
- return this->emplace(boost::move(v));
197
+ table::extractor::extract(std::forward<Args>(args)...),
198
+ std::forward<Args>(args)...);
251
199
  }
252
200
 
253
- #endif
254
-
255
- template <typename A0>
256
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
257
- {
258
- return table_.emplace_unique(
259
- table::extractor::extract(boost::forward<A0>(a0)),
260
- boost::unordered::detail::create_emplace_args(
261
- boost::forward<A0>(a0)));
262
- }
263
-
264
- template <typename A0, typename A1>
265
- std::pair<iterator, bool> emplace(
266
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
267
- {
268
- return table_.emplace_unique(
269
- table::extractor::extract(
270
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
271
- boost::unordered::detail::create_emplace_args(
272
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
273
- }
274
-
275
- template <typename A0, typename A1, typename A2>
276
- std::pair<iterator, bool> emplace(
277
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
278
- {
279
- return table_.emplace_unique(
280
- table::extractor::extract(
281
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
282
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
283
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
284
- }
285
-
286
- #endif
287
-
288
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
289
-
290
201
  template <class... Args>
291
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
292
- {
293
- return table_.emplace_hint_unique(hint,
294
- table::extractor::extract(boost::forward<Args>(args)...),
295
- boost::forward<Args>(args)...);
296
- }
297
-
298
- #else
299
-
300
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
301
-
302
- iterator emplace_hint(const_iterator hint,
303
- boost::unordered::detail::empty_emplace =
304
- boost::unordered::detail::empty_emplace(),
305
- value_type v = value_type())
306
- {
307
- return this->emplace_hint(hint, boost::move(v));
308
- }
309
-
310
- #endif
311
-
312
- template <typename A0>
313
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
202
+ iterator emplace_hint(const_iterator hint, Args&&... args)
314
203
  {
315
204
  return table_.emplace_hint_unique(hint,
316
- table::extractor::extract(boost::forward<A0>(a0)),
317
- boost::unordered::detail::create_emplace_args(
318
- boost::forward<A0>(a0)));
205
+ table::extractor::extract(std::forward<Args>(args)...),
206
+ std::forward<Args>(args)...);
319
207
  }
320
208
 
321
- template <typename A0, typename A1>
322
- iterator emplace_hint(
323
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
209
+ std::pair<iterator, bool> insert(value_type const& x)
324
210
  {
325
- return table_.emplace_hint_unique(hint,
326
- table::extractor::extract(
327
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
328
- boost::unordered::detail::create_emplace_args(
329
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
211
+ return this->emplace(x);
330
212
  }
331
213
 
332
- template <typename A0, typename A1, typename A2>
333
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
334
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
214
+ std::pair<iterator, bool> insert(value_type&& x)
335
215
  {
336
- return table_.emplace_hint_unique(hint,
337
- table::extractor::extract(
338
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
339
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
340
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
216
+ return this->emplace(std::move(x));
341
217
  }
342
218
 
343
- #endif
344
-
345
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
346
-
347
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
348
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
349
- std::pair<iterator, bool> emplace( \
350
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
351
- { \
352
- return table_.emplace_unique( \
353
- table::extractor::extract( \
354
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
355
- boost::unordered::detail::create_emplace_args( \
356
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
357
- } \
358
- \
359
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
360
- iterator emplace_hint( \
361
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
362
- { \
363
- return table_.emplace_hint_unique(hint, \
364
- table::extractor::extract( \
365
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
366
- boost::unordered::detail::create_emplace_args( \
367
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
368
- }
369
-
370
- BOOST_UNORDERED_EMPLACE(1, 4, _)
371
- BOOST_UNORDERED_EMPLACE(1, 5, _)
372
- BOOST_UNORDERED_EMPLACE(1, 6, _)
373
- BOOST_UNORDERED_EMPLACE(1, 7, _)
374
- BOOST_UNORDERED_EMPLACE(1, 8, _)
375
- BOOST_UNORDERED_EMPLACE(1, 9, _)
376
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
377
- BOOST_UNORDERED_EMPLACE, _)
378
-
379
- #undef BOOST_UNORDERED_EMPLACE
380
-
381
- #endif
382
-
383
- std::pair<iterator, bool> insert(value_type const& x)
219
+ template <class Key>
220
+ typename boost::enable_if_c<
221
+ detail::transparent_non_iterable<Key, unordered_set>::value,
222
+ std::pair<iterator, bool> >::type
223
+ insert(Key&& k)
384
224
  {
385
- return this->emplace(x);
225
+ return table_.try_emplace_unique(std::forward<Key>(k));
386
226
  }
387
227
 
388
- std::pair<iterator, bool> insert(BOOST_UNORDERED_RV_REF(value_type) x)
228
+ iterator insert(const_iterator hint, value_type const& x)
389
229
  {
390
- return this->emplace(boost::move(x));
230
+ return this->emplace_hint(hint, x);
391
231
  }
392
232
 
393
- iterator insert(const_iterator hint, value_type const& x)
233
+ iterator insert(const_iterator hint, value_type&& x)
394
234
  {
395
- return this->emplace_hint(hint, x);
235
+ return this->emplace_hint(hint, std::move(x));
396
236
  }
397
237
 
398
- iterator insert(const_iterator hint, BOOST_UNORDERED_RV_REF(value_type) x)
238
+ template <class Key>
239
+ typename boost::enable_if_c<
240
+ detail::transparent_non_iterable<Key, unordered_set>::value,
241
+ iterator>::type
242
+ insert(const_iterator hint, Key&& k)
399
243
  {
400
- return this->emplace_hint(hint, boost::move(x));
244
+ return table_.try_emplace_hint_unique(hint, std::forward<Key>(k));
401
245
  }
402
246
 
403
247
  template <class InputIt> void insert(InputIt, InputIt);
404
248
 
405
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
406
249
  void insert(std::initializer_list<value_type>);
407
- #endif
408
250
 
409
251
  // extract
410
252
 
411
253
  node_type extract(const_iterator position)
412
254
  {
413
255
  return node_type(
414
- table_.extract_by_iterator_unique(position), table_.node_alloc());
256
+ table_.extract_by_iterator_unique(position),
257
+ allocator_type(table_.node_alloc()));
415
258
  }
416
259
 
417
260
  node_type extract(const key_type& k)
418
261
  {
419
- return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
262
+ return node_type(
263
+ table_.extract_by_key_impl(k),
264
+ allocator_type(table_.node_alloc()));
420
265
  }
421
266
 
422
267
  template <class Key>
@@ -425,31 +270,23 @@ namespace boost {
425
270
  node_type>::type
426
271
  extract(const Key& k)
427
272
  {
428
- return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
273
+ return node_type(
274
+ table_.extract_by_key_impl(k),
275
+ allocator_type(table_.node_alloc()));
429
276
  }
430
277
 
431
- insert_return_type insert(BOOST_RV_REF(node_type) np)
278
+ insert_return_type insert(node_type&& np)
432
279
  {
433
280
  insert_return_type result;
434
281
  table_.move_insert_node_type_unique(np, result);
435
- return boost::move(result);
282
+ return result;
436
283
  }
437
284
 
438
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
285
+ iterator insert(const_iterator hint, node_type&& np)
439
286
  {
440
287
  return table_.move_insert_node_type_with_hint_unique(hint, np);
441
288
  }
442
289
 
443
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
444
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
445
- private:
446
- // Note: Use r-value node_type to insert.
447
- insert_return_type insert(node_type&);
448
- iterator insert(const_iterator, node_type& np);
449
-
450
- public:
451
- #endif
452
-
453
290
  iterator erase(const_iterator);
454
291
  size_type erase(const key_type&);
455
292
  iterator erase(const_iterator, const_iterator);
@@ -458,9 +295,9 @@ namespace boost {
458
295
  typename boost::enable_if_c<
459
296
  detail::transparent_non_iterable<Key, unordered_set>::value,
460
297
  size_type>::type
461
- erase(BOOST_FWD_REF(Key) k)
298
+ erase(Key&& k)
462
299
  {
463
- return table_.erase_key_unique_impl(boost::forward<Key>(k));
300
+ return table_.erase_key_unique_impl(std::forward<Key>(k));
464
301
  }
465
302
 
466
303
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
@@ -469,26 +306,22 @@ namespace boost {
469
306
  void erase_return_void(const_iterator it) { erase(it); }
470
307
 
471
308
  void swap(unordered_set&)
472
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
473
- boost::is_nothrow_swappable<H>::value&&
474
- boost::is_nothrow_swappable<P>::value);
475
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
309
+ noexcept(value_allocator_traits::is_always_equal::value&&
310
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
311
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
312
+ void clear() noexcept { table_.clear_impl(); }
476
313
 
477
314
  template <typename H2, typename P2>
478
315
  void merge(boost::unordered_set<T, H2, P2, A>& source);
479
316
 
480
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
481
317
  template <typename H2, typename P2>
482
318
  void merge(boost::unordered_set<T, H2, P2, A>&& source);
483
- #endif
484
319
 
485
320
  template <typename H2, typename P2>
486
321
  void merge(boost::unordered_multiset<T, H2, P2, A>& source);
487
322
 
488
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
489
323
  template <typename H2, typename P2>
490
324
  void merge(boost::unordered_multiset<T, H2, P2, A>&& source);
491
- #endif
492
325
 
493
326
  // observers
494
327
 
@@ -554,12 +387,9 @@ namespace boost {
554
387
 
555
388
  // bucket interface
556
389
 
557
- size_type bucket_count() const BOOST_NOEXCEPT
558
- {
559
- return table_.bucket_count();
560
- }
390
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
561
391
 
562
- size_type max_bucket_count() const BOOST_NOEXCEPT
392
+ size_type max_bucket_count() const noexcept
563
393
  {
564
394
  return table_.max_bucket_count();
565
395
  }
@@ -571,6 +401,14 @@ namespace boost {
571
401
  return table_.hash_to_bucket(table_.hash(k));
572
402
  }
573
403
 
404
+ template <class Key>
405
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
406
+ size_type>::type
407
+ bucket(Key&& k) const
408
+ {
409
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
410
+ }
411
+
574
412
  local_iterator begin(size_type n)
575
413
  {
576
414
  return local_iterator(table_.begin(n));
@@ -600,9 +438,9 @@ namespace boost {
600
438
 
601
439
  // hash policy
602
440
 
603
- float load_factor() const BOOST_NOEXCEPT;
604
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
605
- void max_load_factor(float) BOOST_NOEXCEPT;
441
+ float load_factor() const noexcept;
442
+ float max_load_factor() const noexcept { return table_.mlf_; }
443
+ void max_load_factor(float) noexcept;
606
444
  void rehash(size_type);
607
445
  void reserve(size_type);
608
446
 
@@ -614,6 +452,13 @@ namespace boost {
614
452
  #endif
615
453
  }; // class template unordered_set
616
454
 
455
+ template <class Archive, class K, class H, class P, class A>
456
+ void serialize(
457
+ Archive& ar, unordered_set<K, H, P, A>& c, unsigned int version)
458
+ {
459
+ detail::serialize_fca_container(ar, c, version);
460
+ }
461
+
617
462
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
618
463
 
619
464
  template <class InputIterator,
@@ -623,10 +468,10 @@ namespace boost {
623
468
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
624
469
  class Allocator = std::allocator<
625
470
  typename std::iterator_traits<InputIterator>::value_type>,
626
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
627
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
628
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
629
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
471
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
472
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
473
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
474
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
630
475
  unordered_set(InputIterator, InputIterator,
631
476
  std::size_t = boost::unordered::detail::default_bucket_count,
632
477
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
@@ -635,17 +480,17 @@ namespace boost {
635
480
 
636
481
  template <class T, class Hash = boost::hash<T>,
637
482
  class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
638
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
639
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
640
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
483
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
484
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
485
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
641
486
  unordered_set(std::initializer_list<T>,
642
487
  std::size_t = boost::unordered::detail::default_bucket_count,
643
488
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
644
489
  -> unordered_set<T, Hash, Pred, Allocator>;
645
490
 
646
491
  template <class InputIterator, class Allocator,
647
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
648
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
492
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
493
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
649
494
  unordered_set(InputIterator, InputIterator, std::size_t, Allocator)
650
495
  -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
651
496
  boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
@@ -653,9 +498,9 @@ namespace boost {
653
498
  Allocator>;
654
499
 
655
500
  template <class InputIterator, class Hash, class Allocator,
656
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
657
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
658
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
501
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
502
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
503
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
659
504
  unordered_set(InputIterator, InputIterator, std::size_t, Hash, Allocator)
660
505
  -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
661
506
  Hash,
@@ -663,19 +508,19 @@ namespace boost {
663
508
  Allocator>;
664
509
 
665
510
  template <class T, class Allocator,
666
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
511
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
667
512
  unordered_set(std::initializer_list<T>, std::size_t, Allocator)
668
513
  -> unordered_set<T, boost::hash<T>, std::equal_to<T>, Allocator>;
669
514
 
670
515
  template <class T, class Hash, class Allocator,
671
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
672
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
516
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
517
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
673
518
  unordered_set(std::initializer_list<T>, std::size_t, Hash, Allocator)
674
519
  -> unordered_set<T, Hash, std::equal_to<T>, Allocator>;
675
520
 
676
521
  template <class InputIterator, class Allocator,
677
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
678
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
522
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
523
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
679
524
  unordered_set(InputIterator, InputIterator, Allocator)
680
525
  -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
681
526
  boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
@@ -683,7 +528,7 @@ namespace boost {
683
528
  Allocator>;
684
529
 
685
530
  template <class T, class Allocator,
686
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
531
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
687
532
  unordered_set(std::initializer_list<T>, Allocator)
688
533
  -> unordered_set<T, boost::hash<T>, std::equal_to<T>, Allocator>;
689
534
 
@@ -691,9 +536,6 @@ namespace boost {
691
536
 
692
537
  template <class T, class H, class P, class A> class unordered_multiset
693
538
  {
694
- #if defined(BOOST_UNORDERED_USE_MOVE)
695
- BOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
696
- #endif
697
539
  template <typename, typename, typename, typename>
698
540
  friend class unordered_set;
699
541
 
@@ -745,29 +587,23 @@ namespace boost {
745
587
 
746
588
  unordered_multiset(unordered_multiset const&);
747
589
 
748
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
749
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
750
- unordered_multiset(BOOST_RV_REF(unordered_multiset) other)
751
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
590
+ unordered_multiset(unordered_multiset&& other)
591
+ noexcept(table::nothrow_move_constructible)
752
592
  : table_(other.table_, boost::unordered::detail::move_tag())
753
593
  {
754
594
  // The move is done in table_
755
595
  }
756
- #endif
757
596
 
758
597
  explicit unordered_multiset(allocator_type const&);
759
598
 
760
599
  unordered_multiset(unordered_multiset const&, allocator_type const&);
761
600
 
762
- unordered_multiset(
763
- BOOST_RV_REF(unordered_multiset), allocator_type const&);
601
+ unordered_multiset(unordered_multiset&&, allocator_type const&);
764
602
 
765
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
766
603
  unordered_multiset(std::initializer_list<value_type>,
767
604
  size_type = boost::unordered::detail::default_bucket_count,
768
605
  const hasher& = hasher(), const key_equal& l = key_equal(),
769
606
  const allocator_type& = allocator_type());
770
- #endif
771
607
 
772
608
  explicit unordered_multiset(size_type, const allocator_type&);
773
609
 
@@ -784,7 +620,6 @@ namespace boost {
784
620
  unordered_multiset(
785
621
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
786
622
 
787
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
788
623
  unordered_multiset(
789
624
  std::initializer_list<value_type>, const allocator_type&);
790
625
 
@@ -793,265 +628,99 @@ namespace boost {
793
628
 
794
629
  unordered_multiset(std::initializer_list<value_type>, size_type,
795
630
  const hasher&, const allocator_type&);
796
- #endif
797
631
 
798
632
  // Destructor
799
633
 
800
- ~unordered_multiset() BOOST_NOEXCEPT;
801
-
802
- // Assign
803
-
804
- #if defined(BOOST_UNORDERED_USE_MOVE)
805
- unordered_multiset& operator=(BOOST_COPY_ASSIGN_REF(unordered_multiset) x)
806
- {
807
- table_.assign(x.table_, boost::unordered::detail::false_type());
808
- return *this;
809
- }
634
+ ~unordered_multiset() noexcept;
810
635
 
811
- unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
812
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
813
- boost::is_nothrow_move_assignable<H>::value&&
814
- boost::is_nothrow_move_assignable<P>::value)
815
- {
816
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
817
- return *this;
818
- }
819
- #else
636
+ // Assign
820
637
  unordered_multiset& operator=(unordered_multiset const& x)
821
638
  {
822
- table_.assign(x.table_, boost::unordered::detail::false_type());
639
+ table_.assign(x.table_, std::false_type());
823
640
  return *this;
824
641
  }
825
642
 
826
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
827
643
  unordered_multiset& operator=(unordered_multiset&& x)
828
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
829
- boost::is_nothrow_move_assignable<H>::value&&
830
- boost::is_nothrow_move_assignable<P>::value)
644
+ noexcept(value_allocator_traits::is_always_equal::value&&
645
+ std::is_nothrow_move_assignable<H>::value&&
646
+ std::is_nothrow_move_assignable<P>::value)
831
647
  {
832
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
648
+ table_.move_assign(x.table_, std::false_type());
833
649
  return *this;
834
650
  }
835
- #endif
836
- #endif
837
651
 
838
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
839
652
  unordered_multiset& operator=(std::initializer_list<value_type>);
840
- #endif
841
653
 
842
- allocator_type get_allocator() const BOOST_NOEXCEPT
654
+ allocator_type get_allocator() const noexcept
843
655
  {
844
- return table_.node_alloc();
656
+ return allocator_type(table_.node_alloc());
845
657
  }
846
658
 
847
659
  // iterators
848
660
 
849
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
661
+ iterator begin() noexcept { return iterator(table_.begin()); }
850
662
 
851
- const_iterator begin() const BOOST_NOEXCEPT
663
+ const_iterator begin() const noexcept
852
664
  {
853
665
  return const_iterator(table_.begin());
854
666
  }
855
667
 
856
- iterator end() BOOST_NOEXCEPT { return iterator(); }
668
+ iterator end() noexcept { return iterator(); }
857
669
 
858
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
670
+ const_iterator end() const noexcept { return const_iterator(); }
859
671
 
860
- const_iterator cbegin() const BOOST_NOEXCEPT
672
+ const_iterator cbegin() const noexcept
861
673
  {
862
674
  return const_iterator(table_.begin());
863
675
  }
864
676
 
865
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
677
+ const_iterator cend() const noexcept { return const_iterator(); }
866
678
 
867
679
  // size and capacity
868
680
 
869
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
681
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
870
682
  {
871
683
  return table_.size_ == 0;
872
684
  }
873
685
 
874
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
686
+ size_type size() const noexcept { return table_.size_; }
875
687
 
876
- size_type max_size() const BOOST_NOEXCEPT;
688
+ size_type max_size() const noexcept;
877
689
 
878
- // emplace
690
+ // emplace
879
691
 
880
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
881
-
882
- template <class... Args> iterator emplace(BOOST_FWD_REF(Args)... args)
692
+ template <class... Args> iterator emplace(Args&&... args)
883
693
  {
884
694
  return iterator(table_.emplace_equiv(
885
695
  boost::unordered::detail::func::construct_node_from_args(
886
- table_.node_alloc(), boost::forward<Args>(args)...)));
887
- }
888
-
889
- #else
890
-
891
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
892
-
893
- // 0 argument emplace requires special treatment in case
894
- // the container is instantiated with a value type that
895
- // doesn't have a default constructor.
896
-
897
- iterator emplace(boost::unordered::detail::empty_emplace =
898
- boost::unordered::detail::empty_emplace(),
899
- value_type v = value_type())
900
- {
901
- return this->emplace(boost::move(v));
696
+ table_.node_alloc(), std::forward<Args>(args)...)));
902
697
  }
903
698
 
904
- #endif
905
-
906
- template <typename A0> iterator emplace(BOOST_FWD_REF(A0) a0)
907
- {
908
- return iterator(table_.emplace_equiv(
909
- boost::unordered::detail::func::construct_node_from_args(
910
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
911
- boost::forward<A0>(a0)))));
912
- }
913
-
914
- template <typename A0, typename A1>
915
- iterator emplace(BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
916
- {
917
- return iterator(table_.emplace_equiv(
918
- boost::unordered::detail::func::construct_node_from_args(
919
- table_.node_alloc(),
920
- boost::unordered::detail::create_emplace_args(
921
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
922
- }
923
-
924
- template <typename A0, typename A1, typename A2>
925
- iterator emplace(
926
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
927
- {
928
- return iterator(table_.emplace_equiv(
929
- boost::unordered::detail::func::construct_node_from_args(
930
- table_.node_alloc(),
931
- boost::unordered::detail::create_emplace_args(
932
- boost::forward<A0>(a0), boost::forward<A1>(a1),
933
- boost::forward<A2>(a2)))));
934
- }
935
-
936
- #endif
937
-
938
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
939
-
940
699
  template <class... Args>
941
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
700
+ iterator emplace_hint(const_iterator hint, Args&&... args)
942
701
  {
943
702
  return iterator(table_.emplace_hint_equiv(
944
703
  hint, boost::unordered::detail::func::construct_node_from_args(
945
- table_.node_alloc(), boost::forward<Args>(args)...)));
704
+ table_.node_alloc(), std::forward<Args>(args)...)));
946
705
  }
947
706
 
948
- #else
949
-
950
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
951
-
952
- iterator emplace_hint(const_iterator hint,
953
- boost::unordered::detail::empty_emplace =
954
- boost::unordered::detail::empty_emplace(),
955
- value_type v = value_type())
956
- {
957
- return this->emplace_hint(hint, boost::move(v));
958
- }
959
-
960
- #endif
961
-
962
- template <typename A0>
963
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
964
- {
965
- return iterator(table_.emplace_hint_equiv(hint,
966
- boost::unordered::detail::func::construct_node_from_args(
967
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
968
- boost::forward<A0>(a0)))));
969
- }
970
-
971
- template <typename A0, typename A1>
972
- iterator emplace_hint(
973
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
974
- {
975
- return iterator(table_.emplace_hint_equiv(
976
- hint, boost::unordered::detail::func::construct_node_from_args(
977
- table_.node_alloc(),
978
- boost::unordered::detail::create_emplace_args(
979
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
980
- }
981
-
982
- template <typename A0, typename A1, typename A2>
983
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
984
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
985
- {
986
- return iterator(table_.emplace_hint_equiv(
987
- hint, boost::unordered::detail::func::construct_node_from_args(
988
- table_.node_alloc(),
989
- boost::unordered::detail::create_emplace_args(
990
- boost::forward<A0>(a0), boost::forward<A1>(a1),
991
- boost::forward<A2>(a2)))));
992
- }
993
-
994
- #endif
995
-
996
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
997
-
998
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
999
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1000
- iterator emplace(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1001
- { \
1002
- return iterator(table_.emplace_equiv( \
1003
- boost::unordered::detail::func::construct_node_from_args( \
1004
- table_.node_alloc(), \
1005
- boost::unordered::detail::create_emplace_args( \
1006
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1007
- } \
1008
- \
1009
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1010
- iterator emplace_hint( \
1011
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1012
- { \
1013
- return iterator(table_.emplace_hint_equiv( \
1014
- hint, boost::unordered::detail::func::construct_node_from_args( \
1015
- table_.node_alloc(), \
1016
- boost::unordered::detail::create_emplace_args( \
1017
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1018
- }
1019
-
1020
- BOOST_UNORDERED_EMPLACE(1, 4, _)
1021
- BOOST_UNORDERED_EMPLACE(1, 5, _)
1022
- BOOST_UNORDERED_EMPLACE(1, 6, _)
1023
- BOOST_UNORDERED_EMPLACE(1, 7, _)
1024
- BOOST_UNORDERED_EMPLACE(1, 8, _)
1025
- BOOST_UNORDERED_EMPLACE(1, 9, _)
1026
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
1027
- BOOST_UNORDERED_EMPLACE, _)
1028
-
1029
- #undef BOOST_UNORDERED_EMPLACE
1030
-
1031
- #endif
1032
-
1033
707
  iterator insert(value_type const& x) { return this->emplace(x); }
1034
708
 
1035
- iterator insert(BOOST_UNORDERED_RV_REF(value_type) x)
1036
- {
1037
- return this->emplace(boost::move(x));
1038
- }
709
+ iterator insert(value_type&& x) { return this->emplace(std::move(x)); }
1039
710
 
1040
711
  iterator insert(const_iterator hint, value_type const& x)
1041
712
  {
1042
713
  return this->emplace_hint(hint, x);
1043
714
  }
1044
715
 
1045
- iterator insert(const_iterator hint, BOOST_UNORDERED_RV_REF(value_type) x)
716
+ iterator insert(const_iterator hint, value_type&& x)
1046
717
  {
1047
- return this->emplace_hint(hint, boost::move(x));
718
+ return this->emplace_hint(hint, std::move(x));
1048
719
  }
1049
720
 
1050
721
  template <class InputIt> void insert(InputIt, InputIt);
1051
722
 
1052
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1053
723
  void insert(std::initializer_list<value_type>);
1054
- #endif
1055
724
 
1056
725
  // extract
1057
726
 
@@ -1075,26 +744,16 @@ namespace boost {
1075
744
  return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
1076
745
  }
1077
746
 
1078
- iterator insert(BOOST_RV_REF(node_type) np)
747
+ iterator insert(node_type&& np)
1079
748
  {
1080
749
  return table_.move_insert_node_type_equiv(np);
1081
750
  }
1082
751
 
1083
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
752
+ iterator insert(const_iterator hint, node_type&& np)
1084
753
  {
1085
754
  return table_.move_insert_node_type_with_hint_equiv(hint, np);
1086
755
  }
1087
756
 
1088
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
1089
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
1090
- private:
1091
- // Note: Use r-value node_type to insert.
1092
- iterator insert(node_type&);
1093
- iterator insert(const_iterator, node_type& np);
1094
-
1095
- public:
1096
- #endif
1097
-
1098
757
  iterator erase(const_iterator);
1099
758
  size_type erase(const key_type&);
1100
759
 
@@ -1114,26 +773,22 @@ namespace boost {
1114
773
  void erase_return_void(const_iterator it) { erase(it); }
1115
774
 
1116
775
  void swap(unordered_multiset&)
1117
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1118
- boost::is_nothrow_swappable<H>::value&&
1119
- boost::is_nothrow_swappable<P>::value);
1120
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
776
+ noexcept(value_allocator_traits::is_always_equal::value&&
777
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
778
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
779
+ void clear() noexcept { table_.clear_impl(); }
1121
780
 
1122
781
  template <typename H2, typename P2>
1123
782
  void merge(boost::unordered_multiset<T, H2, P2, A>& source);
1124
783
 
1125
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1126
784
  template <typename H2, typename P2>
1127
785
  void merge(boost::unordered_multiset<T, H2, P2, A>&& source);
1128
- #endif
1129
786
 
1130
787
  template <typename H2, typename P2>
1131
788
  void merge(boost::unordered_set<T, H2, P2, A>& source);
1132
789
 
1133
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1134
790
  template <typename H2, typename P2>
1135
791
  void merge(boost::unordered_set<T, H2, P2, A>&& source);
1136
- #endif
1137
792
 
1138
793
  // observers
1139
794
 
@@ -1195,12 +850,9 @@ namespace boost {
1195
850
 
1196
851
  // bucket interface
1197
852
 
1198
- size_type bucket_count() const BOOST_NOEXCEPT
1199
- {
1200
- return table_.bucket_count();
1201
- }
853
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
1202
854
 
1203
- size_type max_bucket_count() const BOOST_NOEXCEPT
855
+ size_type max_bucket_count() const noexcept
1204
856
  {
1205
857
  return table_.max_bucket_count();
1206
858
  }
@@ -1212,6 +864,14 @@ namespace boost {
1212
864
  return table_.hash_to_bucket(table_.hash(k));
1213
865
  }
1214
866
 
867
+ template <class Key>
868
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
869
+ size_type>::type
870
+ bucket(Key&& k) const
871
+ {
872
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
873
+ }
874
+
1215
875
  local_iterator begin(size_type n)
1216
876
  {
1217
877
  return local_iterator(table_.begin(n));
@@ -1241,9 +901,9 @@ namespace boost {
1241
901
 
1242
902
  // hash policy
1243
903
 
1244
- float load_factor() const BOOST_NOEXCEPT;
1245
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
1246
- void max_load_factor(float) BOOST_NOEXCEPT;
904
+ float load_factor() const noexcept;
905
+ float max_load_factor() const noexcept { return table_.mlf_; }
906
+ void max_load_factor(float) noexcept;
1247
907
  void rehash(size_type);
1248
908
  void reserve(size_type);
1249
909
 
@@ -1255,6 +915,13 @@ namespace boost {
1255
915
  #endif
1256
916
  }; // class template unordered_multiset
1257
917
 
918
+ template <class Archive, class K, class H, class P, class A>
919
+ void serialize(
920
+ Archive& ar, unordered_multiset<K, H, P, A>& c, unsigned int version)
921
+ {
922
+ detail::serialize_fca_container(ar, c, version);
923
+ }
924
+
1258
925
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
1259
926
 
1260
927
  template <class InputIterator,
@@ -1264,10 +931,10 @@ namespace boost {
1264
931
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
1265
932
  class Allocator = std::allocator<
1266
933
  typename std::iterator_traits<InputIterator>::value_type>,
1267
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1268
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1269
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1270
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
934
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
935
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
936
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
937
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1271
938
  unordered_multiset(InputIterator, InputIterator,
1272
939
  std::size_t = boost::unordered::detail::default_bucket_count,
1273
940
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
@@ -1277,17 +944,17 @@ namespace boost {
1277
944
 
1278
945
  template <class T, class Hash = boost::hash<T>,
1279
946
  class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
1280
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1281
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1282
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
947
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
948
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
949
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1283
950
  unordered_multiset(std::initializer_list<T>,
1284
951
  std::size_t = boost::unordered::detail::default_bucket_count,
1285
952
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1286
953
  -> unordered_multiset<T, Hash, Pred, Allocator>;
1287
954
 
1288
955
  template <class InputIterator, class Allocator,
1289
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1290
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
956
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
957
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1291
958
  unordered_multiset(InputIterator, InputIterator, std::size_t, Allocator)
1292
959
  -> unordered_multiset<
1293
960
  typename std::iterator_traits<InputIterator>::value_type,
@@ -1296,9 +963,9 @@ namespace boost {
1296
963
  Allocator>;
1297
964
 
1298
965
  template <class InputIterator, class Hash, class Allocator,
1299
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1300
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1301
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
966
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
967
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
968
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1302
969
  unordered_multiset(
1303
970
  InputIterator, InputIterator, std::size_t, Hash, Allocator)
1304
971
  -> unordered_multiset<
@@ -1307,19 +974,19 @@ namespace boost {
1307
974
  Allocator>;
1308
975
 
1309
976
  template <class T, class Allocator,
1310
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
977
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1311
978
  unordered_multiset(std::initializer_list<T>, std::size_t, Allocator)
1312
979
  -> unordered_multiset<T, boost::hash<T>, std::equal_to<T>, Allocator>;
1313
980
 
1314
981
  template <class T, class Hash, class Allocator,
1315
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1316
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
982
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
983
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1317
984
  unordered_multiset(std::initializer_list<T>, std::size_t, Hash, Allocator)
1318
985
  -> unordered_multiset<T, Hash, std::equal_to<T>, Allocator>;
1319
986
 
1320
987
  template <class InputIterator, class Allocator,
1321
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1322
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
988
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
989
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1323
990
  unordered_multiset(InputIterator, InputIterator, Allocator)
1324
991
  -> unordered_multiset<
1325
992
  typename std::iterator_traits<InputIterator>::value_type,
@@ -1328,7 +995,7 @@ namespace boost {
1328
995
  Allocator>;
1329
996
 
1330
997
  template <class T, class Allocator,
1331
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
998
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1332
999
  unordered_multiset(std::initializer_list<T>, Allocator)
1333
1000
  -> unordered_multiset<T, boost::hash<T>, std::equal_to<T>, Allocator>;
1334
1001
 
@@ -1363,8 +1030,7 @@ namespace boost {
1363
1030
  select_on_container_copy_construction(other.get_allocator()))
1364
1031
  {
1365
1032
  if (other.size()) {
1366
- table_.copy_buckets(
1367
- other.table_, boost::unordered::detail::true_type());
1033
+ table_.copy_buckets(other.table_, std::true_type());
1368
1034
  }
1369
1035
  }
1370
1036
 
@@ -1381,21 +1047,18 @@ namespace boost {
1381
1047
  : table_(other.table_, a)
1382
1048
  {
1383
1049
  if (other.table_.size_) {
1384
- table_.copy_buckets(
1385
- other.table_, boost::unordered::detail::true_type());
1050
+ table_.copy_buckets(other.table_, std::true_type());
1386
1051
  }
1387
1052
  }
1388
1053
 
1389
1054
  template <class T, class H, class P, class A>
1390
1055
  unordered_set<T, H, P, A>::unordered_set(
1391
- BOOST_RV_REF(unordered_set) other, allocator_type const& a)
1056
+ unordered_set&& other, allocator_type const& a)
1392
1057
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1393
1058
  {
1394
1059
  table_.move_construct_buckets(other.table_);
1395
1060
  }
1396
1061
 
1397
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1398
-
1399
1062
  template <class T, class H, class P, class A>
1400
1063
  unordered_set<T, H, P, A>::unordered_set(
1401
1064
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1407,8 +1070,6 @@ namespace boost {
1407
1070
  this->insert(list.begin(), list.end());
1408
1071
  }
1409
1072
 
1410
- #endif
1411
-
1412
1073
  template <class T, class H, class P, class A>
1413
1074
  unordered_set<T, H, P, A>::unordered_set(
1414
1075
  size_type n, const allocator_type& a)
@@ -1454,8 +1115,6 @@ namespace boost {
1454
1115
  this->insert(f, l);
1455
1116
  }
1456
1117
 
1457
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1458
-
1459
1118
  template <class T, class H, class P, class A>
1460
1119
  unordered_set<T, H, P, A>::unordered_set(
1461
1120
  std::initializer_list<value_type> list, const allocator_type& a)
@@ -1488,15 +1147,11 @@ namespace boost {
1488
1147
  this->insert(list.begin(), list.end());
1489
1148
  }
1490
1149
 
1491
- #endif
1492
-
1493
1150
  template <class T, class H, class P, class A>
1494
- unordered_set<T, H, P, A>::~unordered_set() BOOST_NOEXCEPT
1151
+ unordered_set<T, H, P, A>::~unordered_set() noexcept
1495
1152
  {
1496
1153
  }
1497
1154
 
1498
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1499
-
1500
1155
  template <class T, class H, class P, class A>
1501
1156
  unordered_set<T, H, P, A>& unordered_set<T, H, P, A>::operator=(
1502
1157
  std::initializer_list<value_type> list)
@@ -1506,12 +1161,10 @@ namespace boost {
1506
1161
  return *this;
1507
1162
  }
1508
1163
 
1509
- #endif
1510
-
1511
1164
  // size and capacity
1512
1165
 
1513
1166
  template <class T, class H, class P, class A>
1514
- std::size_t unordered_set<T, H, P, A>::max_size() const BOOST_NOEXCEPT
1167
+ std::size_t unordered_set<T, H, P, A>::max_size() const noexcept
1515
1168
  {
1516
1169
  using namespace std;
1517
1170
 
@@ -1534,14 +1187,12 @@ namespace boost {
1534
1187
  }
1535
1188
  }
1536
1189
 
1537
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1538
1190
  template <class T, class H, class P, class A>
1539
1191
  void unordered_set<T, H, P, A>::insert(
1540
1192
  std::initializer_list<value_type> list)
1541
1193
  {
1542
1194
  this->insert(list.begin(), list.end());
1543
1195
  }
1544
- #endif
1545
1196
 
1546
1197
  template <class T, class H, class P, class A>
1547
1198
  typename unordered_set<T, H, P, A>::iterator
@@ -1566,9 +1217,9 @@ namespace boost {
1566
1217
 
1567
1218
  template <class T, class H, class P, class A>
1568
1219
  void unordered_set<T, H, P, A>::swap(unordered_set& other)
1569
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1570
- boost::is_nothrow_swappable<H>::value&&
1571
- boost::is_nothrow_swappable<P>::value)
1220
+ noexcept(value_allocator_traits::is_always_equal::value&&
1221
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1222
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
1572
1223
  {
1573
1224
  table_.swap(other.table_);
1574
1225
  }
@@ -1597,7 +1248,6 @@ namespace boost {
1597
1248
  table_.merge_unique(source.table_);
1598
1249
  }
1599
1250
 
1600
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1601
1251
  template <class T, class H, class P, class A>
1602
1252
  template <typename H2, typename P2>
1603
1253
  void unordered_set<T, H, P, A>::merge(
@@ -1605,7 +1255,6 @@ namespace boost {
1605
1255
  {
1606
1256
  table_.merge_unique(source.table_);
1607
1257
  }
1608
- #endif
1609
1258
 
1610
1259
  template <class T, class H, class P, class A>
1611
1260
  template <typename H2, typename P2>
@@ -1615,7 +1264,6 @@ namespace boost {
1615
1264
  table_.merge_unique(source.table_);
1616
1265
  }
1617
1266
 
1618
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1619
1267
  template <class T, class H, class P, class A>
1620
1268
  template <typename H2, typename P2>
1621
1269
  void unordered_set<T, H, P, A>::merge(
@@ -1623,7 +1271,6 @@ namespace boost {
1623
1271
  {
1624
1272
  table_.merge_unique(source.table_);
1625
1273
  }
1626
- #endif
1627
1274
 
1628
1275
  // lookup
1629
1276
 
@@ -1674,7 +1321,7 @@ namespace boost {
1674
1321
  // hash policy
1675
1322
 
1676
1323
  template <class T, class H, class P, class A>
1677
- float unordered_set<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1324
+ float unordered_set<T, H, P, A>::load_factor() const noexcept
1678
1325
  {
1679
1326
  if (table_.size_ == 0) {
1680
1327
  return 0.0f;
@@ -1686,7 +1333,7 @@ namespace boost {
1686
1333
  }
1687
1334
 
1688
1335
  template <class T, class H, class P, class A>
1689
- void unordered_set<T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1336
+ void unordered_set<T, H, P, A>::max_load_factor(float m) noexcept
1690
1337
  {
1691
1338
  table_.max_load_factor(m);
1692
1339
  }
@@ -1730,9 +1377,8 @@ namespace boost {
1730
1377
  }
1731
1378
 
1732
1379
  template <class T, class H, class P, class A>
1733
- inline void swap(
1734
- unordered_set<T, H, P, A>& m1, unordered_set<T, H, P, A>& m2)
1735
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1380
+ inline void swap(unordered_set<T, H, P, A>& m1,
1381
+ unordered_set<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
1736
1382
  {
1737
1383
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1738
1384
  struct dummy
@@ -1782,8 +1428,7 @@ namespace boost {
1782
1428
  select_on_container_copy_construction(other.get_allocator()))
1783
1429
  {
1784
1430
  if (other.table_.size_) {
1785
- table_.copy_buckets(
1786
- other.table_, boost::unordered::detail::false_type());
1431
+ table_.copy_buckets(other.table_, std::false_type());
1787
1432
  }
1788
1433
  }
1789
1434
 
@@ -1800,21 +1445,18 @@ namespace boost {
1800
1445
  : table_(other.table_, a)
1801
1446
  {
1802
1447
  if (other.table_.size_) {
1803
- table_.copy_buckets(
1804
- other.table_, boost::unordered::detail::false_type());
1448
+ table_.copy_buckets(other.table_, std::false_type());
1805
1449
  }
1806
1450
  }
1807
1451
 
1808
1452
  template <class T, class H, class P, class A>
1809
1453
  unordered_multiset<T, H, P, A>::unordered_multiset(
1810
- BOOST_RV_REF(unordered_multiset) other, allocator_type const& a)
1454
+ unordered_multiset&& other, allocator_type const& a)
1811
1455
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1812
1456
  {
1813
1457
  table_.move_construct_buckets(other.table_);
1814
1458
  }
1815
1459
 
1816
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1817
-
1818
1460
  template <class T, class H, class P, class A>
1819
1461
  unordered_multiset<T, H, P, A>::unordered_multiset(
1820
1462
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1826,8 +1468,6 @@ namespace boost {
1826
1468
  this->insert(list.begin(), list.end());
1827
1469
  }
1828
1470
 
1829
- #endif
1830
-
1831
1471
  template <class T, class H, class P, class A>
1832
1472
  unordered_multiset<T, H, P, A>::unordered_multiset(
1833
1473
  size_type n, const allocator_type& a)
@@ -1873,8 +1513,6 @@ namespace boost {
1873
1513
  this->insert(f, l);
1874
1514
  }
1875
1515
 
1876
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1877
-
1878
1516
  template <class T, class H, class P, class A>
1879
1517
  unordered_multiset<T, H, P, A>::unordered_multiset(
1880
1518
  std::initializer_list<value_type> list, const allocator_type& a)
@@ -1907,15 +1545,11 @@ namespace boost {
1907
1545
  this->insert(list.begin(), list.end());
1908
1546
  }
1909
1547
 
1910
- #endif
1911
-
1912
1548
  template <class T, class H, class P, class A>
1913
- unordered_multiset<T, H, P, A>::~unordered_multiset() BOOST_NOEXCEPT
1549
+ unordered_multiset<T, H, P, A>::~unordered_multiset() noexcept
1914
1550
  {
1915
1551
  }
1916
1552
 
1917
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1918
-
1919
1553
  template <class T, class H, class P, class A>
1920
1554
  unordered_multiset<T, H, P, A>& unordered_multiset<T, H, P, A>::operator=(
1921
1555
  std::initializer_list<value_type> list)
@@ -1925,12 +1559,10 @@ namespace boost {
1925
1559
  return *this;
1926
1560
  }
1927
1561
 
1928
- #endif
1929
-
1930
1562
  // size and capacity
1931
1563
 
1932
1564
  template <class T, class H, class P, class A>
1933
- std::size_t unordered_multiset<T, H, P, A>::max_size() const BOOST_NOEXCEPT
1565
+ std::size_t unordered_multiset<T, H, P, A>::max_size() const noexcept
1934
1566
  {
1935
1567
  using namespace std;
1936
1568
 
@@ -1950,14 +1582,12 @@ namespace boost {
1950
1582
  table_.insert_range_equiv(first, last);
1951
1583
  }
1952
1584
 
1953
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1954
1585
  template <class T, class H, class P, class A>
1955
1586
  void unordered_multiset<T, H, P, A>::insert(
1956
1587
  std::initializer_list<value_type> list)
1957
1588
  {
1958
1589
  this->insert(list.begin(), list.end());
1959
1590
  }
1960
- #endif
1961
1591
 
1962
1592
  template <class T, class H, class P, class A>
1963
1593
  typename unordered_multiset<T, H, P, A>::iterator
@@ -1984,9 +1614,9 @@ namespace boost {
1984
1614
 
1985
1615
  template <class T, class H, class P, class A>
1986
1616
  void unordered_multiset<T, H, P, A>::swap(unordered_multiset& other)
1987
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1988
- boost::is_nothrow_swappable<H>::value&&
1989
- boost::is_nothrow_swappable<P>::value)
1617
+ noexcept(value_allocator_traits::is_always_equal::value&&
1618
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1619
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
1990
1620
  {
1991
1621
  table_.swap(other.table_);
1992
1622
  }
@@ -2017,7 +1647,6 @@ namespace boost {
2017
1647
  }
2018
1648
  }
2019
1649
 
2020
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2021
1650
  template <class T, class H, class P, class A>
2022
1651
  template <typename H2, typename P2>
2023
1652
  void unordered_multiset<T, H, P, A>::merge(
@@ -2027,7 +1656,6 @@ namespace boost {
2027
1656
  insert(source.extract(source.begin()));
2028
1657
  }
2029
1658
  }
2030
- #endif
2031
1659
 
2032
1660
  template <class T, class H, class P, class A>
2033
1661
  template <typename H2, typename P2>
@@ -2039,7 +1667,6 @@ namespace boost {
2039
1667
  }
2040
1668
  }
2041
1669
 
2042
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2043
1670
  template <class T, class H, class P, class A>
2044
1671
  template <typename H2, typename P2>
2045
1672
  void unordered_multiset<T, H, P, A>::merge(
@@ -2049,7 +1676,6 @@ namespace boost {
2049
1676
  insert(source.extract(source.begin()));
2050
1677
  }
2051
1678
  }
2052
- #endif
2053
1679
 
2054
1680
  // lookup
2055
1681
 
@@ -2097,7 +1723,7 @@ namespace boost {
2097
1723
  // hash policy
2098
1724
 
2099
1725
  template <class T, class H, class P, class A>
2100
- float unordered_multiset<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1726
+ float unordered_multiset<T, H, P, A>::load_factor() const noexcept
2101
1727
  {
2102
1728
  if (table_.size_ == 0) {
2103
1729
  return 0.0f;
@@ -2109,7 +1735,7 @@ namespace boost {
2109
1735
  }
2110
1736
 
2111
1737
  template <class T, class H, class P, class A>
2112
- void unordered_multiset<T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1738
+ void unordered_multiset<T, H, P, A>::max_load_factor(float m) noexcept
2113
1739
  {
2114
1740
  table_.max_load_factor(m);
2115
1741
  }
@@ -2153,9 +1779,8 @@ namespace boost {
2153
1779
  }
2154
1780
 
2155
1781
  template <class T, class H, class P, class A>
2156
- inline void swap(
2157
- unordered_multiset<T, H, P, A>& m1, unordered_multiset<T, H, P, A>& m2)
2158
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1782
+ inline void swap(unordered_multiset<T, H, P, A>& m1,
1783
+ unordered_multiset<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
2159
1784
  {
2160
1785
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2161
1786
  struct dummy
@@ -2175,8 +1800,6 @@ namespace boost {
2175
1800
 
2176
1801
  template <typename N, typename T, typename A> class node_handle_set
2177
1802
  {
2178
- BOOST_MOVABLE_BUT_NOT_COPYABLE(node_handle_set)
2179
-
2180
1803
  template <typename Types> friend struct ::boost::unordered::detail::table;
2181
1804
  template <class T2, class H2, class P2, class A2>
2182
1805
  friend class unordered_set;
@@ -2209,10 +1832,9 @@ namespace boost {
2209
1832
  }
2210
1833
 
2211
1834
  public:
2212
- BOOST_CONSTEXPR node_handle_set() BOOST_NOEXCEPT : ptr_(),
2213
- has_alloc_(false)
2214
- {
2215
- }
1835
+ constexpr node_handle_set() noexcept : ptr_(), has_alloc_(false) {}
1836
+ node_handle_set(node_handle_set const&) = delete;
1837
+ node_handle_set& operator=(node_handle_set const&) = delete;
2216
1838
 
2217
1839
  ~node_handle_set()
2218
1840
  {
@@ -2223,14 +1845,14 @@ namespace boost {
2223
1845
  }
2224
1846
  }
2225
1847
 
2226
- node_handle_set(BOOST_RV_REF(node_handle_set) n) BOOST_NOEXCEPT
2227
- : ptr_(n.ptr_),
2228
- alloc_(boost::move(n.alloc_))
1848
+ node_handle_set(node_handle_set&& n) noexcept
1849
+ : ptr_(n.ptr_),
1850
+ alloc_(std::move(n.alloc_))
2229
1851
  {
2230
1852
  n.ptr_ = node_pointer();
2231
1853
  }
2232
1854
 
2233
- node_handle_set& operator=(BOOST_RV_REF(node_handle_set) n)
1855
+ node_handle_set& operator=(node_handle_set&& n)
2234
1856
  {
2235
1857
  BOOST_ASSERT(!alloc_.has_value() ||
2236
1858
  value_allocator_traits::
@@ -2247,7 +1869,7 @@ namespace boost {
2247
1869
  if (!alloc_.has_value() ||
2248
1870
  value_allocator_traits::propagate_on_container_move_assignment::
2249
1871
  value) {
2250
- alloc_ = boost::move(n.alloc_);
1872
+ alloc_ = std::move(n.alloc_);
2251
1873
  }
2252
1874
  ptr_ = n.ptr_;
2253
1875
  n.ptr_ = node_pointer();
@@ -2259,18 +1881,21 @@ namespace boost {
2259
1881
 
2260
1882
  allocator_type get_allocator() const { return *alloc_; }
2261
1883
 
2262
- BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
1884
+ explicit operator bool() const noexcept
1885
+ {
1886
+ return !this->operator!();
1887
+ }
2263
1888
 
2264
- bool operator!() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
1889
+ bool operator!() const noexcept { return ptr_ ? 0 : 1; }
2265
1890
 
2266
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
1891
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
2267
1892
  {
2268
1893
  return ptr_ ? 0 : 1;
2269
1894
  }
2270
1895
 
2271
- void swap(node_handle_set& n) BOOST_NOEXCEPT_IF(
2272
- value_allocator_traits::propagate_on_container_swap::value ||
2273
- value_allocator_traits::is_always_equal::value)
1896
+ void swap(node_handle_set& n)
1897
+ noexcept(value_allocator_traits::propagate_on_container_swap::value ||
1898
+ value_allocator_traits::is_always_equal::value)
2274
1899
  {
2275
1900
  BOOST_ASSERT(
2276
1901
  !alloc_.has_value() || !n.alloc_.has_value() ||
@@ -2278,60 +1903,70 @@ namespace boost {
2278
1903
  alloc_ == n.alloc_);
2279
1904
  if (value_allocator_traits::propagate_on_container_swap::value ||
2280
1905
  !alloc_.has_value() || !n.alloc_.has_value()) {
2281
- boost::swap(alloc_, n.alloc_);
1906
+ boost::core::invoke_swap(alloc_, n.alloc_);
2282
1907
  }
2283
- boost::swap(ptr_, n.ptr_);
1908
+ boost::core::invoke_swap(ptr_, n.ptr_);
2284
1909
  }
2285
1910
  };
2286
1911
 
2287
1912
  template <typename N, typename T, typename A>
2288
1913
  void swap(node_handle_set<N, T, A>& x, node_handle_set<N, T, A>& y)
2289
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(x.swap(y)))
1914
+ noexcept(noexcept(x.swap(y)))
2290
1915
  {
2291
1916
  x.swap(y);
2292
1917
  }
2293
1918
 
2294
1919
  template <class Iter, class NodeType> struct insert_return_type_set
2295
1920
  {
2296
- private:
2297
- BOOST_MOVABLE_BUT_NOT_COPYABLE(insert_return_type_set)
2298
-
2299
- // typedef typename boost::unordered::detail::rebind_wrap<A, T>::type
2300
- // value_allocator;
2301
- // typedef N node_;
2302
-
2303
1921
  public:
2304
1922
  Iter position;
2305
1923
  bool inserted;
2306
1924
  NodeType node;
2307
1925
 
2308
1926
  insert_return_type_set() : position(), inserted(false), node() {}
1927
+ insert_return_type_set(insert_return_type_set const&) = delete;
1928
+ insert_return_type_set& operator=(insert_return_type_set const&) = delete;
2309
1929
 
2310
- insert_return_type_set(BOOST_RV_REF(insert_return_type_set)
2311
- x) BOOST_NOEXCEPT : position(x.position),
2312
- inserted(x.inserted),
2313
- node(boost::move(x.node))
1930
+ insert_return_type_set(insert_return_type_set&& x) noexcept
1931
+ : position(x.position),
1932
+ inserted(x.inserted),
1933
+ node(std::move(x.node))
2314
1934
  {
2315
1935
  }
2316
1936
 
2317
- insert_return_type_set& operator=(BOOST_RV_REF(insert_return_type_set) x)
1937
+ insert_return_type_set& operator=(insert_return_type_set&& x)
2318
1938
  {
2319
1939
  inserted = x.inserted;
2320
1940
  position = x.position;
2321
- node = boost::move(x.node);
1941
+ node = std::move(x.node);
2322
1942
  return *this;
2323
1943
  }
2324
1944
  };
2325
1945
 
2326
1946
  template <class Iter, class NodeType>
2327
- void swap(
2328
- insert_return_type_set<Iter, NodeType>& x, insert_return_type_set<Iter, NodeType>& y)
1947
+ void swap(insert_return_type_set<Iter, NodeType>& x,
1948
+ insert_return_type_set<Iter, NodeType>& y)
2329
1949
  {
2330
- boost::swap(x.node, y.node);
2331
- boost::swap(x.inserted, y.inserted);
2332
- boost::swap(x.position, y.position);
1950
+ boost::core::invoke_swap(x.node, y.node);
1951
+ boost::core::invoke_swap(x.inserted, y.inserted);
1952
+ boost::core::invoke_swap(x.position, y.position);
2333
1953
  }
2334
1954
  } // namespace unordered
1955
+
1956
+ namespace serialization {
1957
+ template <class K, class H, class P, class A>
1958
+ struct version<boost::unordered_set<K, H, P, A> >
1959
+ {
1960
+ BOOST_STATIC_CONSTANT(int, value = 1);
1961
+ };
1962
+
1963
+ template <class K, class H, class P, class A>
1964
+ struct version<boost::unordered_multiset<K, H, P, A> >
1965
+ {
1966
+ BOOST_STATIC_CONSTANT(int, value = 1);
1967
+ };
1968
+ } // namespace serialization
1969
+
2335
1970
  } // namespace boost
2336
1971
 
2337
1972
  #if defined(BOOST_MSVC)