passenger 6.0.20 → 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 (1171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +41 -1
  3. data/CONTRIBUTORS +2 -0
  4. data/README.md +2 -2
  5. data/bin/passenger-install-nginx-module +4 -4
  6. data/build/support/cxx_dependency_map.rb +155 -54
  7. data/dev/copy_boost_headers +21 -7
  8. data/dev/nginx_version_sha256 +72 -0
  9. data/src/agent/AgentMain.cpp +2 -8
  10. data/src/agent/Core/AdminPanelConnector.h +2 -3
  11. data/src/agent/Core/ApiServer.h +1 -1
  12. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
  13. data/src/agent/Core/Config.h +6 -3
  14. data/src/agent/Core/Controller/AppResponse.h +0 -1
  15. data/src/agent/Core/Controller/Config.h +2 -2
  16. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  17. data/src/agent/Core/CoreMain.cpp +1 -0
  18. data/src/agent/Core/ResponseCache.h +3 -2
  19. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  20. data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
  22. data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
  23. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
  24. data/src/agent/MainFunctions.h +38 -0
  25. data/src/agent/Shared/ApiServerUtils.h +3 -2
  26. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  27. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
  28. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
  29. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
  30. data/src/agent/Watchdog/ApiServer.h +1 -1
  31. data/src/agent/Watchdog/Config.h +1 -1
  32. data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
  33. data/src/apache2_module/Hooks.cpp +26 -1
  34. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  35. data/src/cxx_supportlib/Constants.h +1 -1
  36. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  37. data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
  38. data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
  39. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  40. data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
  41. data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
  42. data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
  43. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
  44. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
  45. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
  46. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  47. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  48. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  49. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
  50. data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
  51. data/src/cxx_supportlib/ServerKit/Context.h +6 -0
  52. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  53. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +96 -64
  54. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
  55. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  56. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  57. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  58. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  59. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  60. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  61. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  62. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  63. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  64. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  65. data/src/cxx_supportlib/StaticString.h +3 -1
  66. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  67. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
  68. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
  69. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
  70. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
  71. data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
  72. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
  73. data/src/cxx_supportlib/Utils.cpp +1 -1
  74. data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
  75. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +61 -62
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +28 -46
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +42 -59
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +154 -883
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +19 -22
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +106 -153
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +75 -294
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +75 -283
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +89 -288
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +73 -275
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +170 -328
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +26 -39
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +32 -48
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +26 -39
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +53 -272
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +22 -26
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +188 -275
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +2 -3
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +91 -975
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +4 -4
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +4 -4
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +5 -6
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +73 -127
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +32 -11
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +2 -2
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +56 -101
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +56 -92
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +56 -101
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +3 -3
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +3 -3
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +9 -9
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +3 -3
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +3 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +7 -12
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +3 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +3 -3
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -4
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +3 -3
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +3 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +3 -4
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +12 -44
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +9 -9
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +4 -5
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +11 -16
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +4 -5
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +4 -5
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +4 -5
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +4 -5
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +4 -5
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +4 -5
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +11 -13
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +15 -15
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +4 -5
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +3 -4
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +3 -4
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +2 -2
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +21 -26
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +229 -1019
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +55 -33
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +55 -33
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -2
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +20 -20
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +130 -53
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +92 -9
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +15 -8
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +73 -25
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +12 -12
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +48 -48
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +39 -30
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +16 -17
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +14 -14
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +3 -2
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +2 -2
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +14 -20
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +11 -11
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +62 -137
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +22 -21
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +44 -36
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +32 -41
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +1 -1
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +36 -420
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +205 -421
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +1 -1
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +77 -423
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +25 -34
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +4 -4
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +4 -4
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +21 -26
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +10 -21
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +1 -27
  618. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -2
  619. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
  621. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  623. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  624. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  625. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  626. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  627. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -61
  633. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +229 -1740
  634. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  635. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +138 -289
  640. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -280
  642. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -7
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +1 -1
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
  650. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  651. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
  652. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  653. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +3 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +4 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
  657. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +4 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +3 -1
  659. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +3 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +3 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +4 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +3 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +3 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +3 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +7 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +40 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
  675. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
  676. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
  677. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +112 -112
  678. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +40 -40
  679. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  680. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +10 -10
  681. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
  682. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +30 -25
  683. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
  684. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +6 -6
  685. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +129 -129
  686. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
  687. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
  688. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
  689. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +32 -32
  690. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +6 -6
  691. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
  692. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  693. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +77 -77
  694. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  695. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +44 -1
  696. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +78 -78
  697. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -231
  698. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +85 -85
  699. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
  700. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -109
  701. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
  702. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
  703. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +18 -8
  704. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
  705. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  706. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -80
  707. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
  708. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -24
  709. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +115 -109
  710. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +101 -101
  711. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
  712. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +150 -190
  713. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +165 -165
  714. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
  716. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +84 -86
  717. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +5 -99
  718. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +20 -20
  719. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +25 -126
  720. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -21
  721. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
  722. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -41
  723. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +4 -10
  724. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
  725. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +20 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +19 -1
  727. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +9 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +1 -1
  729. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1 -1
  730. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +17 -3
  734. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -55
  736. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
  737. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  738. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  739. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  741. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +2 -2
  742. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  744. data/src/cxx_supportlib/vendor-modified/boost/{ratio → exception}/detail/requires_cxx11.hpp +7 -5
  745. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
  748. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  749. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
  750. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  752. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  753. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  754. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  756. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  757. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  758. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  759. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  760. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  762. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  763. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +21 -166
  764. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  765. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +267 -418
  766. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  767. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -63
  768. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  769. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
  770. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
  771. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
  773. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
  774. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
  775. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +2 -2
  776. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
  777. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
  778. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  779. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  781. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  782. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
  783. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  784. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  785. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  786. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
  789. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -21
  790. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  791. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
  792. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  793. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
  794. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  796. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  797. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  798. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  799. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -21
  800. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  801. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  802. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  803. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +32 -1
  804. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
  805. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
  806. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +56 -57
  807. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  809. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
  811. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
  812. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
  813. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
  814. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
  815. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +60 -61
  816. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
  817. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
  818. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
  819. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
  821. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
  822. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  823. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  824. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  825. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  827. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +611 -633
  828. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
  829. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
  830. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  831. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  832. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
  834. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  835. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  836. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -30
  837. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  838. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  840. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  841. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +1 -0
  843. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +1 -0
  844. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +5 -19
  845. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  846. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +1 -1
  847. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +15 -15
  848. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +10 -10
  849. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  851. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  853. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
  854. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +67 -17
  856. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +5 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  858. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +48 -48
  859. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +59 -0
  860. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
  861. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +3 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
  863. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +9 -0
  864. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +9 -0
  865. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  866. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +2 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  869. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +2 -2
  870. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  876. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  878. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  879. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  880. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  881. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -87
  883. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +0 -11
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +0 -11
  894. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +1 -8
  895. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  896. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -57
  897. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -29
  898. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +51 -124
  899. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
  900. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  901. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
  902. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  903. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  904. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +8 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
  906. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +5 -9
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
  908. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  909. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
  910. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
  911. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  917. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  918. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  934. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
  935. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  938. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  939. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  940. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  941. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  942. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  943. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  944. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +2 -54
  945. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  946. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  947. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  948. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  949. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  950. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  951. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -12
  952. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  953. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  954. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  955. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  956. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  957. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  958. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  959. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  960. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  961. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  962. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -203
  963. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +145 -103
  964. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +1 -4
  965. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
  966. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  971. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
  972. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +531 -91
  973. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +346 -194
  974. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +10 -6
  975. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +13 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +2 -8
  977. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +22 -15
  978. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +10 -13
  979. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +150 -55
  981. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +346 -1039
  982. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +8 -8
  984. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +95 -144
  986. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  988. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  992. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +123 -19
  993. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
  994. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +65 -46
  995. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -5
  996. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +41 -23
  997. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -5
  998. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +324 -997
  999. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -12
  1000. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +57 -46
  1001. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +1 -5
  1002. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +35 -24
  1003. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +1 -5
  1004. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +229 -629
  1005. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -13
  1006. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1007. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
  1008. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1009. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1010. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
  1011. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
  1012. data/src/helper-scripts/wsgi-loader.py +2 -2
  1013. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1014. data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
  1015. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  1016. data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
  1017. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -7
  1018. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
  1019. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
  1020. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1021. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
  1022. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  1023. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
  1024. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
  1025. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  1026. metadata +50 -149
  1027. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2575
  1028. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -452
  1029. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1030. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -91
  1031. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1032. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1033. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1034. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1035. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1036. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1037. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1038. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1039. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1040. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
  1041. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
  1042. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
  1043. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1044. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
  1045. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1046. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1064. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1065. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1066. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1067. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1068. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1069. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1070. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1071. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1072. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1073. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1074. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1075. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1076. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1077. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1078. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1079. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1080. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1081. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1082. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
  1083. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
  1084. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
  1085. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
  1086. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1087. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1088. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1089. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1090. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1091. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1092. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1093. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
  1094. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
  1095. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1096. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1097. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1098. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/is_same.hpp +0 -36
  1099. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/requires_cxx11.hpp +0 -22
  1100. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1101. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1102. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1103. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -476
  1104. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1105. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/requires_cxx11.hpp +0 -22
  1106. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_win32_sleep.hpp +0 -54
  1107. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1108. data/src/cxx_supportlib/vendor-modified/boost/function/detail/epilogue.hpp +0 -39
  1109. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1110. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1111. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1112. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -27
  1113. data/src/cxx_supportlib/vendor-modified/boost/function/detail/requires_cxx11.hpp +0 -22
  1114. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1115. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1116. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1117. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1118. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1119. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1120. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1121. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1122. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1123. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1124. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1125. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1126. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1127. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1128. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1129. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1130. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1131. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1132. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1133. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1134. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1135. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1136. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1137. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1138. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1139. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1140. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1141. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1142. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1143. data/src/cxx_supportlib/vendor-modified/boost/system/detail/requires_cxx11.hpp +0 -21
  1144. data/src/cxx_supportlib/vendor-modified/boost/typeof/detail/requires_cxx11.hpp +0 -18
  1145. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1146. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1147. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1148. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1149. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1150. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1151. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1152. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1153. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1154. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1155. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1156. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1157. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1158. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1159. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1160. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1161. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1162. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1163. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1164. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1165. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1166. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1167. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1168. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1169. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -150
  1170. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/requires_cxx11.hpp +0 -21
  1171. /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,17 +15,14 @@
15
15
  #pragma once
16
16
  #endif
17
17
 
18
- #include <boost/unordered/detail/requires_cxx11.hpp>
19
- #include <boost/core/explicit_operator_bool.hpp>
20
- #include <boost/functional/hash.hpp>
21
- #include <boost/move/move.hpp>
22
- #include <boost/type_traits/is_constructible.hpp>
23
18
  #include <boost/unordered/detail/map.hpp>
19
+ #include <boost/unordered/detail/serialize_fca_container.hpp>
20
+ #include <boost/unordered/detail/throw_exception.hpp>
24
21
  #include <boost/unordered/detail/type_traits.hpp>
25
22
 
26
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
23
+ #include <boost/container_hash/hash.hpp>
24
+
27
25
  #include <initializer_list>
28
- #endif
29
26
 
30
27
  #if defined(BOOST_MSVC)
31
28
  #pragma warning(push)
@@ -42,9 +39,6 @@ namespace boost {
42
39
  namespace unordered {
43
40
  template <class K, class T, class H, class P, class A> class unordered_map
44
41
  {
45
- #if defined(BOOST_UNORDERED_USE_MOVE)
46
- BOOST_COPYABLE_AND_MOVABLE(unordered_map)
47
- #endif
48
42
  template <typename, typename, typename, typename, typename>
49
43
  friend class unordered_multimap;
50
44
 
@@ -52,9 +46,11 @@ namespace boost {
52
46
  typedef K key_type;
53
47
  typedef T mapped_type;
54
48
  typedef std::pair<const K, T> value_type;
55
- typedef typename boost::type_identity<H>::type hasher;
56
- typedef typename boost::type_identity<P>::type key_equal;
57
- typedef typename boost::type_identity<A>::type allocator_type;
49
+ typedef typename boost::unordered::detail::type_identity<H>::type hasher;
50
+ typedef
51
+ typename boost::unordered::detail::type_identity<P>::type key_equal;
52
+ typedef typename boost::unordered::detail::type_identity<A>::type
53
+ allocator_type;
58
54
 
59
55
  private:
60
56
  typedef boost::unordered::detail::map<A, K, T, H, P> types;
@@ -98,28 +94,23 @@ namespace boost {
98
94
 
99
95
  unordered_map(unordered_map const&);
100
96
 
101
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
102
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
103
- unordered_map(BOOST_RV_REF(unordered_map) other)
104
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
97
+ unordered_map(unordered_map&& other)
98
+ noexcept(table::nothrow_move_constructible)
105
99
  : table_(other.table_, boost::unordered::detail::move_tag())
106
100
  {
107
101
  // The move is done in table_
108
102
  }
109
- #endif
110
103
 
111
104
  explicit unordered_map(allocator_type const&);
112
105
 
113
106
  unordered_map(unordered_map const&, allocator_type const&);
114
107
 
115
- unordered_map(BOOST_RV_REF(unordered_map), allocator_type const&);
108
+ unordered_map(unordered_map&&, allocator_type const&);
116
109
 
117
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
118
110
  unordered_map(std::initializer_list<value_type>,
119
111
  size_type = boost::unordered::detail::default_bucket_count,
120
112
  const hasher& = hasher(), const key_equal& l = key_equal(),
121
113
  const allocator_type& = allocator_type());
122
- #endif
123
114
 
124
115
  explicit unordered_map(size_type, const allocator_type&);
125
116
 
@@ -135,7 +126,6 @@ namespace boost {
135
126
  unordered_map(
136
127
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
137
128
 
138
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
139
129
  unordered_map(std::initializer_list<value_type>, const allocator_type&);
140
130
 
141
131
  unordered_map(
@@ -143,262 +133,99 @@ namespace boost {
143
133
 
144
134
  unordered_map(std::initializer_list<value_type>, size_type, const hasher&,
145
135
  const allocator_type&);
146
- #endif
147
136
 
148
137
  // Destructor
149
138
 
150
- ~unordered_map() BOOST_NOEXCEPT;
139
+ ~unordered_map() noexcept;
151
140
 
152
- // Assign
153
-
154
- #if defined(BOOST_UNORDERED_USE_MOVE)
155
- unordered_map& operator=(BOOST_COPY_ASSIGN_REF(unordered_map) x)
156
- {
157
- table_.assign(x.table_, boost::unordered::detail::true_type());
158
- return *this;
159
- }
141
+ // Assign
160
142
 
161
- unordered_map& operator=(BOOST_RV_REF(unordered_map) x)
162
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
163
- boost::is_nothrow_move_assignable<H>::value&&
164
- boost::is_nothrow_move_assignable<P>::value)
165
- {
166
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
167
- return *this;
168
- }
169
- #else
170
143
  unordered_map& operator=(unordered_map const& x)
171
144
  {
172
- table_.assign(x.table_, boost::unordered::detail::true_type());
145
+ table_.assign(x.table_, std::true_type());
173
146
  return *this;
174
147
  }
175
148
 
176
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
177
149
  unordered_map& operator=(unordered_map&& x)
178
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
179
- boost::is_nothrow_move_assignable<H>::value&&
180
- boost::is_nothrow_move_assignable<P>::value)
150
+ noexcept(value_allocator_traits::is_always_equal::value&&
151
+ std::is_nothrow_move_assignable<H>::value&&
152
+ std::is_nothrow_move_assignable<P>::value)
181
153
  {
182
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
154
+ table_.move_assign(x.table_, std::true_type());
183
155
  return *this;
184
156
  }
185
- #endif
186
- #endif
187
157
 
188
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
189
158
  unordered_map& operator=(std::initializer_list<value_type>);
190
- #endif
191
159
 
192
- allocator_type get_allocator() const BOOST_NOEXCEPT
160
+ allocator_type get_allocator() const noexcept
193
161
  {
194
- return table_.node_alloc();
162
+ return allocator_type(table_.node_alloc());
195
163
  }
196
164
 
197
- // // iterators
165
+ // // iterators
198
166
 
199
- iterator begin() BOOST_NOEXCEPT { return table_.begin(); }
167
+ iterator begin() noexcept { return table_.begin(); }
200
168
 
201
- const_iterator begin() const BOOST_NOEXCEPT
169
+ const_iterator begin() const noexcept
202
170
  {
203
171
  return const_iterator(table_.begin());
204
172
  }
205
173
 
206
- iterator end() BOOST_NOEXCEPT { return iterator(); }
174
+ iterator end() noexcept { return iterator(); }
207
175
 
208
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
176
+ const_iterator end() const noexcept { return const_iterator(); }
209
177
 
210
- const_iterator cbegin() const BOOST_NOEXCEPT
178
+ const_iterator cbegin() const noexcept
211
179
  {
212
180
  return const_iterator(table_.begin());
213
181
  }
214
182
 
215
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
183
+ const_iterator cend() const noexcept { return const_iterator(); }
216
184
 
217
185
  // size and capacity
218
186
 
219
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
187
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
220
188
  {
221
189
  return table_.size_ == 0;
222
190
  }
223
191
 
224
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
225
-
226
- size_type max_size() const BOOST_NOEXCEPT;
227
-
228
- // emplace
229
-
230
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
231
-
232
- template <class... Args>
233
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
234
- {
235
- return table_.emplace_unique(
236
- table::extractor::extract(boost::forward<Args>(args)...),
237
- boost::forward<Args>(args)...);
238
- }
239
-
240
- #else
241
-
242
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
243
-
244
- // 0 argument emplace requires special treatment in case
245
- // the container is instantiated with a value type that
246
- // doesn't have a default constructor.
247
-
248
- std::pair<iterator, bool> emplace(
249
- boost::unordered::detail::empty_emplace =
250
- boost::unordered::detail::empty_emplace(),
251
- value_type v = value_type())
252
- {
253
- return this->emplace(boost::move(v));
254
- }
255
-
256
- #endif
192
+ size_type size() const noexcept { return table_.size_; }
257
193
 
258
- template <typename A0>
259
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
260
- {
261
- return table_.emplace_unique(
262
- table::extractor::extract(boost::forward<A0>(a0)),
263
- boost::unordered::detail::create_emplace_args(
264
- boost::forward<A0>(a0)));
265
- }
194
+ size_type max_size() const noexcept;
266
195
 
267
- template <typename A0, typename A1>
268
- std::pair<iterator, bool> emplace(
269
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
270
- {
271
- return table_.emplace_unique(
272
- table::extractor::extract(
273
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
274
- boost::unordered::detail::create_emplace_args(
275
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
276
- }
196
+ // emplace
277
197
 
278
- template <typename A0, typename A1, typename A2>
279
- std::pair<iterator, bool> emplace(
280
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
198
+ template <class... Args> std::pair<iterator, bool> emplace(Args&&... args)
281
199
  {
282
200
  return table_.emplace_unique(
283
- table::extractor::extract(
284
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
285
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
286
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
201
+ table::extractor::extract(std::forward<Args>(args)...),
202
+ std::forward<Args>(args)...);
287
203
  }
288
204
 
289
- #endif
290
-
291
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
292
-
293
205
  template <class... Args>
294
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
295
- {
296
- return table_.emplace_hint_unique(hint,
297
- table::extractor::extract(boost::forward<Args>(args)...),
298
- boost::forward<Args>(args)...);
299
- }
300
-
301
- #else
302
-
303
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
304
-
305
- iterator emplace_hint(const_iterator hint,
306
- boost::unordered::detail::empty_emplace =
307
- boost::unordered::detail::empty_emplace(),
308
- value_type v = value_type())
309
- {
310
- return this->emplace_hint(hint, boost::move(v));
311
- }
312
-
313
- #endif
314
-
315
- template <typename A0>
316
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
317
- {
318
- return table_.emplace_hint_unique(hint,
319
- table::extractor::extract(boost::forward<A0>(a0)),
320
- boost::unordered::detail::create_emplace_args(
321
- boost::forward<A0>(a0)));
322
- }
323
-
324
- template <typename A0, typename A1>
325
- iterator emplace_hint(
326
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
206
+ iterator emplace_hint(const_iterator hint, Args&&... args)
327
207
  {
328
208
  return table_.emplace_hint_unique(hint,
329
- table::extractor::extract(
330
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
331
- boost::unordered::detail::create_emplace_args(
332
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
209
+ table::extractor::extract(std::forward<Args>(args)...),
210
+ std::forward<Args>(args)...);
333
211
  }
334
212
 
335
- template <typename A0, typename A1, typename A2>
336
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
337
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
338
- {
339
- return table_.emplace_hint_unique(hint,
340
- table::extractor::extract(
341
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
342
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
343
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
344
- }
345
-
346
- #endif
347
-
348
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
349
-
350
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
351
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
352
- std::pair<iterator, bool> emplace( \
353
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
354
- { \
355
- return table_.emplace_unique( \
356
- table::extractor::extract( \
357
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
358
- boost::unordered::detail::create_emplace_args( \
359
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
360
- } \
361
- \
362
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
363
- iterator emplace_hint( \
364
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
365
- { \
366
- return table_.emplace_hint_unique(hint, \
367
- table::extractor::extract( \
368
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
369
- boost::unordered::detail::create_emplace_args( \
370
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
371
- }
372
-
373
- BOOST_UNORDERED_EMPLACE(1, 4, _)
374
- BOOST_UNORDERED_EMPLACE(1, 5, _)
375
- BOOST_UNORDERED_EMPLACE(1, 6, _)
376
- BOOST_UNORDERED_EMPLACE(1, 7, _)
377
- BOOST_UNORDERED_EMPLACE(1, 8, _)
378
- BOOST_UNORDERED_EMPLACE(1, 9, _)
379
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
380
- BOOST_UNORDERED_EMPLACE, _)
381
-
382
- #undef BOOST_UNORDERED_EMPLACE
383
-
384
- #endif
385
-
386
213
  std::pair<iterator, bool> insert(value_type const& x)
387
214
  {
388
215
  return this->emplace(x);
389
216
  }
390
217
 
391
- std::pair<iterator, bool> insert(BOOST_RV_REF(value_type) x)
218
+ std::pair<iterator, bool> insert(value_type&& x)
392
219
  {
393
- return this->emplace(boost::move(x));
220
+ return this->emplace(std::move(x));
394
221
  }
395
222
 
396
223
  template <class P2>
397
- typename boost::enable_if<
398
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>,
399
- std::pair<iterator, bool> >::type insert(BOOST_RV_REF(P2) obj)
224
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
225
+ std::pair<iterator, bool> >::type
226
+ insert(P2&& obj)
400
227
  {
401
- return this->emplace(boost::forward<P2>(obj));
228
+ return this->emplace(std::forward<P2>(obj));
402
229
  }
403
230
 
404
231
  iterator insert(const_iterator hint, value_type const& x)
@@ -406,85 +233,73 @@ namespace boost {
406
233
  return this->emplace_hint(hint, x);
407
234
  }
408
235
 
409
- iterator insert(const_iterator hint, BOOST_RV_REF(value_type) x)
236
+ iterator insert(const_iterator hint, value_type&& x)
410
237
  {
411
- return this->emplace_hint(hint, boost::move(x));
238
+ return this->emplace_hint(hint, std::move(x));
412
239
  }
413
240
 
414
241
  template <class P2>
415
- typename boost::enable_if<
416
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>, iterator>::type
417
- insert(const_iterator hint, BOOST_RV_REF(P2) obj)
242
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
243
+ iterator>::type
244
+ insert(const_iterator hint, P2&& obj)
418
245
  {
419
- return this->emplace_hint(hint, boost::forward<P2>(obj));
246
+ return this->emplace_hint(hint, std::forward<P2>(obj));
420
247
  }
421
248
 
422
249
  template <class InputIt> void insert(InputIt, InputIt);
423
250
 
424
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
425
251
  void insert(std::initializer_list<value_type>);
426
- #endif
427
252
 
428
253
  // extract
429
254
 
430
255
  node_type extract(const_iterator position)
431
256
  {
432
257
  return node_type(
433
- table_.extract_by_iterator_unique(position), table_.node_alloc());
258
+ table_.extract_by_iterator_unique(position),
259
+ allocator_type(table_.node_alloc()));
434
260
  }
435
261
 
436
262
  node_type extract(const key_type& k)
437
263
  {
438
- return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
264
+ return node_type(
265
+ table_.extract_by_key_impl(k),
266
+ allocator_type(table_.node_alloc()));
439
267
  }
440
268
 
441
269
  template <class Key>
442
270
  typename boost::enable_if_c<
443
271
  detail::transparent_non_iterable<Key, unordered_map>::value,
444
272
  node_type>::type
445
- extract(BOOST_FWD_REF(Key) k)
273
+ extract(Key&& k)
446
274
  {
447
- return node_type(table_.extract_by_key_impl(boost::forward<Key>(k)),
448
- table_.node_alloc());
275
+ return node_type(
276
+ table_.extract_by_key_impl(std::forward<Key>(k)),
277
+ allocator_type(table_.node_alloc()));
449
278
  }
450
279
 
451
- insert_return_type insert(BOOST_RV_REF(node_type) np)
280
+ insert_return_type insert(node_type&& np)
452
281
  {
453
282
  insert_return_type result;
454
283
  table_.move_insert_node_type_unique((node_type&)np, result);
455
- return boost::move(result);
284
+ return result;
456
285
  }
457
286
 
458
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
287
+ iterator insert(const_iterator hint, node_type&& np)
459
288
  {
460
289
  return table_.move_insert_node_type_with_hint_unique(hint, np);
461
290
  }
462
291
 
463
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
464
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
465
- private:
466
- // Note: Use r-value node_type to insert.
467
- insert_return_type insert(node_type&);
468
- iterator insert(const_iterator, node_type& np);
469
-
470
- public:
471
- #endif
472
-
473
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
474
-
475
292
  template <class... Args>
476
- std::pair<iterator, bool> try_emplace(
477
- key_type const& k, BOOST_FWD_REF(Args)... args)
293
+ std::pair<iterator, bool> try_emplace(key_type const& k, Args&&... args)
478
294
  {
479
- return table_.try_emplace_unique(k, boost::forward<Args>(args)...);
295
+ return table_.try_emplace_unique(k, std::forward<Args>(args)...);
480
296
  }
481
297
 
482
298
  template <class... Args>
483
- std::pair<iterator, bool> try_emplace(
484
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
299
+ std::pair<iterator, bool> try_emplace(key_type&& k, Args&&... args)
485
300
  {
486
301
  return table_.try_emplace_unique(
487
- boost::move(k), boost::forward<Args>(args)...);
302
+ std::move(k), std::forward<Args>(args)...);
488
303
  }
489
304
 
490
305
  template <class Key, class... Args>
@@ -494,23 +309,22 @@ namespace boost {
494
309
  try_emplace(Key&& k, Args&&... args)
495
310
  {
496
311
  return table_.try_emplace_unique(
497
- boost::forward<Key>(k), boost::forward<Args>(args)...);
312
+ std::forward<Key>(k), std::forward<Args>(args)...);
498
313
  }
499
314
 
500
315
  template <class... Args>
501
316
  iterator try_emplace(
502
- const_iterator hint, key_type const& k, BOOST_FWD_REF(Args)... args)
317
+ const_iterator hint, key_type const& k, Args&&... args)
503
318
  {
504
319
  return table_.try_emplace_hint_unique(
505
- hint, k, boost::forward<Args>(args)...);
320
+ hint, k, std::forward<Args>(args)...);
506
321
  }
507
322
 
508
323
  template <class... Args>
509
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
510
- BOOST_FWD_REF(Args)... args)
324
+ iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args)
511
325
  {
512
326
  return table_.try_emplace_hint_unique(
513
- hint, boost::move(k), boost::forward<Args>(args)...);
327
+ hint, std::move(k), std::forward<Args>(args)...);
514
328
  }
515
329
 
516
330
  template <class Key, class... Args>
@@ -520,322 +334,52 @@ namespace boost {
520
334
  try_emplace(const_iterator hint, Key&& k, Args&&... args)
521
335
  {
522
336
  return table_.try_emplace_hint_unique(
523
- hint, boost::forward<Key>(k), boost::forward<Args>(args)...);
524
- }
525
-
526
- #else
527
-
528
- // In order to make this a template, this handles both:
529
- // try_emplace(key const&)
530
- // try_emplace(key&&)
531
-
532
- template <typename Key>
533
- std::pair<iterator, bool> try_emplace(BOOST_FWD_REF(Key) k)
534
- {
535
- return table_.try_emplace_unique(boost::forward<Key>(k));
536
- }
537
-
538
- // In order to make this a template, this handles both:
539
- // try_emplace(const_iterator hint, key const&)
540
- // try_emplace(const_iterator hint, key&&)
541
-
542
- template <typename Key>
543
- iterator try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k)
544
- {
545
- return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k));
546
- }
547
-
548
- // try_emplace(key const&, Args&&...)
549
-
550
- template <typename A0>
551
- std::pair<iterator, bool> try_emplace(
552
- key_type const& k, BOOST_FWD_REF(A0) a0)
553
- {
554
- return table_.try_emplace_unique(
555
- k, boost::unordered::detail::create_emplace_args(
556
- boost::forward<A0>(a0)));
557
- }
558
-
559
- template <typename A0, typename A1>
560
- std::pair<iterator, bool> try_emplace(
561
- key_type const& k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
562
- {
563
- return table_.try_emplace_unique(
564
- k, boost::unordered::detail::create_emplace_args(
565
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
566
- }
567
-
568
- template <typename A0, typename A1, typename A2>
569
- std::pair<iterator, bool> try_emplace(key_type const& k,
570
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
571
- {
572
- return table_.try_emplace_unique(k,
573
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
574
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
575
- }
576
-
577
- // try_emplace(key&&, Args&&...)
578
-
579
- template <typename A0>
580
- std::pair<iterator, bool> try_emplace(
581
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
582
- {
583
- return table_.try_emplace_unique(
584
- boost::move(k), boost::unordered::detail::create_emplace_args(
585
- boost::forward<A0>(a0)));
586
- }
587
-
588
- template <typename A0, typename A1>
589
- std::pair<iterator, bool> try_emplace(
590
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
591
- {
592
- return table_.try_emplace_unique(
593
- boost::move(k), boost::unordered::detail::create_emplace_args(
594
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
595
- }
596
-
597
- template <typename A0, typename A1, typename A2>
598
- std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k,
599
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
600
- {
601
- return table_.try_emplace_unique(boost::move(k),
602
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
603
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
604
- }
605
-
606
- // try_emplace(Key&&, Args&&...)
607
-
608
- template <typename Key, typename A0>
609
- typename boost::enable_if_c<
610
- detail::transparent_non_iterable<Key, unordered_map>::value,
611
- std::pair<iterator, bool> >::type
612
- try_emplace(BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0)
613
- {
614
- return table_.try_emplace_unique(
615
- boost::forward<Key>(k), boost::unordered::detail::create_emplace_args(
616
- boost::forward<A0>(a0)));
617
- }
618
-
619
- template <typename Key, typename A0, typename A1>
620
- typename boost::enable_if_c<
621
- detail::transparent_non_iterable<Key, unordered_map>::value,
622
- std::pair<iterator, bool> >::type
623
- try_emplace(
624
- BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
625
- {
626
- return table_.try_emplace_unique(boost::forward<Key>(k),
627
- boost::unordered::detail::create_emplace_args(
628
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
629
- }
630
-
631
- template <typename Key, typename A0, typename A1, typename A2>
632
- typename boost::enable_if_c<
633
- detail::transparent_non_iterable<Key, unordered_map>::value,
634
- std::pair<iterator, bool> >::type
635
- try_emplace(BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0,
636
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
637
- {
638
- return table_.try_emplace_unique(boost::forward<Key>(k),
639
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
640
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
641
- }
642
-
643
- // try_emplace(const_iterator hint, key const&, Args&&...)
644
-
645
- template <typename A0>
646
- iterator try_emplace(
647
- const_iterator hint, key_type const& k, BOOST_FWD_REF(A0) a0)
648
- {
649
- return table_.try_emplace_hint_unique(
650
- hint, k, boost::unordered::detail::create_emplace_args(
651
- boost::forward<A0>(a0)));
652
- }
653
-
654
- template <typename A0, typename A1>
655
- iterator try_emplace(const_iterator hint, key_type const& k,
656
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
657
- {
658
- return table_.try_emplace_hint_unique(
659
- hint, k, boost::unordered::detail::create_emplace_args(
660
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
661
- }
662
-
663
- template <typename A0, typename A1, typename A2>
664
- iterator try_emplace(const_iterator hint, key_type const& k,
665
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
666
- {
667
- return table_.try_emplace_hint_unique(hint, k,
668
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
669
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
670
- }
671
-
672
- // try_emplace(const_iterator hint, key&&, Args&&...)
673
-
674
- template <typename A0>
675
- iterator try_emplace(
676
- const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
677
- {
678
- return table_.try_emplace_hint_unique(
679
- hint, boost::move(k), boost::unordered::detail::create_emplace_args(
680
- boost::forward<A0>(a0)));
681
- }
682
-
683
- template <typename A0, typename A1>
684
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
685
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
686
- {
687
- return table_.try_emplace_hint_unique(hint, boost::move(k),
688
- boost::unordered::detail::create_emplace_args(
689
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
690
- }
691
-
692
- template <typename A0, typename A1, typename A2>
693
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
694
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
695
- {
696
- return table_.try_emplace_hint_unique(hint, boost::move(k),
697
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
698
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
337
+ hint, std::forward<Key>(k), std::forward<Args>(args)...);
699
338
  }
700
339
 
701
- // try_emplace(const_iterator hint, Key&&, Args&&...)
702
-
703
- template <typename Key, typename A0>
704
- typename boost::enable_if_c<
705
- detail::transparent_non_iterable<Key, unordered_map>::value,
706
- iterator>::type
707
- try_emplace(
708
- const_iterator hint, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0)
709
- {
710
- return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
711
- boost::unordered::detail::create_emplace_args(
712
- boost::forward<A0>(a0)));
713
- }
714
-
715
- template <typename Key, typename A0, typename A1>
716
- typename boost::enable_if_c<
717
- detail::transparent_non_iterable<Key, unordered_map>::value,
718
- iterator>::type
719
- try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k,
720
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
721
- {
722
- return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
723
- boost::unordered::detail::create_emplace_args(
724
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
725
- }
726
-
727
- template <typename Key, typename A0, typename A1, typename A2>
728
- typename boost::enable_if_c<
729
- detail::transparent_non_iterable<Key, unordered_map>::value,
730
- iterator>::type
731
- try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k,
732
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
733
- {
734
- return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
735
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
736
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
737
- }
738
-
739
- #define BOOST_UNORDERED_TRY_EMPLACE(z, n, _) \
740
- \
741
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
742
- std::pair<iterator, bool> try_emplace( \
743
- key_type const& k, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
744
- { \
745
- return table_.try_emplace_unique( \
746
- k, boost::unordered::detail::create_emplace_args( \
747
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
748
- } \
749
- \
750
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
751
- std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, \
752
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
753
- { \
754
- return table_.try_emplace_unique(boost::move(k), \
755
- boost::unordered::detail::create_emplace_args( \
756
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
757
- } \
758
- \
759
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
760
- iterator try_emplace(const_iterator hint, key_type const& k, \
761
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
762
- { \
763
- return table_.try_emplace_hint_unique( \
764
- hint, k, boost::unordered::detail::create_emplace_args( \
765
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
766
- } \
767
- \
768
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
769
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, \
770
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
771
- { \
772
- return table_.try_emplace_hint_unique(hint, boost::move(k), \
773
- boost::unordered::detail::create_emplace_args( \
774
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
775
- }
776
-
777
- BOOST_UNORDERED_TRY_EMPLACE(1, 4, _)
778
- BOOST_UNORDERED_TRY_EMPLACE(1, 5, _)
779
- BOOST_UNORDERED_TRY_EMPLACE(1, 6, _)
780
- BOOST_UNORDERED_TRY_EMPLACE(1, 7, _)
781
- BOOST_UNORDERED_TRY_EMPLACE(1, 8, _)
782
- BOOST_UNORDERED_TRY_EMPLACE(1, 9, _)
783
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
784
- BOOST_UNORDERED_TRY_EMPLACE, _)
785
-
786
- #undef BOOST_UNORDERED_TRY_EMPLACE
787
-
788
- #endif
789
-
790
340
  template <class M>
791
- std::pair<iterator, bool> insert_or_assign(
792
- key_type const& k, BOOST_FWD_REF(M) obj)
341
+ std::pair<iterator, bool> insert_or_assign(key_type const& k, M&& obj)
793
342
  {
794
- return table_.insert_or_assign_unique(k, boost::forward<M>(obj));
343
+ return table_.insert_or_assign_unique(k, std::forward<M>(obj));
795
344
  }
796
345
 
797
346
  template <class M>
798
- std::pair<iterator, bool> insert_or_assign(
799
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
347
+ std::pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj)
800
348
  {
801
349
  return table_.insert_or_assign_unique(
802
- boost::move(k), boost::forward<M>(obj));
350
+ std::move(k), std::forward<M>(obj));
803
351
  }
804
352
 
805
353
  template <class Key, class M>
806
354
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
807
355
  std::pair<iterator, bool> >::type
808
- insert_or_assign(BOOST_FWD_REF(Key) k, BOOST_FWD_REF(M) obj)
356
+ insert_or_assign(Key&& k, M&& obj)
809
357
  {
810
358
  return table_.insert_or_assign_unique(
811
- boost::forward<Key>(k), boost::forward<M>(obj));
359
+ std::forward<Key>(k), std::forward<M>(obj));
812
360
  }
813
361
 
814
362
  template <class M>
815
- iterator insert_or_assign(
816
- const_iterator, key_type const& k, BOOST_FWD_REF(M) obj)
363
+ iterator insert_or_assign(const_iterator, key_type const& k, M&& obj)
817
364
  {
818
- return table_.insert_or_assign_unique(k, boost::forward<M>(obj)).first;
365
+ return table_.insert_or_assign_unique(k, std::forward<M>(obj)).first;
819
366
  }
820
367
 
821
368
  template <class M>
822
- iterator insert_or_assign(
823
- const_iterator, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
369
+ iterator insert_or_assign(const_iterator, key_type&& k, M&& obj)
824
370
  {
825
371
  return table_
826
- .insert_or_assign_unique(boost::move(k), boost::forward<M>(obj))
372
+ .insert_or_assign_unique(std::move(k), std::forward<M>(obj))
827
373
  .first;
828
374
  }
829
375
 
830
376
  template <class Key, class M>
831
377
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
832
378
  iterator>::type
833
- insert_or_assign(
834
- const_iterator, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(M) obj)
379
+ insert_or_assign(const_iterator, Key&& k, M&& obj)
835
380
  {
836
381
  return table_
837
- .insert_or_assign_unique(
838
- boost::forward<Key>(k), boost::forward<M>(obj))
382
+ .insert_or_assign_unique(std::forward<Key>(k), std::forward<M>(obj))
839
383
  .first;
840
384
  }
841
385
 
@@ -848,9 +392,9 @@ namespace boost {
848
392
  typename boost::enable_if_c<
849
393
  detail::transparent_non_iterable<Key, unordered_map>::value,
850
394
  size_type>::type
851
- erase(BOOST_FWD_REF(Key) k)
395
+ erase(Key&& k)
852
396
  {
853
- return table_.erase_key_unique_impl(boost::forward<Key>(k));
397
+ return table_.erase_key_unique_impl(std::forward<Key>(k));
854
398
  }
855
399
 
856
400
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
@@ -859,26 +403,22 @@ namespace boost {
859
403
  void erase_return_void(const_iterator it) { erase(it); }
860
404
 
861
405
  void swap(unordered_map&)
862
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
863
- boost::is_nothrow_swappable<H>::value&&
864
- boost::is_nothrow_swappable<P>::value);
865
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
406
+ noexcept(value_allocator_traits::is_always_equal::value&&
407
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
408
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
409
+ void clear() noexcept { table_.clear_impl(); }
866
410
 
867
411
  template <typename H2, typename P2>
868
412
  void merge(boost::unordered_map<K, T, H2, P2, A>& source);
869
413
 
870
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
871
414
  template <typename H2, typename P2>
872
415
  void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
873
- #endif
874
416
 
875
417
  template <typename H2, typename P2>
876
418
  void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
877
419
 
878
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
879
420
  template <typename H2, typename P2>
880
421
  void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
881
- #endif
882
422
 
883
423
  // observers
884
424
 
@@ -972,32 +512,31 @@ namespace boost {
972
512
  }
973
513
 
974
514
  mapped_type& operator[](const key_type&);
975
- mapped_type& operator[](BOOST_RV_REF(key_type));
515
+ mapped_type& operator[](key_type&&);
976
516
 
977
517
  template <class Key>
978
518
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
979
519
  mapped_type&>::type
980
- operator[](BOOST_FWD_REF(Key) k);
520
+ operator[](Key&& k);
981
521
 
982
522
  mapped_type& at(const key_type&);
983
523
  mapped_type const& at(const key_type&) const;
984
524
 
985
525
  template <class Key>
986
526
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
987
- mapped_type&>::type at(BOOST_FWD_REF(Key) k);
527
+ mapped_type&>::type
528
+ at(Key&& k);
988
529
 
989
530
  template <class Key>
990
531
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
991
- mapped_type const&>::type at(BOOST_FWD_REF(Key) k) const;
532
+ mapped_type const&>::type
533
+ at(Key&& k) const;
992
534
 
993
535
  // bucket interface
994
536
 
995
- size_type bucket_count() const BOOST_NOEXCEPT
996
- {
997
- return table_.bucket_count();
998
- }
537
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
999
538
 
1000
- size_type max_bucket_count() const BOOST_NOEXCEPT
539
+ size_type max_bucket_count() const noexcept
1001
540
  {
1002
541
  return table_.max_bucket_count();
1003
542
  }
@@ -1012,15 +551,12 @@ namespace boost {
1012
551
  template <class Key>
1013
552
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1014
553
  size_type>::type
1015
- bucket(BOOST_FWD_REF(Key) k) const
554
+ bucket(Key&& k) const
1016
555
  {
1017
- return table_.hash_to_bucket(table_.hash(boost::forward<Key>(k)));
556
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
1018
557
  }
1019
558
 
1020
- local_iterator begin(size_type n)
1021
- {
1022
- return table_.begin(n);
1023
- }
559
+ local_iterator begin(size_type n) { return table_.begin(n); }
1024
560
 
1025
561
  const_local_iterator begin(size_type n) const
1026
562
  {
@@ -1045,9 +581,9 @@ namespace boost {
1045
581
 
1046
582
  // hash policy
1047
583
 
1048
- float load_factor() const BOOST_NOEXCEPT;
1049
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
1050
- void max_load_factor(float) BOOST_NOEXCEPT;
584
+ float load_factor() const noexcept;
585
+ float max_load_factor() const noexcept { return table_.mlf_; }
586
+ void max_load_factor(float) noexcept;
1051
587
  void rehash(size_type);
1052
588
  void reserve(size_type);
1053
589
 
@@ -1059,6 +595,13 @@ namespace boost {
1059
595
  #endif
1060
596
  }; // class template unordered_map
1061
597
 
598
+ template <class Archive, class K, class T, class H, class P, class A>
599
+ void serialize(
600
+ Archive& ar, unordered_map<K, T, H, P, A>& m, unsigned int version)
601
+ {
602
+ detail::serialize_fca_container(ar, m, version);
603
+ }
604
+
1062
605
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
1063
606
 
1064
607
  template <class InputIterator,
@@ -1068,10 +611,10 @@ namespace boost {
1068
611
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1069
612
  class Allocator = std::allocator<
1070
613
  boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
1071
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1072
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1073
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1074
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
614
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
615
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
616
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
617
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1075
618
  unordered_map(InputIterator, InputIterator,
1076
619
  std::size_t = boost::unordered::detail::default_bucket_count,
1077
620
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
@@ -1080,20 +623,20 @@ namespace boost {
1080
623
  Allocator>;
1081
624
 
1082
625
  template <class Key, class T,
1083
- class Hash = boost::hash<boost::remove_const_t<Key> >,
1084
- class Pred = std::equal_to<boost::remove_const_t<Key> >,
626
+ class Hash = boost::hash<std::remove_const_t<Key> >,
627
+ class Pred = std::equal_to<std::remove_const_t<Key> >,
1085
628
  class Allocator = std::allocator<std::pair<const Key, T> >,
1086
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1087
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1088
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
629
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
630
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
631
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1089
632
  unordered_map(std::initializer_list<std::pair<Key, T> >,
1090
633
  std::size_t = boost::unordered::detail::default_bucket_count,
1091
634
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1092
- -> unordered_map<boost::remove_const_t<Key>, T, Hash, Pred, Allocator>;
635
+ -> unordered_map<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
1093
636
 
1094
637
  template <class InputIterator, class Allocator,
1095
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1096
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
638
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
639
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1097
640
  unordered_map(InputIterator, InputIterator, std::size_t, Allocator)
1098
641
  -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
1099
642
  boost::unordered::detail::iter_val_t<InputIterator>,
@@ -1102,8 +645,8 @@ namespace boost {
1102
645
  Allocator>;
1103
646
 
1104
647
  template <class InputIterator, class Allocator,
1105
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1106
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
648
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
649
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1107
650
  unordered_map(InputIterator, InputIterator, Allocator)
1108
651
  -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
1109
652
  boost::unordered::detail::iter_val_t<InputIterator>,
@@ -1112,9 +655,9 @@ namespace boost {
1112
655
  Allocator>;
1113
656
 
1114
657
  template <class InputIterator, class Hash, class Allocator,
1115
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1116
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1117
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
658
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
659
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
660
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1118
661
  unordered_map(InputIterator, InputIterator, std::size_t, Hash, Allocator)
1119
662
  -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
1120
663
  boost::unordered::detail::iter_val_t<InputIterator>, Hash,
@@ -1122,34 +665,31 @@ namespace boost {
1122
665
  Allocator>;
1123
666
 
1124
667
  template <class Key, class T, class Allocator,
1125
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
668
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1126
669
  unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t,
1127
- Allocator) -> unordered_map<boost::remove_const_t<Key>, T,
1128
- boost::hash<boost::remove_const_t<Key> >,
1129
- std::equal_to<boost::remove_const_t<Key> >, Allocator>;
670
+ Allocator) -> unordered_map<std::remove_const_t<Key>, T,
671
+ boost::hash<std::remove_const_t<Key> >,
672
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1130
673
 
1131
674
  template <class Key, class T, class Allocator,
1132
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
675
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1133
676
  unordered_map(std::initializer_list<std::pair<Key, T> >, Allocator)
1134
- -> unordered_map<boost::remove_const_t<Key>, T,
1135
- boost::hash<boost::remove_const_t<Key> >,
1136
- std::equal_to<boost::remove_const_t<Key> >, Allocator>;
677
+ -> unordered_map<std::remove_const_t<Key>, T,
678
+ boost::hash<std::remove_const_t<Key> >,
679
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1137
680
 
1138
681
  template <class Key, class T, class Hash, class Allocator,
1139
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1140
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
682
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
683
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1141
684
  unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t, Hash,
1142
- Allocator) -> unordered_map<boost::remove_const_t<Key>, T, Hash,
1143
- std::equal_to<boost::remove_const_t<Key> >, Allocator>;
685
+ Allocator) -> unordered_map<std::remove_const_t<Key>, T, Hash,
686
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1144
687
 
1145
688
  #endif
1146
689
 
1147
690
  template <class K, class T, class H, class P, class A>
1148
691
  class unordered_multimap
1149
692
  {
1150
- #if defined(BOOST_UNORDERED_USE_MOVE)
1151
- BOOST_COPYABLE_AND_MOVABLE(unordered_multimap)
1152
- #endif
1153
693
  template <typename, typename, typename, typename, typename>
1154
694
  friend class unordered_map;
1155
695
 
@@ -1157,9 +697,11 @@ namespace boost {
1157
697
  typedef K key_type;
1158
698
  typedef T mapped_type;
1159
699
  typedef std::pair<const K, T> value_type;
1160
- typedef typename boost::type_identity<H>::type hasher;
1161
- typedef typename boost::type_identity<P>::type key_equal;
1162
- typedef typename boost::type_identity<A>::type allocator_type;
700
+ typedef typename boost::unordered::detail::type_identity<H>::type hasher;
701
+ typedef
702
+ typename boost::unordered::detail::type_identity<P>::type key_equal;
703
+ typedef typename boost::unordered::detail::type_identity<A>::type
704
+ allocator_type;
1163
705
 
1164
706
  private:
1165
707
  typedef boost::unordered::detail::map<A, K, T, H, P> types;
@@ -1202,29 +744,23 @@ namespace boost {
1202
744
 
1203
745
  unordered_multimap(unordered_multimap const&);
1204
746
 
1205
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
1206
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1207
- unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
1208
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
747
+ unordered_multimap(unordered_multimap&& other)
748
+ noexcept(table::nothrow_move_constructible)
1209
749
  : table_(other.table_, boost::unordered::detail::move_tag())
1210
750
  {
1211
751
  // The move is done in table_
1212
752
  }
1213
- #endif
1214
753
 
1215
754
  explicit unordered_multimap(allocator_type const&);
1216
755
 
1217
756
  unordered_multimap(unordered_multimap const&, allocator_type const&);
1218
757
 
1219
- unordered_multimap(
1220
- BOOST_RV_REF(unordered_multimap), allocator_type const&);
758
+ unordered_multimap(unordered_multimap&&, allocator_type const&);
1221
759
 
1222
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1223
760
  unordered_multimap(std::initializer_list<value_type>,
1224
761
  size_type = boost::unordered::detail::default_bucket_count,
1225
762
  const hasher& = hasher(), const key_equal& l = key_equal(),
1226
763
  const allocator_type& = allocator_type());
1227
- #endif
1228
764
 
1229
765
  explicit unordered_multimap(size_type, const allocator_type&);
1230
766
 
@@ -1241,7 +777,6 @@ namespace boost {
1241
777
  unordered_multimap(
1242
778
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
1243
779
 
1244
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1245
780
  unordered_multimap(
1246
781
  std::initializer_list<value_type>, const allocator_type&);
1247
782
 
@@ -1250,256 +785,93 @@ namespace boost {
1250
785
 
1251
786
  unordered_multimap(std::initializer_list<value_type>, size_type,
1252
787
  const hasher&, const allocator_type&);
1253
- #endif
1254
788
 
1255
789
  // Destructor
1256
790
 
1257
- ~unordered_multimap() BOOST_NOEXCEPT;
1258
-
1259
- // Assign
791
+ ~unordered_multimap() noexcept;
1260
792
 
1261
- #if defined(BOOST_UNORDERED_USE_MOVE)
1262
- unordered_multimap& operator=(BOOST_COPY_ASSIGN_REF(unordered_multimap) x)
1263
- {
1264
- table_.assign(x.table_, boost::unordered::detail::false_type());
1265
- return *this;
1266
- }
793
+ // Assign
1267
794
 
1268
- unordered_multimap& operator=(BOOST_RV_REF(unordered_multimap) x)
1269
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1270
- boost::is_nothrow_move_assignable<H>::value&&
1271
- boost::is_nothrow_move_assignable<P>::value)
1272
- {
1273
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
1274
- return *this;
1275
- }
1276
- #else
1277
795
  unordered_multimap& operator=(unordered_multimap const& x)
1278
796
  {
1279
- table_.assign(x.table_, boost::unordered::detail::false_type());
797
+ table_.assign(x.table_, std::false_type());
1280
798
  return *this;
1281
799
  }
1282
800
 
1283
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1284
801
  unordered_multimap& operator=(unordered_multimap&& x)
1285
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1286
- boost::is_nothrow_move_assignable<H>::value&&
1287
- boost::is_nothrow_move_assignable<P>::value)
802
+ noexcept(value_allocator_traits::is_always_equal::value&&
803
+ std::is_nothrow_move_assignable<H>::value&&
804
+ std::is_nothrow_move_assignable<P>::value)
1288
805
  {
1289
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
806
+ table_.move_assign(x.table_, std::false_type());
1290
807
  return *this;
1291
808
  }
1292
- #endif
1293
- #endif
1294
809
 
1295
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1296
810
  unordered_multimap& operator=(std::initializer_list<value_type>);
1297
- #endif
1298
811
 
1299
- allocator_type get_allocator() const BOOST_NOEXCEPT
812
+ allocator_type get_allocator() const noexcept
1300
813
  {
1301
- return table_.node_alloc();
814
+ return allocator_type(table_.node_alloc());
1302
815
  }
1303
816
 
1304
817
  // iterators
1305
818
 
1306
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
819
+ iterator begin() noexcept { return iterator(table_.begin()); }
1307
820
 
1308
- const_iterator begin() const BOOST_NOEXCEPT
821
+ const_iterator begin() const noexcept
1309
822
  {
1310
823
  return const_iterator(table_.begin());
1311
824
  }
1312
825
 
1313
- iterator end() BOOST_NOEXCEPT { return iterator(); }
826
+ iterator end() noexcept { return iterator(); }
1314
827
 
1315
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
828
+ const_iterator end() const noexcept { return const_iterator(); }
1316
829
 
1317
- const_iterator cbegin() const BOOST_NOEXCEPT
830
+ const_iterator cbegin() const noexcept
1318
831
  {
1319
832
  return const_iterator(table_.begin());
1320
833
  }
1321
834
 
1322
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
835
+ const_iterator cend() const noexcept { return const_iterator(); }
1323
836
 
1324
837
  // size and capacity
1325
838
 
1326
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
839
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
1327
840
  {
1328
841
  return table_.size_ == 0;
1329
842
  }
1330
843
 
1331
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
1332
-
1333
- size_type max_size() const BOOST_NOEXCEPT;
1334
-
1335
- // emplace
1336
-
1337
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1338
-
1339
- template <class... Args> iterator emplace(BOOST_FWD_REF(Args)... args)
1340
- {
1341
- return iterator(table_.emplace_equiv(
1342
- boost::unordered::detail::func::construct_node_from_args(
1343
- table_.node_alloc(), boost::forward<Args>(args)...)));
1344
- }
1345
-
1346
- #else
844
+ size_type size() const noexcept { return table_.size_; }
1347
845
 
1348
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
846
+ size_type max_size() const noexcept;
1349
847
 
1350
- // 0 argument emplace requires special treatment in case
1351
- // the container is instantiated with a value type that
1352
- // doesn't have a default constructor.
1353
-
1354
- iterator emplace(boost::unordered::detail::empty_emplace =
1355
- boost::unordered::detail::empty_emplace(),
1356
- value_type v = value_type())
1357
- {
1358
- return this->emplace(boost::move(v));
1359
- }
1360
-
1361
- #endif
848
+ // emplace
1362
849
 
1363
- template <typename A0> iterator emplace(BOOST_FWD_REF(A0) a0)
850
+ template <class... Args> iterator emplace(Args&&... args)
1364
851
  {
1365
852
  return iterator(table_.emplace_equiv(
1366
853
  boost::unordered::detail::func::construct_node_from_args(
1367
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
1368
- boost::forward<A0>(a0)))));
854
+ table_.node_alloc(), std::forward<Args>(args)...)));
1369
855
  }
1370
856
 
1371
- template <typename A0, typename A1>
1372
- iterator emplace(BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
1373
- {
1374
- return iterator(table_.emplace_equiv(
1375
- boost::unordered::detail::func::construct_node_from_args(
1376
- table_.node_alloc(),
1377
- boost::unordered::detail::create_emplace_args(
1378
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
1379
- }
1380
-
1381
- template <typename A0, typename A1, typename A2>
1382
- iterator emplace(
1383
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
1384
- {
1385
- return iterator(table_.emplace_equiv(
1386
- boost::unordered::detail::func::construct_node_from_args(
1387
- table_.node_alloc(),
1388
- boost::unordered::detail::create_emplace_args(
1389
- boost::forward<A0>(a0), boost::forward<A1>(a1),
1390
- boost::forward<A2>(a2)))));
1391
- }
1392
-
1393
- #endif
1394
-
1395
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1396
-
1397
857
  template <class... Args>
1398
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
858
+ iterator emplace_hint(const_iterator hint, Args&&... args)
1399
859
  {
1400
860
  return iterator(table_.emplace_hint_equiv(
1401
861
  hint, boost::unordered::detail::func::construct_node_from_args(
1402
- table_.node_alloc(), boost::forward<Args>(args)...)));
862
+ table_.node_alloc(), std::forward<Args>(args)...)));
1403
863
  }
1404
864
 
1405
- #else
1406
-
1407
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
1408
-
1409
- iterator emplace_hint(const_iterator hint,
1410
- boost::unordered::detail::empty_emplace =
1411
- boost::unordered::detail::empty_emplace(),
1412
- value_type v = value_type())
1413
- {
1414
- return this->emplace_hint(hint, boost::move(v));
1415
- }
1416
-
1417
- #endif
1418
-
1419
- template <typename A0>
1420
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
1421
- {
1422
- return iterator(table_.emplace_hint_equiv(hint,
1423
- boost::unordered::detail::func::construct_node_from_args(
1424
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
1425
- boost::forward<A0>(a0)))));
1426
- }
1427
-
1428
- template <typename A0, typename A1>
1429
- iterator emplace_hint(
1430
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
1431
- {
1432
- return iterator(table_.emplace_hint_equiv(
1433
- hint, boost::unordered::detail::func::construct_node_from_args(
1434
- table_.node_alloc(),
1435
- boost::unordered::detail::create_emplace_args(
1436
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
1437
- }
1438
-
1439
- template <typename A0, typename A1, typename A2>
1440
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
1441
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
1442
- {
1443
- return iterator(table_.emplace_hint_equiv(
1444
- hint, boost::unordered::detail::func::construct_node_from_args(
1445
- table_.node_alloc(),
1446
- boost::unordered::detail::create_emplace_args(
1447
- boost::forward<A0>(a0), boost::forward<A1>(a1),
1448
- boost::forward<A2>(a2)))));
1449
- }
1450
-
1451
- #endif
1452
-
1453
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1454
-
1455
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
1456
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1457
- iterator emplace(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1458
- { \
1459
- return iterator(table_.emplace_equiv( \
1460
- boost::unordered::detail::func::construct_node_from_args( \
1461
- table_.node_alloc(), \
1462
- boost::unordered::detail::create_emplace_args( \
1463
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1464
- } \
1465
- \
1466
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1467
- iterator emplace_hint( \
1468
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1469
- { \
1470
- return iterator(table_.emplace_hint_equiv( \
1471
- hint, boost::unordered::detail::func::construct_node_from_args( \
1472
- table_.node_alloc(), \
1473
- boost::unordered::detail::create_emplace_args( \
1474
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1475
- }
1476
-
1477
- BOOST_UNORDERED_EMPLACE(1, 4, _)
1478
- BOOST_UNORDERED_EMPLACE(1, 5, _)
1479
- BOOST_UNORDERED_EMPLACE(1, 6, _)
1480
- BOOST_UNORDERED_EMPLACE(1, 7, _)
1481
- BOOST_UNORDERED_EMPLACE(1, 8, _)
1482
- BOOST_UNORDERED_EMPLACE(1, 9, _)
1483
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
1484
- BOOST_UNORDERED_EMPLACE, _)
1485
-
1486
- #undef BOOST_UNORDERED_EMPLACE
1487
-
1488
- #endif
1489
-
1490
865
  iterator insert(value_type const& x) { return this->emplace(x); }
1491
866
 
1492
- iterator insert(BOOST_RV_REF(value_type) x)
1493
- {
1494
- return this->emplace(boost::move(x));
1495
- }
867
+ iterator insert(value_type&& x) { return this->emplace(std::move(x)); }
1496
868
 
1497
869
  template <class P2>
1498
- typename boost::enable_if<
1499
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>,
1500
- iterator>::type insert(BOOST_RV_REF(P2) obj)
870
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
871
+ iterator>::type
872
+ insert(P2&& obj)
1501
873
  {
1502
- return this->emplace(boost::forward<P2>(obj));
874
+ return this->emplace(std::forward<P2>(obj));
1503
875
  }
1504
876
 
1505
877
  iterator insert(const_iterator hint, value_type const& x)
@@ -1507,25 +879,22 @@ namespace boost {
1507
879
  return this->emplace_hint(hint, x);
1508
880
  }
1509
881
 
1510
- iterator insert(const_iterator hint, BOOST_RV_REF(value_type) x)
882
+ iterator insert(const_iterator hint, value_type&& x)
1511
883
  {
1512
- return this->emplace_hint(hint, boost::move(x));
884
+ return this->emplace_hint(hint, std::move(x));
1513
885
  }
1514
886
 
1515
887
  template <class P2>
1516
- typename boost::enable_if<
1517
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>,
888
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
1518
889
  iterator>::type
1519
- insert(const_iterator hint, BOOST_RV_REF(P2) obj)
890
+ insert(const_iterator hint, P2&& obj)
1520
891
  {
1521
- return this->emplace_hint(hint, boost::forward<P2>(obj));
892
+ return this->emplace_hint(hint, std::forward<P2>(obj));
1522
893
  }
1523
894
 
1524
895
  template <class InputIt> void insert(InputIt, InputIt);
1525
896
 
1526
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1527
897
  void insert(std::initializer_list<value_type>);
1528
- #endif
1529
898
 
1530
899
  // extract
1531
900
 
@@ -1549,26 +918,16 @@ namespace boost {
1549
918
  return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
1550
919
  }
1551
920
 
1552
- iterator insert(BOOST_RV_REF(node_type) np)
921
+ iterator insert(node_type&& np)
1553
922
  {
1554
923
  return table_.move_insert_node_type_equiv(np);
1555
924
  }
1556
925
 
1557
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
926
+ iterator insert(const_iterator hint, node_type&& np)
1558
927
  {
1559
928
  return table_.move_insert_node_type_with_hint_equiv(hint, np);
1560
929
  }
1561
930
 
1562
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
1563
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
1564
- private:
1565
- // Note: Use r-value node_type to insert.
1566
- iterator insert(node_type&);
1567
- iterator insert(const_iterator, node_type& np);
1568
-
1569
- public:
1570
- #endif
1571
-
1572
931
  iterator erase(iterator);
1573
932
  iterator erase(const_iterator);
1574
933
  size_type erase(const key_type&);
@@ -1578,9 +937,9 @@ namespace boost {
1578
937
  typename boost::enable_if_c<
1579
938
  detail::transparent_non_iterable<Key, unordered_multimap>::value,
1580
939
  size_type>::type
1581
- erase(BOOST_FWD_REF(Key) k)
940
+ erase(Key&& k)
1582
941
  {
1583
- return table_.erase_key_equiv_impl(boost::forward<Key>(k));
942
+ return table_.erase_key_equiv_impl(std::forward<Key>(k));
1584
943
  }
1585
944
 
1586
945
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
@@ -1589,26 +948,22 @@ namespace boost {
1589
948
  void erase_return_void(const_iterator it) { erase(it); }
1590
949
 
1591
950
  void swap(unordered_multimap&)
1592
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1593
- boost::is_nothrow_swappable<H>::value&&
1594
- boost::is_nothrow_swappable<P>::value);
1595
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
951
+ noexcept(value_allocator_traits::is_always_equal::value&&
952
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
953
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
954
+ void clear() noexcept { table_.clear_impl(); }
1596
955
 
1597
956
  template <typename H2, typename P2>
1598
957
  void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
1599
958
 
1600
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1601
959
  template <typename H2, typename P2>
1602
960
  void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
1603
- #endif
1604
961
 
1605
962
  template <typename H2, typename P2>
1606
963
  void merge(boost::unordered_map<K, T, H2, P2, A>& source);
1607
964
 
1608
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1609
965
  template <typename H2, typename P2>
1610
966
  void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
1611
- #endif
1612
967
 
1613
968
  // observers
1614
969
 
@@ -1694,12 +1049,9 @@ namespace boost {
1694
1049
 
1695
1050
  // bucket interface
1696
1051
 
1697
- size_type bucket_count() const BOOST_NOEXCEPT
1698
- {
1699
- return table_.bucket_count();
1700
- }
1052
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
1701
1053
 
1702
- size_type max_bucket_count() const BOOST_NOEXCEPT
1054
+ size_type max_bucket_count() const noexcept
1703
1055
  {
1704
1056
  return table_.max_bucket_count();
1705
1057
  }
@@ -1714,9 +1066,9 @@ namespace boost {
1714
1066
  template <class Key>
1715
1067
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1716
1068
  size_type>::type
1717
- bucket(BOOST_FWD_REF(Key) k) const
1069
+ bucket(Key&& k) const
1718
1070
  {
1719
- return table_.hash_to_bucket(table_.hash(boost::forward<Key>(k)));
1071
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
1720
1072
  }
1721
1073
 
1722
1074
  local_iterator begin(size_type n)
@@ -1748,9 +1100,9 @@ namespace boost {
1748
1100
 
1749
1101
  // hash policy
1750
1102
 
1751
- float load_factor() const BOOST_NOEXCEPT;
1752
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
1753
- void max_load_factor(float) BOOST_NOEXCEPT;
1103
+ float load_factor() const noexcept;
1104
+ float max_load_factor() const noexcept { return table_.mlf_; }
1105
+ void max_load_factor(float) noexcept;
1754
1106
  void rehash(size_type);
1755
1107
  void reserve(size_type);
1756
1108
 
@@ -1762,6 +1114,13 @@ namespace boost {
1762
1114
  #endif
1763
1115
  }; // class template unordered_multimap
1764
1116
 
1117
+ template <class Archive, class K, class T, class H, class P, class A>
1118
+ void serialize(
1119
+ Archive& ar, unordered_multimap<K, T, H, P, A>& m, unsigned int version)
1120
+ {
1121
+ detail::serialize_fca_container(ar, m, version);
1122
+ }
1123
+
1765
1124
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
1766
1125
 
1767
1126
  template <class InputIterator,
@@ -1771,10 +1130,10 @@ namespace boost {
1771
1130
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1772
1131
  class Allocator = std::allocator<
1773
1132
  boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
1774
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1775
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1776
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1777
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1133
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1134
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1135
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
1136
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1778
1137
  unordered_multimap(InputIterator, InputIterator,
1779
1138
  std::size_t = boost::unordered::detail::default_bucket_count,
1780
1139
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
@@ -1783,21 +1142,20 @@ namespace boost {
1783
1142
  Allocator>;
1784
1143
 
1785
1144
  template <class Key, class T,
1786
- class Hash = boost::hash<boost::remove_const_t<Key> >,
1787
- class Pred = std::equal_to<boost::remove_const_t<Key> >,
1145
+ class Hash = boost::hash<std::remove_const_t<Key> >,
1146
+ class Pred = std::equal_to<std::remove_const_t<Key> >,
1788
1147
  class Allocator = std::allocator<std::pair<const Key, T> >,
1789
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1790
- class = boost::enable_if_t<detail::is_pred_v<Pred> >,
1791
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1148
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1149
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
1150
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1792
1151
  unordered_multimap(std::initializer_list<std::pair<Key, T> >,
1793
1152
  std::size_t = boost::unordered::detail::default_bucket_count,
1794
1153
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1795
- -> unordered_multimap<boost::remove_const_t<Key>, T, Hash, Pred,
1796
- Allocator>;
1154
+ -> unordered_multimap<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
1797
1155
 
1798
1156
  template <class InputIterator, class Allocator,
1799
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1800
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1157
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1158
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1801
1159
  unordered_multimap(InputIterator, InputIterator, std::size_t, Allocator)
1802
1160
  -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1803
1161
  boost::unordered::detail::iter_val_t<InputIterator>,
@@ -1806,8 +1164,8 @@ namespace boost {
1806
1164
  Allocator>;
1807
1165
 
1808
1166
  template <class InputIterator, class Allocator,
1809
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1810
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1167
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1168
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1811
1169
  unordered_multimap(InputIterator, InputIterator, Allocator)
1812
1170
  -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1813
1171
  boost::unordered::detail::iter_val_t<InputIterator>,
@@ -1816,9 +1174,9 @@ namespace boost {
1816
1174
  Allocator>;
1817
1175
 
1818
1176
  template <class InputIterator, class Hash, class Allocator,
1819
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1820
- class = boost::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1821
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1177
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1178
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1179
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1822
1180
  unordered_multimap(
1823
1181
  InputIterator, InputIterator, std::size_t, Hash, Allocator)
1824
1182
  -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
@@ -1827,25 +1185,25 @@ namespace boost {
1827
1185
  Allocator>;
1828
1186
 
1829
1187
  template <class Key, class T, class Allocator,
1830
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1188
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1831
1189
  unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
1832
- Allocator) -> unordered_multimap<boost::remove_const_t<Key>, T,
1833
- boost::hash<boost::remove_const_t<Key> >,
1834
- std::equal_to<boost::remove_const_t<Key> >, Allocator>;
1190
+ Allocator) -> unordered_multimap<std::remove_const_t<Key>, T,
1191
+ boost::hash<std::remove_const_t<Key> >,
1192
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1835
1193
 
1836
1194
  template <class Key, class T, class Allocator,
1837
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1195
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1838
1196
  unordered_multimap(std::initializer_list<std::pair<Key, T> >, Allocator)
1839
- -> unordered_multimap<boost::remove_const_t<Key>, T,
1840
- boost::hash<boost::remove_const_t<Key> >,
1841
- std::equal_to<boost::remove_const_t<Key> >, Allocator>;
1197
+ -> unordered_multimap<std::remove_const_t<Key>, T,
1198
+ boost::hash<std::remove_const_t<Key> >,
1199
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1842
1200
 
1843
1201
  template <class Key, class T, class Hash, class Allocator,
1844
- class = boost::enable_if_t<detail::is_hash_v<Hash> >,
1845
- class = boost::enable_if_t<detail::is_allocator_v<Allocator> > >
1202
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1203
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1846
1204
  unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
1847
- Hash, Allocator) -> unordered_multimap<boost::remove_const_t<Key>, T,
1848
- Hash, std::equal_to<boost::remove_const_t<Key> >, Allocator>;
1205
+ Hash, Allocator) -> unordered_multimap<std::remove_const_t<Key>, T, Hash,
1206
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1849
1207
 
1850
1208
  #endif
1851
1209
 
@@ -1880,8 +1238,7 @@ namespace boost {
1880
1238
  select_on_container_copy_construction(other.get_allocator()))
1881
1239
  {
1882
1240
  if (other.size()) {
1883
- table_.copy_buckets(
1884
- other.table_, boost::unordered::detail::true_type());
1241
+ table_.copy_buckets(other.table_, std::true_type());
1885
1242
  }
1886
1243
  }
1887
1244
 
@@ -1898,21 +1255,18 @@ namespace boost {
1898
1255
  : table_(other.table_, a)
1899
1256
  {
1900
1257
  if (other.table_.size_) {
1901
- table_.copy_buckets(
1902
- other.table_, boost::unordered::detail::true_type());
1258
+ table_.copy_buckets(other.table_, std::true_type());
1903
1259
  }
1904
1260
  }
1905
1261
 
1906
1262
  template <class K, class T, class H, class P, class A>
1907
1263
  unordered_map<K, T, H, P, A>::unordered_map(
1908
- BOOST_RV_REF(unordered_map) other, allocator_type const& a)
1264
+ unordered_map&& other, allocator_type const& a)
1909
1265
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1910
1266
  {
1911
1267
  table_.move_construct_buckets(other.table_);
1912
1268
  }
1913
1269
 
1914
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1915
-
1916
1270
  template <class K, class T, class H, class P, class A>
1917
1271
  unordered_map<K, T, H, P, A>::unordered_map(
1918
1272
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1924,8 +1278,6 @@ namespace boost {
1924
1278
  this->insert(list.begin(), list.end());
1925
1279
  }
1926
1280
 
1927
- #endif
1928
-
1929
1281
  template <class K, class T, class H, class P, class A>
1930
1282
  unordered_map<K, T, H, P, A>::unordered_map(
1931
1283
  size_type n, const allocator_type& a)
@@ -1971,8 +1323,6 @@ namespace boost {
1971
1323
  this->insert(f, l);
1972
1324
  }
1973
1325
 
1974
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1975
-
1976
1326
  template <class K, class T, class H, class P, class A>
1977
1327
  unordered_map<K, T, H, P, A>::unordered_map(
1978
1328
  std::initializer_list<value_type> list, const allocator_type& a)
@@ -2005,15 +1355,11 @@ namespace boost {
2005
1355
  this->insert(list.begin(), list.end());
2006
1356
  }
2007
1357
 
2008
- #endif
2009
-
2010
1358
  template <class K, class T, class H, class P, class A>
2011
- unordered_map<K, T, H, P, A>::~unordered_map() BOOST_NOEXCEPT
1359
+ unordered_map<K, T, H, P, A>::~unordered_map() noexcept
2012
1360
  {
2013
1361
  }
2014
1362
 
2015
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2016
-
2017
1363
  template <class K, class T, class H, class P, class A>
2018
1364
  unordered_map<K, T, H, P, A>& unordered_map<K, T, H, P, A>::operator=(
2019
1365
  std::initializer_list<value_type> list)
@@ -2023,12 +1369,10 @@ namespace boost {
2023
1369
  return *this;
2024
1370
  }
2025
1371
 
2026
- #endif
2027
-
2028
1372
  // size and capacity
2029
1373
 
2030
1374
  template <class K, class T, class H, class P, class A>
2031
- std::size_t unordered_map<K, T, H, P, A>::max_size() const BOOST_NOEXCEPT
1375
+ std::size_t unordered_map<K, T, H, P, A>::max_size() const noexcept
2032
1376
  {
2033
1377
  using namespace std;
2034
1378
 
@@ -2051,14 +1395,12 @@ namespace boost {
2051
1395
  }
2052
1396
  }
2053
1397
 
2054
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2055
1398
  template <class K, class T, class H, class P, class A>
2056
1399
  void unordered_map<K, T, H, P, A>::insert(
2057
1400
  std::initializer_list<value_type> list)
2058
1401
  {
2059
1402
  this->insert(list.begin(), list.end());
2060
1403
  }
2061
- #endif
2062
1404
 
2063
1405
  template <class K, class T, class H, class P, class A>
2064
1406
  typename unordered_map<K, T, H, P, A>::iterator
@@ -2091,9 +1433,9 @@ namespace boost {
2091
1433
 
2092
1434
  template <class K, class T, class H, class P, class A>
2093
1435
  void unordered_map<K, T, H, P, A>::swap(unordered_map& other)
2094
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
2095
- boost::is_nothrow_swappable<H>::value&&
2096
- boost::is_nothrow_swappable<P>::value)
1436
+ noexcept(value_allocator_traits::is_always_equal::value&&
1437
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1438
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
2097
1439
  {
2098
1440
  table_.swap(other.table_);
2099
1441
  }
@@ -2106,7 +1448,6 @@ namespace boost {
2106
1448
  table_.merge_unique(source.table_);
2107
1449
  }
2108
1450
 
2109
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2110
1451
  template <class K, class T, class H, class P, class A>
2111
1452
  template <typename H2, typename P2>
2112
1453
  void unordered_map<K, T, H, P, A>::merge(
@@ -2114,7 +1455,6 @@ namespace boost {
2114
1455
  {
2115
1456
  table_.merge_unique(source.table_);
2116
1457
  }
2117
- #endif
2118
1458
 
2119
1459
  template <class K, class T, class H, class P, class A>
2120
1460
  template <typename H2, typename P2>
@@ -2124,7 +1464,6 @@ namespace boost {
2124
1464
  table_.merge_unique(source.table_);
2125
1465
  }
2126
1466
 
2127
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2128
1467
  template <class K, class T, class H, class P, class A>
2129
1468
  template <typename H2, typename P2>
2130
1469
  void unordered_map<K, T, H, P, A>::merge(
@@ -2132,7 +1471,6 @@ namespace boost {
2132
1471
  {
2133
1472
  table_.merge_unique(source.table_);
2134
1473
  }
2135
- #endif
2136
1474
 
2137
1475
  // observers
2138
1476
 
@@ -2221,25 +1559,25 @@ namespace boost {
2221
1559
 
2222
1560
  template <class K, class T, class H, class P, class A>
2223
1561
  typename unordered_map<K, T, H, P, A>::mapped_type&
2224
- unordered_map<K, T, H, P, A>::operator[](const key_type& k)
1562
+ unordered_map<K, T, H, P, A>::operator[](const key_type& k)
2225
1563
  {
2226
1564
  return table_.try_emplace_unique(k).first->second;
2227
1565
  }
2228
1566
 
2229
1567
  template <class K, class T, class H, class P, class A>
2230
1568
  typename unordered_map<K, T, H, P, A>::mapped_type&
2231
- unordered_map<K, T, H, P, A>::operator[](BOOST_RV_REF(key_type) k)
1569
+ unordered_map<K, T, H, P, A>::operator[](key_type&& k)
2232
1570
  {
2233
- return table_.try_emplace_unique(boost::move(k)).first->second;
1571
+ return table_.try_emplace_unique(std::move(k)).first->second;
2234
1572
  }
2235
1573
 
2236
1574
  template <class K, class T, class H, class P, class A>
2237
1575
  template <class Key>
2238
1576
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
2239
1577
  typename unordered_map<K, T, H, P, A>::mapped_type&>::type
2240
- unordered_map<K, T, H, P, A>::operator[](BOOST_FWD_REF(Key) k)
1578
+ unordered_map<K, T, H, P, A>::operator[](Key&& k)
2241
1579
  {
2242
- return table_.try_emplace_unique(boost::forward<Key>(k)).first->second;
1580
+ return table_.try_emplace_unique(std::forward<Key>(k)).first->second;
2243
1581
  }
2244
1582
 
2245
1583
  template <class K, class T, class H, class P, class A>
@@ -2254,8 +1592,8 @@ namespace boost {
2254
1592
  return p->value().second;
2255
1593
  }
2256
1594
 
2257
- boost::throw_exception(
2258
- std::out_of_range("Unable to find key in unordered_map."));
1595
+ boost::unordered::detail::throw_out_of_range(
1596
+ "Unable to find key in unordered_map.");
2259
1597
  }
2260
1598
 
2261
1599
  template <class K, class T, class H, class P, class A>
@@ -2270,44 +1608,44 @@ namespace boost {
2270
1608
  return p->value().second;
2271
1609
  }
2272
1610
 
2273
- boost::throw_exception(
2274
- std::out_of_range("Unable to find key in unordered_map."));
1611
+ boost::unordered::detail::throw_out_of_range(
1612
+ "Unable to find key in unordered_map.");
2275
1613
  }
2276
1614
 
2277
1615
  template <class K, class T, class H, class P, class A>
2278
1616
  template <class Key>
2279
1617
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
2280
1618
  typename unordered_map<K, T, H, P, A>::mapped_type&>::type
2281
- unordered_map<K, T, H, P, A>::at(BOOST_FWD_REF(Key) k)
1619
+ unordered_map<K, T, H, P, A>::at(Key&& k)
2282
1620
  {
2283
1621
  typedef typename table::node_pointer node_pointer;
2284
1622
 
2285
1623
  if (table_.size_) {
2286
- node_pointer p = table_.find_node(boost::forward<Key>(k));
1624
+ node_pointer p = table_.find_node(std::forward<Key>(k));
2287
1625
  if (p)
2288
1626
  return p->value().second;
2289
1627
  }
2290
1628
 
2291
- boost::throw_exception(
2292
- std::out_of_range("Unable to find key in unordered_map."));
1629
+ boost::unordered::detail::throw_out_of_range(
1630
+ "Unable to find key in unordered_map.");
2293
1631
  }
2294
1632
 
2295
1633
  template <class K, class T, class H, class P, class A>
2296
1634
  template <class Key>
2297
1635
  typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
2298
1636
  typename unordered_map<K, T, H, P, A>::mapped_type const&>::type
2299
- unordered_map<K, T, H, P, A>::at(BOOST_FWD_REF(Key) k) const
1637
+ unordered_map<K, T, H, P, A>::at(Key&& k) const
2300
1638
  {
2301
1639
  typedef typename table::node_pointer node_pointer;
2302
1640
 
2303
1641
  if (table_.size_) {
2304
- node_pointer p = table_.find_node(boost::forward<Key>(k));
1642
+ node_pointer p = table_.find_node(std::forward<Key>(k));
2305
1643
  if (p)
2306
1644
  return p->value().second;
2307
1645
  }
2308
1646
 
2309
- boost::throw_exception(
2310
- std::out_of_range("Unable to find key in unordered_map."));
1647
+ boost::unordered::detail::throw_out_of_range(
1648
+ "Unable to find key in unordered_map.");
2311
1649
  }
2312
1650
 
2313
1651
  template <class K, class T, class H, class P, class A>
@@ -2320,7 +1658,7 @@ namespace boost {
2320
1658
  // hash policy
2321
1659
 
2322
1660
  template <class K, class T, class H, class P, class A>
2323
- float unordered_map<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1661
+ float unordered_map<K, T, H, P, A>::load_factor() const noexcept
2324
1662
  {
2325
1663
  if (table_.size_ == 0) {
2326
1664
  return 0.0f;
@@ -2332,7 +1670,7 @@ namespace boost {
2332
1670
  }
2333
1671
 
2334
1672
  template <class K, class T, class H, class P, class A>
2335
- void unordered_map<K, T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1673
+ void unordered_map<K, T, H, P, A>::max_load_factor(float m) noexcept
2336
1674
  {
2337
1675
  table_.max_load_factor(m);
2338
1676
  }
@@ -2376,9 +1714,8 @@ namespace boost {
2376
1714
  }
2377
1715
 
2378
1716
  template <class K, class T, class H, class P, class A>
2379
- inline void swap(
2380
- unordered_map<K, T, H, P, A>& m1, unordered_map<K, T, H, P, A>& m2)
2381
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1717
+ inline void swap(unordered_map<K, T, H, P, A>& m1,
1718
+ unordered_map<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
2382
1719
  {
2383
1720
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2384
1721
  struct dummy
@@ -2428,8 +1765,7 @@ namespace boost {
2428
1765
  select_on_container_copy_construction(other.get_allocator()))
2429
1766
  {
2430
1767
  if (other.table_.size_) {
2431
- table_.copy_buckets(
2432
- other.table_, boost::unordered::detail::false_type());
1768
+ table_.copy_buckets(other.table_, std::false_type());
2433
1769
  }
2434
1770
  }
2435
1771
 
@@ -2447,21 +1783,18 @@ namespace boost {
2447
1783
  : table_(other.table_, a)
2448
1784
  {
2449
1785
  if (other.table_.size_) {
2450
- table_.copy_buckets(
2451
- other.table_, boost::unordered::detail::false_type());
1786
+ table_.copy_buckets(other.table_, std::false_type());
2452
1787
  }
2453
1788
  }
2454
1789
 
2455
1790
  template <class K, class T, class H, class P, class A>
2456
1791
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2457
- BOOST_RV_REF(unordered_multimap) other, allocator_type const& a)
1792
+ unordered_multimap&& other, allocator_type const& a)
2458
1793
  : table_(other.table_, a, boost::unordered::detail::move_tag())
2459
1794
  {
2460
1795
  table_.move_construct_buckets(other.table_);
2461
1796
  }
2462
1797
 
2463
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2464
-
2465
1798
  template <class K, class T, class H, class P, class A>
2466
1799
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2467
1800
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -2473,8 +1806,6 @@ namespace boost {
2473
1806
  this->insert(list.begin(), list.end());
2474
1807
  }
2475
1808
 
2476
- #endif
2477
-
2478
1809
  template <class K, class T, class H, class P, class A>
2479
1810
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2480
1811
  size_type n, const allocator_type& a)
@@ -2520,8 +1851,6 @@ namespace boost {
2520
1851
  this->insert(f, l);
2521
1852
  }
2522
1853
 
2523
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2524
-
2525
1854
  template <class K, class T, class H, class P, class A>
2526
1855
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2527
1856
  std::initializer_list<value_type> list, const allocator_type& a)
@@ -2554,31 +1883,25 @@ namespace boost {
2554
1883
  this->insert(list.begin(), list.end());
2555
1884
  }
2556
1885
 
2557
- #endif
2558
-
2559
1886
  template <class K, class T, class H, class P, class A>
2560
- unordered_multimap<K, T, H, P, A>::~unordered_multimap() BOOST_NOEXCEPT
1887
+ unordered_multimap<K, T, H, P, A>::~unordered_multimap() noexcept
2561
1888
  {
2562
1889
  }
2563
1890
 
2564
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2565
-
2566
1891
  template <class K, class T, class H, class P, class A>
2567
- unordered_multimap<K, T, H, P, A>& unordered_multimap<K, T, H, P, A>::
2568
- operator=(std::initializer_list<value_type> list)
1892
+ unordered_multimap<K, T, H, P, A>&
1893
+ unordered_multimap<K, T, H, P, A>::operator=(
1894
+ std::initializer_list<value_type> list)
2569
1895
  {
2570
1896
  this->clear();
2571
1897
  this->insert(list.begin(), list.end());
2572
1898
  return *this;
2573
1899
  }
2574
1900
 
2575
- #endif
2576
-
2577
1901
  // size and capacity
2578
1902
 
2579
1903
  template <class K, class T, class H, class P, class A>
2580
- std::size_t
2581
- unordered_multimap<K, T, H, P, A>::max_size() const BOOST_NOEXCEPT
1904
+ std::size_t unordered_multimap<K, T, H, P, A>::max_size() const noexcept
2582
1905
  {
2583
1906
  using namespace std;
2584
1907
 
@@ -2598,14 +1921,12 @@ namespace boost {
2598
1921
  table_.insert_range_equiv(first, last);
2599
1922
  }
2600
1923
 
2601
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2602
1924
  template <class K, class T, class H, class P, class A>
2603
1925
  void unordered_multimap<K, T, H, P, A>::insert(
2604
1926
  std::initializer_list<value_type> list)
2605
1927
  {
2606
1928
  this->insert(list.begin(), list.end());
2607
1929
  }
2608
- #endif
2609
1930
 
2610
1931
  template <class K, class T, class H, class P, class A>
2611
1932
  typename unordered_multimap<K, T, H, P, A>::iterator
@@ -2640,9 +1961,9 @@ namespace boost {
2640
1961
 
2641
1962
  template <class K, class T, class H, class P, class A>
2642
1963
  void unordered_multimap<K, T, H, P, A>::swap(unordered_multimap& other)
2643
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
2644
- boost::is_nothrow_swappable<H>::value&&
2645
- boost::is_nothrow_swappable<P>::value)
1964
+ noexcept(value_allocator_traits::is_always_equal::value&&
1965
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1966
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
2646
1967
  {
2647
1968
  table_.swap(other.table_);
2648
1969
  }
@@ -2673,7 +1994,6 @@ namespace boost {
2673
1994
  }
2674
1995
  }
2675
1996
 
2676
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2677
1997
  template <class K, class T, class H, class P, class A>
2678
1998
  template <typename H2, typename P2>
2679
1999
  void unordered_multimap<K, T, H, P, A>::merge(
@@ -2683,7 +2003,6 @@ namespace boost {
2683
2003
  insert(source.extract(source.begin()));
2684
2004
  }
2685
2005
  }
2686
- #endif
2687
2006
 
2688
2007
  template <class K, class T, class H, class P, class A>
2689
2008
  template <typename H2, typename P2>
@@ -2695,7 +2014,6 @@ namespace boost {
2695
2014
  }
2696
2015
  }
2697
2016
 
2698
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2699
2017
  template <class K, class T, class H, class P, class A>
2700
2018
  template <typename H2, typename P2>
2701
2019
  void unordered_multimap<K, T, H, P, A>::merge(
@@ -2705,7 +2023,6 @@ namespace boost {
2705
2023
  insert(source.extract(source.begin()));
2706
2024
  }
2707
2025
  }
2708
- #endif
2709
2026
 
2710
2027
  // lookup
2711
2028
 
@@ -2740,8 +2057,7 @@ namespace boost {
2740
2057
  unordered_multimap<K, T, H, P, A>::find(CompatibleKey const& k,
2741
2058
  CompatibleHash const& hash, CompatiblePredicate const& eq) const
2742
2059
  {
2743
- return const_iterator(
2744
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
2060
+ return table_.transparent_find(k, hash, eq);
2745
2061
  }
2746
2062
 
2747
2063
  template <class K, class T, class H, class P, class A>
@@ -2780,7 +2096,7 @@ namespace boost {
2780
2096
  // hash policy
2781
2097
 
2782
2098
  template <class K, class T, class H, class P, class A>
2783
- float unordered_multimap<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
2099
+ float unordered_multimap<K, T, H, P, A>::load_factor() const noexcept
2784
2100
  {
2785
2101
  if (table_.size_ == 0) {
2786
2102
  return 0.0f;
@@ -2792,8 +2108,7 @@ namespace boost {
2792
2108
  }
2793
2109
 
2794
2110
  template <class K, class T, class H, class P, class A>
2795
- void unordered_multimap<K, T, H, P, A>::max_load_factor(
2796
- float m) BOOST_NOEXCEPT
2111
+ void unordered_multimap<K, T, H, P, A>::max_load_factor(float m) noexcept
2797
2112
  {
2798
2113
  table_.max_load_factor(m);
2799
2114
  }
@@ -2838,8 +2153,7 @@ namespace boost {
2838
2153
 
2839
2154
  template <class K, class T, class H, class P, class A>
2840
2155
  inline void swap(unordered_multimap<K, T, H, P, A>& m1,
2841
- unordered_multimap<K, T, H, P, A>& m2)
2842
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
2156
+ unordered_multimap<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
2843
2157
  {
2844
2158
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2845
2159
  struct dummy
@@ -2859,8 +2173,6 @@ namespace boost {
2859
2173
 
2860
2174
  template <typename N, class K, class T, class A> class node_handle_map
2861
2175
  {
2862
- BOOST_MOVABLE_BUT_NOT_COPYABLE(node_handle_map)
2863
-
2864
2176
  template <typename Types> friend struct ::boost::unordered::detail::table;
2865
2177
  template <class K2, class T2, class H2, class P2, class A2>
2866
2178
  friend class boost::unordered::unordered_map;
@@ -2891,7 +2203,9 @@ namespace boost {
2891
2203
  }
2892
2204
 
2893
2205
  public:
2894
- BOOST_CONSTEXPR node_handle_map() BOOST_NOEXCEPT : ptr_(), alloc_() {}
2206
+ constexpr node_handle_map() noexcept : ptr_(), alloc_() {}
2207
+ node_handle_map(node_handle_map const&) = delete;
2208
+ node_handle_map& operator=(node_handle_map const&) = delete;
2895
2209
 
2896
2210
  ~node_handle_map()
2897
2211
  {
@@ -2902,14 +2216,14 @@ namespace boost {
2902
2216
  }
2903
2217
  }
2904
2218
 
2905
- node_handle_map(BOOST_RV_REF(node_handle_map) n) BOOST_NOEXCEPT
2219
+ node_handle_map(node_handle_map&& n) noexcept
2906
2220
  : ptr_(n.ptr_),
2907
- alloc_(boost::move(n.alloc_))
2221
+ alloc_(std::move(n.alloc_))
2908
2222
  {
2909
2223
  n.ptr_ = node_pointer();
2910
2224
  }
2911
2225
 
2912
- node_handle_map& operator=(BOOST_RV_REF(node_handle_map) n)
2226
+ node_handle_map& operator=(node_handle_map&& n)
2913
2227
  {
2914
2228
  BOOST_ASSERT(!alloc_.has_value() ||
2915
2229
  boost::allocator_propagate_on_container_move_assignment<
@@ -2926,7 +2240,7 @@ namespace boost {
2926
2240
  if (!alloc_.has_value() ||
2927
2241
  boost::allocator_propagate_on_container_move_assignment<
2928
2242
  value_allocator>::type::value) {
2929
- alloc_ = boost::move(n.alloc_);
2243
+ alloc_ = std::move(n.alloc_);
2930
2244
  }
2931
2245
  ptr_ = n.ptr_;
2932
2246
  n.ptr_ = node_pointer();
@@ -2943,19 +2257,22 @@ namespace boost {
2943
2257
 
2944
2258
  allocator_type get_allocator() const { return *alloc_; }
2945
2259
 
2946
- BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
2260
+ explicit operator bool() const noexcept
2261
+ {
2262
+ return !this->operator!();
2263
+ }
2947
2264
 
2948
- bool operator!() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
2265
+ bool operator!() const noexcept { return ptr_ ? 0 : 1; }
2949
2266
 
2950
- BOOST_ATTRIBUTE_NODISCARD bool empty() const BOOST_NOEXCEPT
2267
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
2951
2268
  {
2952
2269
  return ptr_ ? 0 : 1;
2953
2270
  }
2954
2271
 
2955
- void swap(node_handle_map& n) BOOST_NOEXCEPT_IF(
2956
- boost::allocator_propagate_on_container_swap<
2957
- value_allocator>::type::value ||
2958
- boost::allocator_is_always_equal<value_allocator>::type::value)
2272
+ void swap(node_handle_map& n)
2273
+ noexcept(boost::allocator_propagate_on_container_swap<
2274
+ value_allocator>::type::value ||
2275
+ boost::allocator_is_always_equal<value_allocator>::type::value)
2959
2276
  {
2960
2277
 
2961
2278
  BOOST_ASSERT(!alloc_.has_value() || !n.alloc_.has_value() ||
@@ -2965,47 +2282,42 @@ namespace boost {
2965
2282
  if (boost::allocator_propagate_on_container_swap<
2966
2283
  value_allocator>::type::value ||
2967
2284
  !alloc_.has_value() || !n.alloc_.has_value()) {
2968
- boost::swap(alloc_, n.alloc_);
2285
+ boost::core::invoke_swap(alloc_, n.alloc_);
2969
2286
  }
2970
- boost::swap(ptr_, n.ptr_);
2287
+ boost::core::invoke_swap(ptr_, n.ptr_);
2971
2288
  }
2972
2289
  };
2973
2290
 
2974
2291
  template <class N, class K, class T, class A>
2975
2292
  void swap(node_handle_map<N, K, T, A>& x, node_handle_map<N, K, T, A>& y)
2976
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(x.swap(y)))
2293
+ noexcept(noexcept(x.swap(y)))
2977
2294
  {
2978
2295
  x.swap(y);
2979
2296
  }
2980
2297
 
2981
2298
  template <class Iter, class NodeType> struct insert_return_type_map
2982
2299
  {
2983
- private:
2984
- BOOST_MOVABLE_BUT_NOT_COPYABLE(insert_return_type_map)
2985
-
2986
- // typedef typename boost::allocator_rebind<A,
2987
- // std::pair<K const, T> >::type value_allocator;
2988
- // typedef N node_;
2989
-
2990
2300
  public:
2991
2301
  Iter position;
2992
2302
  bool inserted;
2993
2303
  NodeType node;
2994
2304
 
2995
2305
  insert_return_type_map() : position(), inserted(false), node() {}
2306
+ insert_return_type_map(insert_return_type_map const&) = delete;
2307
+ insert_return_type_map& operator=(insert_return_type_map const&) = delete;
2996
2308
 
2997
- insert_return_type_map(BOOST_RV_REF(insert_return_type_map)
2998
- x) BOOST_NOEXCEPT : position(x.position),
2999
- inserted(x.inserted),
3000
- node(boost::move(x.node))
2309
+ insert_return_type_map(insert_return_type_map&& x) noexcept
2310
+ : position(x.position),
2311
+ inserted(x.inserted),
2312
+ node(std::move(x.node))
3001
2313
  {
3002
2314
  }
3003
2315
 
3004
- insert_return_type_map& operator=(BOOST_RV_REF(insert_return_type_map) x)
2316
+ insert_return_type_map& operator=(insert_return_type_map&& x)
3005
2317
  {
3006
2318
  inserted = x.inserted;
3007
2319
  position = x.position;
3008
- node = boost::move(x.node);
2320
+ node = std::move(x.node);
3009
2321
  return *this;
3010
2322
  }
3011
2323
  };
@@ -3014,11 +2326,26 @@ namespace boost {
3014
2326
  void swap(insert_return_type_map<Iter, NodeType>& x,
3015
2327
  insert_return_type_map<Iter, NodeType>& y)
3016
2328
  {
3017
- boost::swap(x.node, y.node);
3018
- boost::swap(x.inserted, y.inserted);
3019
- boost::swap(x.position, y.position);
2329
+ boost::core::invoke_swap(x.node, y.node);
2330
+ boost::core::invoke_swap(x.inserted, y.inserted);
2331
+ boost::core::invoke_swap(x.position, y.position);
3020
2332
  }
3021
2333
  } // namespace unordered
2334
+
2335
+ namespace serialization {
2336
+ template <class K, class T, class H, class P, class A>
2337
+ struct version<boost::unordered_map<K, T, H, P, A> >
2338
+ {
2339
+ BOOST_STATIC_CONSTANT(int, value = 1);
2340
+ };
2341
+
2342
+ template <class K, class T, class H, class P, class A>
2343
+ struct version<boost::unordered_multimap<K, T, H, P, A> >
2344
+ {
2345
+ BOOST_STATIC_CONSTANT(int, value = 1);
2346
+ };
2347
+ } // namespace serialization
2348
+
3022
2349
  } // namespace boost
3023
2350
 
3024
2351
  #if defined(BOOST_MSVC)