passenger 6.0.19 → 6.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +65 -3
  3. data/CONTRIBUTORS +2 -0
  4. data/README.md +2 -2
  5. data/bin/passenger-install-nginx-module +4 -4
  6. data/build/integration_tests.rb +2 -1
  7. data/build/support/cxx_dependency_map.rb +155 -54
  8. data/dev/copy_boost_headers +21 -7
  9. data/dev/nginx_version_sha256 +72 -0
  10. data/package.json +15 -15
  11. data/src/agent/AgentMain.cpp +2 -8
  12. data/src/agent/Core/AdminPanelConnector.h +2 -3
  13. data/src/agent/Core/ApiServer.h +1 -1
  14. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
  15. data/src/agent/Core/Config.h +6 -3
  16. data/src/agent/Core/Controller/AppResponse.h +0 -1
  17. data/src/agent/Core/Controller/Config.h +2 -2
  18. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  19. data/src/agent/Core/CoreMain.cpp +1 -0
  20. data/src/agent/Core/ResponseCache.h +3 -2
  21. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  22. data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
  23. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
  24. data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
  25. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
  26. data/src/agent/MainFunctions.h +38 -0
  27. data/src/agent/Shared/ApiServerUtils.h +3 -2
  28. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  29. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
  30. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
  31. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
  32. data/src/agent/Watchdog/ApiServer.h +1 -1
  33. data/src/agent/Watchdog/Config.h +1 -1
  34. data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
  35. data/src/apache2_module/Hooks.cpp +26 -1
  36. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  37. data/src/cxx_supportlib/Constants.h +1 -1
  38. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  39. data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
  40. data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
  41. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  42. data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
  43. data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
  44. data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
  45. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
  46. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
  47. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
  48. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  49. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  50. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  51. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
  52. data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
  53. data/src/cxx_supportlib/ServerKit/Context.h +6 -0
  54. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  55. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +99 -64
  56. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
  57. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  58. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  59. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  60. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  61. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  62. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  63. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  64. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  65. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  66. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  67. data/src/cxx_supportlib/StaticString.h +3 -1
  68. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  69. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
  70. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
  71. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
  72. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
  73. data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
  74. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
  75. data/src/cxx_supportlib/Utils.cpp +1 -1
  76. data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
  77. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +194 -56
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +30 -52
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +282 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +178 -863
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +73 -23
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +108 -151
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +97 -299
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +97 -288
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +90 -288
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +551 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +365 -290
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -39
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +33 -49
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -39
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +60 -272
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +37 -34
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +302 -262
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +3 -3
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +155 -963
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +41 -3
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +40 -3
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +20 -3
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +20 -3
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +6 -6
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +101 -123
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -15
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +13 -4
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +2 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +17 -8
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +69 -35
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +2 -2
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +15 -6
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +9 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +26 -18
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +2 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +12 -4
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +57 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +209 -0
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +195 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +209 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +6 -3
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +6 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +17 -9
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +6 -3
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +6 -3
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +2 -3
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +5 -4
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +4 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +11 -12
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +5 -4
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +6 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +7 -4
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +6 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +6 -3
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +6 -3
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +5 -4
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +20 -3
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +13 -43
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +61 -25
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +37 -4
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +89 -12
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +41 -4
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +40 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +41 -4
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +41 -4
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +41 -4
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +40 -4
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +20 -20
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +135 -38
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +37 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +4 -4
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +4 -4
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +20 -3
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +12 -3
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +11 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +36 -34
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +268 -991
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +56 -34
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +56 -34
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +5 -4
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +1 -1
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +27 -20
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +193 -38
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +143 -14
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +24 -9
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +77 -17
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +20 -12
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +50 -50
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +3 -3
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +1 -1
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +46 -34
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +1 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +62 -20
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +48 -45
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +18 -4
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +5 -5
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +3 -3
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +1 -1
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +15 -21
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +13 -13
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +99 -107
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +66 -25
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +123 -73
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +73 -31
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +2 -1
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +43 -411
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +207 -423
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +5 -4
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +79 -425
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +28 -36
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +13 -3
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +86 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +36 -34
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +173 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +24 -24
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
  620. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
  621. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  622. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
  624. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
  625. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
  626. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  627. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -28
  628. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -3
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -16
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +5 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +6 -4
  633. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +0 -49
  634. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  635. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  636. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  637. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  638. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  639. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  640. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  643. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
  644. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  645. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
  646. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
  647. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
  648. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +230 -1740
  649. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  650. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  651. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +1 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
  656. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  657. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
  658. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
  659. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  661. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -1
  663. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  664. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  666. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  668. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
  669. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  670. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  672. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +8 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
  676. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
  678. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +4 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
  682. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  684. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
  685. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +4 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +13 -3
  691. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +8 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +56 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +32 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +16 -1
  697. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
  698. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
  699. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
  700. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +0 -29
  701. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +144 -145
  702. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +4 -5
  703. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +48 -49
  704. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  705. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  706. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
  707. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +1 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +71 -69
  709. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
  710. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +38 -40
  711. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +165 -153
  712. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
  713. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
  714. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
  715. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
  716. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +44 -46
  717. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +10 -11
  718. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
  719. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +0 -8
  720. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  721. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +83 -84
  722. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  723. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +77 -1
  724. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +81 -85
  725. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -233
  726. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +86 -86
  727. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
  728. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -110
  729. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
  730. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
  731. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +29 -17
  732. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
  733. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  734. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  736. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -82
  737. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
  738. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -26
  739. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +147 -122
  740. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +109 -110
  741. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
  742. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +165 -194
  743. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +4 -5
  744. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +263 -199
  745. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
  747. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +296 -61
  748. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  749. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  750. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +38 -124
  751. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +1 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -20
  753. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
  754. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -40
  755. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
  757. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +22 -8
  759. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +362 -31
  760. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  762. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  763. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  764. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  765. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  766. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  767. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +7 -7
  768. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
  769. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  771. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  772. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  773. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  774. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +33 -36
  775. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +3 -3
  776. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  780. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
  781. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  783. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +17 -17
  785. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
  786. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +29 -5
  787. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +2 -0
  789. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
  790. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  791. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  792. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  793. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  794. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +22 -10
  795. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  796. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  797. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  798. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
  800. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
  801. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  802. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
  803. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
  804. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  805. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  806. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  807. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  809. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  811. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  812. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  813. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  814. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  815. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  816. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +49 -198
  817. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  818. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +277 -420
  819. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  820. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  821. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  822. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
  823. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
  824. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
  825. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
  826. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
  827. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
  828. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +7 -7
  829. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
  830. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
  831. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +5 -5
  832. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +10 -10
  833. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  834. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  835. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  836. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
  837. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  838. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  839. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  840. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  842. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
  843. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -20
  844. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  845. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
  846. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  847. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
  848. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
  849. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  851. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  852. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  853. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -20
  854. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  855. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  856. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  857. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +58 -1
  858. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
  859. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
  860. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +57 -58
  861. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
  862. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  863. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
  864. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
  865. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
  866. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
  867. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
  868. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
  869. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +61 -62
  870. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
  871. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
  872. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
  873. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
  875. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
  876. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  877. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  878. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  879. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  880. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  881. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  882. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  883. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  884. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +612 -645
  885. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
  886. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
  887. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  888. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  890. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
  891. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  892. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  893. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
  894. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  895. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  896. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  897. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
  898. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
  899. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  900. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  901. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  902. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +5 -3
  903. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +20 -19
  904. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +41 -56
  905. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  906. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +3 -2
  907. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +32 -34
  908. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +4 -5
  909. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  910. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  911. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
  913. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  914. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
  915. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  916. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +65 -24
  917. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
  918. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  919. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +72 -23
  920. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +81 -1
  921. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  922. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  923. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  924. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +8 -6
  925. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +97 -17
  926. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
  927. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +11 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +140 -4
  929. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +108 -4
  931. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +13 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  934. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +1 -1
  935. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +4 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +18 -5
  937. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  938. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
  939. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +10 -0
  940. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +180 -3
  941. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +2 -96
  942. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +3 -3
  944. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  945. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  946. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
  947. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +5 -4
  948. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +3 -3
  949. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +2 -2
  950. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  951. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  952. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  953. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +4 -4
  954. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
  955. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  956. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  957. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
  958. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
  959. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  960. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  961. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
  962. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  963. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  964. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  965. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  966. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  970. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  971. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
  972. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  973. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  975. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  976. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
  978. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  981. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  982. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  983. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  984. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  985. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  986. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +9 -9
  987. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
  988. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +23 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  991. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  992. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +1 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +2 -11
  994. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -0
  995. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +1 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +1 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +1 -0
  1000. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +2 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -11
  1002. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +1 -0
  1003. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +4 -8
  1004. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  1005. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +14 -50
  1006. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +16 -55
  1007. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +62 -124
  1008. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
  1009. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  1010. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
  1011. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  1012. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  1013. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
  1015. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +14 -13
  1016. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
  1017. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  1018. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
  1019. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
  1020. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
  1021. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  1022. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  1023. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  1024. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  1025. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  1026. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  1027. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  1028. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  1029. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  1030. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  1031. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  1032. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  1033. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  1034. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  1035. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  1036. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  1037. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  1040. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  1041. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  1042. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  1043. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +2 -2
  1044. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
  1045. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  1046. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1050. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  1052. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  1053. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  1054. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  1055. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  1056. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  1057. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  1058. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  1059. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  1060. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  1061. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  1062. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  1063. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  1064. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  1065. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  1066. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  1067. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  1068. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  1069. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  1070. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  1071. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  1072. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  1073. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  1074. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  1075. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  1076. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  1077. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +860 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +51 -0
  1079. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
  1080. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
  1086. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1764 -0
  1087. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2271 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  1089. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +86 -0
  1090. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +44 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1092. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +204 -0
  1093. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +139 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +92 -0
  1095. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  1096. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1097. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1098. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +651 -0
  1099. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +52 -0
  1100. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +356 -1118
  1101. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1103. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1104. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  1105. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +96 -150
  1106. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  1107. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  1108. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  1109. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  1110. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  1111. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  1112. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +136 -19
  1113. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
  1114. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +171 -103
  1115. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -6
  1116. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +70 -46
  1117. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -6
  1118. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +406 -899
  1119. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -13
  1120. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
  1121. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +44 -0
  1122. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +699 -0
  1123. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +44 -0
  1124. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +253 -618
  1125. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -14
  1126. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1127. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
  1128. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1129. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1130. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
  1131. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
  1132. data/src/helper-scripts/wsgi-loader.py +2 -2
  1133. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1134. data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
  1135. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  1136. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +3 -1
  1137. data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
  1138. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +8 -10
  1139. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
  1140. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
  1141. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1142. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
  1143. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  1144. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
  1145. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
  1146. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  1147. metadata +109 -150
  1148. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  1149. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  1150. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
  1152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1161. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
  1162. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
  1163. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
  1164. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1165. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
  1166. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1167. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1168. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1169. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1170. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
  1171. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1172. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
  1173. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
  1174. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1175. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
  1176. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
  1177. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
  1178. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
  1179. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
  1180. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
  1181. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
  1182. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
  1183. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1184. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1185. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -300
  1186. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -275
  1187. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1188. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -300
  1189. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1190. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1191. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1192. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1193. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1194. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1195. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1196. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1197. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1198. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1199. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1200. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1201. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1202. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1203. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1204. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1205. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1206. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
  1207. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
  1208. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
  1209. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
  1210. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1211. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1212. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1213. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1214. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1215. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1216. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1217. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
  1218. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
  1219. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1220. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1221. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1222. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1223. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1224. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1225. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  1226. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -1278
  1228. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +0 -133
  1229. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1230. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1231. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1232. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1233. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  1234. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1235. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1236. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1237. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1238. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1239. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1240. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1241. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1242. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1243. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1244. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1245. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1246. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1247. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1248. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1249. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1250. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1251. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1252. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1253. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1254. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1255. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1256. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1257. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1258. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1259. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1260. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1261. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1262. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1263. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1264. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1265. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1266. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1267. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1268. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1269. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1270. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1271. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1272. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1273. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1274. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1275. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1276. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1277. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1278. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1279. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1280. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1281. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1282. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1283. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1284. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1285. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1286. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1287. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1288. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1289. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1290. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1291. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +0 -1921
  1292. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -64
  1293. /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
@@ -2,7 +2,7 @@
2
2
  // execution/any_executor.hpp
3
3
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
- // Copyright (c) 2003-2022 Christopher M. Kohlhoff (chris at kohlhoff dot com)
5
+ // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
6
  //
7
7
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
8
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,10 +27,8 @@
27
27
  #include <boost/asio/detail/scoped_ptr.hpp>
28
28
  #include <boost/asio/detail/type_traits.hpp>
29
29
  #include <boost/asio/detail/throw_exception.hpp>
30
- #include <boost/asio/detail/variadic_templates.hpp>
31
30
  #include <boost/asio/execution/bad_executor.hpp>
32
31
  #include <boost/asio/execution/blocking.hpp>
33
- #include <boost/asio/execution/execute.hpp>
34
32
  #include <boost/asio/execution/executor.hpp>
35
33
  #include <boost/asio/prefer.hpp>
36
34
  #include <boost/asio/query.hpp>
@@ -230,20 +228,9 @@ namespace execution {
230
228
  #if !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
231
229
  #define BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL
232
230
 
233
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
234
-
235
231
  template <typename... SupportableProperties>
236
232
  class any_executor;
237
233
 
238
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
239
-
240
- template <typename = void, typename = void, typename = void,
241
- typename = void, typename = void, typename = void,
242
- typename = void, typename = void, typename = void>
243
- class any_executor;
244
-
245
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
246
-
247
234
  #endif // !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
248
235
 
249
236
  template <typename U>
@@ -259,15 +246,13 @@ template <typename T, typename = void>
259
246
  struct is_requirable : false_type {};
260
247
 
261
248
  template <typename T>
262
- struct is_requirable<T, typename enable_if<T::is_requirable>::type> :
263
- true_type {};
249
+ struct is_requirable<T, enable_if_t<T::is_requirable>> : true_type {};
264
250
 
265
251
  template <typename T, typename = void>
266
252
  struct is_preferable : false_type {};
267
253
 
268
254
  template <typename T>
269
- struct is_preferable<T, typename enable_if<T::is_preferable>::type> :
270
- true_type {};
255
+ struct is_preferable<T, enable_if_t<T::is_preferable>> : true_type {};
271
256
 
272
257
  // Trait used to detect context_as property, for backward compatibility.
273
258
 
@@ -275,7 +260,7 @@ template <typename T>
275
260
  struct is_context_as : false_type {};
276
261
 
277
262
  template <typename U>
278
- struct is_context_as<context_as_t<U> > : true_type {};
263
+ struct is_context_as<context_as_t<U>> : true_type {};
279
264
 
280
265
  // Helper template to:
281
266
  // - Check if a target can supply the supportable properties.
@@ -312,53 +297,51 @@ struct supportable_properties<I, void(Prop)>
312
297
 
313
298
  struct found
314
299
  {
315
- BOOST_ASIO_STATIC_CONSTEXPR(bool, value = true);
300
+ static constexpr bool value = true;
316
301
  typedef Prop type;
317
302
  typedef typename Prop::polymorphic_query_result_type query_result_type;
318
- BOOST_ASIO_STATIC_CONSTEXPR(std::size_t, index = I);
303
+ static constexpr std::size_t index = I;
319
304
  };
320
305
 
321
306
  struct not_found
322
307
  {
323
- BOOST_ASIO_STATIC_CONSTEXPR(bool, value = false);
308
+ static constexpr bool value = false;
324
309
  };
325
310
 
326
311
  template <typename T>
327
312
  struct find_convertible_property :
328
- conditional<
313
+ conditional_t<
329
314
  is_same<T, Prop>::value || is_convertible<T, Prop>::value,
330
315
  found,
331
316
  not_found
332
- >::type {};
317
+ > {};
333
318
 
334
319
  template <typename T>
335
320
  struct find_convertible_requirable_property :
336
- conditional<
321
+ conditional_t<
337
322
  is_requirable<Prop>::value
338
323
  && (is_same<T, Prop>::value || is_convertible<T, Prop>::value),
339
324
  found,
340
325
  not_found
341
- >::type {};
326
+ > {};
342
327
 
343
328
  template <typename T>
344
329
  struct find_convertible_preferable_property :
345
- conditional<
330
+ conditional_t<
346
331
  is_preferable<Prop>::value
347
332
  && (is_same<T, Prop>::value || is_convertible<T, Prop>::value),
348
333
  found,
349
334
  not_found
350
- >::type {};
335
+ > {};
351
336
 
352
337
  struct find_context_as_property :
353
- conditional<
338
+ conditional_t<
354
339
  is_context_as<Prop>::value,
355
340
  found,
356
341
  not_found
357
- >::type {};
342
+ > {};
358
343
  };
359
344
 
360
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
361
-
362
345
  template <std::size_t I, typename Head, typename... Tail>
363
346
  struct supportable_properties<I, void(Head, Tail...)>
364
347
  {
@@ -377,117 +360,49 @@ struct supportable_properties<I, void(Head, Tail...)>
377
360
 
378
361
  template <typename T>
379
362
  struct find_convertible_property :
380
- conditional<
363
+ conditional_t<
381
364
  is_convertible<T, Head>::value,
382
365
  typename supportable_properties<I, void(Head)>::found,
383
366
  typename supportable_properties<I + 1,
384
367
  void(Tail...)>::template find_convertible_property<T>
385
- >::type {};
368
+ > {};
386
369
 
387
370
  template <typename T>
388
371
  struct find_convertible_requirable_property :
389
- conditional<
372
+ conditional_t<
390
373
  is_requirable<Head>::value
391
374
  && is_convertible<T, Head>::value,
392
375
  typename supportable_properties<I, void(Head)>::found,
393
376
  typename supportable_properties<I + 1,
394
377
  void(Tail...)>::template find_convertible_requirable_property<T>
395
- >::type {};
378
+ > {};
396
379
 
397
380
  template <typename T>
398
381
  struct find_convertible_preferable_property :
399
- conditional<
382
+ conditional_t<
400
383
  is_preferable<Head>::value
401
384
  && is_convertible<T, Head>::value,
402
385
  typename supportable_properties<I, void(Head)>::found,
403
386
  typename supportable_properties<I + 1,
404
387
  void(Tail...)>::template find_convertible_preferable_property<T>
405
- >::type {};
388
+ > {};
406
389
 
407
390
  struct find_context_as_property :
408
- conditional<
391
+ conditional_t<
409
392
  is_context_as<Head>::value,
410
393
  typename supportable_properties<I, void(Head)>::found,
411
394
  typename supportable_properties<I + 1,
412
395
  void(Tail...)>::find_context_as_property
413
- >::type {};
396
+ > {};
414
397
  };
415
398
 
416
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
417
-
418
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROPS_BASE_DEF(n) \
419
- template <std::size_t I, \
420
- typename Head, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
421
- struct supportable_properties<I, \
422
- void(Head, BOOST_ASIO_VARIADIC_TARGS(n))> \
423
- { \
424
- template <typename T> \
425
- struct is_valid_target : integral_constant<bool, \
426
- ( \
427
- supportable_properties<I, \
428
- void(Head)>::template is_valid_target<T>::value \
429
- && \
430
- supportable_properties<I + 1, \
431
- void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
432
- is_valid_target<T>::value \
433
- ) \
434
- > \
435
- { \
436
- }; \
437
- \
438
- template <typename T> \
439
- struct find_convertible_property : \
440
- conditional< \
441
- is_convertible<T, Head>::value, \
442
- typename supportable_properties<I, void(Head)>::found, \
443
- typename supportable_properties<I + 1, \
444
- void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
445
- find_convertible_property<T> \
446
- >::type {}; \
447
- \
448
- template <typename T> \
449
- struct find_convertible_requirable_property : \
450
- conditional< \
451
- is_requirable<Head>::value \
452
- && is_convertible<T, Head>::value, \
453
- typename supportable_properties<I, void(Head)>::found, \
454
- typename supportable_properties<I + 1, \
455
- void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
456
- find_convertible_requirable_property<T> \
457
- >::type {}; \
458
- \
459
- template <typename T> \
460
- struct find_convertible_preferable_property : \
461
- conditional< \
462
- is_preferable<Head>::value \
463
- && is_convertible<T, Head>::value, \
464
- typename supportable_properties<I, void(Head)>::found, \
465
- typename supportable_properties<I + 1, \
466
- void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
467
- find_convertible_preferable_property<T> \
468
- >::type {}; \
469
- \
470
- struct find_context_as_property : \
471
- conditional< \
472
- is_context_as<Head>::value, \
473
- typename supportable_properties<I, void(Head)>::found, \
474
- typename supportable_properties<I + 1, void( \
475
- BOOST_ASIO_VARIADIC_TARGS(n))>::find_context_as_property \
476
- >::type {}; \
477
- }; \
478
- /**/
479
- BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROPS_BASE_DEF)
480
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROPS_BASE_DEF
481
-
482
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
483
-
484
399
  template <typename T, typename Props>
485
400
  struct is_valid_target_executor :
486
- conditional<
401
+ conditional_t<
487
402
  is_executor<T>::value,
488
403
  typename supportable_properties<0, Props>::template is_valid_target<T>,
489
404
  false_type
490
- >::type
405
+ >
491
406
  {
492
407
  };
493
408
 
@@ -500,60 +415,36 @@ class shared_target_executor
500
415
  {
501
416
  public:
502
417
  template <typename E>
503
- shared_target_executor(BOOST_ASIO_MOVE_ARG(E) e,
504
- typename decay<E>::type*& target)
418
+ shared_target_executor(E&& e, decay_t<E>*& target)
505
419
  {
506
- impl<typename decay<E>::type>* i =
507
- new impl<typename decay<E>::type>(BOOST_ASIO_MOVE_CAST(E)(e));
420
+ impl<decay_t<E>>* i =
421
+ new impl<decay_t<E>>(static_cast<E&&>(e));
508
422
  target = &i->ex_;
509
423
  impl_ = i;
510
424
  }
511
425
 
512
426
  template <typename E>
513
- shared_target_executor(std::nothrow_t, BOOST_ASIO_MOVE_ARG(E) e,
514
- typename decay<E>::type*& target) BOOST_ASIO_NOEXCEPT
427
+ shared_target_executor(std::nothrow_t, E&& e, decay_t<E>*& target) noexcept
515
428
  {
516
- impl<typename decay<E>::type>* i =
517
- new (std::nothrow) impl<typename decay<E>::type>(
518
- BOOST_ASIO_MOVE_CAST(E)(e));
429
+ impl<decay_t<E>>* i =
430
+ new (std::nothrow) impl<decay_t<E>>(static_cast<E&&>(e));
519
431
  target = i ? &i->ex_ : 0;
520
432
  impl_ = i;
521
433
  }
522
434
 
523
- shared_target_executor(
524
- const shared_target_executor& other) BOOST_ASIO_NOEXCEPT
435
+ shared_target_executor(const shared_target_executor& other) noexcept
525
436
  : impl_(other.impl_)
526
437
  {
527
438
  if (impl_)
528
439
  boost::asio::detail::ref_count_up(impl_->ref_count_);
529
440
  }
530
441
 
531
- shared_target_executor& operator=(
532
- const shared_target_executor& other) BOOST_ASIO_NOEXCEPT
533
- {
534
- impl_ = other.impl_;
535
- if (impl_)
536
- boost::asio::detail::ref_count_up(impl_->ref_count_);
537
- return *this;
538
- }
539
-
540
- #if defined(BOOST_ASIO_HAS_MOVE)
541
- shared_target_executor(
542
- shared_target_executor&& other) BOOST_ASIO_NOEXCEPT
442
+ shared_target_executor(shared_target_executor&& other) noexcept
543
443
  : impl_(other.impl_)
544
444
  {
545
445
  other.impl_ = 0;
546
446
  }
547
447
 
548
- shared_target_executor& operator=(
549
- shared_target_executor&& other) BOOST_ASIO_NOEXCEPT
550
- {
551
- impl_ = other.impl_;
552
- other.impl_ = 0;
553
- return *this;
554
- }
555
- #endif // defined(BOOST_ASIO_HAS_MOVE)
556
-
557
448
  ~shared_target_executor()
558
449
  {
559
450
  if (impl_)
@@ -561,12 +452,18 @@ public:
561
452
  delete impl_;
562
453
  }
563
454
 
564
- void* get() const BOOST_ASIO_NOEXCEPT
455
+ void* get() const noexcept
565
456
  {
566
457
  return impl_ ? impl_->get() : 0;
567
458
  }
568
459
 
569
460
  private:
461
+ shared_target_executor& operator=(
462
+ const shared_target_executor& other) = delete;
463
+
464
+ shared_target_executor& operator=(
465
+ shared_target_executor&& other) = delete;
466
+
570
467
  struct impl_base
571
468
  {
572
469
  impl_base() : ref_count_(1) {}
@@ -578,7 +475,7 @@ private:
578
475
  template <typename Executor>
579
476
  struct impl : impl_base
580
477
  {
581
- impl(Executor ex) : ex_(BOOST_ASIO_MOVE_CAST(Executor)(ex)) {}
478
+ impl(Executor ex) : ex_(static_cast<Executor&&>(ex)) {}
582
479
  virtual void* get() { return &ex_; }
583
480
  Executor ex_;
584
481
  };
@@ -589,7 +486,7 @@ private:
589
486
  class any_executor_base
590
487
  {
591
488
  public:
592
- any_executor_base() BOOST_ASIO_NOEXCEPT
489
+ any_executor_base() noexcept
593
490
  : object_fns_(0),
594
491
  target_(0),
595
492
  target_fns_(0)
@@ -611,7 +508,7 @@ public:
611
508
  }
612
509
 
613
510
  template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
614
- any_executor_base(std::nothrow_t, Executor ex, false_type) BOOST_ASIO_NOEXCEPT
511
+ any_executor_base(std::nothrow_t, Executor ex, false_type) noexcept
615
512
  : target_fns_(target_fns_table<Executor>(
616
513
  any_executor_base::query_blocking(ex,
617
514
  can_query<const Executor&, const execution::blocking_t&>())
@@ -636,19 +533,19 @@ public:
636
533
  {
637
534
  Executor* p = 0;
638
535
  new (&object_) shared_target_executor(
639
- BOOST_ASIO_MOVE_CAST(Executor)(other), p);
536
+ static_cast<Executor&&>(other), p);
640
537
  target_ = p->template target<void>();
641
538
  }
642
539
 
643
540
  template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
644
541
  any_executor_base(std::nothrow_t,
645
- Executor other, true_type) BOOST_ASIO_NOEXCEPT
542
+ Executor other, true_type) noexcept
646
543
  : object_fns_(object_fns_table<shared_target_executor>()),
647
544
  target_fns_(other.target_fns_)
648
545
  {
649
546
  Executor* p = 0;
650
547
  new (&object_) shared_target_executor(
651
- std::nothrow, BOOST_ASIO_MOVE_CAST(Executor)(other), p);
548
+ std::nothrow, static_cast<Executor&&>(other), p);
652
549
  if (p)
653
550
  target_ = p->template target<void>();
654
551
  else
@@ -659,7 +556,7 @@ public:
659
556
  }
660
557
  }
661
558
 
662
- any_executor_base(const any_executor_base& other) BOOST_ASIO_NOEXCEPT
559
+ any_executor_base(const any_executor_base& other) noexcept
663
560
  {
664
561
  if (!!other)
665
562
  {
@@ -675,14 +572,14 @@ public:
675
572
  }
676
573
  }
677
574
 
678
- ~any_executor_base() BOOST_ASIO_NOEXCEPT
575
+ ~any_executor_base() noexcept
679
576
  {
680
577
  if (!!*this)
681
578
  object_fns_->destroy(*this);
682
579
  }
683
580
 
684
581
  any_executor_base& operator=(
685
- const any_executor_base& other) BOOST_ASIO_NOEXCEPT
582
+ const any_executor_base& other) noexcept
686
583
  {
687
584
  if (this != &other)
688
585
  {
@@ -704,7 +601,7 @@ public:
704
601
  return *this;
705
602
  }
706
603
 
707
- any_executor_base& operator=(nullptr_t) BOOST_ASIO_NOEXCEPT
604
+ any_executor_base& operator=(nullptr_t) noexcept
708
605
  {
709
606
  if (target_)
710
607
  object_fns_->destroy(*this);
@@ -714,9 +611,7 @@ public:
714
611
  return *this;
715
612
  }
716
613
 
717
- #if defined(BOOST_ASIO_HAS_MOVE)
718
-
719
- any_executor_base(any_executor_base&& other) BOOST_ASIO_NOEXCEPT
614
+ any_executor_base(any_executor_base&& other) noexcept
720
615
  {
721
616
  if (other.target_)
722
617
  {
@@ -736,7 +631,7 @@ public:
736
631
  }
737
632
 
738
633
  any_executor_base& operator=(
739
- any_executor_base&& other) BOOST_ASIO_NOEXCEPT
634
+ any_executor_base&& other) noexcept
740
635
  {
741
636
  if (this != &other)
742
637
  {
@@ -761,20 +656,18 @@ public:
761
656
  return *this;
762
657
  }
763
658
 
764
- #endif // defined(BOOST_ASIO_HAS_MOVE)
765
-
766
- void swap(any_executor_base& other) BOOST_ASIO_NOEXCEPT
659
+ void swap(any_executor_base& other) noexcept
767
660
  {
768
661
  if (this != &other)
769
662
  {
770
- any_executor_base tmp(BOOST_ASIO_MOVE_CAST(any_executor_base)(other));
771
- other = BOOST_ASIO_MOVE_CAST(any_executor_base)(*this);
772
- *this = BOOST_ASIO_MOVE_CAST(any_executor_base)(tmp);
663
+ any_executor_base tmp(static_cast<any_executor_base&&>(other));
664
+ other = static_cast<any_executor_base&&>(*this);
665
+ *this = static_cast<any_executor_base&&>(tmp);
773
666
  }
774
667
  }
775
668
 
776
669
  template <typename F>
777
- void execute(BOOST_ASIO_MOVE_ARG(F) f) const
670
+ void execute(F&& f) const
778
671
  {
779
672
  if (target_)
780
673
  {
@@ -786,7 +679,7 @@ public:
786
679
  else
787
680
  {
788
681
  target_fns_->execute(*this,
789
- function(BOOST_ASIO_MOVE_CAST(F)(f), std::allocator<void>()));
682
+ function(static_cast<F&&>(f), std::allocator<void>()));
790
683
  }
791
684
  }
792
685
  else
@@ -828,18 +721,18 @@ public:
828
721
  typedef void (*unspecified_bool_type)(unspecified_bool_type_t);
829
722
  static void unspecified_bool_true(unspecified_bool_type_t) {}
830
723
 
831
- operator unspecified_bool_type() const BOOST_ASIO_NOEXCEPT
724
+ operator unspecified_bool_type() const noexcept
832
725
  {
833
726
  return target_ ? &any_executor_base::unspecified_bool_true : 0;
834
727
  }
835
728
 
836
- bool operator!() const BOOST_ASIO_NOEXCEPT
729
+ bool operator!() const noexcept
837
730
  {
838
731
  return target_ == 0;
839
732
  }
840
733
 
841
734
  protected:
842
- bool equality_helper(const any_executor_base& other) const BOOST_ASIO_NOEXCEPT
735
+ bool equality_helper(const any_executor_base& other) const noexcept
843
736
  {
844
737
  if (target_ == other.target_)
845
738
  return true;
@@ -888,7 +781,7 @@ protected:
888
781
  static void move_shared(any_executor_base& ex1, any_executor_base& ex2)
889
782
  {
890
783
  typedef shared_target_executor type;
891
- new (&ex1.object_) type(BOOST_ASIO_MOVE_CAST(type)(ex2.object<type>()));
784
+ new (&ex1.object_) type(static_cast<type&&>(ex2.object<type>()));
892
785
  ex1.target_ = ex2.target_;
893
786
  ex2.object<type>().~type();
894
787
  }
@@ -901,9 +794,9 @@ protected:
901
794
 
902
795
  template <typename Obj>
903
796
  static const object_fns* object_fns_table(
904
- typename enable_if<
797
+ enable_if_t<
905
798
  is_same<Obj, shared_target_executor>::value
906
- >::type* = 0)
799
+ >* = 0)
907
800
  {
908
801
  static const object_fns fns =
909
802
  {
@@ -931,7 +824,7 @@ protected:
931
824
  template <typename Obj>
932
825
  static void move_object(any_executor_base& ex1, any_executor_base& ex2)
933
826
  {
934
- new (&ex1.object_) Obj(BOOST_ASIO_MOVE_CAST(Obj)(ex2.object<Obj>()));
827
+ new (&ex1.object_) Obj(static_cast<Obj&&>(ex2.object<Obj>()));
935
828
  ex1.target_ = &ex1.object<Obj>();
936
829
  ex2.object<Obj>().~Obj();
937
830
  }
@@ -944,10 +837,10 @@ protected:
944
837
 
945
838
  template <typename Obj>
946
839
  static const object_fns* object_fns_table(
947
- typename enable_if<
840
+ enable_if_t<
948
841
  !is_same<Obj, void>::value
949
842
  && !is_same<Obj, shared_target_executor>::value
950
- >::type* = 0)
843
+ >* = 0)
951
844
  {
952
845
  static const object_fns fns =
953
846
  {
@@ -970,7 +863,7 @@ protected:
970
863
  const void* (*target_type)();
971
864
  #endif // !defined(BOOST_ASIO_NO_TYPEID)
972
865
  bool (*equal)(const any_executor_base&, const any_executor_base&);
973
- void (*execute)(const any_executor_base&, BOOST_ASIO_MOVE_ARG(function));
866
+ void (*execute)(const any_executor_base&, function&&);
974
867
  void (*blocking_execute)(const any_executor_base&, function_view);
975
868
  };
976
869
 
@@ -993,35 +886,33 @@ protected:
993
886
  static bool equal_ex(const any_executor_base& ex1,
994
887
  const any_executor_base& ex2)
995
888
  {
996
- return *ex1.target<Ex>() == *ex2.target<Ex>();
889
+ const Ex* p1 = ex1.target<Ex>();
890
+ const Ex* p2 = ex2.target<Ex>();
891
+ BOOST_ASIO_ASSUME(p1 != 0 && p2 != 0);
892
+ return *p1 == *p2;
997
893
  }
998
894
 
999
895
  template <typename Ex>
1000
- static void execute_ex(const any_executor_base& ex,
1001
- BOOST_ASIO_MOVE_ARG(function) f)
896
+ static void execute_ex(const any_executor_base& ex, function&& f)
1002
897
  {
1003
- #if defined(BOOST_ASIO_NO_DEPRECATED)
1004
- ex.target<Ex>()->execute(BOOST_ASIO_MOVE_CAST(function)(f));
1005
- #else // defined(BOOST_ASIO_NO_DEPRECATED)
1006
- execution::execute(*ex.target<Ex>(), BOOST_ASIO_MOVE_CAST(function)(f));
1007
- #endif // defined(BOOST_ASIO_NO_DEPRECATED)
898
+ const Ex* p = ex.target<Ex>();
899
+ BOOST_ASIO_ASSUME(p != 0);
900
+ p->execute(static_cast<function&&>(f));
1008
901
  }
1009
902
 
1010
903
  template <typename Ex>
1011
904
  static void blocking_execute_ex(const any_executor_base& ex, function_view f)
1012
905
  {
1013
- #if defined(BOOST_ASIO_NO_DEPRECATED)
1014
- ex.target<Ex>()->execute(f);
1015
- #else // defined(BOOST_ASIO_NO_DEPRECATED)
1016
- execution::execute(*ex.target<Ex>(), f);
1017
- #endif // defined(BOOST_ASIO_NO_DEPRECATED)
906
+ const Ex* p = ex.target<Ex>();
907
+ BOOST_ASIO_ASSUME(p != 0);
908
+ p->execute(f);
1018
909
  }
1019
910
 
1020
911
  template <typename Ex>
1021
912
  static const target_fns* target_fns_table(bool is_always_blocking,
1022
- typename enable_if<
913
+ enable_if_t<
1023
914
  !is_same<Ex, void>::value
1024
- >::type* = 0)
915
+ >* = 0)
1025
916
  {
1026
917
  static const target_fns fns_with_execute =
1027
918
  {
@@ -1055,10 +946,10 @@ protected:
1055
946
 
1056
947
  template <typename Ex, class Prop>
1057
948
  static void query_fn_non_void(void*, const void* ex, const void* prop,
1058
- typename enable_if<
949
+ enable_if_t<
1059
950
  boost::asio::can_query<const Ex&, const Prop&>::value
1060
951
  && is_same<typename Prop::polymorphic_query_result_type, void>::value
1061
- >::type*)
952
+ >*)
1062
953
  {
1063
954
  boost::asio::query(*static_cast<const Ex*>(ex),
1064
955
  *static_cast<const Prop*>(prop));
@@ -1066,23 +957,23 @@ protected:
1066
957
 
1067
958
  template <typename Ex, class Prop>
1068
959
  static void query_fn_non_void(void*, const void*, const void*,
1069
- typename enable_if<
960
+ enable_if_t<
1070
961
  !boost::asio::can_query<const Ex&, const Prop&>::value
1071
962
  && is_same<typename Prop::polymorphic_query_result_type, void>::value
1072
- >::type*)
963
+ >*)
1073
964
  {
1074
965
  }
1075
966
 
1076
967
  template <typename Ex, class Prop>
1077
968
  static void query_fn_non_void(void* result, const void* ex, const void* prop,
1078
- typename enable_if<
969
+ enable_if_t<
1079
970
  boost::asio::can_query<const Ex&, const Prop&>::value
1080
971
  && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1081
972
  && is_reference<typename Prop::polymorphic_query_result_type>::value
1082
- >::type*)
973
+ >*)
1083
974
  {
1084
- *static_cast<typename remove_reference<
1085
- typename Prop::polymorphic_query_result_type>::type**>(result)
975
+ *static_cast<remove_reference_t<
976
+ typename Prop::polymorphic_query_result_type>**>(result)
1086
977
  = &static_cast<typename Prop::polymorphic_query_result_type>(
1087
978
  boost::asio::query(*static_cast<const Ex*>(ex),
1088
979
  *static_cast<const Prop*>(prop)));
@@ -1090,22 +981,22 @@ protected:
1090
981
 
1091
982
  template <typename Ex, class Prop>
1092
983
  static void query_fn_non_void(void*, const void*, const void*,
1093
- typename enable_if<
984
+ enable_if_t<
1094
985
  !boost::asio::can_query<const Ex&, const Prop&>::value
1095
986
  && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1096
987
  && is_reference<typename Prop::polymorphic_query_result_type>::value
1097
- >::type*)
988
+ >*)
1098
989
  {
1099
990
  std::terminate(); // Combination should not be possible.
1100
991
  }
1101
992
 
1102
993
  template <typename Ex, class Prop>
1103
994
  static void query_fn_non_void(void* result, const void* ex, const void* prop,
1104
- typename enable_if<
995
+ enable_if_t<
1105
996
  boost::asio::can_query<const Ex&, const Prop&>::value
1106
997
  && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1107
998
  && is_scalar<typename Prop::polymorphic_query_result_type>::value
1108
- >::type*)
999
+ >*)
1109
1000
  {
1110
1001
  *static_cast<typename Prop::polymorphic_query_result_type*>(result)
1111
1002
  = static_cast<typename Prop::polymorphic_query_result_type>(
@@ -1115,11 +1006,11 @@ protected:
1115
1006
 
1116
1007
  template <typename Ex, class Prop>
1117
1008
  static void query_fn_non_void(void* result, const void*, const void*,
1118
- typename enable_if<
1009
+ enable_if_t<
1119
1010
  !boost::asio::can_query<const Ex&, const Prop&>::value
1120
1011
  && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1121
1012
  && is_scalar<typename Prop::polymorphic_query_result_type>::value
1122
- >::type*)
1013
+ >*)
1123
1014
  {
1124
1015
  *static_cast<typename Prop::polymorphic_query_result_type*>(result)
1125
1016
  = typename Prop::polymorphic_query_result_type();
@@ -1127,12 +1018,12 @@ protected:
1127
1018
 
1128
1019
  template <typename Ex, class Prop>
1129
1020
  static void query_fn_non_void(void* result, const void* ex, const void* prop,
1130
- typename enable_if<
1021
+ enable_if_t<
1131
1022
  boost::asio::can_query<const Ex&, const Prop&>::value
1132
1023
  && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1133
1024
  && !is_reference<typename Prop::polymorphic_query_result_type>::value
1134
1025
  && !is_scalar<typename Prop::polymorphic_query_result_type>::value
1135
- >::type*)
1026
+ >*)
1136
1027
  {
1137
1028
  *static_cast<typename Prop::polymorphic_query_result_type**>(result)
1138
1029
  = new typename Prop::polymorphic_query_result_type(
@@ -1149,18 +1040,18 @@ protected:
1149
1040
 
1150
1041
  template <typename Ex, class Prop>
1151
1042
  static void query_fn_impl(void* result, const void* ex, const void* prop,
1152
- typename enable_if<
1043
+ enable_if_t<
1153
1044
  is_same<Ex, void>::value
1154
- >::type*)
1045
+ >*)
1155
1046
  {
1156
1047
  query_fn_void(result, ex, prop);
1157
1048
  }
1158
1049
 
1159
1050
  template <typename Ex, class Prop>
1160
1051
  static void query_fn_impl(void* result, const void* ex, const void* prop,
1161
- typename enable_if<
1052
+ enable_if_t<
1162
1053
  !is_same<Ex, void>::value
1163
- >::type*)
1054
+ >*)
1164
1055
  {
1165
1056
  query_fn_non_void<Ex, Prop>(result, ex, prop, 0);
1166
1057
  }
@@ -1173,9 +1064,9 @@ protected:
1173
1064
 
1174
1065
  template <typename Poly, typename Ex, class Prop>
1175
1066
  static Poly require_fn_impl(const void*, const void*,
1176
- typename enable_if<
1067
+ enable_if_t<
1177
1068
  is_same<Ex, void>::value
1178
- >::type*)
1069
+ >*)
1179
1070
  {
1180
1071
  bad_executor ex;
1181
1072
  boost::asio::detail::throw_exception(ex);
@@ -1184,9 +1075,9 @@ protected:
1184
1075
 
1185
1076
  template <typename Poly, typename Ex, class Prop>
1186
1077
  static Poly require_fn_impl(const void* ex, const void* prop,
1187
- typename enable_if<
1078
+ enable_if_t<
1188
1079
  !is_same<Ex, void>::value && Prop::is_requirable
1189
- >::type*)
1080
+ >*)
1190
1081
  {
1191
1082
  return boost::asio::require(*static_cast<const Ex*>(ex),
1192
1083
  *static_cast<const Prop*>(prop));
@@ -1206,9 +1097,9 @@ protected:
1206
1097
 
1207
1098
  template <typename Poly, typename Ex, class Prop>
1208
1099
  static Poly prefer_fn_impl(const void*, const void*,
1209
- typename enable_if<
1100
+ enable_if_t<
1210
1101
  is_same<Ex, void>::value
1211
- >::type*)
1102
+ >*)
1212
1103
  {
1213
1104
  bad_executor ex;
1214
1105
  boost::asio::detail::throw_exception(ex);
@@ -1217,9 +1108,9 @@ protected:
1217
1108
 
1218
1109
  template <typename Poly, typename Ex, class Prop>
1219
1110
  static Poly prefer_fn_impl(const void* ex, const void* prop,
1220
- typename enable_if<
1111
+ enable_if_t<
1221
1112
  !is_same<Ex, void>::value && Prop::is_preferable
1222
- >::type*)
1113
+ >*)
1223
1114
  {
1224
1115
  return boost::asio::prefer(*static_cast<const Ex*>(ex),
1225
1116
  *static_cast<const Prop*>(prop));
@@ -1266,7 +1157,7 @@ private:
1266
1157
  void construct_object(Executor& ex, true_type)
1267
1158
  {
1268
1159
  object_fns_ = object_fns_table<Executor>();
1269
- target_ = new (&object_) Executor(BOOST_ASIO_MOVE_CAST(Executor)(ex));
1160
+ target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
1270
1161
  }
1271
1162
 
1272
1163
  template <typename Executor>
@@ -1275,26 +1166,26 @@ private:
1275
1166
  object_fns_ = object_fns_table<shared_target_executor>();
1276
1167
  Executor* p = 0;
1277
1168
  new (&object_) shared_target_executor(
1278
- BOOST_ASIO_MOVE_CAST(Executor)(ex), p);
1169
+ static_cast<Executor&&>(ex), p);
1279
1170
  target_ = p;
1280
1171
  }
1281
1172
 
1282
1173
  template <typename Executor>
1283
1174
  void construct_object(std::nothrow_t,
1284
- Executor& ex, true_type) BOOST_ASIO_NOEXCEPT
1175
+ Executor& ex, true_type) noexcept
1285
1176
  {
1286
1177
  object_fns_ = object_fns_table<Executor>();
1287
- target_ = new (&object_) Executor(BOOST_ASIO_MOVE_CAST(Executor)(ex));
1178
+ target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
1288
1179
  }
1289
1180
 
1290
1181
  template <typename Executor>
1291
1182
  void construct_object(std::nothrow_t,
1292
- Executor& ex, false_type) BOOST_ASIO_NOEXCEPT
1183
+ Executor& ex, false_type) noexcept
1293
1184
  {
1294
1185
  object_fns_ = object_fns_table<shared_target_executor>();
1295
1186
  Executor* p = 0;
1296
1187
  new (&object_) shared_target_executor(
1297
- std::nothrow, BOOST_ASIO_MOVE_CAST(Executor)(ex), p);
1188
+ std::nothrow, static_cast<Executor&&>(ex), p);
1298
1189
  target_ = p;
1299
1190
  }
1300
1191
 
@@ -1303,7 +1194,7 @@ private:
1303
1194
 
1304
1195
  typedef aligned_storage<
1305
1196
  sizeof(boost::asio::detail::shared_ptr<void>) + sizeof(void*),
1306
- alignment_of<boost::asio::detail::shared_ptr<void> >::value
1197
+ alignment_of<boost::asio::detail::shared_ptr<void>>::value
1307
1198
  >::type object_type;
1308
1199
 
1309
1200
  object_type object_;
@@ -1320,8 +1211,7 @@ struct any_executor_context
1320
1211
  #if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
1321
1212
 
1322
1213
  template <typename Derived, typename Property>
1323
- struct any_executor_context<Derived, Property,
1324
- typename enable_if<Property::value>::type>
1214
+ struct any_executor_context<Derived, Property, enable_if_t<Property::value>>
1325
1215
  {
1326
1216
  typename Property::query_result_type context() const
1327
1217
  {
@@ -1337,48 +1227,46 @@ template <>
1337
1227
  class any_executor<> : public detail::any_executor_base
1338
1228
  {
1339
1229
  public:
1340
- any_executor() BOOST_ASIO_NOEXCEPT
1230
+ any_executor() noexcept
1341
1231
  : detail::any_executor_base()
1342
1232
  {
1343
1233
  }
1344
1234
 
1345
- any_executor(nullptr_t) BOOST_ASIO_NOEXCEPT
1235
+ any_executor(nullptr_t) noexcept
1346
1236
  : detail::any_executor_base()
1347
1237
  {
1348
1238
  }
1349
1239
 
1350
1240
  template <typename Executor>
1351
1241
  any_executor(Executor ex,
1352
- typename enable_if<
1353
- conditional<
1242
+ enable_if_t<
1243
+ conditional_t<
1354
1244
  !is_same<Executor, any_executor>::value
1355
1245
  && !is_base_of<detail::any_executor_base, Executor>::value,
1356
1246
  is_executor<Executor>,
1357
1247
  false_type
1358
- >::type::value
1359
- >::type* = 0)
1248
+ >::value
1249
+ >* = 0)
1360
1250
  : detail::any_executor_base(
1361
- BOOST_ASIO_MOVE_CAST(Executor)(ex), false_type())
1251
+ static_cast<Executor&&>(ex), false_type())
1362
1252
  {
1363
1253
  }
1364
1254
 
1365
1255
  template <typename Executor>
1366
1256
  any_executor(std::nothrow_t, Executor ex,
1367
- typename enable_if<
1368
- conditional<
1257
+ enable_if_t<
1258
+ conditional_t<
1369
1259
  !is_same<Executor, any_executor>::value
1370
1260
  && !is_base_of<detail::any_executor_base, Executor>::value,
1371
1261
  is_executor<Executor>,
1372
1262
  false_type
1373
- >::type::value
1374
- >::type* = 0) BOOST_ASIO_NOEXCEPT
1263
+ >::value
1264
+ >* = 0) noexcept
1375
1265
  : detail::any_executor_base(std::nothrow,
1376
- BOOST_ASIO_MOVE_CAST(Executor)(ex), false_type())
1266
+ static_cast<Executor&&>(ex), false_type())
1377
1267
  {
1378
1268
  }
1379
1269
 
1380
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
1381
-
1382
1270
  template <typename... OtherSupportableProperties>
1383
1271
  any_executor(any_executor<OtherSupportableProperties...> other)
1384
1272
  : detail::any_executor_base(
@@ -1388,46 +1276,25 @@ public:
1388
1276
 
1389
1277
  template <typename... OtherSupportableProperties>
1390
1278
  any_executor(std::nothrow_t,
1391
- any_executor<OtherSupportableProperties...> other) BOOST_ASIO_NOEXCEPT
1392
- : detail::any_executor_base(
1393
- static_cast<const detail::any_executor_base&>(other))
1394
- {
1395
- }
1396
-
1397
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
1398
-
1399
- template <typename U0, typename U1, typename U2, typename U3,
1400
- typename U4, typename U5, typename U6, typename U7>
1401
- any_executor(any_executor<U0, U1, U2, U3, U4, U5, U6, U7> other)
1402
- : detail::any_executor_base(
1403
- static_cast<const detail::any_executor_base&>(other))
1404
- {
1405
- }
1406
-
1407
- template <typename U0, typename U1, typename U2, typename U3,
1408
- typename U4, typename U5, typename U6, typename U7>
1409
- any_executor(std::nothrow_t,
1410
- any_executor<U0, U1, U2, U3, U4, U5, U6, U7> other) BOOST_ASIO_NOEXCEPT
1279
+ any_executor<OtherSupportableProperties...> other) noexcept
1411
1280
  : detail::any_executor_base(
1412
1281
  static_cast<const detail::any_executor_base&>(other))
1413
1282
  {
1414
1283
  }
1415
1284
 
1416
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
1417
-
1418
- any_executor(const any_executor& other) BOOST_ASIO_NOEXCEPT
1285
+ any_executor(const any_executor& other) noexcept
1419
1286
  : detail::any_executor_base(
1420
1287
  static_cast<const detail::any_executor_base&>(other))
1421
1288
  {
1422
1289
  }
1423
1290
 
1424
- any_executor(std::nothrow_t, const any_executor& other) BOOST_ASIO_NOEXCEPT
1291
+ any_executor(std::nothrow_t, const any_executor& other) noexcept
1425
1292
  : detail::any_executor_base(
1426
1293
  static_cast<const detail::any_executor_base&>(other))
1427
1294
  {
1428
1295
  }
1429
1296
 
1430
- any_executor& operator=(const any_executor& other) BOOST_ASIO_NOEXCEPT
1297
+ any_executor& operator=(const any_executor& other) noexcept
1431
1298
  {
1432
1299
  if (this != &other)
1433
1300
  {
@@ -1437,29 +1304,27 @@ public:
1437
1304
  return *this;
1438
1305
  }
1439
1306
 
1440
- any_executor& operator=(nullptr_t p) BOOST_ASIO_NOEXCEPT
1307
+ any_executor& operator=(nullptr_t p) noexcept
1441
1308
  {
1442
1309
  detail::any_executor_base::operator=(p);
1443
1310
  return *this;
1444
1311
  }
1445
1312
 
1446
- #if defined(BOOST_ASIO_HAS_MOVE)
1447
-
1448
- any_executor(any_executor&& other) BOOST_ASIO_NOEXCEPT
1313
+ any_executor(any_executor&& other) noexcept
1449
1314
  : detail::any_executor_base(
1450
1315
  static_cast<any_executor_base&&>(
1451
1316
  static_cast<any_executor_base&>(other)))
1452
1317
  {
1453
1318
  }
1454
1319
 
1455
- any_executor(std::nothrow_t, any_executor&& other) BOOST_ASIO_NOEXCEPT
1320
+ any_executor(std::nothrow_t, any_executor&& other) noexcept
1456
1321
  : detail::any_executor_base(
1457
1322
  static_cast<any_executor_base&&>(
1458
1323
  static_cast<any_executor_base&>(other)))
1459
1324
  {
1460
1325
  }
1461
1326
 
1462
- any_executor& operator=(any_executor&& other) BOOST_ASIO_NOEXCEPT
1327
+ any_executor& operator=(any_executor&& other) noexcept
1463
1328
  {
1464
1329
  if (this != &other)
1465
1330
  {
@@ -1470,9 +1335,7 @@ public:
1470
1335
  return *this;
1471
1336
  }
1472
1337
 
1473
- #endif // defined(BOOST_ASIO_HAS_MOVE)
1474
-
1475
- void swap(any_executor& other) BOOST_ASIO_NOEXCEPT
1338
+ void swap(any_executor& other) noexcept
1476
1339
  {
1477
1340
  detail::any_executor_base::swap(
1478
1341
  static_cast<detail::any_executor_base&>(other));
@@ -1484,77 +1347,75 @@ public:
1484
1347
  using detail::any_executor_base::operator unspecified_bool_type;
1485
1348
  using detail::any_executor_base::operator!;
1486
1349
 
1487
- bool equality_helper(const any_executor& other) const BOOST_ASIO_NOEXCEPT
1350
+ bool equality_helper(const any_executor& other) const noexcept
1488
1351
  {
1489
1352
  return any_executor_base::equality_helper(other);
1490
1353
  }
1491
1354
 
1492
1355
  template <typename AnyExecutor1, typename AnyExecutor2>
1493
- friend typename enable_if<
1356
+ friend enable_if_t<
1494
1357
  is_base_of<any_executor, AnyExecutor1>::value
1495
1358
  || is_base_of<any_executor, AnyExecutor2>::value,
1496
1359
  bool
1497
- >::type operator==(const AnyExecutor1& a,
1498
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT
1360
+ > operator==(const AnyExecutor1& a,
1361
+ const AnyExecutor2& b) noexcept
1499
1362
  {
1500
1363
  return static_cast<const any_executor&>(a).equality_helper(b);
1501
1364
  }
1502
1365
 
1503
1366
  template <typename AnyExecutor>
1504
- friend typename enable_if<
1367
+ friend enable_if_t<
1505
1368
  is_same<AnyExecutor, any_executor>::value,
1506
1369
  bool
1507
- >::type operator==(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT
1370
+ > operator==(const AnyExecutor& a, nullptr_t) noexcept
1508
1371
  {
1509
1372
  return !a;
1510
1373
  }
1511
1374
 
1512
1375
  template <typename AnyExecutor>
1513
- friend typename enable_if<
1376
+ friend enable_if_t<
1514
1377
  is_same<AnyExecutor, any_executor>::value,
1515
1378
  bool
1516
- >::type operator==(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT
1379
+ > operator==(nullptr_t, const AnyExecutor& b) noexcept
1517
1380
  {
1518
1381
  return !b;
1519
1382
  }
1520
1383
 
1521
1384
  template <typename AnyExecutor1, typename AnyExecutor2>
1522
- friend typename enable_if<
1385
+ friend enable_if_t<
1523
1386
  is_base_of<any_executor, AnyExecutor1>::value
1524
1387
  || is_base_of<any_executor, AnyExecutor2>::value,
1525
1388
  bool
1526
- >::type operator!=(const AnyExecutor1& a,
1527
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT
1389
+ > operator!=(const AnyExecutor1& a,
1390
+ const AnyExecutor2& b) noexcept
1528
1391
  {
1529
1392
  return !static_cast<const any_executor&>(a).equality_helper(b);
1530
1393
  }
1531
1394
 
1532
1395
  template <typename AnyExecutor>
1533
- friend typename enable_if<
1396
+ friend enable_if_t<
1534
1397
  is_same<AnyExecutor, any_executor>::value,
1535
1398
  bool
1536
- >::type operator!=(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT
1399
+ > operator!=(const AnyExecutor& a, nullptr_t) noexcept
1537
1400
  {
1538
1401
  return !!a;
1539
1402
  }
1540
1403
 
1541
1404
  template <typename AnyExecutor>
1542
- friend typename enable_if<
1405
+ friend enable_if_t<
1543
1406
  is_same<AnyExecutor, any_executor>::value,
1544
1407
  bool
1545
- >::type operator!=(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT
1408
+ > operator!=(nullptr_t, const AnyExecutor& b) noexcept
1546
1409
  {
1547
1410
  return !!b;
1548
1411
  }
1549
1412
  };
1550
1413
 
1551
- inline void swap(any_executor<>& a, any_executor<>& b) BOOST_ASIO_NOEXCEPT
1414
+ inline void swap(any_executor<>& a, any_executor<>& b) noexcept
1552
1415
  {
1553
1416
  return a.swap(b);
1554
1417
  }
1555
1418
 
1556
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
1557
-
1558
1419
  template <typename... SupportableProperties>
1559
1420
  class any_executor :
1560
1421
  public detail::any_executor_base,
@@ -1564,13 +1425,13 @@ class any_executor :
1564
1425
  0, void(SupportableProperties...)>::find_context_as_property>
1565
1426
  {
1566
1427
  public:
1567
- any_executor() BOOST_ASIO_NOEXCEPT
1428
+ any_executor() noexcept
1568
1429
  : detail::any_executor_base(),
1569
1430
  prop_fns_(prop_fns_table<void>())
1570
1431
  {
1571
1432
  }
1572
1433
 
1573
- any_executor(nullptr_t) BOOST_ASIO_NOEXCEPT
1434
+ any_executor(nullptr_t) noexcept
1574
1435
  : detail::any_executor_base(),
1575
1436
  prop_fns_(prop_fns_table<void>())
1576
1437
  {
@@ -1578,34 +1439,34 @@ public:
1578
1439
 
1579
1440
  template <typename Executor>
1580
1441
  any_executor(Executor ex,
1581
- typename enable_if<
1582
- conditional<
1442
+ enable_if_t<
1443
+ conditional_t<
1583
1444
  !is_same<Executor, any_executor>::value
1584
1445
  && !is_base_of<detail::any_executor_base, Executor>::value,
1585
1446
  detail::is_valid_target_executor<
1586
1447
  Executor, void(SupportableProperties...)>,
1587
1448
  false_type
1588
- >::type::value
1589
- >::type* = 0)
1449
+ >::value
1450
+ >* = 0)
1590
1451
  : detail::any_executor_base(
1591
- BOOST_ASIO_MOVE_CAST(Executor)(ex), false_type()),
1452
+ static_cast<Executor&&>(ex), false_type()),
1592
1453
  prop_fns_(prop_fns_table<Executor>())
1593
1454
  {
1594
1455
  }
1595
1456
 
1596
1457
  template <typename Executor>
1597
1458
  any_executor(std::nothrow_t, Executor ex,
1598
- typename enable_if<
1599
- conditional<
1459
+ enable_if_t<
1460
+ conditional_t<
1600
1461
  !is_same<Executor, any_executor>::value
1601
1462
  && !is_base_of<detail::any_executor_base, Executor>::value,
1602
1463
  detail::is_valid_target_executor<
1603
1464
  Executor, void(SupportableProperties...)>,
1604
1465
  false_type
1605
- >::type::value
1606
- >::type* = 0) BOOST_ASIO_NOEXCEPT
1466
+ >::value
1467
+ >* = 0) noexcept
1607
1468
  : detail::any_executor_base(std::nothrow,
1608
- BOOST_ASIO_MOVE_CAST(Executor)(ex), false_type()),
1469
+ static_cast<Executor&&>(ex), false_type()),
1609
1470
  prop_fns_(prop_fns_table<Executor>())
1610
1471
  {
1611
1472
  if (this->template target<void>() == 0)
@@ -1614,62 +1475,64 @@ public:
1614
1475
 
1615
1476
  template <typename... OtherSupportableProperties>
1616
1477
  any_executor(any_executor<OtherSupportableProperties...> other,
1617
- typename enable_if<
1618
- conditional<
1478
+ enable_if_t<
1479
+ conditional_t<
1619
1480
  !is_same<
1620
1481
  any_executor<OtherSupportableProperties...>,
1621
1482
  any_executor
1622
1483
  >::value,
1623
1484
  typename detail::supportable_properties<
1624
1485
  0, void(SupportableProperties...)>::template is_valid_target<
1625
- any_executor<OtherSupportableProperties...> >,
1486
+ any_executor<OtherSupportableProperties...>>,
1626
1487
  false_type
1627
- >::type::value
1628
- >::type* = 0)
1629
- : detail::any_executor_base(BOOST_ASIO_MOVE_CAST(
1630
- any_executor<OtherSupportableProperties...>)(other), true_type()),
1631
- prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...> >())
1488
+ >::value
1489
+ >* = 0)
1490
+ : detail::any_executor_base(
1491
+ static_cast<any_executor<OtherSupportableProperties...>&&>(other),
1492
+ true_type()),
1493
+ prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...>>())
1632
1494
  {
1633
1495
  }
1634
1496
 
1635
1497
  template <typename... OtherSupportableProperties>
1636
1498
  any_executor(std::nothrow_t,
1637
1499
  any_executor<OtherSupportableProperties...> other,
1638
- typename enable_if<
1639
- conditional<
1500
+ enable_if_t<
1501
+ conditional_t<
1640
1502
  !is_same<
1641
1503
  any_executor<OtherSupportableProperties...>,
1642
1504
  any_executor
1643
1505
  >::value,
1644
1506
  typename detail::supportable_properties<
1645
1507
  0, void(SupportableProperties...)>::template is_valid_target<
1646
- any_executor<OtherSupportableProperties...> >,
1508
+ any_executor<OtherSupportableProperties...>>,
1647
1509
  false_type
1648
- >::type::value
1649
- >::type* = 0) BOOST_ASIO_NOEXCEPT
1650
- : detail::any_executor_base(std::nothrow, BOOST_ASIO_MOVE_CAST(
1651
- any_executor<OtherSupportableProperties...>)(other), true_type()),
1652
- prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...> >())
1510
+ >::value
1511
+ >* = 0) noexcept
1512
+ : detail::any_executor_base(std::nothrow,
1513
+ static_cast<any_executor<OtherSupportableProperties...>&&>(other),
1514
+ true_type()),
1515
+ prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...>>())
1653
1516
  {
1654
1517
  if (this->template target<void>() == 0)
1655
1518
  prop_fns_ = prop_fns_table<void>();
1656
1519
  }
1657
1520
 
1658
- any_executor(const any_executor& other) BOOST_ASIO_NOEXCEPT
1521
+ any_executor(const any_executor& other) noexcept
1659
1522
  : detail::any_executor_base(
1660
1523
  static_cast<const detail::any_executor_base&>(other)),
1661
1524
  prop_fns_(other.prop_fns_)
1662
1525
  {
1663
1526
  }
1664
1527
 
1665
- any_executor(std::nothrow_t, const any_executor& other) BOOST_ASIO_NOEXCEPT
1528
+ any_executor(std::nothrow_t, const any_executor& other) noexcept
1666
1529
  : detail::any_executor_base(
1667
1530
  static_cast<const detail::any_executor_base&>(other)),
1668
1531
  prop_fns_(other.prop_fns_)
1669
1532
  {
1670
1533
  }
1671
1534
 
1672
- any_executor& operator=(const any_executor& other) BOOST_ASIO_NOEXCEPT
1535
+ any_executor& operator=(const any_executor& other) noexcept
1673
1536
  {
1674
1537
  if (this != &other)
1675
1538
  {
@@ -1680,16 +1543,14 @@ public:
1680
1543
  return *this;
1681
1544
  }
1682
1545
 
1683
- any_executor& operator=(nullptr_t p) BOOST_ASIO_NOEXCEPT
1546
+ any_executor& operator=(nullptr_t p) noexcept
1684
1547
  {
1685
1548
  prop_fns_ = prop_fns_table<void>();
1686
1549
  detail::any_executor_base::operator=(p);
1687
1550
  return *this;
1688
1551
  }
1689
1552
 
1690
- #if defined(BOOST_ASIO_HAS_MOVE)
1691
-
1692
- any_executor(any_executor&& other) BOOST_ASIO_NOEXCEPT
1553
+ any_executor(any_executor&& other) noexcept
1693
1554
  : detail::any_executor_base(
1694
1555
  static_cast<any_executor_base&&>(
1695
1556
  static_cast<any_executor_base&>(other))),
@@ -1698,7 +1559,7 @@ public:
1698
1559
  other.prop_fns_ = prop_fns_table<void>();
1699
1560
  }
1700
1561
 
1701
- any_executor(std::nothrow_t, any_executor&& other) BOOST_ASIO_NOEXCEPT
1562
+ any_executor(std::nothrow_t, any_executor&& other) noexcept
1702
1563
  : detail::any_executor_base(
1703
1564
  static_cast<any_executor_base&&>(
1704
1565
  static_cast<any_executor_base&>(other))),
@@ -1707,7 +1568,7 @@ public:
1707
1568
  other.prop_fns_ = prop_fns_table<void>();
1708
1569
  }
1709
1570
 
1710
- any_executor& operator=(any_executor&& other) BOOST_ASIO_NOEXCEPT
1571
+ any_executor& operator=(any_executor&& other) noexcept
1711
1572
  {
1712
1573
  if (this != &other)
1713
1574
  {
@@ -1719,9 +1580,7 @@ public:
1719
1580
  return *this;
1720
1581
  }
1721
1582
 
1722
- #endif // defined(BOOST_ASIO_HAS_MOVE)
1723
-
1724
- void swap(any_executor& other) BOOST_ASIO_NOEXCEPT
1583
+ void swap(any_executor& other) noexcept
1725
1584
  {
1726
1585
  if (this != &other)
1727
1586
  {
@@ -1739,65 +1598,65 @@ public:
1739
1598
  using detail::any_executor_base::operator unspecified_bool_type;
1740
1599
  using detail::any_executor_base::operator!;
1741
1600
 
1742
- bool equality_helper(const any_executor& other) const BOOST_ASIO_NOEXCEPT
1601
+ bool equality_helper(const any_executor& other) const noexcept
1743
1602
  {
1744
1603
  return any_executor_base::equality_helper(other);
1745
1604
  }
1746
1605
 
1747
1606
  template <typename AnyExecutor1, typename AnyExecutor2>
1748
- friend typename enable_if<
1607
+ friend enable_if_t<
1749
1608
  is_base_of<any_executor, AnyExecutor1>::value
1750
1609
  || is_base_of<any_executor, AnyExecutor2>::value,
1751
1610
  bool
1752
- >::type operator==(const AnyExecutor1& a,
1753
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT
1611
+ > operator==(const AnyExecutor1& a,
1612
+ const AnyExecutor2& b) noexcept
1754
1613
  {
1755
1614
  return static_cast<const any_executor&>(a).equality_helper(b);
1756
1615
  }
1757
1616
 
1758
1617
  template <typename AnyExecutor>
1759
- friend typename enable_if<
1618
+ friend enable_if_t<
1760
1619
  is_same<AnyExecutor, any_executor>::value,
1761
1620
  bool
1762
- >::type operator==(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT
1621
+ > operator==(const AnyExecutor& a, nullptr_t) noexcept
1763
1622
  {
1764
1623
  return !a;
1765
1624
  }
1766
1625
 
1767
1626
  template <typename AnyExecutor>
1768
- friend typename enable_if<
1627
+ friend enable_if_t<
1769
1628
  is_same<AnyExecutor, any_executor>::value,
1770
1629
  bool
1771
- >::type operator==(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT
1630
+ > operator==(nullptr_t, const AnyExecutor& b) noexcept
1772
1631
  {
1773
1632
  return !b;
1774
1633
  }
1775
1634
 
1776
1635
  template <typename AnyExecutor1, typename AnyExecutor2>
1777
- friend typename enable_if<
1636
+ friend enable_if_t<
1778
1637
  is_base_of<any_executor, AnyExecutor1>::value
1779
1638
  || is_base_of<any_executor, AnyExecutor2>::value,
1780
1639
  bool
1781
- >::type operator!=(const AnyExecutor1& a,
1782
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT
1640
+ > operator!=(const AnyExecutor1& a,
1641
+ const AnyExecutor2& b) noexcept
1783
1642
  {
1784
1643
  return !static_cast<const any_executor&>(a).equality_helper(b);
1785
1644
  }
1786
1645
 
1787
1646
  template <typename AnyExecutor>
1788
- friend typename enable_if<
1647
+ friend enable_if_t<
1789
1648
  is_same<AnyExecutor, any_executor>::value,
1790
1649
  bool
1791
- >::type operator!=(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT
1650
+ > operator!=(const AnyExecutor& a, nullptr_t) noexcept
1792
1651
  {
1793
1652
  return !!a;
1794
1653
  }
1795
1654
 
1796
1655
  template <typename AnyExecutor>
1797
- friend typename enable_if<
1656
+ friend enable_if_t<
1798
1657
  is_same<AnyExecutor, any_executor>::value,
1799
1658
  bool
1800
- >::type operator!=(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT
1659
+ > operator!=(nullptr_t, const AnyExecutor& b) noexcept
1801
1660
  {
1802
1661
  return !!b;
1803
1662
  }
@@ -1810,13 +1669,18 @@ public:
1810
1669
 
1811
1670
  template <typename Property>
1812
1671
  void query(const Property& p,
1813
- typename enable_if<
1672
+ enable_if_t<
1814
1673
  is_same<
1815
1674
  typename find_convertible_property<Property>::query_result_type,
1816
1675
  void
1817
1676
  >::value
1818
- >::type* = 0) const
1677
+ >* = 0) const
1819
1678
  {
1679
+ if (!target_)
1680
+ {
1681
+ bad_executor ex;
1682
+ boost::asio::detail::throw_exception(ex);
1683
+ }
1820
1684
  typedef find_convertible_property<Property> found;
1821
1685
  prop_fns_[found::index].query(0, object_fns_->target(*this),
1822
1686
  &static_cast<const typename found::type&>(p));
@@ -1825,7 +1689,7 @@ public:
1825
1689
  template <typename Property>
1826
1690
  typename find_convertible_property<Property>::query_result_type
1827
1691
  query(const Property& p,
1828
- typename enable_if<
1692
+ enable_if_t<
1829
1693
  !is_same<
1830
1694
  typename find_convertible_property<Property>::query_result_type,
1831
1695
  void
@@ -1834,11 +1698,15 @@ public:
1834
1698
  is_reference<
1835
1699
  typename find_convertible_property<Property>::query_result_type
1836
1700
  >::value
1837
- >::type* = 0) const
1701
+ >* = 0) const
1838
1702
  {
1703
+ if (!target_)
1704
+ {
1705
+ bad_executor ex;
1706
+ boost::asio::detail::throw_exception(ex);
1707
+ }
1839
1708
  typedef find_convertible_property<Property> found;
1840
- typename remove_reference<
1841
- typename found::query_result_type>::type* result = 0;
1709
+ remove_reference_t<typename found::query_result_type>* result = 0;
1842
1710
  prop_fns_[found::index].query(&result, object_fns_->target(*this),
1843
1711
  &static_cast<const typename found::type&>(p));
1844
1712
  return *result;
@@ -1847,7 +1715,7 @@ public:
1847
1715
  template <typename Property>
1848
1716
  typename find_convertible_property<Property>::query_result_type
1849
1717
  query(const Property& p,
1850
- typename enable_if<
1718
+ enable_if_t<
1851
1719
  !is_same<
1852
1720
  typename find_convertible_property<Property>::query_result_type,
1853
1721
  void
@@ -1856,8 +1724,13 @@ public:
1856
1724
  is_scalar<
1857
1725
  typename find_convertible_property<Property>::query_result_type
1858
1726
  >::value
1859
- >::type* = 0) const
1727
+ >* = 0) const
1860
1728
  {
1729
+ if (!target_)
1730
+ {
1731
+ bad_executor ex;
1732
+ boost::asio::detail::throw_exception(ex);
1733
+ }
1861
1734
  typedef find_convertible_property<Property> found;
1862
1735
  typename found::query_result_type result;
1863
1736
  prop_fns_[found::index].query(&result, object_fns_->target(*this),
@@ -1868,7 +1741,7 @@ public:
1868
1741
  template <typename Property>
1869
1742
  typename find_convertible_property<Property>::query_result_type
1870
1743
  query(const Property& p,
1871
- typename enable_if<
1744
+ enable_if_t<
1872
1745
  !is_same<
1873
1746
  typename find_convertible_property<Property>::query_result_type,
1874
1747
  void
@@ -1881,8 +1754,13 @@ public:
1881
1754
  !is_scalar<
1882
1755
  typename find_convertible_property<Property>::query_result_type
1883
1756
  >::value
1884
- >::type* = 0) const
1757
+ >* = 0) const
1885
1758
  {
1759
+ if (!target_)
1760
+ {
1761
+ bad_executor ex;
1762
+ boost::asio::detail::throw_exception(ex);
1763
+ }
1886
1764
  typedef find_convertible_property<Property> found;
1887
1765
  typename found::query_result_type* result;
1888
1766
  prop_fns_[found::index].query(&result, object_fns_->target(*this),
@@ -1899,10 +1777,15 @@ public:
1899
1777
 
1900
1778
  template <typename Property>
1901
1779
  any_executor require(const Property& p,
1902
- typename enable_if<
1780
+ enable_if_t<
1903
1781
  find_convertible_requirable_property<Property>::value
1904
- >::type* = 0) const
1782
+ >* = 0) const
1905
1783
  {
1784
+ if (!target_)
1785
+ {
1786
+ bad_executor ex;
1787
+ boost::asio::detail::throw_exception(ex);
1788
+ }
1906
1789
  typedef find_convertible_requirable_property<Property> found;
1907
1790
  return prop_fns_[found::index].require(object_fns_->target(*this),
1908
1791
  &static_cast<const typename found::type&>(p));
@@ -1916,10 +1799,15 @@ public:
1916
1799
 
1917
1800
  template <typename Property>
1918
1801
  any_executor prefer(const Property& p,
1919
- typename enable_if<
1802
+ enable_if_t<
1920
1803
  find_convertible_preferable_property<Property>::value
1921
- >::type* = 0) const
1804
+ >* = 0) const
1922
1805
  {
1806
+ if (!target_)
1807
+ {
1808
+ bad_executor ex;
1809
+ boost::asio::detail::throw_exception(ex);
1810
+ }
1923
1811
  typedef find_convertible_preferable_property<Property> found;
1924
1812
  return prop_fns_[found::index].prefer(object_fns_->target(*this),
1925
1813
  &static_cast<const typename found::type&>(p));
@@ -1948,702 +1836,91 @@ public:
1948
1836
 
1949
1837
  template <typename... SupportableProperties>
1950
1838
  inline void swap(any_executor<SupportableProperties...>& a,
1951
- any_executor<SupportableProperties...>& b) BOOST_ASIO_NOEXCEPT
1839
+ any_executor<SupportableProperties...>& b) noexcept
1952
1840
  {
1953
1841
  return a.swap(b);
1954
1842
  }
1955
1843
 
1956
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
1957
-
1958
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS(n) \
1959
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_##n
1960
-
1961
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_1 \
1962
- { \
1963
- &detail::any_executor_base::query_fn<Ex, T1>, \
1964
- &detail::any_executor_base::require_fn<any_executor, Ex, T1>, \
1965
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T1> \
1966
- }
1967
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_2 \
1968
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_1, \
1969
- { \
1970
- &detail::any_executor_base::query_fn<Ex, T2>, \
1971
- &detail::any_executor_base::require_fn<any_executor, Ex, T2>, \
1972
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T2> \
1973
- }
1974
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_3 \
1975
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_2, \
1976
- { \
1977
- &detail::any_executor_base::query_fn<Ex, T3>, \
1978
- &detail::any_executor_base::require_fn<any_executor, Ex, T3>, \
1979
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T3> \
1980
- }
1981
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_4 \
1982
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_3, \
1983
- { \
1984
- &detail::any_executor_base::query_fn<Ex, T4>, \
1985
- &detail::any_executor_base::require_fn<any_executor, Ex, T4>, \
1986
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T4> \
1987
- }
1988
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_5 \
1989
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_4, \
1990
- { \
1991
- &detail::any_executor_base::query_fn<Ex, T5>, \
1992
- &detail::any_executor_base::require_fn<any_executor, Ex, T5>, \
1993
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T5> \
1994
- }
1995
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_6 \
1996
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_5, \
1997
- { \
1998
- &detail::any_executor_base::query_fn<Ex, T6>, \
1999
- &detail::any_executor_base::require_fn<any_executor, Ex, T6>, \
2000
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T6> \
2001
- }
2002
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_7 \
2003
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_6, \
2004
- { \
2005
- &detail::any_executor_base::query_fn<Ex, T7>, \
2006
- &detail::any_executor_base::require_fn<any_executor, Ex, T7>, \
2007
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T7> \
2008
- }
2009
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_8 \
2010
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_7, \
2011
- { \
2012
- &detail::any_executor_base::query_fn<Ex, T8>, \
2013
- &detail::any_executor_base::require_fn<any_executor, Ex, T8>, \
2014
- &detail::any_executor_base::prefer_fn<any_executor, Ex, T8> \
2015
- }
2016
-
2017
- #if defined(BOOST_ASIO_HAS_MOVE)
2018
-
2019
- # define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_MOVE_OPS \
2020
- any_executor(any_executor&& other) BOOST_ASIO_NOEXCEPT \
2021
- : detail::any_executor_base( \
2022
- static_cast<any_executor_base&&>( \
2023
- static_cast<any_executor_base&>(other))), \
2024
- prop_fns_(other.prop_fns_) \
2025
- { \
2026
- other.prop_fns_ = prop_fns_table<void>(); \
2027
- } \
2028
- \
2029
- any_executor(std::nothrow_t, any_executor&& other) BOOST_ASIO_NOEXCEPT \
2030
- : detail::any_executor_base( \
2031
- static_cast<any_executor_base&&>( \
2032
- static_cast<any_executor_base&>(other))), \
2033
- prop_fns_(other.prop_fns_) \
2034
- { \
2035
- other.prop_fns_ = prop_fns_table<void>(); \
2036
- } \
2037
- \
2038
- any_executor& operator=(any_executor&& other) BOOST_ASIO_NOEXCEPT \
2039
- { \
2040
- if (this != &other) \
2041
- { \
2042
- prop_fns_ = other.prop_fns_; \
2043
- detail::any_executor_base::operator=( \
2044
- static_cast<detail::any_executor_base&&>( \
2045
- static_cast<detail::any_executor_base&>(other))); \
2046
- } \
2047
- return *this; \
2048
- } \
2049
- /**/
2050
- #else // defined(BOOST_ASIO_HAS_MOVE)
2051
-
2052
- # define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_MOVE_OPS
2053
-
2054
- #endif // defined(BOOST_ASIO_HAS_MOVE)
2055
-
2056
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_DEF(n) \
2057
- template <BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2058
- class any_executor<BOOST_ASIO_VARIADIC_TARGS(n)> : \
2059
- public detail::any_executor_base, \
2060
- public detail::any_executor_context< \
2061
- any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>, \
2062
- typename detail::supportable_properties< \
2063
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::find_context_as_property> \
2064
- { \
2065
- public: \
2066
- any_executor() BOOST_ASIO_NOEXCEPT \
2067
- : detail::any_executor_base(), \
2068
- prop_fns_(prop_fns_table<void>()) \
2069
- { \
2070
- } \
2071
- \
2072
- any_executor(nullptr_t) BOOST_ASIO_NOEXCEPT \
2073
- : detail::any_executor_base(), \
2074
- prop_fns_(prop_fns_table<void>()) \
2075
- { \
2076
- } \
2077
- \
2078
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor> \
2079
- any_executor(Executor ex, \
2080
- typename enable_if< \
2081
- conditional< \
2082
- !is_same<Executor, any_executor>::value \
2083
- && !is_base_of<detail::any_executor_base, Executor>::value, \
2084
- detail::is_valid_target_executor< \
2085
- Executor, void(BOOST_ASIO_VARIADIC_TARGS(n))>, \
2086
- false_type \
2087
- >::type::value \
2088
- >::type* = 0) \
2089
- : detail::any_executor_base(BOOST_ASIO_MOVE_CAST( \
2090
- Executor)(ex), false_type()), \
2091
- prop_fns_(prop_fns_table<Executor>()) \
2092
- { \
2093
- } \
2094
- \
2095
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor> \
2096
- any_executor(std::nothrow_t, Executor ex, \
2097
- typename enable_if< \
2098
- conditional< \
2099
- !is_same<Executor, any_executor>::value \
2100
- && !is_base_of<detail::any_executor_base, Executor>::value, \
2101
- detail::is_valid_target_executor< \
2102
- Executor, void(BOOST_ASIO_VARIADIC_TARGS(n))>, \
2103
- false_type \
2104
- >::type::value \
2105
- >::type* = 0) BOOST_ASIO_NOEXCEPT \
2106
- : detail::any_executor_base(std::nothrow, \
2107
- BOOST_ASIO_MOVE_CAST(Executor)(ex), false_type()), \
2108
- prop_fns_(prop_fns_table<Executor>()) \
2109
- { \
2110
- if (this->template target<void>() == 0) \
2111
- prop_fns_ = prop_fns_table<void>(); \
2112
- } \
2113
- \
2114
- any_executor(const any_executor& other) BOOST_ASIO_NOEXCEPT \
2115
- : detail::any_executor_base( \
2116
- static_cast<const detail::any_executor_base&>(other)), \
2117
- prop_fns_(other.prop_fns_) \
2118
- { \
2119
- } \
2120
- \
2121
- any_executor(std::nothrow_t, \
2122
- const any_executor& other) BOOST_ASIO_NOEXCEPT \
2123
- : detail::any_executor_base( \
2124
- static_cast<const detail::any_executor_base&>(other)), \
2125
- prop_fns_(other.prop_fns_) \
2126
- { \
2127
- if (this->template target<void>() == 0) \
2128
- prop_fns_ = prop_fns_table<void>(); \
2129
- } \
2130
- \
2131
- any_executor(any_executor<> other) \
2132
- : detail::any_executor_base(BOOST_ASIO_MOVE_CAST( \
2133
- any_executor<>)(other), true_type()), \
2134
- prop_fns_(prop_fns_table<any_executor<> >()) \
2135
- { \
2136
- } \
2137
- \
2138
- any_executor(std::nothrow_t, any_executor<> other) BOOST_ASIO_NOEXCEPT \
2139
- : detail::any_executor_base(std::nothrow, \
2140
- BOOST_ASIO_MOVE_CAST(any_executor<>)(other), true_type()), \
2141
- prop_fns_(prop_fns_table<any_executor<> >()) \
2142
- { \
2143
- if (this->template target<void>() == 0) \
2144
- prop_fns_ = prop_fns_table<void>(); \
2145
- } \
2146
- \
2147
- template <typename OtherAnyExecutor> \
2148
- any_executor(OtherAnyExecutor other, \
2149
- typename enable_if< \
2150
- conditional< \
2151
- !is_same<OtherAnyExecutor, any_executor>::value \
2152
- && is_base_of<detail::any_executor_base, \
2153
- OtherAnyExecutor>::value, \
2154
- typename detail::supportable_properties< \
2155
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2156
- is_valid_target<OtherAnyExecutor>, \
2157
- false_type \
2158
- >::type::value \
2159
- >::type* = 0) \
2160
- : detail::any_executor_base(BOOST_ASIO_MOVE_CAST( \
2161
- OtherAnyExecutor)(other), true_type()), \
2162
- prop_fns_(prop_fns_table<OtherAnyExecutor>()) \
2163
- { \
2164
- } \
2165
- \
2166
- template <typename OtherAnyExecutor> \
2167
- any_executor(std::nothrow_t, OtherAnyExecutor other, \
2168
- typename enable_if< \
2169
- conditional< \
2170
- !is_same<OtherAnyExecutor, any_executor>::value \
2171
- && is_base_of<detail::any_executor_base, \
2172
- OtherAnyExecutor>::value, \
2173
- typename detail::supportable_properties< \
2174
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2175
- is_valid_target<OtherAnyExecutor>, \
2176
- false_type \
2177
- >::type::value \
2178
- >::type* = 0) BOOST_ASIO_NOEXCEPT \
2179
- : detail::any_executor_base(std::nothrow, \
2180
- BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(other), true_type()), \
2181
- prop_fns_(prop_fns_table<OtherAnyExecutor>()) \
2182
- { \
2183
- if (this->template target<void>() == 0) \
2184
- prop_fns_ = prop_fns_table<void>(); \
2185
- } \
2186
- \
2187
- any_executor& operator=(const any_executor& other) BOOST_ASIO_NOEXCEPT \
2188
- { \
2189
- if (this != &other) \
2190
- { \
2191
- prop_fns_ = other.prop_fns_; \
2192
- detail::any_executor_base::operator=( \
2193
- static_cast<const detail::any_executor_base&>(other)); \
2194
- } \
2195
- return *this; \
2196
- } \
2197
- \
2198
- any_executor& operator=(nullptr_t p) BOOST_ASIO_NOEXCEPT \
2199
- { \
2200
- prop_fns_ = prop_fns_table<void>(); \
2201
- detail::any_executor_base::operator=(p); \
2202
- return *this; \
2203
- } \
2204
- \
2205
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_MOVE_OPS \
2206
- \
2207
- void swap(any_executor& other) BOOST_ASIO_NOEXCEPT \
2208
- { \
2209
- if (this != &other) \
2210
- { \
2211
- detail::any_executor_base::swap( \
2212
- static_cast<detail::any_executor_base&>(other)); \
2213
- const prop_fns<any_executor>* tmp_prop_fns = other.prop_fns_; \
2214
- other.prop_fns_ = prop_fns_; \
2215
- prop_fns_ = tmp_prop_fns; \
2216
- } \
2217
- } \
2218
- \
2219
- using detail::any_executor_base::execute; \
2220
- using detail::any_executor_base::target; \
2221
- using detail::any_executor_base::target_type; \
2222
- using detail::any_executor_base::operator unspecified_bool_type; \
2223
- using detail::any_executor_base::operator!; \
2224
- \
2225
- bool equality_helper(const any_executor& other) const BOOST_ASIO_NOEXCEPT \
2226
- { \
2227
- return any_executor_base::equality_helper(other); \
2228
- } \
2229
- \
2230
- template <typename AnyExecutor1, typename AnyExecutor2> \
2231
- friend typename enable_if< \
2232
- is_base_of<any_executor, AnyExecutor1>::value \
2233
- || is_base_of<any_executor, AnyExecutor2>::value, \
2234
- bool \
2235
- >::type operator==(const AnyExecutor1& a, \
2236
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT \
2237
- { \
2238
- return static_cast<const any_executor&>(a).equality_helper(b); \
2239
- } \
2240
- \
2241
- template <typename AnyExecutor> \
2242
- friend typename enable_if< \
2243
- is_same<AnyExecutor, any_executor>::value, \
2244
- bool \
2245
- >::type operator==(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT \
2246
- { \
2247
- return !a; \
2248
- } \
2249
- \
2250
- template <typename AnyExecutor> \
2251
- friend typename enable_if< \
2252
- is_same<AnyExecutor, any_executor>::value, \
2253
- bool \
2254
- >::type operator==(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT \
2255
- { \
2256
- return !b; \
2257
- } \
2258
- \
2259
- template <typename AnyExecutor1, typename AnyExecutor2> \
2260
- friend typename enable_if< \
2261
- is_base_of<any_executor, AnyExecutor1>::value \
2262
- || is_base_of<any_executor, AnyExecutor2>::value, \
2263
- bool \
2264
- >::type operator!=(const AnyExecutor1& a, \
2265
- const AnyExecutor2& b) BOOST_ASIO_NOEXCEPT \
2266
- { \
2267
- return !static_cast<const any_executor&>(a).equality_helper(b); \
2268
- } \
2269
- \
2270
- template <typename AnyExecutor> \
2271
- friend typename enable_if< \
2272
- is_same<AnyExecutor, any_executor>::value, \
2273
- bool \
2274
- >::type operator!=(const AnyExecutor& a, nullptr_t) BOOST_ASIO_NOEXCEPT \
2275
- { \
2276
- return !!a; \
2277
- } \
2278
- \
2279
- template <typename AnyExecutor> \
2280
- friend typename enable_if< \
2281
- is_same<AnyExecutor, any_executor>::value, \
2282
- bool \
2283
- >::type operator!=(nullptr_t, const AnyExecutor& b) BOOST_ASIO_NOEXCEPT \
2284
- { \
2285
- return !!b; \
2286
- } \
2287
- \
2288
- template <typename T> \
2289
- struct find_convertible_property : \
2290
- detail::supportable_properties< \
2291
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2292
- find_convertible_property<T> {}; \
2293
- \
2294
- template <typename Property> \
2295
- void query(const Property& p, \
2296
- typename enable_if< \
2297
- is_same< \
2298
- typename find_convertible_property<Property>::query_result_type, \
2299
- void \
2300
- >::value \
2301
- >::type* = 0) const \
2302
- { \
2303
- typedef find_convertible_property<Property> found; \
2304
- prop_fns_[found::index].query(0, object_fns_->target(*this), \
2305
- &static_cast<const typename found::type&>(p)); \
2306
- } \
2307
- \
2308
- template <typename Property> \
2309
- typename find_convertible_property<Property>::query_result_type \
2310
- query(const Property& p, \
2311
- typename enable_if< \
2312
- !is_same< \
2313
- typename find_convertible_property<Property>::query_result_type, \
2314
- void \
2315
- >::value \
2316
- && \
2317
- is_reference< \
2318
- typename find_convertible_property<Property>::query_result_type \
2319
- >::value \
2320
- >::type* = 0) const \
2321
- { \
2322
- typedef find_convertible_property<Property> found; \
2323
- typename remove_reference< \
2324
- typename found::query_result_type>::type* result; \
2325
- prop_fns_[found::index].query(&result, object_fns_->target(*this), \
2326
- &static_cast<const typename found::type&>(p)); \
2327
- return *result; \
2328
- } \
2329
- \
2330
- template <typename Property> \
2331
- typename find_convertible_property<Property>::query_result_type \
2332
- query(const Property& p, \
2333
- typename enable_if< \
2334
- !is_same< \
2335
- typename find_convertible_property<Property>::query_result_type, \
2336
- void \
2337
- >::value \
2338
- && \
2339
- is_scalar< \
2340
- typename find_convertible_property<Property>::query_result_type \
2341
- >::value \
2342
- >::type* = 0) const \
2343
- { \
2344
- typedef find_convertible_property<Property> found; \
2345
- typename found::query_result_type result; \
2346
- prop_fns_[found::index].query(&result, object_fns_->target(*this), \
2347
- &static_cast<const typename found::type&>(p)); \
2348
- return result; \
2349
- } \
2350
- \
2351
- template <typename Property> \
2352
- typename find_convertible_property<Property>::query_result_type \
2353
- query(const Property& p, \
2354
- typename enable_if< \
2355
- !is_same< \
2356
- typename find_convertible_property<Property>::query_result_type, \
2357
- void \
2358
- >::value \
2359
- && \
2360
- !is_reference< \
2361
- typename find_convertible_property<Property>::query_result_type \
2362
- >::value \
2363
- && \
2364
- !is_scalar< \
2365
- typename find_convertible_property<Property>::query_result_type \
2366
- >::value \
2367
- >::type* = 0) const \
2368
- { \
2369
- typedef find_convertible_property<Property> found; \
2370
- typename found::query_result_type* result; \
2371
- prop_fns_[found::index].query(&result, object_fns_->target(*this), \
2372
- &static_cast<const typename found::type&>(p)); \
2373
- return *boost::asio::detail::scoped_ptr< \
2374
- typename found::query_result_type>(result); \
2375
- } \
2376
- \
2377
- template <typename T> \
2378
- struct find_convertible_requirable_property : \
2379
- detail::supportable_properties< \
2380
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2381
- find_convertible_requirable_property<T> {}; \
2382
- \
2383
- template <typename Property> \
2384
- any_executor require(const Property& p, \
2385
- typename enable_if< \
2386
- find_convertible_requirable_property<Property>::value \
2387
- >::type* = 0) const \
2388
- { \
2389
- typedef find_convertible_requirable_property<Property> found; \
2390
- return prop_fns_[found::index].require(object_fns_->target(*this), \
2391
- &static_cast<const typename found::type&>(p)); \
2392
- } \
2393
- \
2394
- template <typename T> \
2395
- struct find_convertible_preferable_property : \
2396
- detail::supportable_properties< \
2397
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2398
- find_convertible_preferable_property<T> {}; \
2399
- \
2400
- template <typename Property> \
2401
- any_executor prefer(const Property& p, \
2402
- typename enable_if< \
2403
- find_convertible_preferable_property<Property>::value \
2404
- >::type* = 0) const \
2405
- { \
2406
- typedef find_convertible_preferable_property<Property> found; \
2407
- return prop_fns_[found::index].prefer(object_fns_->target(*this), \
2408
- &static_cast<const typename found::type&>(p)); \
2409
- } \
2410
- \
2411
- template <typename Ex> \
2412
- static const prop_fns<any_executor>* prop_fns_table() \
2413
- { \
2414
- static const prop_fns<any_executor> fns[] = \
2415
- { \
2416
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS(n) \
2417
- }; \
2418
- return fns; \
2419
- } \
2420
- \
2421
- const prop_fns<any_executor>* prop_fns_; \
2422
- typedef detail::supportable_properties<0, \
2423
- void(BOOST_ASIO_VARIADIC_TARGS(n))> supportable_properties_type; \
2424
- }; \
2425
- \
2426
- template <BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2427
- inline void swap(any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>& a, \
2428
- any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>& b) BOOST_ASIO_NOEXCEPT \
2429
- { \
2430
- return a.swap(b); \
2431
- } \
2432
- /**/
2433
- BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_ANY_EXECUTOR_DEF)
2434
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_DEF
2435
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_MOVE_OPS
2436
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS
2437
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_1
2438
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_2
2439
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_3
2440
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_4
2441
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_5
2442
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_6
2443
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_7
2444
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PROP_FNS_8
2445
-
2446
- #endif // if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2447
-
2448
1844
  } // namespace execution
2449
1845
  namespace traits {
2450
1846
 
2451
1847
  #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
2452
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2453
1848
 
2454
1849
  template <typename... SupportableProperties>
2455
- struct equality_comparable<execution::any_executor<SupportableProperties...> >
2456
- {
2457
- static const bool is_valid = true;
2458
- static const bool is_noexcept = true;
2459
- };
2460
-
2461
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2462
-
2463
- template <>
2464
- struct equality_comparable<execution::any_executor<> >
1850
+ struct equality_comparable<execution::any_executor<SupportableProperties...>>
2465
1851
  {
2466
- static const bool is_valid = true;
2467
- static const bool is_noexcept = true;
1852
+ static constexpr bool is_valid = true;
1853
+ static constexpr bool is_noexcept = true;
2468
1854
  };
2469
1855
 
2470
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EQUALITY_COMPARABLE_DEF(n) \
2471
- template <BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2472
- struct equality_comparable< \
2473
- execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)> > \
2474
- { \
2475
- static const bool is_valid = true; \
2476
- static const bool is_noexcept = true; \
2477
- }; \
2478
- /**/
2479
- BOOST_ASIO_VARIADIC_GENERATE(
2480
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EQUALITY_COMPARABLE_DEF)
2481
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EQUALITY_COMPARABLE_DEF
2482
-
2483
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2484
1856
  #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
2485
1857
 
2486
1858
  #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
2487
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2488
1859
 
2489
1860
  template <typename F, typename... SupportableProperties>
2490
1861
  struct execute_member<execution::any_executor<SupportableProperties...>, F>
2491
1862
  {
2492
- static const bool is_valid = true;
2493
- static const bool is_noexcept = false;
2494
- typedef void result_type;
2495
- };
2496
-
2497
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2498
-
2499
- template <typename F>
2500
- struct execute_member<execution::any_executor<>, F>
2501
- {
2502
- static const bool is_valid = true;
2503
- static const bool is_noexcept = false;
1863
+ static constexpr bool is_valid = true;
1864
+ static constexpr bool is_noexcept = false;
2504
1865
  typedef void result_type;
2505
1866
  };
2506
1867
 
2507
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EXECUTE_MEMBER_DEF(n) \
2508
- template <typename F, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2509
- struct execute_member< \
2510
- execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>, F> \
2511
- { \
2512
- static const bool is_valid = true; \
2513
- static const bool is_noexcept = false; \
2514
- typedef void result_type; \
2515
- }; \
2516
- /**/
2517
- BOOST_ASIO_VARIADIC_GENERATE(
2518
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EXECUTE_MEMBER_DEF)
2519
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_EXECUTE_MEMBER_DEF
2520
-
2521
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2522
1868
  #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
2523
1869
 
2524
1870
  #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
2525
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2526
1871
 
2527
1872
  template <typename Prop, typename... SupportableProperties>
2528
1873
  struct query_member<
2529
1874
  execution::any_executor<SupportableProperties...>, Prop,
2530
- typename enable_if<
1875
+ enable_if_t<
2531
1876
  execution::detail::supportable_properties<
2532
1877
  0, void(SupportableProperties...)>::template
2533
1878
  find_convertible_property<Prop>::value
2534
- >::type>
1879
+ >>
2535
1880
  {
2536
- static const bool is_valid = true;
2537
- static const bool is_noexcept = false;
1881
+ static constexpr bool is_valid = true;
1882
+ static constexpr bool is_noexcept = false;
2538
1883
  typedef typename execution::detail::supportable_properties<
2539
1884
  0, void(SupportableProperties...)>::template
2540
1885
  find_convertible_property<Prop>::query_result_type result_type;
2541
1886
  };
2542
1887
 
2543
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2544
-
2545
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_QUERY_MEMBER_DEF(n) \
2546
- template <typename Prop, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2547
- struct query_member< \
2548
- execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>, Prop, \
2549
- typename enable_if< \
2550
- execution::detail::supportable_properties< \
2551
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2552
- find_convertible_property<Prop>::value \
2553
- >::type> \
2554
- { \
2555
- static const bool is_valid = true; \
2556
- static const bool is_noexcept = false; \
2557
- typedef typename execution::detail::supportable_properties< \
2558
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2559
- find_convertible_property<Prop>::query_result_type result_type; \
2560
- }; \
2561
- /**/
2562
- BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_ANY_EXECUTOR_QUERY_MEMBER_DEF)
2563
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_QUERY_MEMBER_DEF
2564
-
2565
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2566
1888
  #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
2567
1889
 
2568
1890
  #if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
2569
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2570
1891
 
2571
1892
  template <typename Prop, typename... SupportableProperties>
2572
1893
  struct require_member<
2573
1894
  execution::any_executor<SupportableProperties...>, Prop,
2574
- typename enable_if<
1895
+ enable_if_t<
2575
1896
  execution::detail::supportable_properties<
2576
1897
  0, void(SupportableProperties...)>::template
2577
1898
  find_convertible_requirable_property<Prop>::value
2578
- >::type>
1899
+ >>
2579
1900
  {
2580
- static const bool is_valid = true;
2581
- static const bool is_noexcept = false;
1901
+ static constexpr bool is_valid = true;
1902
+ static constexpr bool is_noexcept = false;
2582
1903
  typedef execution::any_executor<SupportableProperties...> result_type;
2583
1904
  };
2584
1905
 
2585
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2586
-
2587
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_REQUIRE_MEMBER_DEF(n) \
2588
- template <typename Prop, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2589
- struct require_member< \
2590
- execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>, Prop, \
2591
- typename enable_if< \
2592
- execution::detail::supportable_properties< \
2593
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2594
- find_convertible_requirable_property<Prop>::value \
2595
- >::type> \
2596
- { \
2597
- static const bool is_valid = true; \
2598
- static const bool is_noexcept = false; \
2599
- typedef execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)> result_type; \
2600
- }; \
2601
- /**/
2602
- BOOST_ASIO_VARIADIC_GENERATE(
2603
- BOOST_ASIO_PRIVATE_ANY_EXECUTOR_REQUIRE_MEMBER_DEF)
2604
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_REQUIRE_MEMBER_DEF
2605
-
2606
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2607
1906
  #endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
2608
1907
 
2609
1908
  #if !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
2610
- #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2611
1909
 
2612
1910
  template <typename Prop, typename... SupportableProperties>
2613
1911
  struct prefer_member<
2614
1912
  execution::any_executor<SupportableProperties...>, Prop,
2615
- typename enable_if<
1913
+ enable_if_t<
2616
1914
  execution::detail::supportable_properties<
2617
1915
  0, void(SupportableProperties...)>::template
2618
1916
  find_convertible_preferable_property<Prop>::value
2619
- >::type>
1917
+ >>
2620
1918
  {
2621
- static const bool is_valid = true;
2622
- static const bool is_noexcept = false;
1919
+ static constexpr bool is_valid = true;
1920
+ static constexpr bool is_noexcept = false;
2623
1921
  typedef execution::any_executor<SupportableProperties...> result_type;
2624
1922
  };
2625
1923
 
2626
- #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2627
-
2628
- #define BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PREFER_FREE_DEF(n) \
2629
- template <typename Prop, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
2630
- struct prefer_member< \
2631
- execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)>, Prop, \
2632
- typename enable_if< \
2633
- execution::detail::supportable_properties< \
2634
- 0, void(BOOST_ASIO_VARIADIC_TARGS(n))>::template \
2635
- find_convertible_preferable_property<Prop>::value \
2636
- >::type> \
2637
- { \
2638
- static const bool is_valid = true; \
2639
- static const bool is_noexcept = false; \
2640
- typedef execution::any_executor<BOOST_ASIO_VARIADIC_TARGS(n)> result_type; \
2641
- }; \
2642
- /**/
2643
- BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PREFER_FREE_DEF)
2644
- #undef BOOST_ASIO_PRIVATE_ANY_EXECUTOR_PREFER_FREE_DEF
2645
-
2646
- #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
2647
1924
  #endif // !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
2648
1925
 
2649
1926
  } // namespace traits