passenger 6.0.7 → 6.0.8

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 (1573) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +29 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/README.md +2 -9
  5. data/build/common_library.rb +4 -4
  6. data/build/packaging.rb +4 -2
  7. data/build/support/cxx_dependency_map.rb +1 -0
  8. data/dev/copy_boost_headers +1 -1
  9. data/resources/release.txt +1 -0
  10. data/resources/templates/config/installation_utils/user_support_binaries_dir_not_writable.txt.erb +1 -0
  11. data/resources/templates/standalone/global.erb +4 -0
  12. data/src/agent/Core/AdminPanelConnector.h +1 -1
  13. data/src/agent/Core/ApplicationPool/Group.h +1 -1
  14. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  15. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
  16. data/src/agent/Core/ApplicationPool/Options.h +2 -2
  17. data/src/agent/Core/ApplicationPool/Pool.h +1 -1
  18. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
  19. data/src/agent/Core/Config.h +2 -2
  20. data/src/agent/Core/Controller/Config.h +2 -2
  21. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  22. data/src/agent/Core/SpawningKit/Handshake/Perform.h +1 -1
  23. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  24. data/src/agent/Core/SpawningKit/SmartSpawner.h +1 -1
  25. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  26. data/src/agent/Core/TelemetryCollector.h +1 -1
  27. data/src/agent/Shared/ApiServerUtils.h +1 -1
  28. data/src/agent/Watchdog/Config.h +1 -1
  29. data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
  30. data/src/agent/Watchdog/WatchdogMain.cpp +1 -1
  31. data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
  32. data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
  33. data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
  34. data/src/cxx_supportlib/Constants.h +2 -2
  35. data/src/cxx_supportlib/FileTools/FileManip.cpp +10 -1
  36. data/src/cxx_supportlib/FileTools/FileManip.h +16 -0
  37. data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
  38. data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
  39. data/src/cxx_supportlib/SafeLibev.h +1 -1
  40. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
  41. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
  42. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +9 -12
  43. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +5 -1
  44. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  45. data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +107 -5
  46. data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +2 -2
  47. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +12 -1
  48. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +13 -3
  49. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +0 -1
  50. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +6 -2
  51. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +13 -1
  52. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +6 -15
  53. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +24 -24
  54. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +1 -0
  55. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +84 -19
  56. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +3 -0
  57. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +4 -0
  58. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +10 -0
  59. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +150 -147
  60. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +4 -4
  61. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +1 -1
  62. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +47 -25
  63. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +3 -3
  64. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +14 -9
  65. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -189
  66. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +59 -66
  67. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +73 -38
  68. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +9 -7
  69. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +12 -22
  70. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +11 -11
  72. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +1 -1
  73. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +13 -13
  74. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +3 -3
  75. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +8 -8
  76. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +1 -0
  77. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +2 -4
  78. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +3 -3
  79. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/compare.hpp +3 -3
  80. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +2 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +1 -1
  82. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder.hpp +15 -15
  83. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter.hpp +1 -1
  84. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/trim.hpp +3 -3
  85. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_format.hpp +1 -2
  86. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +0 -1
  87. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/iter_find.hpp +8 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate.hpp +4 -3
  89. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/split.hpp +12 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +2 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +47 -17
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +73 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +2 -8
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +37 -20
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +426 -65
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +135 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +432 -257
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +178 -113
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +1 -1
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +433 -257
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +286 -143
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +315 -96
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +241 -64
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +364 -227
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +976 -461
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +21 -44
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +15 -35
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +329 -197
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +1 -1
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +1 -1
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +221 -115
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +11 -47
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +416 -89
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +23 -27
  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 +31 -30
  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 +23 -27
  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 +1 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +473 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +138 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +118 -102
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +33 -10
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +114 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +20 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +4 -3
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +145 -27
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +109 -0
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +107 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +90 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +11 -6
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +9 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +481 -129
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +29 -12
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +25 -7
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +36 -16
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +36 -16
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +2 -2
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +205 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +1 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +1 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +55 -6
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +24 -1
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +27 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +1 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +378 -35
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +218 -84
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +12 -8
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +40 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +6 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +11 -6
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +5 -4
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +16 -19
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +4 -4
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +37 -33
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +87 -4
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +8 -3
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +22 -23
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +674 -283
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +15 -6
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +211 -5
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +9 -10
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +6 -5
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +177 -0
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +65 -16
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +4 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +56 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +7 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +63 -52
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +2 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +14 -8
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +15 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +16 -6
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +62 -34
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +15 -7
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +15 -14
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +53 -28
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +20 -10
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +43 -19
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +42 -16
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +26 -13
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +48 -20
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +43 -17
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +82 -80
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +77 -47
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +15 -7
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -2
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +16 -14
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +31 -13
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +31 -15
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +18 -18
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +22 -19
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +21 -2
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +1 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +11 -7
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +24 -12
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +47 -1
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +2 -2
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +1 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +1 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +47 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +13 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -1
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +26 -2
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +5 -2
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +7 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +67 -5
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +65 -3
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +177 -2
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +13 -8
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +84 -8
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +46 -10
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +27 -14
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +48 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +251 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +2266 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +49 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1353 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1066 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +394 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +1020 -0
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +490 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +187 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +203 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +154 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +107 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +130 -0
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +263 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +235 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +92 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +270 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +240 -0
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +42 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +38 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +73 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +919 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +180 -0
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +96 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +723 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +329 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +282 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +50 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +722 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +294 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +88 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +313 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +257 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +257 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +490 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +254 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +454 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +3 -2
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +8 -2
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +129 -12
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -2
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +29 -6
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +30 -4
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -1
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +438 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +154 -56
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +148 -52
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +300 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +637 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +299 -243
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +204 -33
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +132 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +199 -34
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +8 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +16 -101
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +6 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +14 -5
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +209 -114
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +4 -3
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +51 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +204 -33
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +619 -132
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +194 -90
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +2278 -445
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl → impl}/redirect_error.hpp +148 -52
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +59 -68
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +2 -2
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +4 -1
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +1 -1
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +25 -6
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +114 -13
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +261 -38
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +73 -8
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +281 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +131 -40
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +562 -132
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +185 -91
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +714 -60
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +46 -54
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +35 -27
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +32 -26
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +1 -1
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +41 -36
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +1 -1
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +1 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +24 -23
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +200 -190
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +1 -1
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +21 -19
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -10
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +23 -18
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +11 -11
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +26 -26
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +1 -1
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +1 -1
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +1 -1
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +1 -1
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +9 -9
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +63 -0
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +10 -2
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +14 -19
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +7 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +8 -1
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +60 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +1 -1
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +189 -74
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +180 -72
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +5 -612
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +2 -2
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +3 -326
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +29 -10
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +660 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +300 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +398 -57
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +51 -28
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1460 -423
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/redirect_error.hpp → redirect_error.hpp} +9 -10
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +528 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +314 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +3 -736
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +3 -422
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +26 -26
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +13 -5
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +2 -1
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +4 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +6 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +6 -1
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +6 -1
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +37 -10
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +3 -3
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +51 -8
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +5 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +6 -1
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +17 -2
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +41 -6
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +1 -1
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +11 -2
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +21 -7
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +92 -0
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +44 -10
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +75 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +5 -1
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +2 -1
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -3
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +235 -97
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +33 -0
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +264 -13
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +16 -4
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +558 -25
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -1
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +47 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +917 -38
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +116 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +116 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +114 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +114 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +102 -0
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +110 -0
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +110 -0
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +110 -0
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +110 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +110 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +110 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +110 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +110 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +110 -0
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +110 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +110 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +110 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +110 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +110 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +110 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +114 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +114 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +236 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +236 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +110 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +110 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +110 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +125 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +125 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +114 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +114 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +2 -2
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +101 -36
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +171 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +295 -42
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +363 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +186 -72
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +188 -73
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +3 -346
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +4 -296
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +38 -9
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +3 -344
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +3 -328
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +372 -54
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +51 -28
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +93 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +9 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +178 -11
  592. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +12 -3
  593. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +85 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +2 -191
  595. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/aligned_variable.hpp +57 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +129 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{atomic_template.hpp → atomic_impl.hpp} +327 -429
  599. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1126 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +23 -4
  601. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +3 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/capabilities.hpp +217 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +46 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +58 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_gcc_alpha.hpp → caps_arch_gcc_alpha.hpp} +4 -4
  606. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_arm.hpp → caps_arch_gcc_arm.hpp} +37 -8
  607. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_ppc.hpp → caps_arch_gcc_ppc.hpp} +19 -6
  608. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_gcc_sparc.hpp → caps_arch_gcc_sparc.hpp} +4 -4
  609. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_x86.hpp → caps_arch_gcc_x86.hpp} +22 -6
  610. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_msvc_arm.hpp → caps_arch_msvc_arm.hpp} +4 -4
  611. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_msvc_x86.hpp → caps_arch_msvc_x86.hpp} +12 -6
  612. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +100 -75
  613. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +0 -7
  614. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +50 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +81 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +39 -15
  617. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations.hpp +50 -0
  618. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations_fwd.hpp +38 -0
  619. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +1121 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +1909 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_alpha.hpp → core_arch_ops_gcc_alpha.hpp} +280 -289
  622. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_arm.hpp → core_arch_ops_gcc_arm.hpp} +467 -447
  623. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_ppc.hpp → core_arch_ops_gcc_ppc.hpp} +75 -94
  624. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_sparc.hpp → core_arch_ops_gcc_sparc.hpp} +33 -58
  625. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_x86_dcas.hpp → core_arch_ops_gcc_x86.hpp} +507 -20
  626. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_msvc_arm.hpp → core_arch_ops_msvc_arm.hpp} +58 -54
  627. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_msvc_x86.hpp → core_arch_ops_msvc_x86.hpp} +69 -101
  628. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations.hpp +49 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +195 -0
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated_fwd.hpp +38 -0
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_fwd.hpp +38 -0
  632. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_cas_based.hpp → core_ops_cas_based.hpp} +9 -22
  633. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +306 -0
  634. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_sync.hpp → core_ops_gcc_sync.hpp} +75 -52
  635. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_linux_arm.hpp → core_ops_linux_arm.hpp} +32 -43
  636. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +201 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_extending_cas_based.hpp → extending_cas_based_arithmetic.hpp} +12 -9
  638. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +4 -1
  639. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +23 -12
  640. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +12 -9
  641. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +4 -1
  642. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +60 -40
  643. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +1060 -0
  644. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +1330 -0
  645. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +363 -355
  646. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +94 -91
  647. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +232 -102
  648. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +9 -17
  649. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +6 -4
  650. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +119 -92
  651. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +41 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +60 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +58 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +53 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +90 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +68 -0
  657. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +70 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +69 -0
  659. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +66 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +66 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +41 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +50 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +75 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +53 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +64 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +67 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/footer.hpp +24 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +4 -1
  669. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +14 -8
  670. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -3
  671. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +147 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +75 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +66 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/header.hpp +72 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{integral_extend.hpp → integral_conversions.hpp} +8 -5
  676. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -11
  677. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +46 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +151 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +47 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +43 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch32_common.hpp +53 -0
  682. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch64_common.hpp +53 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +8 -79
  684. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -1
  685. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_common.hpp +7 -2
  686. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +23 -5
  687. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +64 -27
  688. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +187 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +51 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -2
  691. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +45 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_capabilities.hpp +363 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_dragonfly_umtx.hpp +30 -0
  694. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_freebsd_umtx.hpp +40 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_futex.hpp +31 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +55 -0
  697. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations.hpp +28 -0
  698. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations_fwd.hpp +43 -0
  699. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +75 -0
  700. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +97 -0
  701. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +119 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +111 -0
  703. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +143 -0
  704. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +150 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +7 -18
  706. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +85 -0
  707. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +40 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +85 -0
  709. data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +20 -1
  710. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +11 -11
  711. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +1 -1
  712. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +25 -11
  713. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +18 -18
  714. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +1 -1
  715. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +1 -1
  716. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +26 -6
  717. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +2 -2
  718. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +8 -5
  719. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +107 -105
  720. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -21
  721. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +25 -31
  722. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  723. data/src/cxx_supportlib/vendor-modified/boost/config/abi_prefix.hpp +1 -1
  724. data/src/cxx_supportlib/vendor-modified/boost/config/abi_suffix.hpp +1 -3
  725. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +72 -22
  726. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -1
  727. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +13 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +155 -10
  729. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +5 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +21 -5
  733. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +2 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +7 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
  739. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +2 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +15 -7
  742. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +5 -0
  743. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  744. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -1
  745. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_stdlib_config.hpp +13 -2
  746. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +68 -4
  747. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +3 -0
  748. data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +63 -74
  749. data/src/cxx_supportlib/vendor-modified/boost/config/requires_threads.hpp +1 -1
  750. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +10 -4
  751. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +1 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +2 -0
  753. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +9 -1
  754. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +1 -0
  755. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +1 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -1
  757. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +1 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +6 -5
  759. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +1 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +1 -0
  761. data/src/cxx_supportlib/vendor-modified/boost/config/user.hpp +2 -2
  762. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +15 -0
  763. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +10 -10
  764. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +13 -13
  765. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +19 -3
  766. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +117 -29
  767. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +250 -208
  768. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +7 -7
  769. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  770. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +4 -4
  771. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -1
  773. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +2 -2
  774. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +4 -0
  775. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +21 -116
  776. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +11 -8
  777. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +14 -14
  778. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +30 -24
  779. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +7 -0
  780. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +133 -117
  781. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
  782. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +83 -18
  783. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +6 -6
  784. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +103 -69
  785. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +6 -0
  786. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +3 -12
  787. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +6 -2
  788. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +51 -45
  789. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +24 -22
  790. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +83 -77
  791. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +82 -87
  792. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +17 -2
  793. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +2 -2
  794. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +278 -2
  795. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +3 -3
  796. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +1 -4
  797. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +30 -1
  798. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +5 -4
  799. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +90 -6
  800. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +4 -4
  801. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +4 -4
  802. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -80
  803. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +63 -67
  804. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +48 -42
  805. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +150 -105
  806. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +174 -155
  807. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +157 -105
  808. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +54 -53
  809. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -15
  810. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +207 -207
  811. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -51
  812. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +4 -3
  813. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +2 -2
  814. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +169 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +633 -0
  816. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +6 -4
  817. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +148 -0
  818. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -6
  819. data/src/cxx_supportlib/vendor-modified/boost/core/first_scalar.hpp +45 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +157 -50
  821. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +82 -1
  822. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +14 -2
  823. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +87 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/core/nvp.hpp +57 -0
  825. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +1 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
  827. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +1 -1
  828. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -3
  829. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +2 -2
  830. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +155 -0
  831. data/src/cxx_supportlib/vendor-modified/boost/core/use_default.hpp +17 -0
  832. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +5 -5
  833. data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +3 -3
  834. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +9 -4
  835. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +4 -17
  836. data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +19 -11
  837. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +23 -23
  838. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +17 -22
  839. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +44 -49
  840. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +5 -6
  841. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generators.hpp +24 -19
  842. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_parsing.hpp +51 -25
  843. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +56 -56
  844. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_transition_generators.hpp +2 -2
  845. data/src/cxx_supportlib/vendor-modified/boost/date_time/find_match.hpp +42 -0
  846. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +98 -98
  847. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +22 -14
  848. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -4
  849. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +44 -32
  850. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +2 -2
  851. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +51 -23
  852. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +29 -27
  853. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +43 -9
  854. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +3 -3
  855. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +32 -13
  856. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +15 -17
  857. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +27 -22
  858. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +57 -37
  859. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_io.hpp +3 -0
  860. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -3
  861. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +44 -47
  862. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +34 -31
  863. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_parser.hpp +27 -28
  864. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +8 -8
  865. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +13 -26
  866. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +4 -4
  867. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +22 -4
  868. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +28 -12
  869. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_formatter.hpp +1 -0
  870. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +0 -5
  871. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +5 -3
  872. data/src/cxx_supportlib/vendor-modified/boost/date_time/strings_from_facet.hpp +4 -2
  873. data/src/cxx_supportlib/vendor-modified/boost/date_time/time.hpp +24 -3
  874. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +56 -44
  875. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -11
  876. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +3 -8
  877. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +18 -18
  878. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_counted.hpp +65 -50
  879. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +43 -30
  880. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +1 -1
  881. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_names.hpp +1 -1
  882. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +0 -1
  883. data/src/cxx_supportlib/vendor-modified/boost/date_time/wrapping_int.hpp +16 -15
  884. data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +7 -5
  885. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -4
  886. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +10 -4
  887. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +10 -4
  888. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +12 -7
  889. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +63 -8
  890. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +9 -4
  891. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +9 -4
  892. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +2 -2
  893. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +9 -4
  894. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +15 -6
  895. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +19 -57
  896. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +9 -4
  897. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +11 -6
  898. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +9 -4
  899. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +9 -4
  900. data/src/cxx_supportlib/vendor-modified/boost/exception_ptr.hpp +2 -2
  901. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +13 -6
  902. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +4 -12
  903. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +22 -4
  904. data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +2 -2
  905. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +1 -1
  906. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +30 -28
  907. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +83 -0
  908. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +6 -6
  909. data/src/cxx_supportlib/vendor-modified/boost/integer/mod_inverse.hpp +53 -0
  910. data/src/cxx_supportlib/vendor-modified/boost/integer/static_log2.hpp +2 -3
  911. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +1 -0
  912. data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +1 -1
  913. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +22 -22
  914. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +11 -11
  915. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +22 -22
  916. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -11
  917. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +2 -2
  918. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +3 -3
  919. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +12 -12
  920. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +18 -9
  921. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +12 -4
  922. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +10 -10
  923. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +1 -1
  924. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +15 -3
  925. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +7 -12
  926. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +1 -0
  927. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +13 -1
  928. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -11
  929. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +6 -1
  930. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +13 -17
  931. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +3 -0
  932. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -9
  933. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +9 -1
  934. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +6 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +14 -14
  936. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +2 -2
  937. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +11 -11
  938. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -1
  939. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +22 -22
  940. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +22 -22
  941. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +11 -11
  942. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +11 -11
  943. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +22 -22
  944. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +11 -11
  945. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +93 -66
  946. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +17 -14
  947. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +67 -60
  948. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +9 -9
  949. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +361 -315
  950. data/src/cxx_supportlib/vendor-modified/boost/io_fwd.hpp +45 -49
  951. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +4 -4
  952. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +3 -2
  953. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +3 -3
  954. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +1 -1
  955. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  956. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +18 -13
  957. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +43 -43
  958. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +2 -2
  959. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +1 -1
  960. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  961. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -5
  962. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  963. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  964. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +1 -1
  965. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +1 -1
  966. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +2 -2
  967. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +10 -3
  968. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/instances.cpp +1 -1
  969. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +7 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +4 -2
  971. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_traits_defaults.cpp +2 -2
  972. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +3 -1
  973. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +5 -5
  974. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +7 -0
  975. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/winstances.cpp +1 -1
  976. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +0 -1
  977. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +4 -3
  978. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +12 -7
  979. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +50 -52
  980. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +41 -7
  981. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +23 -3
  982. data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +6 -6
  983. data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +2 -2
  984. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +6 -12
  985. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +35 -26
  986. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +18 -12
  987. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +103 -318
  988. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +437 -10
  989. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +68 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +1 -1
  991. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +15 -0
  992. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  993. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +11 -6
  994. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +2 -1
  995. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  996. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +1 -1
  997. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +3 -3
  998. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/common_name_wknd.hpp +2 -2
  999. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/adl.hpp +1 -1
  1000. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/arrays.hpp +1 -1
  1001. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bcc.hpp +2 -2
  1002. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bind.hpp +1 -1
  1003. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/compiler.hpp +2 -2
  1004. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ctps.hpp +1 -1
  1005. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dtp.hpp +3 -3
  1006. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/forwarding.hpp +1 -1
  1007. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/integral.hpp +1 -1
  1008. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/operators.hpp +1 -1
  1009. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/overload_resolution.hpp +1 -1
  1010. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/preprocessor.hpp +1 -1
  1011. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ttp.hpp +2 -2
  1012. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_impl.hpp +1 -1
  1013. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl_body.hpp +3 -3
  1014. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_rebind.hpp +4 -4
  1015. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +1 -1
  1016. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_support.hpp +3 -3
  1017. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nested_type_wknd.hpp +1 -1
  1018. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/size_impl.hpp +1 -1
  1019. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/static_cast.hpp +1 -1
  1020. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +2 -2
  1021. data/src/cxx_supportlib/vendor-modified/boost/mpl/if.hpp +1 -1
  1022. data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c.hpp +1 -1
  1023. data/src/cxx_supportlib/vendor-modified/boost/mpl/lower_bound.hpp +1 -1
  1024. data/src/cxx_supportlib/vendor-modified/boost/mpl/numeric_cast.hpp +1 -1
  1025. data/src/cxx_supportlib/vendor-modified/boost/mpl/upper_bound.hpp +1 -1
  1026. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/at.hpp +1 -1
  1027. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +4 -3
  1028. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/converter_policies.hpp +4 -3
  1029. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +31 -24
  1030. data/src/cxx_supportlib/vendor-modified/boost/optional/bad_optional_access.hpp +9 -0
  1031. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +1 -1
  1032. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +9 -4
  1033. data/src/cxx_supportlib/vendor-modified/boost/parameter/are_tagged_arguments.hpp +125 -0
  1034. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/always_true_predicate.hpp +42 -0
  1035. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1252 -358
  1036. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/as_lvalue.hpp +25 -0
  1037. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/augment_predicate.hpp +198 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/cast.hpp +7 -136
  1039. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/default.hpp +90 -59
  1040. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/has_nested_template_fn.hpp +111 -0
  1041. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_maybe.hpp +42 -16
  1042. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_placeholder.hpp +64 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_tagged_argument.hpp +95 -0
  1044. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/lambda_tag.hpp +16 -0
  1045. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/maybe.hpp +128 -97
  1046. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/name.hpp +93 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/as_parameter_requirements.hpp +32 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduce_tag.hpp +217 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduced_item.hpp +34 -0
  1050. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/insert_tagged.hpp +23 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/is_named_argument.hpp +43 -0
  1052. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/item.hpp +47 -0
  1053. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_arg_list.hpp +438 -0
  1054. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_deduced_items.hpp +53 -0
  1055. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_items.hpp +45 -0
  1056. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_parameter_spec_items.hpp +244 -0
  1057. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/parameter_requirements.hpp +25 -0
  1058. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/predicate.hpp +87 -0
  1059. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/satisfies.hpp +142 -0
  1060. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_deduced.hpp +59 -0
  1061. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg.hpp +30 -0
  1062. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +67 -0
  1063. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_template_keyword_arg.hpp +30 -0
  1064. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_type.hpp +89 -0
  1065. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +41 -0
  1066. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parameter_requirements.hpp +7 -20
  1067. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parenthesized_type.hpp +8 -31
  1068. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/argument_pack.hpp +91 -0
  1069. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/match.hpp +55 -0
  1070. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/unwrap_predicate.hpp +97 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp +1638 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp +1796 -0
  1073. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp +65 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp +57 -0
  1075. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/flatten.hpp +7 -110
  1076. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each.hpp +7 -98
  1077. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each_pred.hpp +1029 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp +24 -0
  1079. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/arity_range.hpp +42 -0
  1080. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/flatten.hpp +143 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/for_each.hpp +152 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp +509 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_cast.hpp +730 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp +474 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp +33 -0
  1086. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp +43 -0
  1087. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_name.hpp +152 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp +331 -0
  1089. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp +122 -0
  1090. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp +34 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/specification.hpp +109 -0
  1092. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/split_args.hpp +71 -0
  1093. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp +78 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_binary.hpp +31 -0
  1095. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_nullary.hpp +32 -0
  1096. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp +165 -0
  1097. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp +24 -0
  1098. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/nullptr.hpp +18 -0
  1099. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +92 -0
  1100. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/qualifier.hpp +88 -0
  1101. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_enum.hpp +26 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_merge.hpp +1807 -0
  1103. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/result_of0.hpp +46 -29
  1104. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +94 -42
  1105. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +149 -27
  1106. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +865 -159
  1107. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument_fwd.hpp +38 -0
  1108. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/template_keyword.hpp +76 -34
  1109. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +159 -76
  1110. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default.hpp +17 -0
  1111. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default_tag.hpp +29 -0
  1112. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +25 -16
  1113. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/yesno.hpp +30 -14
  1114. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +154 -70
  1115. data/src/cxx_supportlib/vendor-modified/boost/parameter/compose.hpp +210 -0
  1116. data/src/cxx_supportlib/vendor-modified/boost/parameter/config.hpp +75 -6
  1117. data/src/cxx_supportlib/vendor-modified/boost/parameter/deduced.hpp +132 -0
  1118. data/src/cxx_supportlib/vendor-modified/boost/parameter/is_argument_pack.hpp +29 -0
  1119. data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword.hpp +724 -102
  1120. data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword_fwd.hpp +23 -0
  1121. data/src/cxx_supportlib/vendor-modified/boost/parameter/macros.hpp +205 -72
  1122. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +37 -44
  1123. data/src/cxx_supportlib/vendor-modified/boost/parameter/name.hpp +100 -126
  1124. data/src/cxx_supportlib/vendor-modified/boost/parameter/nested_keyword.hpp +111 -0
  1125. data/src/cxx_supportlib/vendor-modified/boost/parameter/optional.hpp +67 -0
  1126. data/src/cxx_supportlib/vendor-modified/boost/parameter/parameters.hpp +553 -884
  1127. data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor.hpp +156 -1016
  1128. data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor_no_spec.hpp +74 -0
  1129. data/src/cxx_supportlib/vendor-modified/boost/parameter/required.hpp +66 -0
  1130. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +87 -0
  1131. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +152 -70
  1132. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  1133. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +17 -16
  1134. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +86 -32
  1135. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +11 -10
  1136. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +14 -13
  1137. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +17 -16
  1138. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +28 -27
  1139. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +21 -20
  1140. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +19 -18
  1141. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +23 -22
  1142. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +10 -9
  1143. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +8 -7
  1144. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/riscv.h +43 -0
  1145. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +16 -15
  1146. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +12 -11
  1147. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +16 -15
  1148. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +10 -9
  1149. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +10 -9
  1150. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86.h +4 -4
  1151. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +26 -25
  1152. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +16 -15
  1153. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +9 -8
  1154. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/borland.h +12 -11
  1155. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/clang.h +10 -9
  1156. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/comeau.h +10 -9
  1157. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +12 -11
  1158. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/diab.h +10 -9
  1159. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/digitalmars.h +10 -9
  1160. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/dignus.h +10 -9
  1161. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/edg.h +10 -9
  1162. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ekopath.h +10 -9
  1163. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc.h +11 -10
  1164. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc_xml.h +9 -8
  1165. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/greenhills.h +12 -11
  1166. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/hp_acc.h +10 -9
  1167. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/iar.h +10 -9
  1168. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ibm.h +15 -14
  1169. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +18 -17
  1170. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/kai.h +10 -9
  1171. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/llvm.h +9 -8
  1172. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metaware.h +9 -8
  1173. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h +14 -13
  1174. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h +9 -8
  1175. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h +12 -11
  1176. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +10 -9
  1177. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h +10 -9
  1178. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h +10 -9
  1179. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h +12 -11
  1180. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sunpro.h +14 -13
  1181. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/tendra.h +9 -8
  1182. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +13 -12
  1183. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/watcom.h +10 -9
  1184. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +95 -46
  1185. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +21 -19
  1186. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm/versions.h +16 -10
  1187. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc.h +21 -19
  1188. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc/versions.h +27 -21
  1189. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +39 -37
  1190. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86/versions.h +73 -67
  1191. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +25 -23
  1192. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +24 -19
  1193. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +11 -10
  1194. data/src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h +9 -8
  1195. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +10 -9
  1196. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +39 -32
  1197. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +10 -9
  1198. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/gnu.h +12 -11
  1199. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/uc.h +10 -9
  1200. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/vms.h +9 -8
  1201. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/zos.h +10 -9
  1202. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +10 -9
  1203. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/dinkumware.h +11 -10
  1204. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/libcomo.h +10 -9
  1205. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/modena.h +10 -9
  1206. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msl.h +12 -11
  1207. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/roguewave.h +11 -10
  1208. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/sgi.h +10 -9
  1209. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +12 -11
  1210. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stlport.h +13 -12
  1211. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/vacpp.h +9 -8
  1212. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +97 -35
  1213. data/src/cxx_supportlib/vendor-modified/boost/predef/os.h +0 -1
  1214. data/src/cxx_supportlib/vendor-modified/boost/predef/os/aix.h +14 -13
  1215. data/src/cxx_supportlib/vendor-modified/boost/predef/os/amigaos.h +10 -9
  1216. data/src/cxx_supportlib/vendor-modified/boost/predef/os/beos.h +9 -8
  1217. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd.h +22 -23
  1218. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +9 -8
  1219. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +9 -8
  1220. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -9
  1221. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +16 -15
  1222. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +59 -58
  1223. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +10 -9
  1224. data/src/cxx_supportlib/vendor-modified/boost/predef/os/haiku.h +9 -8
  1225. data/src/cxx_supportlib/vendor-modified/boost/predef/os/hpux.h +11 -10
  1226. data/src/cxx_supportlib/vendor-modified/boost/predef/os/ios.h +12 -11
  1227. data/src/cxx_supportlib/vendor-modified/boost/predef/os/irix.h +10 -9
  1228. data/src/cxx_supportlib/vendor-modified/boost/predef/os/linux.h +14 -10
  1229. data/src/cxx_supportlib/vendor-modified/boost/predef/os/macos.h +14 -13
  1230. data/src/cxx_supportlib/vendor-modified/boost/predef/os/os400.h +9 -8
  1231. data/src/cxx_supportlib/vendor-modified/boost/predef/os/qnxnto.h +12 -11
  1232. data/src/cxx_supportlib/vendor-modified/boost/predef/os/solaris.h +10 -9
  1233. data/src/cxx_supportlib/vendor-modified/boost/predef/os/unix.h +24 -22
  1234. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +11 -10
  1235. data/src/cxx_supportlib/vendor-modified/boost/predef/os/windows.h +16 -15
  1236. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +12 -11
  1237. data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +22 -14
  1238. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +1 -0
  1239. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/android.h +44 -0
  1240. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +9 -8
  1241. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +14 -9
  1242. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +12 -11
  1243. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +10 -9
  1244. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +10 -9
  1245. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +10 -9
  1246. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +9 -8
  1247. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +10 -9
  1248. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +9 -8
  1249. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +10 -9
  1250. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +9 -8
  1251. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +12 -11
  1252. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  1253. data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +16 -14
  1254. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +20 -20
  1255. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_list.hpp +7 -7
  1256. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_seq.hpp +7 -7
  1257. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_tuple.hpp +7 -7
  1258. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +2 -2
  1259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities.hpp +2 -0
  1260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/check_empty.hpp +19 -0
  1261. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/detail/is_empty.hpp +3 -3
  1262. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +28 -1
  1263. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/va_opt.hpp +34 -0
  1264. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +16 -16
  1265. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_tuple.hpp +14 -14
  1266. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +7 -7
  1267. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +3 -3
  1268. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/is_empty.hpp +11 -11
  1269. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each.hpp +27 -27
  1270. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each_i.hpp +28 -28
  1271. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/replace.hpp +7 -7
  1272. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +9 -9
  1273. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +3 -3
  1274. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +4 -4
  1275. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +2 -2
  1276. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +16 -16
  1277. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +16 -16
  1278. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +1 -1
  1279. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +1 -1
  1280. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +10 -10
  1281. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +16 -16
  1282. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +2 -2
  1283. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +2 -2
  1284. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +2 -2
  1285. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +2 -2
  1286. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic.hpp +1 -0
  1287. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/has_opt.hpp +39 -0
  1288. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +3 -3
  1289. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +28 -0
  1290. data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +1 -1
  1291. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +4 -0
  1292. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +0 -6
  1293. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +4 -10
  1294. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  1295. data/src/cxx_supportlib/vendor-modified/boost/range/config.hpp +1 -1
  1296. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +4 -10
  1297. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +0 -32
  1298. data/src/cxx_supportlib/vendor-modified/boost/range/rbegin.hpp +0 -13
  1299. data/src/cxx_supportlib/vendor-modified/boost/range/rend.hpp +0 -13
  1300. data/src/cxx_supportlib/vendor-modified/boost/range/size.hpp +1 -1
  1301. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +33 -7
  1302. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -2
  1303. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +1 -1
  1304. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +4 -1
  1305. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +7 -0
  1306. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +17 -6
  1307. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +27 -5
  1308. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +36 -15
  1309. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
  1310. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +1 -1
  1311. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +105 -0
  1312. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +54 -0
  1313. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
  1314. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +13 -1
  1315. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +1 -1
  1316. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +26 -16
  1317. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +16 -6
  1318. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +11 -11
  1319. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +6 -6
  1320. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +7 -0
  1321. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +2 -0
  1322. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +7 -7
  1323. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
  1324. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
  1325. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +1 -1
  1326. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +1 -1
  1327. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +3 -3
  1328. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +92 -388
  1329. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +5 -5
  1330. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +8 -4
  1331. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +7 -0
  1332. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +63 -0
  1333. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +11 -0
  1334. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_nt.hpp +7 -0
  1335. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +7 -0
  1336. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +7 -0
  1337. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +8 -1
  1338. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +13 -2
  1339. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +6 -6
  1340. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +3 -3
  1341. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +87 -47
  1342. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +1 -1
  1343. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +12 -16
  1344. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +13 -3
  1345. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +10 -3
  1346. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +13 -3
  1347. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +148 -0
  1348. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +13 -3
  1349. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +13 -3
  1350. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +13 -3
  1351. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +13 -3
  1352. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +13 -3
  1353. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +25 -16
  1354. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +16 -8
  1355. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +14 -4
  1356. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +10 -3
  1357. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +25 -17
  1358. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +10 -3
  1359. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +13 -3
  1360. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +23 -26
  1361. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +27 -0
  1362. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +69 -0
  1363. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +51 -0
  1364. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_sleep.hpp +104 -0
  1365. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_typeinfo_.hpp +58 -0
  1366. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +7 -9
  1367. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +7 -0
  1368. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +85 -0
  1369. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +7 -0
  1370. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +7 -0
  1371. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +13 -5
  1372. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +8 -1
  1373. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -146
  1374. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +47 -1
  1375. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +22 -22
  1376. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -1
  1377. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +1 -1
  1378. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +1 -1
  1379. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +3 -3
  1380. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +58 -23
  1381. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +79 -8
  1382. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -2
  1383. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +5 -11
  1384. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +57 -16
  1385. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +32 -16
  1386. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  1387. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_adaptor.hpp +1 -1
  1388. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_base.hpp +1 -1
  1389. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +9 -21
  1390. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +9 -21
  1391. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_adaptor.hpp +1 -1
  1392. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_base.hpp +1 -1
  1393. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_op_status.hpp +3 -1
  1394. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +1 -1
  1395. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +3 -3
  1396. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +4 -4
  1397. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +3 -3
  1398. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +80 -14
  1399. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -1
  1400. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
  1401. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +16 -17
  1402. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +8 -8
  1403. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +4 -11
  1404. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp.orig +841 -0
  1405. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +3 -0
  1406. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +2 -0
  1407. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor_adaptor.hpp +2 -0
  1408. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +2 -0
  1409. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/inline_executor.hpp +8 -0
  1410. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +4 -0
  1411. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +4 -0
  1412. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +2 -0
  1413. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +3 -0
  1414. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +4 -0
  1415. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor_cont.hpp +9 -2
  1416. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/thread_executor.hpp +6 -0
  1417. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/work.hpp +3 -1
  1418. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +6 -2
  1419. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +1 -0
  1420. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +2 -1
  1421. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +1 -0
  1422. data/src/cxx_supportlib/vendor-modified/boost/thread/interruption.hpp +22 -0
  1423. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp.orig +54 -0
  1424. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_lockable.hpp +7 -2
  1425. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable.hpp +16 -12
  1426. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable_adapter.hpp +3 -4
  1427. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +18 -24
  1428. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +6 -13
  1429. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +11 -37
  1430. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +29 -28
  1431. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +1 -1
  1432. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +163 -18
  1433. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +1 -69
  1434. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +19 -19
  1435. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +1 -1
  1436. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +9 -6
  1437. data/src/cxx_supportlib/vendor-modified/boost/thread/tss.hpp +23 -41
  1438. data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +3 -0
  1439. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +1 -1
  1440. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +138 -59
  1441. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +15 -11
  1442. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +51 -0
  1443. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
  1444. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +1 -1
  1445. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +1 -1
  1446. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +1 -1
  1447. data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +1 -1
  1448. data/src/cxx_supportlib/vendor-modified/boost/type_traits/alignment_of.hpp +3 -3
  1449. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conjunction.hpp +40 -0
  1450. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv_ref.hpp +31 -0
  1451. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_reference.hpp +35 -0
  1452. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +25 -4
  1453. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +6 -6
  1454. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +6 -6
  1455. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +6 -6
  1456. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +3 -3
  1457. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +102 -6
  1458. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +415 -255
  1459. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -1
  1460. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +1345 -1542
  1461. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +4 -4
  1462. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +143 -28
  1463. data/src/cxx_supportlib/vendor-modified/boost/type_traits/disjunction.hpp +40 -0
  1464. data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +2 -2
  1465. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +6 -6
  1466. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +6 -6
  1467. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_copy.hpp +1 -1
  1468. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +6 -6
  1469. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +1 -1
  1470. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +2 -2
  1471. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +1 -1
  1472. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +2 -2
  1473. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_and_derived.hpp +2 -2
  1474. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_bounded_array.hpp +42 -0
  1475. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +1 -1
  1476. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_compound.hpp +1 -1
  1477. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +1 -1
  1478. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +1 -1
  1479. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +3 -3
  1480. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +1 -1
  1481. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -1
  1482. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +3 -3
  1483. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_enum.hpp +4 -4
  1484. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_fundamental.hpp +1 -1
  1485. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -3
  1486. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_lvalue_reference.hpp +1 -1
  1487. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp +1 -1
  1488. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pointer.hpp +1 -1
  1489. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_same.hpp +1 -1
  1490. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_scoped_enum.hpp +26 -0
  1491. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_signed.hpp +2 -2
  1492. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_trivially_copyable.hpp +27 -0
  1493. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unbounded_array.hpp +41 -0
  1494. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unscoped_enum.hpp +25 -0
  1495. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unsigned.hpp +2 -2
  1496. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +2 -2
  1497. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +1 -1
  1498. data/src/cxx_supportlib/vendor-modified/boost/type_traits/negation.hpp +23 -0
  1499. data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +4 -4
  1500. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
  1501. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
  1502. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
  1503. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
  1504. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
  1505. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -2
  1506. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +1 -0
  1507. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +1 -0
  1508. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +3 -3
  1509. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +3 -42
  1510. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +4 -43
  1511. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +29 -67
  1512. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1513. data/src/nginx_module/Configuration.c +3 -3
  1514. data/src/nginx_module/config +2 -0
  1515. data/src/nginx_module/ngx_http_passenger_module.c +2 -2
  1516. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  1517. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
  1518. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +4 -1
  1519. data/src/ruby_supportlib/phusion_passenger/common_library.rb +2 -0
  1520. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
  1521. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
  1522. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
  1523. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +17 -9
  1524. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -3
  1525. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -0
  1526. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
  1527. metadata +302 -70
  1528. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +0 -468
  1529. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +0 -175
  1530. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +0 -22
  1531. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +0 -228
  1532. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +0 -67
  1533. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +0 -878
  1534. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +0 -93
  1535. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +0 -52
  1536. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +0 -202
  1537. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +0 -281
  1538. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +0 -468
  1539. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +0 -418
  1540. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +0 -251
  1541. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +0 -144
  1542. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +0 -374
  1543. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +0 -414
  1544. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +0 -212
  1545. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +0 -275
  1546. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +0 -185
  1547. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +0 -216
  1548. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +0 -212
  1549. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +0 -71
  1550. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +0 -39
  1551. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +0 -37
  1552. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +0 -40
  1553. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lockpool.hpp +0 -51
  1554. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations.hpp +0 -24
  1555. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_fwd.hpp +0 -35
  1556. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +0 -30
  1557. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +0 -162
  1558. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +0 -392
  1559. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +0 -563
  1560. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +0 -207
  1561. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +0 -89
  1562. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1563. data/src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp +0 -11
  1564. data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +0 -39
  1565. data/src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp +0 -36
  1566. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/overloads.hpp +0 -88
  1567. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +0 -28
  1568. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +0 -45
  1569. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_solaris.hpp +0 -59
  1570. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +0 -151
  1571. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +0 -161
  1572. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +0 -116
  1573. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +0 -69
@@ -2,7 +2,7 @@
2
2
  // basic_socket_acceptor.hpp
3
3
  // ~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
- // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
5
+ // Copyright (c) 2003-2020 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)
@@ -16,38 +16,43 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
- #include <boost/asio/basic_io_object.hpp>
19
+ #include <boost/asio/any_io_executor.hpp>
20
20
  #include <boost/asio/basic_socket.hpp>
21
21
  #include <boost/asio/detail/handler_type_requirements.hpp>
22
+ #include <boost/asio/detail/io_object_impl.hpp>
23
+ #include <boost/asio/detail/non_const_lvalue.hpp>
22
24
  #include <boost/asio/detail/throw_error.hpp>
23
25
  #include <boost/asio/detail/type_traits.hpp>
24
26
  #include <boost/asio/error.hpp>
27
+ #include <boost/asio/execution_context.hpp>
25
28
  #include <boost/asio/socket_base.hpp>
26
29
 
30
+ #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
31
+ # include <boost/asio/detail/null_socket_service.hpp>
32
+ #elif defined(BOOST_ASIO_HAS_IOCP)
33
+ # include <boost/asio/detail/win_iocp_socket_service.hpp>
34
+ #else
35
+ # include <boost/asio/detail/reactive_socket_service.hpp>
36
+ #endif
37
+
27
38
  #if defined(BOOST_ASIO_HAS_MOVE)
28
39
  # include <utility>
29
40
  #endif // defined(BOOST_ASIO_HAS_MOVE)
30
41
 
31
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
32
- # include <boost/asio/socket_acceptor_service.hpp>
33
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
34
- # if defined(BOOST_ASIO_WINDOWS_RUNTIME)
35
- # include <boost/asio/detail/null_socket_service.hpp>
36
- # define BOOST_ASIO_SVC_T detail::null_socket_service<Protocol>
37
- # elif defined(BOOST_ASIO_HAS_IOCP)
38
- # include <boost/asio/detail/win_iocp_socket_service.hpp>
39
- # define BOOST_ASIO_SVC_T detail::win_iocp_socket_service<Protocol>
40
- # else
41
- # include <boost/asio/detail/reactive_socket_service.hpp>
42
- # define BOOST_ASIO_SVC_T detail::reactive_socket_service<Protocol>
43
- # endif
44
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
45
-
46
42
  #include <boost/asio/detail/push_options.hpp>
47
43
 
48
44
  namespace boost {
49
45
  namespace asio {
50
46
 
47
+ #if !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
48
+ #define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL
49
+
50
+ // Forward declaration with defaulted arguments.
51
+ template <typename Protocol, typename Executor = any_io_executor>
52
+ class basic_socket_acceptor;
53
+
54
+ #endif // !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
55
+
51
56
  /// Provides the ability to accept new connections.
52
57
  /**
53
58
  * The basic_socket_acceptor class template is used for accepting new socket
@@ -60,7 +65,7 @@ namespace asio {
60
65
  * @par Example
61
66
  * Opening a socket acceptor with the SO_REUSEADDR option enabled:
62
67
  * @code
63
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
68
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
64
69
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
65
70
  * acceptor.open(endpoint.protocol());
66
71
  * acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
@@ -68,21 +73,34 @@ namespace asio {
68
73
  * acceptor.listen();
69
74
  * @endcode
70
75
  */
71
- template <typename Protocol
72
- BOOST_ASIO_SVC_TPARAM_DEF1(= socket_acceptor_service<Protocol>)>
76
+ template <typename Protocol, typename Executor>
73
77
  class basic_socket_acceptor
74
- : BOOST_ASIO_SVC_ACCESS basic_io_object<BOOST_ASIO_SVC_T>,
75
- public socket_base
78
+ : public socket_base
76
79
  {
77
80
  public:
78
81
  /// The type of the executor associated with the object.
79
- typedef io_context::executor_type executor_type;
82
+ typedef Executor executor_type;
83
+
84
+ /// Rebinds the acceptor type to another executor.
85
+ template <typename Executor1>
86
+ struct rebind_executor
87
+ {
88
+ /// The socket type when rebound to the specified executor.
89
+ typedef basic_socket_acceptor<Protocol, Executor1> other;
90
+ };
80
91
 
81
92
  /// The native representation of an acceptor.
82
93
  #if defined(GENERATING_DOCUMENTATION)
83
94
  typedef implementation_defined native_handle_type;
95
+ #elif defined(BOOST_ASIO_WINDOWS_RUNTIME)
96
+ typedef typename detail::null_socket_service<
97
+ Protocol>::native_handle_type native_handle_type;
98
+ #elif defined(BOOST_ASIO_HAS_IOCP)
99
+ typedef typename detail::win_iocp_socket_service<
100
+ Protocol>::native_handle_type native_handle_type;
84
101
  #else
85
- typedef typename BOOST_ASIO_SVC_T::native_handle_type native_handle_type;
102
+ typedef typename detail::reactive_socket_service<
103
+ Protocol>::native_handle_type native_handle_type;
86
104
  #endif
87
105
 
88
106
  /// The protocol type.
@@ -97,12 +115,31 @@ public:
97
115
  * connections. The open() function must be called before the acceptor can
98
116
  * accept new socket connections.
99
117
  *
100
- * @param io_context The io_context object that the acceptor will use to
118
+ * @param ex The I/O executor that the acceptor will use, by default, to
101
119
  * dispatch handlers for any asynchronous operations performed on the
102
120
  * acceptor.
103
121
  */
104
- explicit basic_socket_acceptor(boost::asio::io_context& io_context)
105
- : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
122
+ explicit basic_socket_acceptor(const executor_type& ex)
123
+ : impl_(ex)
124
+ {
125
+ }
126
+
127
+ /// Construct an acceptor without opening it.
128
+ /**
129
+ * This constructor creates an acceptor without opening it to listen for new
130
+ * connections. The open() function must be called before the acceptor can
131
+ * accept new socket connections.
132
+ *
133
+ * @param context An execution context which provides the I/O executor that
134
+ * the acceptor will use, by default, to dispatch handlers for any
135
+ * asynchronous operations performed on the acceptor.
136
+ */
137
+ template <typename ExecutionContext>
138
+ explicit basic_socket_acceptor(ExecutionContext& context,
139
+ typename enable_if<
140
+ is_convertible<ExecutionContext&, execution_context&>::value
141
+ >::type* = 0)
142
+ : impl_(context)
106
143
  {
107
144
  }
108
145
 
@@ -110,7 +147,7 @@ public:
110
147
  /**
111
148
  * This constructor creates an acceptor and automatically opens it.
112
149
  *
113
- * @param io_context The io_context object that the acceptor will use to
150
+ * @param ex The I/O executor that the acceptor will use, by default, to
114
151
  * dispatch handlers for any asynchronous operations performed on the
115
152
  * acceptor.
116
153
  *
@@ -118,12 +155,36 @@ public:
118
155
  *
119
156
  * @throws boost::system::system_error Thrown on failure.
120
157
  */
121
- basic_socket_acceptor(boost::asio::io_context& io_context,
122
- const protocol_type& protocol)
123
- : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
158
+ basic_socket_acceptor(const executor_type& ex, const protocol_type& protocol)
159
+ : impl_(ex)
160
+ {
161
+ boost::system::error_code ec;
162
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
163
+ boost::asio::detail::throw_error(ec, "open");
164
+ }
165
+
166
+ /// Construct an open acceptor.
167
+ /**
168
+ * This constructor creates an acceptor and automatically opens it.
169
+ *
170
+ * @param context An execution context which provides the I/O executor that
171
+ * the acceptor will use, by default, to dispatch handlers for any
172
+ * asynchronous operations performed on the acceptor.
173
+ *
174
+ * @param protocol An object specifying protocol parameters to be used.
175
+ *
176
+ * @throws boost::system::system_error Thrown on failure.
177
+ */
178
+ template <typename ExecutionContext>
179
+ basic_socket_acceptor(ExecutionContext& context,
180
+ const protocol_type& protocol,
181
+ typename enable_if<
182
+ is_convertible<ExecutionContext&, execution_context&>::value
183
+ >::type* = 0)
184
+ : impl_(context)
124
185
  {
125
186
  boost::system::error_code ec;
126
- this->get_service().open(this->get_implementation(), protocol, ec);
187
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
127
188
  boost::asio::detail::throw_error(ec, "open");
128
189
  }
129
190
 
@@ -132,7 +193,7 @@ public:
132
193
  * This constructor creates an acceptor and automatically opens it to listen
133
194
  * for new connections on the specified endpoint.
134
195
  *
135
- * @param io_context The io_context object that the acceptor will use to
196
+ * @param ex The I/O executor that the acceptor will use, by default, to
136
197
  * dispatch handlers for any asynchronous operations performed on the
137
198
  * acceptor.
138
199
  *
@@ -146,31 +207,83 @@ public:
146
207
  *
147
208
  * @note This constructor is equivalent to the following code:
148
209
  * @code
149
- * basic_socket_acceptor<Protocol> acceptor(io_context);
210
+ * basic_socket_acceptor<Protocol> acceptor(my_context);
150
211
  * acceptor.open(endpoint.protocol());
151
212
  * if (reuse_addr)
152
213
  * acceptor.set_option(socket_base::reuse_address(true));
153
214
  * acceptor.bind(endpoint);
154
- * acceptor.listen(listen_backlog);
215
+ * acceptor.listen();
155
216
  * @endcode
156
217
  */
157
- basic_socket_acceptor(boost::asio::io_context& io_context,
218
+ basic_socket_acceptor(const executor_type& ex,
158
219
  const endpoint_type& endpoint, bool reuse_addr = true)
159
- : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
220
+ : impl_(ex)
160
221
  {
161
222
  boost::system::error_code ec;
162
223
  const protocol_type protocol = endpoint.protocol();
163
- this->get_service().open(this->get_implementation(), protocol, ec);
224
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
164
225
  boost::asio::detail::throw_error(ec, "open");
165
226
  if (reuse_addr)
166
227
  {
167
- this->get_service().set_option(this->get_implementation(),
228
+ impl_.get_service().set_option(impl_.get_implementation(),
168
229
  socket_base::reuse_address(true), ec);
169
230
  boost::asio::detail::throw_error(ec, "set_option");
170
231
  }
171
- this->get_service().bind(this->get_implementation(), endpoint, ec);
232
+ impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
172
233
  boost::asio::detail::throw_error(ec, "bind");
173
- this->get_service().listen(this->get_implementation(),
234
+ impl_.get_service().listen(impl_.get_implementation(),
235
+ socket_base::max_listen_connections, ec);
236
+ boost::asio::detail::throw_error(ec, "listen");
237
+ }
238
+
239
+ /// Construct an acceptor opened on the given endpoint.
240
+ /**
241
+ * This constructor creates an acceptor and automatically opens it to listen
242
+ * for new connections on the specified endpoint.
243
+ *
244
+ * @param context An execution context which provides the I/O executor that
245
+ * the acceptor will use, by default, to dispatch handlers for any
246
+ * asynchronous operations performed on the acceptor.
247
+ *
248
+ * @param endpoint An endpoint on the local machine on which the acceptor
249
+ * will listen for new connections.
250
+ *
251
+ * @param reuse_addr Whether the constructor should set the socket option
252
+ * socket_base::reuse_address.
253
+ *
254
+ * @throws boost::system::system_error Thrown on failure.
255
+ *
256
+ * @note This constructor is equivalent to the following code:
257
+ * @code
258
+ * basic_socket_acceptor<Protocol> acceptor(my_context);
259
+ * acceptor.open(endpoint.protocol());
260
+ * if (reuse_addr)
261
+ * acceptor.set_option(socket_base::reuse_address(true));
262
+ * acceptor.bind(endpoint);
263
+ * acceptor.listen();
264
+ * @endcode
265
+ */
266
+ template <typename ExecutionContext>
267
+ basic_socket_acceptor(ExecutionContext& context,
268
+ const endpoint_type& endpoint, bool reuse_addr = true,
269
+ typename enable_if<
270
+ is_convertible<ExecutionContext&, execution_context&>::value
271
+ >::type* = 0)
272
+ : impl_(context)
273
+ {
274
+ boost::system::error_code ec;
275
+ const protocol_type protocol = endpoint.protocol();
276
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
277
+ boost::asio::detail::throw_error(ec, "open");
278
+ if (reuse_addr)
279
+ {
280
+ impl_.get_service().set_option(impl_.get_implementation(),
281
+ socket_base::reuse_address(true), ec);
282
+ boost::asio::detail::throw_error(ec, "set_option");
283
+ }
284
+ impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
285
+ boost::asio::detail::throw_error(ec, "bind");
286
+ impl_.get_service().listen(impl_.get_implementation(),
174
287
  socket_base::max_listen_connections, ec);
175
288
  boost::asio::detail::throw_error(ec, "listen");
176
289
  }
@@ -180,7 +293,7 @@ public:
180
293
  * This constructor creates an acceptor object to hold an existing native
181
294
  * acceptor.
182
295
  *
183
- * @param io_context The io_context object that the acceptor will use to
296
+ * @param ex The I/O executor that the acceptor will use, by default, to
184
297
  * dispatch handlers for any asynchronous operations performed on the
185
298
  * acceptor.
186
299
  *
@@ -190,12 +303,41 @@ public:
190
303
  *
191
304
  * @throws boost::system::system_error Thrown on failure.
192
305
  */
193
- basic_socket_acceptor(boost::asio::io_context& io_context,
306
+ basic_socket_acceptor(const executor_type& ex,
194
307
  const protocol_type& protocol, const native_handle_type& native_acceptor)
195
- : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
308
+ : impl_(ex)
196
309
  {
197
310
  boost::system::error_code ec;
198
- this->get_service().assign(this->get_implementation(),
311
+ impl_.get_service().assign(impl_.get_implementation(),
312
+ protocol, native_acceptor, ec);
313
+ boost::asio::detail::throw_error(ec, "assign");
314
+ }
315
+
316
+ /// Construct a basic_socket_acceptor on an existing native acceptor.
317
+ /**
318
+ * This constructor creates an acceptor object to hold an existing native
319
+ * acceptor.
320
+ *
321
+ * @param context An execution context which provides the I/O executor that
322
+ * the acceptor will use, by default, to dispatch handlers for any
323
+ * asynchronous operations performed on the acceptor.
324
+ *
325
+ * @param protocol An object specifying protocol parameters to be used.
326
+ *
327
+ * @param native_acceptor A native acceptor.
328
+ *
329
+ * @throws boost::system::system_error Thrown on failure.
330
+ */
331
+ template <typename ExecutionContext>
332
+ basic_socket_acceptor(ExecutionContext& context,
333
+ const protocol_type& protocol, const native_handle_type& native_acceptor,
334
+ typename enable_if<
335
+ is_convertible<ExecutionContext&, execution_context&>::value
336
+ >::type* = 0)
337
+ : impl_(context)
338
+ {
339
+ boost::system::error_code ec;
340
+ impl_.get_service().assign(impl_.get_implementation(),
199
341
  protocol, native_acceptor, ec);
200
342
  boost::asio::detail::throw_error(ec, "assign");
201
343
  }
@@ -209,10 +351,11 @@ public:
209
351
  * will occur.
210
352
  *
211
353
  * @note Following the move, the moved-from object is in the same state as if
212
- * constructed using the @c basic_socket_acceptor(io_context&) constructor.
354
+ * constructed using the @c basic_socket_acceptor(const executor_type&)
355
+ * constructor.
213
356
  */
214
- basic_socket_acceptor(basic_socket_acceptor&& other)
215
- : basic_io_object<BOOST_ASIO_SVC_T>(std::move(other))
357
+ basic_socket_acceptor(basic_socket_acceptor&& other) BOOST_ASIO_NOEXCEPT
358
+ : impl_(std::move(other.impl_))
216
359
  {
217
360
  }
218
361
 
@@ -224,16 +367,17 @@ public:
224
367
  * will occur.
225
368
  *
226
369
  * @note Following the move, the moved-from object is in the same state as if
227
- * constructed using the @c basic_socket_acceptor(io_context&) constructor.
370
+ * constructed using the @c basic_socket_acceptor(const executor_type&)
371
+ * constructor.
228
372
  */
229
373
  basic_socket_acceptor& operator=(basic_socket_acceptor&& other)
230
374
  {
231
- basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(other));
375
+ impl_ = std::move(other.impl_);
232
376
  return *this;
233
377
  }
234
378
 
235
379
  // All socket acceptors have access to each other's implementations.
236
- template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
380
+ template <typename Protocol1, typename Executor1>
237
381
  friend class basic_socket_acceptor;
238
382
 
239
383
  /// Move-construct a basic_socket_acceptor from an acceptor of another
@@ -245,14 +389,16 @@ public:
245
389
  * will occur.
246
390
  *
247
391
  * @note Following the move, the moved-from object is in the same state as if
248
- * constructed using the @c basic_socket(io_context&) constructor.
392
+ * constructed using the @c basic_socket_acceptor(const executor_type&)
393
+ * constructor.
249
394
  */
250
- template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
251
- basic_socket_acceptor(
252
- basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other,
253
- typename enable_if<is_convertible<Protocol1, Protocol>::value>::type* = 0)
254
- : basic_io_object<BOOST_ASIO_SVC_T>(
255
- other.get_service(), other.get_implementation())
395
+ template <typename Protocol1, typename Executor1>
396
+ basic_socket_acceptor(basic_socket_acceptor<Protocol1, Executor1>&& other,
397
+ typename enable_if<
398
+ is_convertible<Protocol1, Protocol>::value
399
+ && is_convertible<Executor1, Executor>::value
400
+ >::type* = 0)
401
+ : impl_(std::move(other.impl_))
256
402
  {
257
403
  }
258
404
 
@@ -265,15 +411,18 @@ public:
265
411
  * will occur.
266
412
  *
267
413
  * @note Following the move, the moved-from object is in the same state as if
268
- * constructed using the @c basic_socket(io_context&) constructor.
414
+ * constructed using the @c basic_socket_acceptor(const executor_type&)
415
+ * constructor.
269
416
  */
270
- template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
271
- typename enable_if<is_convertible<Protocol1, Protocol>::value,
272
- basic_socket_acceptor>::type& operator=(
273
- basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other)
417
+ template <typename Protocol1, typename Executor1>
418
+ typename enable_if<
419
+ is_convertible<Protocol1, Protocol>::value
420
+ && is_convertible<Executor1, Executor>::value,
421
+ basic_socket_acceptor&
422
+ >::type operator=(basic_socket_acceptor<Protocol1, Executor1>&& other)
274
423
  {
275
424
  basic_socket_acceptor tmp(std::move(other));
276
- basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(tmp));
425
+ impl_ = std::move(tmp.impl_);
277
426
  return *this;
278
427
  }
279
428
  #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
@@ -288,45 +437,11 @@ public:
288
437
  {
289
438
  }
290
439
 
291
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
292
- // These functions are provided by basic_io_object<>.
293
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
294
- #if !defined(BOOST_ASIO_NO_DEPRECATED)
295
- /// (Deprecated: Use get_executor().) Get the io_context associated with the
296
- /// object.
297
- /**
298
- * This function may be used to obtain the io_context object that the I/O
299
- * object uses to dispatch handlers for asynchronous operations.
300
- *
301
- * @return A reference to the io_context object that the I/O object will use
302
- * to dispatch handlers. Ownership is not transferred to the caller.
303
- */
304
- boost::asio::io_context& get_io_context()
305
- {
306
- return basic_io_object<BOOST_ASIO_SVC_T>::get_io_context();
307
- }
308
-
309
- /// (Deprecated: Use get_executor().) Get the io_context associated with the
310
- /// object.
311
- /**
312
- * This function may be used to obtain the io_context object that the I/O
313
- * object uses to dispatch handlers for asynchronous operations.
314
- *
315
- * @return A reference to the io_context object that the I/O object will use
316
- * to dispatch handlers. Ownership is not transferred to the caller.
317
- */
318
- boost::asio::io_context& get_io_service()
319
- {
320
- return basic_io_object<BOOST_ASIO_SVC_T>::get_io_service();
321
- }
322
- #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
323
-
324
440
  /// Get the executor associated with the object.
325
441
  executor_type get_executor() BOOST_ASIO_NOEXCEPT
326
442
  {
327
- return basic_io_object<BOOST_ASIO_SVC_T>::get_executor();
443
+ return impl_.get_executor();
328
444
  }
329
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
330
445
 
331
446
  /// Open the acceptor using the specified protocol.
332
447
  /**
@@ -339,14 +454,14 @@ public:
339
454
  *
340
455
  * @par Example
341
456
  * @code
342
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
457
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
343
458
  * acceptor.open(boost::asio::ip::tcp::v4());
344
459
  * @endcode
345
460
  */
346
461
  void open(const protocol_type& protocol = protocol_type())
347
462
  {
348
463
  boost::system::error_code ec;
349
- this->get_service().open(this->get_implementation(), protocol, ec);
464
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
350
465
  boost::asio::detail::throw_error(ec, "open");
351
466
  }
352
467
 
@@ -361,7 +476,7 @@ public:
361
476
  *
362
477
  * @par Example
363
478
  * @code
364
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
479
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
365
480
  * boost::system::error_code ec;
366
481
  * acceptor.open(boost::asio::ip::tcp::v4(), ec);
367
482
  * if (ec)
@@ -373,7 +488,7 @@ public:
373
488
  BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
374
489
  boost::system::error_code& ec)
375
490
  {
376
- this->get_service().open(this->get_implementation(), protocol, ec);
491
+ impl_.get_service().open(impl_.get_implementation(), protocol, ec);
377
492
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
378
493
  }
379
494
 
@@ -391,7 +506,7 @@ public:
391
506
  const native_handle_type& native_acceptor)
392
507
  {
393
508
  boost::system::error_code ec;
394
- this->get_service().assign(this->get_implementation(),
509
+ impl_.get_service().assign(impl_.get_implementation(),
395
510
  protocol, native_acceptor, ec);
396
511
  boost::asio::detail::throw_error(ec, "assign");
397
512
  }
@@ -409,7 +524,7 @@ public:
409
524
  BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
410
525
  const native_handle_type& native_acceptor, boost::system::error_code& ec)
411
526
  {
412
- this->get_service().assign(this->get_implementation(),
527
+ impl_.get_service().assign(impl_.get_implementation(),
413
528
  protocol, native_acceptor, ec);
414
529
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
415
530
  }
@@ -417,7 +532,7 @@ public:
417
532
  /// Determine whether the acceptor is open.
418
533
  bool is_open() const
419
534
  {
420
- return this->get_service().is_open(this->get_implementation());
535
+ return impl_.get_service().is_open(impl_.get_implementation());
421
536
  }
422
537
 
423
538
  /// Bind the acceptor to the given local endpoint.
@@ -432,7 +547,7 @@ public:
432
547
  *
433
548
  * @par Example
434
549
  * @code
435
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
550
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
436
551
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
437
552
  * acceptor.open(endpoint.protocol());
438
553
  * acceptor.bind(endpoint);
@@ -441,7 +556,7 @@ public:
441
556
  void bind(const endpoint_type& endpoint)
442
557
  {
443
558
  boost::system::error_code ec;
444
- this->get_service().bind(this->get_implementation(), endpoint, ec);
559
+ impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
445
560
  boost::asio::detail::throw_error(ec, "bind");
446
561
  }
447
562
 
@@ -457,7 +572,7 @@ public:
457
572
  *
458
573
  * @par Example
459
574
  * @code
460
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
575
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
461
576
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
462
577
  * acceptor.open(endpoint.protocol());
463
578
  * boost::system::error_code ec;
@@ -471,7 +586,7 @@ public:
471
586
  BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
472
587
  boost::system::error_code& ec)
473
588
  {
474
- this->get_service().bind(this->get_implementation(), endpoint, ec);
589
+ impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
475
590
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
476
591
  }
477
592
 
@@ -488,7 +603,7 @@ public:
488
603
  void listen(int backlog = socket_base::max_listen_connections)
489
604
  {
490
605
  boost::system::error_code ec;
491
- this->get_service().listen(this->get_implementation(), backlog, ec);
606
+ impl_.get_service().listen(impl_.get_implementation(), backlog, ec);
492
607
  boost::asio::detail::throw_error(ec, "listen");
493
608
  }
494
609
 
@@ -504,7 +619,7 @@ public:
504
619
  *
505
620
  * @par Example
506
621
  * @code
507
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
622
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
508
623
  * ...
509
624
  * boost::system::error_code ec;
510
625
  * acceptor.listen(boost::asio::socket_base::max_listen_connections, ec);
@@ -516,7 +631,7 @@ public:
516
631
  */
517
632
  BOOST_ASIO_SYNC_OP_VOID listen(int backlog, boost::system::error_code& ec)
518
633
  {
519
- this->get_service().listen(this->get_implementation(), backlog, ec);
634
+ impl_.get_service().listen(impl_.get_implementation(), backlog, ec);
520
635
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
521
636
  }
522
637
 
@@ -533,7 +648,7 @@ public:
533
648
  void close()
534
649
  {
535
650
  boost::system::error_code ec;
536
- this->get_service().close(this->get_implementation(), ec);
651
+ impl_.get_service().close(impl_.get_implementation(), ec);
537
652
  boost::asio::detail::throw_error(ec, "close");
538
653
  }
539
654
 
@@ -549,7 +664,7 @@ public:
549
664
  *
550
665
  * @par Example
551
666
  * @code
552
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
667
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
553
668
  * ...
554
669
  * boost::system::error_code ec;
555
670
  * acceptor.close(ec);
@@ -561,7 +676,7 @@ public:
561
676
  */
562
677
  BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
563
678
  {
564
- this->get_service().close(this->get_implementation(), ec);
679
+ impl_.get_service().close(impl_.get_implementation(), ec);
565
680
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
566
681
  }
567
682
 
@@ -587,8 +702,8 @@ public:
587
702
  native_handle_type release()
588
703
  {
589
704
  boost::system::error_code ec;
590
- native_handle_type s = this->get_service().release(
591
- this->get_implementation(), ec);
705
+ native_handle_type s = impl_.get_service().release(
706
+ impl_.get_implementation(), ec);
592
707
  boost::asio::detail::throw_error(ec, "release");
593
708
  return s;
594
709
  }
@@ -614,7 +729,7 @@ public:
614
729
  #endif
615
730
  native_handle_type release(boost::system::error_code& ec)
616
731
  {
617
- return this->get_service().release(this->get_implementation(), ec);
732
+ return impl_.get_service().release(impl_.get_implementation(), ec);
618
733
  }
619
734
 
620
735
  /// Get the native acceptor representation.
@@ -625,7 +740,7 @@ public:
625
740
  */
626
741
  native_handle_type native_handle()
627
742
  {
628
- return this->get_service().native_handle(this->get_implementation());
743
+ return impl_.get_service().native_handle(impl_.get_implementation());
629
744
  }
630
745
 
631
746
  /// Cancel all asynchronous operations associated with the acceptor.
@@ -639,7 +754,7 @@ public:
639
754
  void cancel()
640
755
  {
641
756
  boost::system::error_code ec;
642
- this->get_service().cancel(this->get_implementation(), ec);
757
+ impl_.get_service().cancel(impl_.get_implementation(), ec);
643
758
  boost::asio::detail::throw_error(ec, "cancel");
644
759
  }
645
760
 
@@ -653,7 +768,7 @@ public:
653
768
  */
654
769
  BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
655
770
  {
656
- this->get_service().cancel(this->get_implementation(), ec);
771
+ impl_.get_service().cancel(impl_.get_implementation(), ec);
657
772
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
658
773
  }
659
774
 
@@ -672,7 +787,7 @@ public:
672
787
  * @par Example
673
788
  * Setting the SOL_SOCKET/SO_REUSEADDR option:
674
789
  * @code
675
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
790
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
676
791
  * ...
677
792
  * boost::asio::ip::tcp::acceptor::reuse_address option(true);
678
793
  * acceptor.set_option(option);
@@ -682,7 +797,7 @@ public:
682
797
  void set_option(const SettableSocketOption& option)
683
798
  {
684
799
  boost::system::error_code ec;
685
- this->get_service().set_option(this->get_implementation(), option, ec);
800
+ impl_.get_service().set_option(impl_.get_implementation(), option, ec);
686
801
  boost::asio::detail::throw_error(ec, "set_option");
687
802
  }
688
803
 
@@ -701,7 +816,7 @@ public:
701
816
  * @par Example
702
817
  * Setting the SOL_SOCKET/SO_REUSEADDR option:
703
818
  * @code
704
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
819
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
705
820
  * ...
706
821
  * boost::asio::ip::tcp::acceptor::reuse_address option(true);
707
822
  * boost::system::error_code ec;
@@ -716,7 +831,7 @@ public:
716
831
  BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
717
832
  boost::system::error_code& ec)
718
833
  {
719
- this->get_service().set_option(this->get_implementation(), option, ec);
834
+ impl_.get_service().set_option(impl_.get_implementation(), option, ec);
720
835
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
721
836
  }
722
837
 
@@ -735,7 +850,7 @@ public:
735
850
  * @par Example
736
851
  * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
737
852
  * @code
738
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
853
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
739
854
  * ...
740
855
  * boost::asio::ip::tcp::acceptor::reuse_address option;
741
856
  * acceptor.get_option(option);
@@ -746,7 +861,7 @@ public:
746
861
  void get_option(GettableSocketOption& option) const
747
862
  {
748
863
  boost::system::error_code ec;
749
- this->get_service().get_option(this->get_implementation(), option, ec);
864
+ impl_.get_service().get_option(impl_.get_implementation(), option, ec);
750
865
  boost::asio::detail::throw_error(ec, "get_option");
751
866
  }
752
867
 
@@ -765,7 +880,7 @@ public:
765
880
  * @par Example
766
881
  * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
767
882
  * @code
768
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
883
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
769
884
  * ...
770
885
  * boost::asio::ip::tcp::acceptor::reuse_address option;
771
886
  * boost::system::error_code ec;
@@ -781,7 +896,7 @@ public:
781
896
  BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
782
897
  boost::system::error_code& ec) const
783
898
  {
784
- this->get_service().get_option(this->get_implementation(), option, ec);
899
+ impl_.get_service().get_option(impl_.get_implementation(), option, ec);
785
900
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
786
901
  }
787
902
 
@@ -799,7 +914,7 @@ public:
799
914
  * @par Example
800
915
  * Getting the number of bytes ready to read:
801
916
  * @code
802
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
917
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
803
918
  * ...
804
919
  * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
805
920
  * socket.io_control(command);
@@ -809,7 +924,7 @@ public:
809
924
  void io_control(IoControlCommand& command)
810
925
  {
811
926
  boost::system::error_code ec;
812
- this->get_service().io_control(this->get_implementation(), command, ec);
927
+ impl_.get_service().io_control(impl_.get_implementation(), command, ec);
813
928
  boost::asio::detail::throw_error(ec, "io_control");
814
929
  }
815
930
 
@@ -827,7 +942,7 @@ public:
827
942
  * @par Example
828
943
  * Getting the number of bytes ready to read:
829
944
  * @code
830
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
945
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
831
946
  * ...
832
947
  * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
833
948
  * boost::system::error_code ec;
@@ -842,7 +957,7 @@ public:
842
957
  BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
843
958
  boost::system::error_code& ec)
844
959
  {
845
- this->get_service().io_control(this->get_implementation(), command, ec);
960
+ impl_.get_service().io_control(impl_.get_implementation(), command, ec);
846
961
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
847
962
  }
848
963
 
@@ -859,7 +974,7 @@ public:
859
974
  */
860
975
  bool non_blocking() const
861
976
  {
862
- return this->get_service().non_blocking(this->get_implementation());
977
+ return impl_.get_service().non_blocking(impl_.get_implementation());
863
978
  }
864
979
 
865
980
  /// Sets the non-blocking mode of the acceptor.
@@ -878,7 +993,7 @@ public:
878
993
  void non_blocking(bool mode)
879
994
  {
880
995
  boost::system::error_code ec;
881
- this->get_service().non_blocking(this->get_implementation(), mode, ec);
996
+ impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
882
997
  boost::asio::detail::throw_error(ec, "non_blocking");
883
998
  }
884
999
 
@@ -898,7 +1013,7 @@ public:
898
1013
  BOOST_ASIO_SYNC_OP_VOID non_blocking(
899
1014
  bool mode, boost::system::error_code& ec)
900
1015
  {
901
- this->get_service().non_blocking(this->get_implementation(), mode, ec);
1016
+ impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
902
1017
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
903
1018
  }
904
1019
 
@@ -918,7 +1033,7 @@ public:
918
1033
  */
919
1034
  bool native_non_blocking() const
920
1035
  {
921
- return this->get_service().native_non_blocking(this->get_implementation());
1036
+ return impl_.get_service().native_non_blocking(impl_.get_implementation());
922
1037
  }
923
1038
 
924
1039
  /// Sets the non-blocking mode of the native acceptor implementation.
@@ -939,8 +1054,8 @@ public:
939
1054
  void native_non_blocking(bool mode)
940
1055
  {
941
1056
  boost::system::error_code ec;
942
- this->get_service().native_non_blocking(
943
- this->get_implementation(), mode, ec);
1057
+ impl_.get_service().native_non_blocking(
1058
+ impl_.get_implementation(), mode, ec);
944
1059
  boost::asio::detail::throw_error(ec, "native_non_blocking");
945
1060
  }
946
1061
 
@@ -962,8 +1077,8 @@ public:
962
1077
  BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
963
1078
  bool mode, boost::system::error_code& ec)
964
1079
  {
965
- this->get_service().native_non_blocking(
966
- this->get_implementation(), mode, ec);
1080
+ impl_.get_service().native_non_blocking(
1081
+ impl_.get_implementation(), mode, ec);
967
1082
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
968
1083
  }
969
1084
 
@@ -977,7 +1092,7 @@ public:
977
1092
  *
978
1093
  * @par Example
979
1094
  * @code
980
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1095
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
981
1096
  * ...
982
1097
  * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
983
1098
  * @endcode
@@ -985,8 +1100,8 @@ public:
985
1100
  endpoint_type local_endpoint() const
986
1101
  {
987
1102
  boost::system::error_code ec;
988
- endpoint_type ep = this->get_service().local_endpoint(
989
- this->get_implementation(), ec);
1103
+ endpoint_type ep = impl_.get_service().local_endpoint(
1104
+ impl_.get_implementation(), ec);
990
1105
  boost::asio::detail::throw_error(ec, "local_endpoint");
991
1106
  return ep;
992
1107
  }
@@ -1003,7 +1118,7 @@ public:
1003
1118
  *
1004
1119
  * @par Example
1005
1120
  * @code
1006
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1121
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1007
1122
  * ...
1008
1123
  * boost::system::error_code ec;
1009
1124
  * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
@@ -1015,7 +1130,7 @@ public:
1015
1130
  */
1016
1131
  endpoint_type local_endpoint(boost::system::error_code& ec) const
1017
1132
  {
1018
- return this->get_service().local_endpoint(this->get_implementation(), ec);
1133
+ return impl_.get_service().local_endpoint(impl_.get_implementation(), ec);
1019
1134
  }
1020
1135
 
1021
1136
  /// Wait for the acceptor to become ready to read, ready to write, or to have
@@ -1029,7 +1144,7 @@ public:
1029
1144
  * @par Example
1030
1145
  * Waiting for an acceptor to become readable.
1031
1146
  * @code
1032
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1147
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1033
1148
  * ...
1034
1149
  * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read);
1035
1150
  * @endcode
@@ -1037,7 +1152,7 @@ public:
1037
1152
  void wait(wait_type w)
1038
1153
  {
1039
1154
  boost::system::error_code ec;
1040
- this->get_service().wait(this->get_implementation(), w, ec);
1155
+ impl_.get_service().wait(impl_.get_implementation(), w, ec);
1041
1156
  boost::asio::detail::throw_error(ec, "wait");
1042
1157
  }
1043
1158
 
@@ -1054,7 +1169,7 @@ public:
1054
1169
  * @par Example
1055
1170
  * Waiting for an acceptor to become readable.
1056
1171
  * @code
1057
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1172
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1058
1173
  * ...
1059
1174
  * boost::system::error_code ec;
1060
1175
  * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read, ec);
@@ -1062,7 +1177,7 @@ public:
1062
1177
  */
1063
1178
  BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
1064
1179
  {
1065
- this->get_service().wait(this->get_implementation(), w, ec);
1180
+ impl_.get_service().wait(impl_.get_implementation(), w, ec);
1066
1181
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1067
1182
  }
1068
1183
 
@@ -1081,9 +1196,9 @@ public:
1081
1196
  * const boost::system::error_code& error // Result of operation
1082
1197
  * ); @endcode
1083
1198
  * Regardless of whether the asynchronous operation completes immediately or
1084
- * not, the handler will not be invoked from within this function. Invocation
1085
- * of the handler will be performed in a manner equivalent to using
1086
- * boost::asio::io_context::post().
1199
+ * not, the handler will not be invoked from within this function. On
1200
+ * immediate completion, invocation of the handler will be performed in a
1201
+ * manner equivalent to using boost::asio::post().
1087
1202
  *
1088
1203
  * @par Example
1089
1204
  * @code
@@ -1097,34 +1212,24 @@ public:
1097
1212
  *
1098
1213
  * ...
1099
1214
  *
1100
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1215
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1101
1216
  * ...
1102
1217
  * acceptor.async_wait(
1103
1218
  * boost::asio::ip::tcp::acceptor::wait_read,
1104
1219
  * wait_handler);
1105
1220
  * @endcode
1106
1221
  */
1107
- template <typename WaitHandler>
1108
- BOOST_ASIO_INITFN_RESULT_TYPE(WaitHandler,
1222
+ template <
1223
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1224
+ WaitHandler BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1225
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(WaitHandler,
1109
1226
  void (boost::system::error_code))
1110
- async_wait(wait_type w, BOOST_ASIO_MOVE_ARG(WaitHandler) handler)
1227
+ async_wait(wait_type w,
1228
+ BOOST_ASIO_MOVE_ARG(WaitHandler) handler
1229
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type))
1111
1230
  {
1112
- // If you get an error on the following line it means that your handler does
1113
- // not meet the documented type requirements for a WaitHandler.
1114
- BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
1115
-
1116
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1117
- return this->get_service().async_wait(this->get_implementation(),
1118
- w, BOOST_ASIO_MOVE_CAST(WaitHandler)(handler));
1119
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1120
- async_completion<WaitHandler,
1121
- void (boost::system::error_code)> init(handler);
1122
-
1123
- this->get_service().async_wait(this->get_implementation(),
1124
- w, init.completion_handler);
1125
-
1126
- return init.result.get();
1127
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1231
+ return async_initiate<WaitHandler, void (boost::system::error_code)>(
1232
+ initiate_async_wait(this), handler, w);
1128
1233
  }
1129
1234
 
1130
1235
  #if !defined(BOOST_ASIO_NO_EXTENSIONS)
@@ -1140,24 +1245,20 @@ public:
1140
1245
  *
1141
1246
  * @par Example
1142
1247
  * @code
1143
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1248
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1144
1249
  * ...
1145
- * boost::asio::ip::tcp::socket socket(io_context);
1250
+ * boost::asio::ip::tcp::socket socket(my_context);
1146
1251
  * acceptor.accept(socket);
1147
1252
  * @endcode
1148
1253
  */
1149
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1150
- template <typename Protocol1, typename SocketService>
1151
- void accept(basic_socket<Protocol1, SocketService>& peer,
1152
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1153
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1154
- template <typename Protocol1>
1155
- void accept(basic_socket<Protocol1>& peer,
1156
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1157
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1254
+ template <typename Protocol1, typename Executor1>
1255
+ void accept(basic_socket<Protocol1, Executor1>& peer,
1256
+ typename enable_if<
1257
+ is_convertible<Protocol, Protocol1>::value
1258
+ >::type* = 0)
1158
1259
  {
1159
1260
  boost::system::error_code ec;
1160
- this->get_service().accept(this->get_implementation(),
1261
+ impl_.get_service().accept(impl_.get_implementation(),
1161
1262
  peer, static_cast<endpoint_type*>(0), ec);
1162
1263
  boost::asio::detail::throw_error(ec, "accept");
1163
1264
  }
@@ -1174,9 +1275,9 @@ public:
1174
1275
  *
1175
1276
  * @par Example
1176
1277
  * @code
1177
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1278
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1178
1279
  * ...
1179
- * boost::asio::ip::tcp::socket socket(io_context);
1280
+ * boost::asio::ip::tcp::socket socket(my_context);
1180
1281
  * boost::system::error_code ec;
1181
1282
  * acceptor.accept(socket, ec);
1182
1283
  * if (ec)
@@ -1185,20 +1286,14 @@ public:
1185
1286
  * }
1186
1287
  * @endcode
1187
1288
  */
1188
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1189
- template <typename Protocol1, typename SocketService>
1190
- BOOST_ASIO_SYNC_OP_VOID accept(
1191
- basic_socket<Protocol1, SocketService>& peer,
1192
- boost::system::error_code& ec,
1193
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1194
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1195
- template <typename Protocol1>
1289
+ template <typename Protocol1, typename Executor1>
1196
1290
  BOOST_ASIO_SYNC_OP_VOID accept(
1197
- basic_socket<Protocol1>& peer, boost::system::error_code& ec,
1198
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1199
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1291
+ basic_socket<Protocol1, Executor1>& peer, boost::system::error_code& ec,
1292
+ typename enable_if<
1293
+ is_convertible<Protocol, Protocol1>::value
1294
+ >::type* = 0)
1200
1295
  {
1201
- this->get_service().accept(this->get_implementation(),
1296
+ impl_.get_service().accept(impl_.get_implementation(),
1202
1297
  peer, static_cast<endpoint_type*>(0), ec);
1203
1298
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1204
1299
  }
@@ -1219,9 +1314,9 @@ public:
1219
1314
  * const boost::system::error_code& error // Result of operation.
1220
1315
  * ); @endcode
1221
1316
  * Regardless of whether the asynchronous operation completes immediately or
1222
- * not, the handler will not be invoked from within this function. Invocation
1223
- * of the handler will be performed in a manner equivalent to using
1224
- * boost::asio::io_context::post().
1317
+ * not, the handler will not be invoked from within this function. On
1318
+ * immediate completion, invocation of the handler will be performed in a
1319
+ * manner equivalent to using boost::asio::post().
1225
1320
  *
1226
1321
  * @par Example
1227
1322
  * @code
@@ -1235,45 +1330,27 @@ public:
1235
1330
  *
1236
1331
  * ...
1237
1332
  *
1238
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1333
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1239
1334
  * ...
1240
- * boost::asio::ip::tcp::socket socket(io_context);
1335
+ * boost::asio::ip::tcp::socket socket(my_context);
1241
1336
  * acceptor.async_accept(socket, accept_handler);
1242
1337
  * @endcode
1243
1338
  */
1244
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1245
- template <typename Protocol1, typename SocketService, typename AcceptHandler>
1246
- BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1247
- void (boost::system::error_code))
1248
- async_accept(basic_socket<Protocol1, SocketService>& peer,
1249
- BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
1250
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1251
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1252
- template <typename Protocol1, typename AcceptHandler>
1253
- BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1339
+ template <typename Protocol1, typename Executor1,
1340
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1341
+ AcceptHandler BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1342
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(AcceptHandler,
1254
1343
  void (boost::system::error_code))
1255
- async_accept(basic_socket<Protocol1>& peer,
1256
- BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
1257
- typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1258
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1344
+ async_accept(basic_socket<Protocol1, Executor1>& peer,
1345
+ BOOST_ASIO_MOVE_ARG(AcceptHandler) handler
1346
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type),
1347
+ typename enable_if<
1348
+ is_convertible<Protocol, Protocol1>::value
1349
+ >::type* = 0)
1259
1350
  {
1260
- // If you get an error on the following line it means that your handler does
1261
- // not meet the documented type requirements for a AcceptHandler.
1262
- BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
1263
-
1264
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1265
- return this->get_service().async_accept(this->get_implementation(),
1266
- peer, static_cast<endpoint_type*>(0),
1267
- BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
1268
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1269
- async_completion<AcceptHandler,
1270
- void (boost::system::error_code)> init(handler);
1271
-
1272
- this->get_service().async_accept(this->get_implementation(),
1273
- peer, static_cast<endpoint_type*>(0), init.completion_handler);
1274
-
1275
- return init.result.get();
1276
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1351
+ return async_initiate<AcceptHandler, void (boost::system::error_code)>(
1352
+ initiate_async_accept(this), handler,
1353
+ &peer, static_cast<endpoint_type*>(0));
1277
1354
  }
1278
1355
 
1279
1356
  /// Accept a new connection and obtain the endpoint of the peer
@@ -1292,23 +1369,19 @@ public:
1292
1369
  *
1293
1370
  * @par Example
1294
1371
  * @code
1295
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1372
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1296
1373
  * ...
1297
- * boost::asio::ip::tcp::socket socket(io_context);
1374
+ * boost::asio::ip::tcp::socket socket(my_context);
1298
1375
  * boost::asio::ip::tcp::endpoint endpoint;
1299
1376
  * acceptor.accept(socket, endpoint);
1300
1377
  * @endcode
1301
1378
  */
1302
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1303
- template <typename SocketService>
1304
- void accept(basic_socket<protocol_type, SocketService>& peer,
1379
+ template <typename Executor1>
1380
+ void accept(basic_socket<protocol_type, Executor1>& peer,
1305
1381
  endpoint_type& peer_endpoint)
1306
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1307
- void accept(basic_socket<protocol_type>& peer, endpoint_type& peer_endpoint)
1308
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1309
1382
  {
1310
1383
  boost::system::error_code ec;
1311
- this->get_service().accept(this->get_implementation(),
1384
+ impl_.get_service().accept(impl_.get_implementation(),
1312
1385
  peer, &peer_endpoint, ec);
1313
1386
  boost::asio::detail::throw_error(ec, "accept");
1314
1387
  }
@@ -1329,9 +1402,9 @@ public:
1329
1402
  *
1330
1403
  * @par Example
1331
1404
  * @code
1332
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1405
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1333
1406
  * ...
1334
- * boost::asio::ip::tcp::socket socket(io_context);
1407
+ * boost::asio::ip::tcp::socket socket(my_context);
1335
1408
  * boost::asio::ip::tcp::endpoint endpoint;
1336
1409
  * boost::system::error_code ec;
1337
1410
  * acceptor.accept(socket, endpoint, ec);
@@ -1341,18 +1414,12 @@ public:
1341
1414
  * }
1342
1415
  * @endcode
1343
1416
  */
1344
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1345
- template <typename SocketService>
1346
- BOOST_ASIO_SYNC_OP_VOID accept(
1347
- basic_socket<protocol_type, SocketService>& peer,
1348
- endpoint_type& peer_endpoint, boost::system::error_code& ec)
1349
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1350
- BOOST_ASIO_SYNC_OP_VOID accept(basic_socket<protocol_type>& peer,
1417
+ template <typename Executor1>
1418
+ BOOST_ASIO_SYNC_OP_VOID accept(basic_socket<protocol_type, Executor1>& peer,
1351
1419
  endpoint_type& peer_endpoint, boost::system::error_code& ec)
1352
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1353
1420
  {
1354
- this->get_service().accept(
1355
- this->get_implementation(), peer, &peer_endpoint, ec);
1421
+ impl_.get_service().accept(
1422
+ impl_.get_implementation(), peer, &peer_endpoint, ec);
1356
1423
  BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1357
1424
  }
1358
1425
 
@@ -1378,40 +1445,22 @@ public:
1378
1445
  * const boost::system::error_code& error // Result of operation.
1379
1446
  * ); @endcode
1380
1447
  * Regardless of whether the asynchronous operation completes immediately or
1381
- * not, the handler will not be invoked from within this function. Invocation
1382
- * of the handler will be performed in a manner equivalent to using
1383
- * boost::asio::io_context::post().
1448
+ * not, the handler will not be invoked from within this function. On
1449
+ * immediate completion, invocation of the handler will be performed in a
1450
+ * manner equivalent to using boost::asio::post().
1384
1451
  */
1385
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1386
- template <typename SocketService, typename AcceptHandler>
1387
- BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1388
- void (boost::system::error_code))
1389
- async_accept(basic_socket<protocol_type, SocketService>& peer,
1390
- endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
1391
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1392
- template <typename AcceptHandler>
1393
- BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1452
+ template <typename Executor1,
1453
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1454
+ AcceptHandler BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1455
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(AcceptHandler,
1394
1456
  void (boost::system::error_code))
1395
- async_accept(basic_socket<protocol_type>& peer,
1396
- endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
1397
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1457
+ async_accept(basic_socket<protocol_type, Executor1>& peer,
1458
+ endpoint_type& peer_endpoint,
1459
+ BOOST_ASIO_MOVE_ARG(AcceptHandler) handler
1460
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type))
1398
1461
  {
1399
- // If you get an error on the following line it means that your handler does
1400
- // not meet the documented type requirements for a AcceptHandler.
1401
- BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
1402
-
1403
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1404
- return this->get_service().async_accept(this->get_implementation(), peer,
1405
- &peer_endpoint, BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
1406
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1407
- async_completion<AcceptHandler,
1408
- void (boost::system::error_code)> init(handler);
1409
-
1410
- this->get_service().async_accept(this->get_implementation(),
1411
- peer, &peer_endpoint, init.completion_handler);
1412
-
1413
- return init.result.get();
1414
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1462
+ return async_initiate<AcceptHandler, void (boost::system::error_code)>(
1463
+ initiate_async_accept(this), handler, &peer, &peer_endpoint);
1415
1464
  }
1416
1465
  #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
1417
1466
 
@@ -1431,17 +1480,18 @@ public:
1431
1480
  *
1432
1481
  * @par Example
1433
1482
  * @code
1434
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1483
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1435
1484
  * ...
1436
1485
  * boost::asio::ip::tcp::socket socket(acceptor.accept());
1437
1486
  * @endcode
1438
1487
  */
1439
- typename Protocol::socket accept()
1488
+ typename Protocol::socket::template rebind_executor<executor_type>::other
1489
+ accept()
1440
1490
  {
1441
1491
  boost::system::error_code ec;
1442
- typename Protocol::socket peer(
1443
- this->get_service().accept(
1444
- this->get_implementation(), 0, 0, ec));
1492
+ typename Protocol::socket::template rebind_executor<
1493
+ executor_type>::other peer(impl_.get_executor());
1494
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1445
1495
  boost::asio::detail::throw_error(ec, "accept");
1446
1496
  return peer;
1447
1497
  }
@@ -1462,7 +1512,7 @@ public:
1462
1512
  *
1463
1513
  * @par Example
1464
1514
  * @code
1465
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1515
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1466
1516
  * ...
1467
1517
  * boost::asio::ip::tcp::socket socket(acceptor.accept(ec));
1468
1518
  * if (ec)
@@ -1471,9 +1521,13 @@ public:
1471
1521
  * }
1472
1522
  * @endcode
1473
1523
  */
1474
- typename Protocol::socket accept(boost::system::error_code& ec)
1524
+ typename Protocol::socket::template rebind_executor<executor_type>::other
1525
+ accept(boost::system::error_code& ec)
1475
1526
  {
1476
- return this->get_service().accept(this->get_implementation(), 0, 0, ec);
1527
+ typename Protocol::socket::template rebind_executor<
1528
+ executor_type>::other peer(impl_.get_executor());
1529
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1530
+ return peer;
1477
1531
  }
1478
1532
 
1479
1533
  /// Start an asynchronous accept.
@@ -1488,13 +1542,16 @@ public:
1488
1542
  * completes. Copies will be made of the handler as required. The function
1489
1543
  * signature of the handler must be:
1490
1544
  * @code void handler(
1491
- * const boost::system::error_code& error, // Result of operation.
1492
- * typename Protocol::socket peer // On success, the newly accepted socket.
1545
+ * // Result of operation.
1546
+ * const boost::system::error_code& error,
1547
+ * // On success, the newly accepted socket.
1548
+ * typename Protocol::socket::template
1549
+ * rebind_executor<executor_type>::other peer
1493
1550
  * ); @endcode
1494
1551
  * Regardless of whether the asynchronous operation completes immediately or
1495
- * not, the handler will not be invoked from within this function. Invocation
1496
- * of the handler will be performed in a manner equivalent to using
1497
- * boost::asio::io_context::post().
1552
+ * not, the handler will not be invoked from within this function. On
1553
+ * immediate completion, invocation of the handler will be performed in a
1554
+ * manner equivalent to using boost::asio::post().
1498
1555
  *
1499
1556
  * @par Example
1500
1557
  * @code
@@ -1509,37 +1566,70 @@ public:
1509
1566
  *
1510
1567
  * ...
1511
1568
  *
1512
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1569
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1513
1570
  * ...
1514
1571
  * acceptor.async_accept(accept_handler);
1515
1572
  * @endcode
1516
1573
  */
1517
- template <typename MoveAcceptHandler>
1518
- BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1519
- void (boost::system::error_code, typename Protocol::socket))
1520
- async_accept(BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1521
- {
1522
- // If you get an error on the following line it means that your handler does
1523
- // not meet the documented type requirements for a MoveAcceptHandler.
1524
- BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1525
- handler, typename Protocol::socket) type_check;
1526
-
1527
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1528
- return this->get_service().async_accept(
1529
- this->get_implementation(), static_cast<boost::asio::io_context*>(0),
1530
- static_cast<endpoint_type*>(0),
1531
- BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1532
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1533
- async_completion<MoveAcceptHandler,
1574
+ template <
1575
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
1576
+ typename Protocol::socket::template rebind_executor<
1577
+ executor_type>::other)) MoveAcceptHandler
1578
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1579
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
1534
1580
  void (boost::system::error_code,
1535
- typename Protocol::socket)> init(handler);
1536
-
1537
- this->get_service().async_accept(
1538
- this->get_implementation(), static_cast<boost::asio::io_context*>(0),
1539
- static_cast<endpoint_type*>(0), init.completion_handler);
1581
+ typename Protocol::socket::template
1582
+ rebind_executor<executor_type>::other))
1583
+ async_accept(
1584
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
1585
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type))
1586
+ {
1587
+ return async_initiate<MoveAcceptHandler,
1588
+ void (boost::system::error_code, typename Protocol::socket::template
1589
+ rebind_executor<executor_type>::other)>(
1590
+ initiate_async_move_accept(this), handler,
1591
+ impl_.get_executor(), static_cast<endpoint_type*>(0),
1592
+ static_cast<typename Protocol::socket::template
1593
+ rebind_executor<executor_type>::other*>(0));
1594
+ }
1540
1595
 
1541
- return init.result.get();
1542
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1596
+ /// Accept a new connection.
1597
+ /**
1598
+ * This function is used to accept a new connection from a peer. The function
1599
+ * call will block until a new connection has been accepted successfully or
1600
+ * an error occurs.
1601
+ *
1602
+ * This overload requires that the Protocol template parameter satisfy the
1603
+ * AcceptableProtocol type requirements.
1604
+ *
1605
+ * @param ex The I/O executor object to be used for the newly
1606
+ * accepted socket.
1607
+ *
1608
+ * @returns A socket object representing the newly accepted connection.
1609
+ *
1610
+ * @throws boost::system::system_error Thrown on failure.
1611
+ *
1612
+ * @par Example
1613
+ * @code
1614
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1615
+ * ...
1616
+ * boost::asio::ip::tcp::socket socket(acceptor.accept());
1617
+ * @endcode
1618
+ */
1619
+ template <typename Executor1>
1620
+ typename Protocol::socket::template rebind_executor<Executor1>::other
1621
+ accept(const Executor1& ex,
1622
+ typename enable_if<
1623
+ is_executor<Executor1>::value
1624
+ || execution::is_executor<Executor1>::value
1625
+ >::type* = 0)
1626
+ {
1627
+ boost::system::error_code ec;
1628
+ typename Protocol::socket::template
1629
+ rebind_executor<Executor1>::other peer(ex);
1630
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1631
+ boost::asio::detail::throw_error(ec, "accept");
1632
+ return peer;
1543
1633
  }
1544
1634
 
1545
1635
  /// Accept a new connection.
@@ -1551,8 +1641,8 @@ public:
1551
1641
  * This overload requires that the Protocol template parameter satisfy the
1552
1642
  * AcceptableProtocol type requirements.
1553
1643
  *
1554
- * @param io_context The io_context object to be used for the newly accepted
1555
- * socket.
1644
+ * @param context The I/O execution context object to be used for the newly
1645
+ * accepted socket.
1556
1646
  *
1557
1647
  * @returns A socket object representing the newly accepted connection.
1558
1648
  *
@@ -1560,17 +1650,23 @@ public:
1560
1650
  *
1561
1651
  * @par Example
1562
1652
  * @code
1563
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1653
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1564
1654
  * ...
1565
1655
  * boost::asio::ip::tcp::socket socket(acceptor.accept());
1566
1656
  * @endcode
1567
1657
  */
1568
- typename Protocol::socket accept(boost::asio::io_context& io_context)
1658
+ template <typename ExecutionContext>
1659
+ typename Protocol::socket::template rebind_executor<
1660
+ typename ExecutionContext::executor_type>::other
1661
+ accept(ExecutionContext& context,
1662
+ typename enable_if<
1663
+ is_convertible<ExecutionContext&, execution_context&>::value
1664
+ >::type* = 0)
1569
1665
  {
1570
1666
  boost::system::error_code ec;
1571
- typename Protocol::socket peer(
1572
- this->get_service().accept(this->get_implementation(),
1573
- &io_context, static_cast<endpoint_type*>(0), ec));
1667
+ typename Protocol::socket::template rebind_executor<
1668
+ typename ExecutionContext::executor_type>::other peer(context);
1669
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1574
1670
  boost::asio::detail::throw_error(ec, "accept");
1575
1671
  return peer;
1576
1672
  }
@@ -1584,7 +1680,7 @@ public:
1584
1680
  * This overload requires that the Protocol template parameter satisfy the
1585
1681
  * AcceptableProtocol type requirements.
1586
1682
  *
1587
- * @param io_context The io_context object to be used for the newly accepted
1683
+ * @param ex The I/O executor object to be used for the newly accepted
1588
1684
  * socket.
1589
1685
  *
1590
1686
  * @param ec Set to indicate what error occurred, if any.
@@ -1594,20 +1690,69 @@ public:
1594
1690
  *
1595
1691
  * @par Example
1596
1692
  * @code
1597
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1693
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1598
1694
  * ...
1599
- * boost::asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec));
1695
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
1600
1696
  * if (ec)
1601
1697
  * {
1602
1698
  * // An error occurred.
1603
1699
  * }
1604
1700
  * @endcode
1605
1701
  */
1606
- typename Protocol::socket accept(
1607
- boost::asio::io_context& io_context, boost::system::error_code& ec)
1702
+ template <typename Executor1>
1703
+ typename Protocol::socket::template rebind_executor<Executor1>::other
1704
+ accept(const Executor1& ex, boost::system::error_code& ec,
1705
+ typename enable_if<
1706
+ is_executor<Executor1>::value
1707
+ || execution::is_executor<Executor1>::value
1708
+ >::type* = 0)
1608
1709
  {
1609
- return this->get_service().accept(this->get_implementation(),
1610
- &io_context, static_cast<endpoint_type*>(0), ec);
1710
+ typename Protocol::socket::template
1711
+ rebind_executor<Executor1>::other peer(ex);
1712
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1713
+ return peer;
1714
+ }
1715
+
1716
+ /// Accept a new connection.
1717
+ /**
1718
+ * This function is used to accept a new connection from a peer. The function
1719
+ * call will block until a new connection has been accepted successfully or
1720
+ * an error occurs.
1721
+ *
1722
+ * This overload requires that the Protocol template parameter satisfy the
1723
+ * AcceptableProtocol type requirements.
1724
+ *
1725
+ * @param context The I/O execution context object to be used for the newly
1726
+ * accepted socket.
1727
+ *
1728
+ * @param ec Set to indicate what error occurred, if any.
1729
+ *
1730
+ * @returns On success, a socket object representing the newly accepted
1731
+ * connection. On error, a socket object where is_open() is false.
1732
+ *
1733
+ * @par Example
1734
+ * @code
1735
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1736
+ * ...
1737
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
1738
+ * if (ec)
1739
+ * {
1740
+ * // An error occurred.
1741
+ * }
1742
+ * @endcode
1743
+ */
1744
+ template <typename ExecutionContext>
1745
+ typename Protocol::socket::template rebind_executor<
1746
+ typename ExecutionContext::executor_type>::other
1747
+ accept(ExecutionContext& context, boost::system::error_code& ec,
1748
+ typename enable_if<
1749
+ is_convertible<ExecutionContext&, execution_context&>::value
1750
+ >::type* = 0)
1751
+ {
1752
+ typename Protocol::socket::template rebind_executor<
1753
+ typename ExecutionContext::executor_type>::other peer(context);
1754
+ impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1755
+ return peer;
1611
1756
  }
1612
1757
 
1613
1758
  /// Start an asynchronous accept.
@@ -1618,7 +1763,7 @@ public:
1618
1763
  * This overload requires that the Protocol template parameter satisfy the
1619
1764
  * AcceptableProtocol type requirements.
1620
1765
  *
1621
- * @param io_context The io_context object to be used for the newly accepted
1766
+ * @param ex The I/O executor object to be used for the newly accepted
1622
1767
  * socket.
1623
1768
  *
1624
1769
  * @param handler The handler to be called when the accept operation
@@ -1626,12 +1771,13 @@ public:
1626
1771
  * signature of the handler must be:
1627
1772
  * @code void handler(
1628
1773
  * const boost::system::error_code& error, // Result of operation.
1629
- * typename Protocol::socket peer // On success, the newly accepted socket.
1774
+ * typename Protocol::socket::template rebind_executor<
1775
+ * Executor1>::other peer // On success, the newly accepted socket.
1630
1776
  * ); @endcode
1631
1777
  * Regardless of whether the asynchronous operation completes immediately or
1632
- * not, the handler will not be invoked from within this function. Invocation
1633
- * of the handler will be performed in a manner equivalent to using
1634
- * boost::asio::io_context::post().
1778
+ * not, the handler will not be invoked from within this function. On
1779
+ * immediate completion, invocation of the handler will be performed in a
1780
+ * manner equivalent to using boost::asio::post().
1635
1781
  *
1636
1782
  * @par Example
1637
1783
  * @code
@@ -1646,36 +1792,105 @@ public:
1646
1792
  *
1647
1793
  * ...
1648
1794
  *
1649
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1795
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1650
1796
  * ...
1651
- * acceptor.async_accept(io_context2, accept_handler);
1797
+ * acceptor.async_accept(my_context2, accept_handler);
1652
1798
  * @endcode
1653
1799
  */
1654
- template <typename MoveAcceptHandler>
1655
- BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1656
- void (boost::system::error_code, typename Protocol::socket))
1657
- async_accept(boost::asio::io_context& io_context,
1658
- BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1659
- {
1660
- // If you get an error on the following line it means that your handler does
1661
- // not meet the documented type requirements for a MoveAcceptHandler.
1662
- BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1663
- handler, typename Protocol::socket) type_check;
1664
-
1665
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1666
- return this->get_service().async_accept(this->get_implementation(),
1667
- &io_context, static_cast<endpoint_type*>(0),
1668
- BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1669
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1670
- async_completion<MoveAcceptHandler,
1800
+ template <typename Executor1,
1801
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
1802
+ typename Protocol::socket::template rebind_executor<
1803
+ Executor1>::other)) MoveAcceptHandler
1804
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1805
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
1671
1806
  void (boost::system::error_code,
1672
- typename Protocol::socket)> init(handler);
1673
-
1674
- this->get_service().async_accept(this->get_implementation(),
1675
- &io_context, static_cast<endpoint_type*>(0), init.completion_handler);
1807
+ typename Protocol::socket::template rebind_executor<
1808
+ Executor1>::other))
1809
+ async_accept(const Executor1& ex,
1810
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
1811
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type),
1812
+ typename enable_if<
1813
+ is_executor<Executor1>::value
1814
+ || execution::is_executor<Executor1>::value
1815
+ >::type* = 0)
1816
+ {
1817
+ typedef typename Protocol::socket::template rebind_executor<
1818
+ Executor1>::other other_socket_type;
1819
+
1820
+ return async_initiate<MoveAcceptHandler,
1821
+ void (boost::system::error_code, other_socket_type)>(
1822
+ initiate_async_move_accept(this), handler,
1823
+ ex, static_cast<endpoint_type*>(0),
1824
+ static_cast<other_socket_type*>(0));
1825
+ }
1676
1826
 
1677
- return init.result.get();
1678
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1827
+ /// Start an asynchronous accept.
1828
+ /**
1829
+ * This function is used to asynchronously accept a new connection. The
1830
+ * function call always returns immediately.
1831
+ *
1832
+ * This overload requires that the Protocol template parameter satisfy the
1833
+ * AcceptableProtocol type requirements.
1834
+ *
1835
+ * @param context The I/O execution context object to be used for the newly
1836
+ * accepted socket.
1837
+ *
1838
+ * @param handler The handler to be called when the accept operation
1839
+ * completes. Copies will be made of the handler as required. The function
1840
+ * signature of the handler must be:
1841
+ * @code void handler(
1842
+ * const boost::system::error_code& error, // Result of operation.
1843
+ * typename Protocol::socket::template rebind_executor<
1844
+ * typename ExecutionContext::executor_type>::other peer
1845
+ * // On success, the newly accepted socket.
1846
+ * ); @endcode
1847
+ * Regardless of whether the asynchronous operation completes immediately or
1848
+ * not, the handler will not be invoked from within this function. On
1849
+ * immediate completion, invocation of the handler will be performed in a
1850
+ * manner equivalent to using boost::asio::post().
1851
+ *
1852
+ * @par Example
1853
+ * @code
1854
+ * void accept_handler(const boost::system::error_code& error,
1855
+ * boost::asio::ip::tcp::socket peer)
1856
+ * {
1857
+ * if (!error)
1858
+ * {
1859
+ * // Accept succeeded.
1860
+ * }
1861
+ * }
1862
+ *
1863
+ * ...
1864
+ *
1865
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1866
+ * ...
1867
+ * acceptor.async_accept(my_context2, accept_handler);
1868
+ * @endcode
1869
+ */
1870
+ template <typename ExecutionContext,
1871
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
1872
+ typename Protocol::socket::template rebind_executor<
1873
+ typename ExecutionContext::executor_type>::other)) MoveAcceptHandler
1874
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
1875
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
1876
+ void (boost::system::error_code,
1877
+ typename Protocol::socket::template rebind_executor<
1878
+ typename ExecutionContext::executor_type>::other))
1879
+ async_accept(ExecutionContext& context,
1880
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
1881
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type),
1882
+ typename enable_if<
1883
+ is_convertible<ExecutionContext&, execution_context&>::value
1884
+ >::type* = 0)
1885
+ {
1886
+ typedef typename Protocol::socket::template rebind_executor<
1887
+ typename ExecutionContext::executor_type>::other other_socket_type;
1888
+
1889
+ return async_initiate<MoveAcceptHandler,
1890
+ void (boost::system::error_code, other_socket_type)>(
1891
+ initiate_async_move_accept(this), handler,
1892
+ context.get_executor(), static_cast<endpoint_type*>(0),
1893
+ static_cast<other_socket_type*>(0));
1679
1894
  }
1680
1895
 
1681
1896
  /// Accept a new connection.
@@ -1696,18 +1911,20 @@ public:
1696
1911
  *
1697
1912
  * @par Example
1698
1913
  * @code
1699
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1914
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1700
1915
  * ...
1701
1916
  * boost::asio::ip::tcp::endpoint endpoint;
1702
1917
  * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint));
1703
1918
  * @endcode
1704
1919
  */
1705
- typename Protocol::socket accept(endpoint_type& peer_endpoint)
1920
+ typename Protocol::socket::template rebind_executor<executor_type>::other
1921
+ accept(endpoint_type& peer_endpoint)
1706
1922
  {
1707
1923
  boost::system::error_code ec;
1708
- typename Protocol::socket peer(
1709
- this->get_service().accept(this->get_implementation(),
1710
- static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec));
1924
+ typename Protocol::socket::template rebind_executor<
1925
+ executor_type>::other peer(impl_.get_executor());
1926
+ impl_.get_service().accept(impl_.get_implementation(),
1927
+ peer, &peer_endpoint, ec);
1711
1928
  boost::asio::detail::throw_error(ec, "accept");
1712
1929
  return peer;
1713
1930
  }
@@ -1731,7 +1948,7 @@ public:
1731
1948
  *
1732
1949
  * @par Example
1733
1950
  * @code
1734
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
1951
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1735
1952
  * ...
1736
1953
  * boost::asio::ip::tcp::endpoint endpoint;
1737
1954
  * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
@@ -1741,11 +1958,14 @@ public:
1741
1958
  * }
1742
1959
  * @endcode
1743
1960
  */
1744
- typename Protocol::socket accept(
1745
- endpoint_type& peer_endpoint, boost::system::error_code& ec)
1961
+ typename Protocol::socket::template rebind_executor<executor_type>::other
1962
+ accept(endpoint_type& peer_endpoint, boost::system::error_code& ec)
1746
1963
  {
1747
- return this->get_service().accept(this->get_implementation(),
1748
- static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec);
1964
+ typename Protocol::socket::template rebind_executor<
1965
+ executor_type>::other peer(impl_.get_executor());
1966
+ impl_.get_service().accept(impl_.get_implementation(),
1967
+ peer, &peer_endpoint, ec);
1968
+ return peer;
1749
1969
  }
1750
1970
 
1751
1971
  /// Start an asynchronous accept.
@@ -1765,13 +1985,16 @@ public:
1765
1985
  * completes. Copies will be made of the handler as required. The function
1766
1986
  * signature of the handler must be:
1767
1987
  * @code void handler(
1768
- * const boost::system::error_code& error, // Result of operation.
1769
- * typename Protocol::socket peer // On success, the newly accepted socket.
1988
+ * // Result of operation.
1989
+ * const boost::system::error_code& error,
1990
+ * // On success, the newly accepted socket.
1991
+ * typename Protocol::socket::template
1992
+ * rebind_executor<executor_type>::other peer
1770
1993
  * ); @endcode
1771
1994
  * Regardless of whether the asynchronous operation completes immediately or
1772
- * not, the handler will not be invoked from within this function. Invocation
1773
- * of the handler will be performed in a manner equivalent to using
1774
- * boost::asio::io_context::post().
1995
+ * not, the handler will not be invoked from within this function. On
1996
+ * immediate completion, invocation of the handler will be performed in a
1997
+ * manner equivalent to using boost::asio::post().
1775
1998
  *
1776
1999
  * @par Example
1777
2000
  * @code
@@ -1786,38 +2009,32 @@ public:
1786
2009
  *
1787
2010
  * ...
1788
2011
  *
1789
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
2012
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1790
2013
  * ...
1791
2014
  * boost::asio::ip::tcp::endpoint endpoint;
1792
2015
  * acceptor.async_accept(endpoint, accept_handler);
1793
2016
  * @endcode
1794
2017
  */
1795
- template <typename MoveAcceptHandler>
1796
- BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1797
- void (boost::system::error_code, typename Protocol::socket))
1798
- async_accept(endpoint_type& peer_endpoint,
1799
- BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1800
- {
1801
- // If you get an error on the following line it means that your handler does
1802
- // not meet the documented type requirements for a MoveAcceptHandler.
1803
- BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1804
- handler, typename Protocol::socket) type_check;
1805
-
1806
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1807
- return this->get_service().async_accept(this->get_implementation(),
1808
- static_cast<boost::asio::io_context*>(0), &peer_endpoint,
1809
- BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1810
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1811
- async_completion<MoveAcceptHandler,
2018
+ template <
2019
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2020
+ typename Protocol::socket::template rebind_executor<
2021
+ executor_type>::other)) MoveAcceptHandler
2022
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
2023
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
1812
2024
  void (boost::system::error_code,
1813
- typename Protocol::socket)> init(handler);
1814
-
1815
- this->get_service().async_accept(this->get_implementation(),
1816
- static_cast<boost::asio::io_context*>(0), &peer_endpoint,
1817
- init.completion_handler);
1818
-
1819
- return init.result.get();
1820
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
2025
+ typename Protocol::socket::template
2026
+ rebind_executor<executor_type>::other))
2027
+ async_accept(endpoint_type& peer_endpoint,
2028
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
2029
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type))
2030
+ {
2031
+ return async_initiate<MoveAcceptHandler,
2032
+ void (boost::system::error_code, typename Protocol::socket::template
2033
+ rebind_executor<executor_type>::other)>(
2034
+ initiate_async_move_accept(this), handler,
2035
+ impl_.get_executor(), &peer_endpoint,
2036
+ static_cast<typename Protocol::socket::template
2037
+ rebind_executor<executor_type>::other*>(0));
1821
2038
  }
1822
2039
 
1823
2040
  /// Accept a new connection.
@@ -1829,7 +2046,7 @@ public:
1829
2046
  * This overload requires that the Protocol template parameter satisfy the
1830
2047
  * AcceptableProtocol type requirements.
1831
2048
  *
1832
- * @param io_context The io_context object to be used for the newly accepted
2049
+ * @param ex The I/O executor object to be used for the newly accepted
1833
2050
  * socket.
1834
2051
  *
1835
2052
  * @param peer_endpoint An endpoint object into which the endpoint of the
@@ -1841,20 +2058,71 @@ public:
1841
2058
  *
1842
2059
  * @par Example
1843
2060
  * @code
1844
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
2061
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
2062
+ * ...
2063
+ * boost::asio::ip::tcp::endpoint endpoint;
2064
+ * boost::asio::ip::tcp::socket socket(
2065
+ * acceptor.accept(my_context2, endpoint));
2066
+ * @endcode
2067
+ */
2068
+ template <typename Executor1>
2069
+ typename Protocol::socket::template rebind_executor<Executor1>::other
2070
+ accept(const Executor1& ex, endpoint_type& peer_endpoint,
2071
+ typename enable_if<
2072
+ is_executor<Executor1>::value
2073
+ || execution::is_executor<Executor1>::value
2074
+ >::type* = 0)
2075
+ {
2076
+ boost::system::error_code ec;
2077
+ typename Protocol::socket::template
2078
+ rebind_executor<Executor1>::other peer(ex);
2079
+ impl_.get_service().accept(impl_.get_implementation(),
2080
+ peer, &peer_endpoint, ec);
2081
+ boost::asio::detail::throw_error(ec, "accept");
2082
+ return peer;
2083
+ }
2084
+
2085
+ /// Accept a new connection.
2086
+ /**
2087
+ * This function is used to accept a new connection from a peer. The function
2088
+ * call will block until a new connection has been accepted successfully or
2089
+ * an error occurs.
2090
+ *
2091
+ * This overload requires that the Protocol template parameter satisfy the
2092
+ * AcceptableProtocol type requirements.
2093
+ *
2094
+ * @param context The I/O execution context object to be used for the newly
2095
+ * accepted socket.
2096
+ *
2097
+ * @param peer_endpoint An endpoint object into which the endpoint of the
2098
+ * remote peer will be written.
2099
+ *
2100
+ * @returns A socket object representing the newly accepted connection.
2101
+ *
2102
+ * @throws boost::system::system_error Thrown on failure.
2103
+ *
2104
+ * @par Example
2105
+ * @code
2106
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1845
2107
  * ...
1846
2108
  * boost::asio::ip::tcp::endpoint endpoint;
1847
2109
  * boost::asio::ip::tcp::socket socket(
1848
- * acceptor.accept(io_context2, endpoint));
2110
+ * acceptor.accept(my_context2, endpoint));
1849
2111
  * @endcode
1850
2112
  */
1851
- typename Protocol::socket accept(
1852
- boost::asio::io_context& io_context, endpoint_type& peer_endpoint)
2113
+ template <typename ExecutionContext>
2114
+ typename Protocol::socket::template rebind_executor<
2115
+ typename ExecutionContext::executor_type>::other
2116
+ accept(ExecutionContext& context, endpoint_type& peer_endpoint,
2117
+ typename enable_if<
2118
+ is_convertible<ExecutionContext&, execution_context&>::value
2119
+ >::type* = 0)
1853
2120
  {
1854
2121
  boost::system::error_code ec;
1855
- typename Protocol::socket peer(
1856
- this->get_service().accept(this->get_implementation(),
1857
- &io_context, &peer_endpoint, ec));
2122
+ typename Protocol::socket::template rebind_executor<
2123
+ typename ExecutionContext::executor_type>::other peer(context);
2124
+ impl_.get_service().accept(impl_.get_implementation(),
2125
+ peer, &peer_endpoint, ec);
1858
2126
  boost::asio::detail::throw_error(ec, "accept");
1859
2127
  return peer;
1860
2128
  }
@@ -1868,7 +2136,7 @@ public:
1868
2136
  * This overload requires that the Protocol template parameter satisfy the
1869
2137
  * AcceptableProtocol type requirements.
1870
2138
  *
1871
- * @param io_context The io_context object to be used for the newly accepted
2139
+ * @param ex The I/O executor object to be used for the newly accepted
1872
2140
  * socket.
1873
2141
  *
1874
2142
  * @param peer_endpoint An endpoint object into which the endpoint of the
@@ -1881,22 +2149,80 @@ public:
1881
2149
  *
1882
2150
  * @par Example
1883
2151
  * @code
1884
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
2152
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1885
2153
  * ...
1886
2154
  * boost::asio::ip::tcp::endpoint endpoint;
1887
2155
  * boost::asio::ip::tcp::socket socket(
1888
- * acceptor.accept(io_context2, endpoint, ec));
2156
+ * acceptor.accept(my_context2, endpoint, ec));
1889
2157
  * if (ec)
1890
2158
  * {
1891
2159
  * // An error occurred.
1892
2160
  * }
1893
2161
  * @endcode
1894
2162
  */
1895
- typename Protocol::socket accept(boost::asio::io_context& io_context,
1896
- endpoint_type& peer_endpoint, boost::system::error_code& ec)
2163
+ template <typename Executor1>
2164
+ typename Protocol::socket::template rebind_executor<Executor1>::other
2165
+ accept(const executor_type& ex,
2166
+ endpoint_type& peer_endpoint, boost::system::error_code& ec,
2167
+ typename enable_if<
2168
+ is_executor<Executor1>::value
2169
+ || execution::is_executor<Executor1>::value
2170
+ >::type* = 0)
2171
+ {
2172
+ typename Protocol::socket::template
2173
+ rebind_executor<Executor1>::other peer(ex);
2174
+ impl_.get_service().accept(impl_.get_implementation(),
2175
+ peer, &peer_endpoint, ec);
2176
+ return peer;
2177
+ }
2178
+
2179
+ /// Accept a new connection.
2180
+ /**
2181
+ * This function is used to accept a new connection from a peer. The function
2182
+ * call will block until a new connection has been accepted successfully or
2183
+ * an error occurs.
2184
+ *
2185
+ * This overload requires that the Protocol template parameter satisfy the
2186
+ * AcceptableProtocol type requirements.
2187
+ *
2188
+ * @param context The I/O execution context object to be used for the newly
2189
+ * accepted socket.
2190
+ *
2191
+ * @param peer_endpoint An endpoint object into which the endpoint of the
2192
+ * remote peer will be written.
2193
+ *
2194
+ * @param ec Set to indicate what error occurred, if any.
2195
+ *
2196
+ * @returns On success, a socket object representing the newly accepted
2197
+ * connection. On error, a socket object where is_open() is false.
2198
+ *
2199
+ * @par Example
2200
+ * @code
2201
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
2202
+ * ...
2203
+ * boost::asio::ip::tcp::endpoint endpoint;
2204
+ * boost::asio::ip::tcp::socket socket(
2205
+ * acceptor.accept(my_context2, endpoint, ec));
2206
+ * if (ec)
2207
+ * {
2208
+ * // An error occurred.
2209
+ * }
2210
+ * @endcode
2211
+ */
2212
+ template <typename ExecutionContext>
2213
+ typename Protocol::socket::template rebind_executor<
2214
+ typename ExecutionContext::executor_type>::other
2215
+ accept(ExecutionContext& context,
2216
+ endpoint_type& peer_endpoint, boost::system::error_code& ec,
2217
+ typename enable_if<
2218
+ is_convertible<ExecutionContext&, execution_context&>::value
2219
+ >::type* = 0)
1897
2220
  {
1898
- return this->get_service().accept(this->get_implementation(),
1899
- &io_context, &peer_endpoint, ec);
2221
+ typename Protocol::socket::template rebind_executor<
2222
+ typename ExecutionContext::executor_type>::other peer(context);
2223
+ impl_.get_service().accept(impl_.get_implementation(),
2224
+ peer, &peer_endpoint, ec);
2225
+ return peer;
1900
2226
  }
1901
2227
 
1902
2228
  /// Start an asynchronous accept.
@@ -1907,7 +2233,7 @@ public:
1907
2233
  * This overload requires that the Protocol template parameter satisfy the
1908
2234
  * AcceptableProtocol type requirements.
1909
2235
  *
1910
- * @param io_context The io_context object to be used for the newly accepted
2236
+ * @param ex The I/O executor object to be used for the newly accepted
1911
2237
  * socket.
1912
2238
  *
1913
2239
  * @param peer_endpoint An endpoint object into which the endpoint of the
@@ -1920,12 +2246,13 @@ public:
1920
2246
  * signature of the handler must be:
1921
2247
  * @code void handler(
1922
2248
  * const boost::system::error_code& error, // Result of operation.
1923
- * typename Protocol::socket peer // On success, the newly accepted socket.
2249
+ * typename Protocol::socket::template rebind_executor<
2250
+ * Executor1>::other peer // On success, the newly accepted socket.
1924
2251
  * ); @endcode
1925
2252
  * Regardless of whether the asynchronous operation completes immediately or
1926
- * not, the handler will not be invoked from within this function. Invocation
1927
- * of the handler will be performed in a manner equivalent to using
1928
- * boost::asio::io_context::post().
2253
+ * not, the handler will not be invoked from within this function. On
2254
+ * immediate completion, invocation of the handler will be performed in a
2255
+ * manner equivalent to using boost::asio::post().
1929
2256
  *
1930
2257
  * @par Example
1931
2258
  * @code
@@ -1940,40 +2267,232 @@ public:
1940
2267
  *
1941
2268
  * ...
1942
2269
  *
1943
- * boost::asio::ip::tcp::acceptor acceptor(io_context);
2270
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
1944
2271
  * ...
1945
2272
  * boost::asio::ip::tcp::endpoint endpoint;
1946
- * acceptor.async_accept(io_context2, endpoint, accept_handler);
2273
+ * acceptor.async_accept(my_context2, endpoint, accept_handler);
1947
2274
  * @endcode
1948
2275
  */
1949
- template <typename MoveAcceptHandler>
1950
- BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1951
- void (boost::system::error_code, typename Protocol::socket))
1952
- async_accept(boost::asio::io_context& io_context,
1953
- endpoint_type& peer_endpoint,
1954
- BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1955
- {
1956
- // If you get an error on the following line it means that your handler does
1957
- // not meet the documented type requirements for a MoveAcceptHandler.
1958
- BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1959
- handler, typename Protocol::socket) type_check;
1960
-
1961
- #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1962
- return this->get_service().async_accept(
1963
- this->get_implementation(), &io_context, &peer_endpoint,
1964
- BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1965
- #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1966
- async_completion<MoveAcceptHandler,
2276
+ template <typename Executor1,
2277
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2278
+ typename Protocol::socket::template rebind_executor<
2279
+ Executor1>::other)) MoveAcceptHandler
2280
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
2281
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
1967
2282
  void (boost::system::error_code,
1968
- typename Protocol::socket)> init(handler);
1969
-
1970
- this->get_service().async_accept(this->get_implementation(),
1971
- &io_context, &peer_endpoint, init.completion_handler);
2283
+ typename Protocol::socket::template rebind_executor<
2284
+ Executor1>::other))
2285
+ async_accept(const Executor1& ex, endpoint_type& peer_endpoint,
2286
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
2287
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type),
2288
+ typename enable_if<
2289
+ is_executor<Executor1>::value
2290
+ || execution::is_executor<Executor1>::value
2291
+ >::type* = 0)
2292
+ {
2293
+ typedef typename Protocol::socket::template rebind_executor<
2294
+ Executor1>::other other_socket_type;
2295
+
2296
+ return async_initiate<MoveAcceptHandler,
2297
+ void (boost::system::error_code, other_socket_type)>(
2298
+ initiate_async_move_accept(this), handler,
2299
+ ex, &peer_endpoint,
2300
+ static_cast<other_socket_type*>(0));
2301
+ }
1972
2302
 
1973
- return init.result.get();
1974
- #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
2303
+ /// Start an asynchronous accept.
2304
+ /**
2305
+ * This function is used to asynchronously accept a new connection. The
2306
+ * function call always returns immediately.
2307
+ *
2308
+ * This overload requires that the Protocol template parameter satisfy the
2309
+ * AcceptableProtocol type requirements.
2310
+ *
2311
+ * @param context The I/O execution context object to be used for the newly
2312
+ * accepted socket.
2313
+ *
2314
+ * @param peer_endpoint An endpoint object into which the endpoint of the
2315
+ * remote peer will be written. Ownership of the peer_endpoint object is
2316
+ * retained by the caller, which must guarantee that it is valid until the
2317
+ * handler is called.
2318
+ *
2319
+ * @param handler The handler to be called when the accept operation
2320
+ * completes. Copies will be made of the handler as required. The function
2321
+ * signature of the handler must be:
2322
+ * @code void handler(
2323
+ * const boost::system::error_code& error, // Result of operation.
2324
+ * typename Protocol::socket::template rebind_executor<
2325
+ * typename ExecutionContext::executor_type>::other peer
2326
+ * // On success, the newly accepted socket.
2327
+ * ); @endcode
2328
+ * Regardless of whether the asynchronous operation completes immediately or
2329
+ * not, the handler will not be invoked from within this function. On
2330
+ * immediate completion, invocation of the handler will be performed in a
2331
+ * manner equivalent to using boost::asio::post().
2332
+ *
2333
+ * @par Example
2334
+ * @code
2335
+ * void accept_handler(const boost::system::error_code& error,
2336
+ * boost::asio::ip::tcp::socket peer)
2337
+ * {
2338
+ * if (!error)
2339
+ * {
2340
+ * // Accept succeeded.
2341
+ * }
2342
+ * }
2343
+ *
2344
+ * ...
2345
+ *
2346
+ * boost::asio::ip::tcp::acceptor acceptor(my_context);
2347
+ * ...
2348
+ * boost::asio::ip::tcp::endpoint endpoint;
2349
+ * acceptor.async_accept(my_context2, endpoint, accept_handler);
2350
+ * @endcode
2351
+ */
2352
+ template <typename ExecutionContext,
2353
+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2354
+ typename Protocol::socket::template rebind_executor<
2355
+ typename ExecutionContext::executor_type>::other)) MoveAcceptHandler
2356
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)>
2357
+ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(MoveAcceptHandler,
2358
+ void (boost::system::error_code,
2359
+ typename Protocol::socket::template rebind_executor<
2360
+ typename ExecutionContext::executor_type>::other))
2361
+ async_accept(ExecutionContext& context,
2362
+ endpoint_type& peer_endpoint,
2363
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler
2364
+ BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type),
2365
+ typename enable_if<
2366
+ is_convertible<ExecutionContext&, execution_context&>::value
2367
+ >::type* = 0)
2368
+ {
2369
+ typedef typename Protocol::socket::template rebind_executor<
2370
+ typename ExecutionContext::executor_type>::other other_socket_type;
2371
+
2372
+ return async_initiate<MoveAcceptHandler,
2373
+ void (boost::system::error_code, other_socket_type)>(
2374
+ initiate_async_move_accept(this), handler,
2375
+ context.get_executor(), &peer_endpoint,
2376
+ static_cast<other_socket_type*>(0));
1975
2377
  }
1976
2378
  #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
2379
+
2380
+ private:
2381
+ // Disallow copying and assignment.
2382
+ basic_socket_acceptor(const basic_socket_acceptor&) BOOST_ASIO_DELETED;
2383
+ basic_socket_acceptor& operator=(
2384
+ const basic_socket_acceptor&) BOOST_ASIO_DELETED;
2385
+
2386
+ class initiate_async_wait
2387
+ {
2388
+ public:
2389
+ typedef Executor executor_type;
2390
+
2391
+ explicit initiate_async_wait(basic_socket_acceptor* self)
2392
+ : self_(self)
2393
+ {
2394
+ }
2395
+
2396
+ executor_type get_executor() const BOOST_ASIO_NOEXCEPT
2397
+ {
2398
+ return self_->get_executor();
2399
+ }
2400
+
2401
+ template <typename WaitHandler>
2402
+ void operator()(BOOST_ASIO_MOVE_ARG(WaitHandler) handler, wait_type w) const
2403
+ {
2404
+ // If you get an error on the following line it means that your handler
2405
+ // does not meet the documented type requirements for a WaitHandler.
2406
+ BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
2407
+
2408
+ detail::non_const_lvalue<WaitHandler> handler2(handler);
2409
+ self_->impl_.get_service().async_wait(
2410
+ self_->impl_.get_implementation(), w,
2411
+ handler2.value, self_->impl_.get_executor());
2412
+ }
2413
+
2414
+ private:
2415
+ basic_socket_acceptor* self_;
2416
+ };
2417
+
2418
+ class initiate_async_accept
2419
+ {
2420
+ public:
2421
+ typedef Executor executor_type;
2422
+
2423
+ explicit initiate_async_accept(basic_socket_acceptor* self)
2424
+ : self_(self)
2425
+ {
2426
+ }
2427
+
2428
+ executor_type get_executor() const BOOST_ASIO_NOEXCEPT
2429
+ {
2430
+ return self_->get_executor();
2431
+ }
2432
+
2433
+ template <typename AcceptHandler, typename Protocol1, typename Executor1>
2434
+ void operator()(BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
2435
+ basic_socket<Protocol1, Executor1>* peer,
2436
+ endpoint_type* peer_endpoint) const
2437
+ {
2438
+ // If you get an error on the following line it means that your handler
2439
+ // does not meet the documented type requirements for a AcceptHandler.
2440
+ BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
2441
+
2442
+ detail::non_const_lvalue<AcceptHandler> handler2(handler);
2443
+ self_->impl_.get_service().async_accept(
2444
+ self_->impl_.get_implementation(), *peer, peer_endpoint,
2445
+ handler2.value, self_->impl_.get_executor());
2446
+ }
2447
+
2448
+ private:
2449
+ basic_socket_acceptor* self_;
2450
+ };
2451
+
2452
+ class initiate_async_move_accept
2453
+ {
2454
+ public:
2455
+ typedef Executor executor_type;
2456
+
2457
+ explicit initiate_async_move_accept(basic_socket_acceptor* self)
2458
+ : self_(self)
2459
+ {
2460
+ }
2461
+
2462
+ executor_type get_executor() const BOOST_ASIO_NOEXCEPT
2463
+ {
2464
+ return self_->get_executor();
2465
+ }
2466
+
2467
+ template <typename MoveAcceptHandler, typename Executor1, typename Socket>
2468
+ void operator()(BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler,
2469
+ const Executor1& peer_ex, endpoint_type* peer_endpoint, Socket*) const
2470
+ {
2471
+ // If you get an error on the following line it means that your handler
2472
+ // does not meet the documented type requirements for a MoveAcceptHandler.
2473
+ BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(
2474
+ MoveAcceptHandler, handler, Socket) type_check;
2475
+
2476
+ detail::non_const_lvalue<MoveAcceptHandler> handler2(handler);
2477
+ self_->impl_.get_service().async_move_accept(
2478
+ self_->impl_.get_implementation(), peer_ex, peer_endpoint,
2479
+ handler2.value, self_->impl_.get_executor());
2480
+ }
2481
+
2482
+ private:
2483
+ basic_socket_acceptor* self_;
2484
+ };
2485
+
2486
+ #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
2487
+ detail::io_object_impl<
2488
+ detail::null_socket_service<Protocol>, Executor> impl_;
2489
+ #elif defined(BOOST_ASIO_HAS_IOCP)
2490
+ detail::io_object_impl<
2491
+ detail::win_iocp_socket_service<Protocol>, Executor> impl_;
2492
+ #else
2493
+ detail::io_object_impl<
2494
+ detail::reactive_socket_service<Protocol>, Executor> impl_;
2495
+ #endif
1977
2496
  };
1978
2497
 
1979
2498
  } // namespace asio
@@ -1981,8 +2500,4 @@ public:
1981
2500
 
1982
2501
  #include <boost/asio/detail/pop_options.hpp>
1983
2502
 
1984
- #if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1985
- # undef BOOST_ASIO_SVC_T
1986
- #endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1987
-
1988
2503
  #endif // BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP