passenger 6.0.20 → 6.0.21

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