passenger 6.0.20 → 6.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +41 -1
  3. data/CONTRIBUTORS +2 -0
  4. data/README.md +2 -2
  5. data/bin/passenger-install-nginx-module +4 -4
  6. data/build/support/cxx_dependency_map.rb +155 -54
  7. data/dev/copy_boost_headers +21 -7
  8. data/dev/nginx_version_sha256 +72 -0
  9. data/src/agent/AgentMain.cpp +2 -8
  10. data/src/agent/Core/AdminPanelConnector.h +2 -3
  11. data/src/agent/Core/ApiServer.h +1 -1
  12. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
  13. data/src/agent/Core/Config.h +6 -3
  14. data/src/agent/Core/Controller/AppResponse.h +0 -1
  15. data/src/agent/Core/Controller/Config.h +2 -2
  16. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  17. data/src/agent/Core/CoreMain.cpp +1 -0
  18. data/src/agent/Core/ResponseCache.h +3 -2
  19. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  20. data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
  22. data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
  23. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
  24. data/src/agent/MainFunctions.h +38 -0
  25. data/src/agent/Shared/ApiServerUtils.h +3 -2
  26. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  27. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
  28. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
  29. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
  30. data/src/agent/Watchdog/ApiServer.h +1 -1
  31. data/src/agent/Watchdog/Config.h +1 -1
  32. data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
  33. data/src/apache2_module/Hooks.cpp +26 -1
  34. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  35. data/src/cxx_supportlib/Constants.h +1 -1
  36. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  37. data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
  38. data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
  39. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  40. data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
  41. data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
  42. data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
  43. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
  44. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
  45. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
  46. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  47. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  48. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  49. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
  50. data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
  51. data/src/cxx_supportlib/ServerKit/Context.h +6 -0
  52. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  53. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +96 -64
  54. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
  55. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  56. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  57. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  58. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  59. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  60. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  61. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  62. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  63. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  64. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  65. data/src/cxx_supportlib/StaticString.h +3 -1
  66. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  67. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
  68. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
  69. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
  70. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
  71. data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
  72. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
  73. data/src/cxx_supportlib/Utils.cpp +1 -1
  74. data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
  75. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +61 -62
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +28 -46
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +42 -59
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +154 -883
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +19 -22
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +106 -153
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +75 -294
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +75 -283
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +89 -288
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +73 -275
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +170 -328
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +26 -39
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +32 -48
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +26 -39
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +53 -272
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +22 -26
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +188 -275
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +2 -3
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +91 -975
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +4 -4
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +4 -4
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +5 -6
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +73 -127
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +32 -11
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +2 -2
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +56 -101
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +56 -92
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +56 -101
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +3 -3
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +3 -3
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +9 -9
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +3 -3
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +3 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +7 -12
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +3 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +3 -3
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -4
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +3 -3
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +3 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +3 -4
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +12 -44
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +9 -9
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +4 -5
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +11 -16
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +4 -5
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +4 -5
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +4 -5
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +4 -5
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +4 -5
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +4 -5
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +11 -13
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +15 -15
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +4 -5
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +3 -4
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +3 -4
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +2 -2
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +21 -26
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +229 -1019
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +55 -33
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +55 -33
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -2
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +20 -20
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +130 -53
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +92 -9
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +15 -8
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +73 -25
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +12 -12
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +48 -48
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +39 -30
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +16 -17
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +14 -14
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +3 -2
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +2 -2
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +14 -20
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +11 -11
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +62 -137
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +22 -21
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +44 -36
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +32 -41
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +1 -1
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +36 -420
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +205 -421
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +1 -1
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +77 -423
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +25 -34
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +4 -4
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +4 -4
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +21 -26
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +10 -21
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +1 -27
  618. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -2
  619. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
  621. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  623. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  624. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  625. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  626. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  627. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -61
  633. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +229 -1740
  634. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  635. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +138 -289
  640. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -280
  642. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -7
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +1 -1
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
  650. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  651. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
  652. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  653. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +3 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +4 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
  657. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +4 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +3 -1
  659. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +3 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +3 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +4 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +3 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +3 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +3 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +7 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +40 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
  675. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
  676. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
  677. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +112 -112
  678. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +40 -40
  679. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  680. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +10 -10
  681. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
  682. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +30 -25
  683. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
  684. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +6 -6
  685. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +129 -129
  686. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
  687. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
  688. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
  689. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +32 -32
  690. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +6 -6
  691. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
  692. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  693. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +77 -77
  694. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  695. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +44 -1
  696. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +78 -78
  697. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -231
  698. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +85 -85
  699. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
  700. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -109
  701. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
  702. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
  703. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +18 -8
  704. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
  705. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  706. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -80
  707. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
  708. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -24
  709. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +115 -109
  710. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +101 -101
  711. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
  712. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +150 -190
  713. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +165 -165
  714. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
  716. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +84 -86
  717. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +5 -99
  718. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +20 -20
  719. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +25 -126
  720. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -21
  721. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
  722. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -41
  723. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +4 -10
  724. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
  725. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +20 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +19 -1
  727. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +9 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +1 -1
  729. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1 -1
  730. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +17 -3
  734. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -55
  736. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
  737. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  738. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  739. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  741. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +2 -2
  742. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  744. data/src/cxx_supportlib/vendor-modified/boost/{ratio → exception}/detail/requires_cxx11.hpp +7 -5
  745. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
  748. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  749. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
  750. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  752. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  753. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  754. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  756. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  757. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  758. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  759. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  760. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  762. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  763. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +21 -166
  764. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  765. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +267 -418
  766. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  767. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -63
  768. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  769. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
  770. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
  771. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
  773. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
  774. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
  775. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +2 -2
  776. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
  777. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
  778. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  779. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  781. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  782. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
  783. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  784. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  785. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  786. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
  789. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -21
  790. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  791. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
  792. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  793. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
  794. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  796. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  797. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  798. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  799. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -21
  800. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  801. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  802. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  803. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +32 -1
  804. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
  805. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
  806. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +56 -57
  807. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  809. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
  811. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
  812. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
  813. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
  814. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
  815. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +60 -61
  816. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
  817. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
  818. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
  819. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
  821. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
  822. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  823. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  824. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  825. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  827. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +611 -633
  828. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
  829. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
  830. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  831. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  832. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
  834. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  835. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  836. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -30
  837. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  838. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  840. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  841. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +1 -0
  843. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +1 -0
  844. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +5 -19
  845. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  846. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +1 -1
  847. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +15 -15
  848. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +10 -10
  849. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  851. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  853. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
  854. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +67 -17
  856. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +5 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  858. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +48 -48
  859. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +59 -0
  860. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
  861. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +3 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
  863. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +9 -0
  864. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +9 -0
  865. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  866. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +2 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  869. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +2 -2
  870. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  876. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  878. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  879. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  880. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  881. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -87
  883. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +0 -11
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +0 -11
  894. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +1 -8
  895. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  896. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -57
  897. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -29
  898. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +51 -124
  899. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
  900. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  901. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
  902. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  903. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  904. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +8 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
  906. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +5 -9
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
  908. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  909. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
  910. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
  911. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  917. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  918. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  934. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
  935. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  938. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  939. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  940. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  941. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  942. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  943. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  944. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +2 -54
  945. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  946. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  947. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  948. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  949. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  950. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  951. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -12
  952. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  953. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  954. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  955. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  956. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  957. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  958. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  959. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  960. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  961. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  962. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -203
  963. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +145 -103
  964. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +1 -4
  965. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
  966. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  971. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
  972. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +531 -91
  973. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +346 -194
  974. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +10 -6
  975. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +13 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +2 -8
  977. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +22 -15
  978. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +10 -13
  979. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +150 -55
  981. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +346 -1039
  982. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +8 -8
  984. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +95 -144
  986. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  988. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  992. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +123 -19
  993. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
  994. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +65 -46
  995. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -5
  996. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +41 -23
  997. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -5
  998. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +324 -997
  999. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -12
  1000. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +57 -46
  1001. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +1 -5
  1002. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +35 -24
  1003. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +1 -5
  1004. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +229 -629
  1005. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -13
  1006. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1007. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
  1008. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1009. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1010. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
  1011. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
  1012. data/src/helper-scripts/wsgi-loader.py +2 -2
  1013. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1014. data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
  1015. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  1016. data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
  1017. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -7
  1018. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
  1019. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
  1020. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1021. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
  1022. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  1023. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
  1024. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
  1025. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  1026. metadata +50 -149
  1027. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2575
  1028. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -452
  1029. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1030. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -91
  1031. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1032. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1033. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1034. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1035. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1036. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1037. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1038. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1039. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1040. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
  1041. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
  1042. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
  1043. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1044. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
  1045. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1046. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1064. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1065. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1066. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1067. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1068. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1069. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1070. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1071. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1072. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1073. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1074. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1075. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1076. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1077. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1078. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1079. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1080. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1081. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1082. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
  1083. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
  1084. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
  1085. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
  1086. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1087. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1088. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1089. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1090. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1091. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1092. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1093. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
  1094. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
  1095. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1096. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1097. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1098. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/is_same.hpp +0 -36
  1099. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/requires_cxx11.hpp +0 -22
  1100. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1101. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1102. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1103. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -476
  1104. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1105. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/requires_cxx11.hpp +0 -22
  1106. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_win32_sleep.hpp +0 -54
  1107. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1108. data/src/cxx_supportlib/vendor-modified/boost/function/detail/epilogue.hpp +0 -39
  1109. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1110. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1111. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1112. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -27
  1113. data/src/cxx_supportlib/vendor-modified/boost/function/detail/requires_cxx11.hpp +0 -22
  1114. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1115. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1116. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1117. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1118. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1119. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1120. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1121. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1122. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1123. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1124. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1125. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1126. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1127. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1128. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1129. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1130. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1131. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1132. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1133. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1134. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1135. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1136. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1137. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1138. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1139. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1140. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1141. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1142. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1143. data/src/cxx_supportlib/vendor-modified/boost/system/detail/requires_cxx11.hpp +0 -21
  1144. data/src/cxx_supportlib/vendor-modified/boost/typeof/detail/requires_cxx11.hpp +0 -18
  1145. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1146. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1147. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1148. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1149. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1150. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1151. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1152. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1153. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1154. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1155. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1156. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1157. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1158. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1159. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1160. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1161. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1162. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1163. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1164. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1165. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1166. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1167. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1168. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1169. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -150
  1170. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/requires_cxx11.hpp +0 -21
  1171. /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
@@ -1,3 +1,6 @@
1
+ #ifndef BOOST_FUNCTION_FUNCTION_TEMPLATE_HPP_INCLUDED
2
+ #define BOOST_FUNCTION_FUNCTION_TEMPLATE_HPP_INCLUDED
3
+
1
4
  // Boost.Function library
2
5
 
3
6
  // Copyright Douglas Gregor 2001-2006
@@ -8,125 +11,65 @@
8
11
 
9
12
  // For more information, see http://www.boost.org
10
13
 
11
- // Note: this header is a header template and must NOT have multiple-inclusion
12
- // protection.
13
- #include <boost/function/detail/prologue.hpp>
14
+ #include <boost/function/function_base.hpp>
14
15
  #include <boost/core/no_exceptions_support.hpp>
16
+ #include <boost/mem_fn.hpp>
17
+ #include <boost/throw_exception.hpp>
18
+ #include <boost/type_traits/is_integral.hpp>
19
+ #include <boost/type_traits/is_void.hpp>
20
+ #include <boost/config.hpp>
21
+ #include <algorithm>
22
+ #include <cassert>
15
23
 
16
24
  #if defined(BOOST_MSVC)
17
25
  # pragma warning( push )
18
26
  # pragma warning( disable : 4127 ) // "conditional expression is constant"
19
27
  #endif
20
28
 
21
- #define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T)
22
-
23
- #define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T)
24
-
25
- #define BOOST_FUNCTION_PARM(J,I,D) BOOST_PP_CAT(T,I) BOOST_PP_CAT(a,I)
26
-
27
- #define BOOST_FUNCTION_PARMS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_PARM,BOOST_PP_EMPTY)
28
-
29
- #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
30
- # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a)
31
- #else
32
- # define BOOST_FUNCTION_ARG(J,I,D) static_cast<BOOST_PP_CAT(T,I)&&>(BOOST_PP_CAT(a,I))
33
- # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY)
34
- #endif
35
-
36
- #define BOOST_FUNCTION_ARG_TYPE(J,I,D) \
37
- typedef BOOST_PP_CAT(T,I) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(I)),_type);
38
-
39
- #define BOOST_FUNCTION_ARG_TYPES BOOST_PP_REPEAT(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG_TYPE,BOOST_PP_EMPTY)
40
-
41
- // Comma if nonzero number of arguments
42
- #if BOOST_FUNCTION_NUM_ARGS == 0
43
- # define BOOST_FUNCTION_COMMA
44
- #else
45
- # define BOOST_FUNCTION_COMMA ,
46
- #endif // BOOST_FUNCTION_NUM_ARGS > 0
47
-
48
- // Class names used in this version of the code
49
- #define BOOST_FUNCTION_FUNCTION BOOST_JOIN(function,BOOST_FUNCTION_NUM_ARGS)
50
- #define BOOST_FUNCTION_FUNCTION_INVOKER \
51
- BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS)
52
- #define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \
53
- BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS)
54
- #define BOOST_FUNCTION_FUNCTION_OBJ_INVOKER \
55
- BOOST_JOIN(function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
56
- #define BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \
57
- BOOST_JOIN(void_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
58
- #define BOOST_FUNCTION_FUNCTION_REF_INVOKER \
59
- BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
60
- #define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \
61
- BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
62
- #define BOOST_FUNCTION_MEMBER_INVOKER \
63
- BOOST_JOIN(function_mem_invoker,BOOST_FUNCTION_NUM_ARGS)
64
- #define BOOST_FUNCTION_VOID_MEMBER_INVOKER \
65
- BOOST_JOIN(function_void_mem_invoker,BOOST_FUNCTION_NUM_ARGS)
66
- #define BOOST_FUNCTION_GET_FUNCTION_INVOKER \
67
- BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS)
68
- #define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \
69
- BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
70
- #define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \
71
- BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
72
- #define BOOST_FUNCTION_GET_MEMBER_INVOKER \
73
- BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS)
74
- #define BOOST_FUNCTION_GET_INVOKER \
75
- BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS)
76
- #define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS)
77
-
78
- #ifndef BOOST_NO_VOID_RETURNS
79
- # define BOOST_FUNCTION_VOID_RETURN_TYPE void
80
- # define BOOST_FUNCTION_RETURN(X) X
81
- #else
82
- # define BOOST_FUNCTION_VOID_RETURN_TYPE boost::detail::function::unusable
83
- # define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE ()
84
- #endif
85
-
86
29
  namespace boost {
87
30
  namespace detail {
88
31
  namespace function {
89
32
  template<
90
33
  typename FunctionPtr,
91
- typename R BOOST_FUNCTION_COMMA
92
- BOOST_FUNCTION_TEMPLATE_PARMS
34
+ typename R,
35
+ typename... T
93
36
  >
94
- struct BOOST_FUNCTION_FUNCTION_INVOKER
37
+ struct function_invoker
95
38
  {
96
- static R invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA
97
- BOOST_FUNCTION_PARMS)
39
+ static R invoke(function_buffer& function_ptr,
40
+ T... a)
98
41
  {
99
42
  FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.members.func_ptr);
100
- return f(BOOST_FUNCTION_ARGS);
43
+ return f(static_cast<T&&>(a)...);
101
44
  }
102
45
  };
103
46
 
104
47
  template<
105
48
  typename FunctionPtr,
106
- typename R BOOST_FUNCTION_COMMA
107
- BOOST_FUNCTION_TEMPLATE_PARMS
49
+ typename R,
50
+ typename... T
108
51
  >
109
- struct BOOST_FUNCTION_VOID_FUNCTION_INVOKER
52
+ struct void_function_invoker
110
53
  {
111
- static BOOST_FUNCTION_VOID_RETURN_TYPE
112
- invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA
113
- BOOST_FUNCTION_PARMS)
54
+ static void
55
+ invoke(function_buffer& function_ptr,
56
+ T... a)
114
57
 
115
58
  {
116
59
  FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.members.func_ptr);
117
- BOOST_FUNCTION_RETURN(f(BOOST_FUNCTION_ARGS));
60
+ f(static_cast<T&&>(a)...);
118
61
  }
119
62
  };
120
63
 
121
64
  template<
122
65
  typename FunctionObj,
123
- typename R BOOST_FUNCTION_COMMA
124
- BOOST_FUNCTION_TEMPLATE_PARMS
66
+ typename R,
67
+ typename... T
125
68
  >
126
- struct BOOST_FUNCTION_FUNCTION_OBJ_INVOKER
69
+ struct function_obj_invoker
127
70
  {
128
- static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
129
- BOOST_FUNCTION_PARMS)
71
+ static R invoke(function_buffer& function_obj_ptr,
72
+ T... a)
130
73
 
131
74
  {
132
75
  FunctionObj* f;
@@ -134,20 +77,20 @@ namespace boost {
134
77
  f = reinterpret_cast<FunctionObj*>(function_obj_ptr.data);
135
78
  else
136
79
  f = reinterpret_cast<FunctionObj*>(function_obj_ptr.members.obj_ptr);
137
- return (*f)(BOOST_FUNCTION_ARGS);
80
+ return (*f)(static_cast<T&&>(a)...);
138
81
  }
139
82
  };
140
83
 
141
84
  template<
142
85
  typename FunctionObj,
143
- typename R BOOST_FUNCTION_COMMA
144
- BOOST_FUNCTION_TEMPLATE_PARMS
86
+ typename R,
87
+ typename... T
145
88
  >
146
- struct BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
89
+ struct void_function_obj_invoker
147
90
  {
148
- static BOOST_FUNCTION_VOID_RETURN_TYPE
149
- invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
150
- BOOST_FUNCTION_PARMS)
91
+ static void
92
+ invoke(function_buffer& function_obj_ptr,
93
+ T... a)
151
94
 
152
95
  {
153
96
  FunctionObj* f;
@@ -155,169 +98,165 @@ namespace boost {
155
98
  f = reinterpret_cast<FunctionObj*>(function_obj_ptr.data);
156
99
  else
157
100
  f = reinterpret_cast<FunctionObj*>(function_obj_ptr.members.obj_ptr);
158
- BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
101
+ (*f)(static_cast<T&&>(a)...);
159
102
  }
160
103
  };
161
104
 
162
105
  template<
163
106
  typename FunctionObj,
164
- typename R BOOST_FUNCTION_COMMA
165
- BOOST_FUNCTION_TEMPLATE_PARMS
107
+ typename R,
108
+ typename... T
166
109
  >
167
- struct BOOST_FUNCTION_FUNCTION_REF_INVOKER
110
+ struct function_ref_invoker
168
111
  {
169
- static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
170
- BOOST_FUNCTION_PARMS)
112
+ static R invoke(function_buffer& function_obj_ptr,
113
+ T... a)
171
114
 
172
115
  {
173
116
  FunctionObj* f =
174
117
  reinterpret_cast<FunctionObj*>(function_obj_ptr.members.obj_ptr);
175
- return (*f)(BOOST_FUNCTION_ARGS);
118
+ return (*f)(static_cast<T&&>(a)...);
176
119
  }
177
120
  };
178
121
 
179
122
  template<
180
123
  typename FunctionObj,
181
- typename R BOOST_FUNCTION_COMMA
182
- BOOST_FUNCTION_TEMPLATE_PARMS
124
+ typename R,
125
+ typename... T
183
126
  >
184
- struct BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
127
+ struct void_function_ref_invoker
185
128
  {
186
- static BOOST_FUNCTION_VOID_RETURN_TYPE
187
- invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
188
- BOOST_FUNCTION_PARMS)
129
+ static void
130
+ invoke(function_buffer& function_obj_ptr,
131
+ T... a)
189
132
 
190
133
  {
191
134
  FunctionObj* f =
192
135
  reinterpret_cast<FunctionObj*>(function_obj_ptr.members.obj_ptr);
193
- BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
136
+ (*f)(static_cast<T&&>(a)...);
194
137
  }
195
138
  };
196
139
 
197
- #if BOOST_FUNCTION_NUM_ARGS > 0
198
140
  /* Handle invocation of member pointers. */
199
141
  template<
200
142
  typename MemberPtr,
201
- typename R BOOST_FUNCTION_COMMA
202
- BOOST_FUNCTION_TEMPLATE_PARMS
143
+ typename R,
144
+ typename... T
203
145
  >
204
- struct BOOST_FUNCTION_MEMBER_INVOKER
146
+ struct member_invoker
205
147
  {
206
- static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
207
- BOOST_FUNCTION_PARMS)
148
+ static R invoke(function_buffer& function_obj_ptr,
149
+ T... a)
208
150
 
209
151
  {
210
152
  MemberPtr* f =
211
153
  reinterpret_cast<MemberPtr*>(function_obj_ptr.data);
212
- return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS);
154
+ return boost::mem_fn(*f)(static_cast<T&&>(a)...);
213
155
  }
214
156
  };
215
157
 
216
158
  template<
217
159
  typename MemberPtr,
218
- typename R BOOST_FUNCTION_COMMA
219
- BOOST_FUNCTION_TEMPLATE_PARMS
160
+ typename R,
161
+ typename... T
220
162
  >
221
- struct BOOST_FUNCTION_VOID_MEMBER_INVOKER
163
+ struct void_member_invoker
222
164
  {
223
- static BOOST_FUNCTION_VOID_RETURN_TYPE
224
- invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
225
- BOOST_FUNCTION_PARMS)
165
+ static void
166
+ invoke(function_buffer& function_obj_ptr,
167
+ T... a)
226
168
 
227
169
  {
228
170
  MemberPtr* f =
229
171
  reinterpret_cast<MemberPtr*>(function_obj_ptr.data);
230
- BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS));
172
+ boost::mem_fn(*f)(static_cast<T&&>(a)...);
231
173
  }
232
174
  };
233
- #endif
234
175
 
235
176
  template<
236
177
  typename FunctionPtr,
237
- typename R BOOST_FUNCTION_COMMA
238
- BOOST_FUNCTION_TEMPLATE_PARMS
178
+ typename R,
179
+ typename... T
239
180
  >
240
- struct BOOST_FUNCTION_GET_FUNCTION_INVOKER
181
+ struct get_function_invoker
241
182
  {
242
183
  typedef typename conditional<(is_void<R>::value),
243
- BOOST_FUNCTION_VOID_FUNCTION_INVOKER<
184
+ void_function_invoker<
244
185
  FunctionPtr,
245
- R BOOST_FUNCTION_COMMA
246
- BOOST_FUNCTION_TEMPLATE_ARGS
186
+ R,
187
+ T...
247
188
  >,
248
- BOOST_FUNCTION_FUNCTION_INVOKER<
189
+ function_invoker<
249
190
  FunctionPtr,
250
- R BOOST_FUNCTION_COMMA
251
- BOOST_FUNCTION_TEMPLATE_ARGS
191
+ R,
192
+ T...
252
193
  >
253
194
  >::type type;
254
195
  };
255
196
 
256
197
  template<
257
198
  typename FunctionObj,
258
- typename R BOOST_FUNCTION_COMMA
259
- BOOST_FUNCTION_TEMPLATE_PARMS
199
+ typename R,
200
+ typename... T
260
201
  >
261
- struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
202
+ struct get_function_obj_invoker
262
203
  {
263
204
  typedef typename conditional<(is_void<R>::value),
264
- BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
205
+ void_function_obj_invoker<
265
206
  FunctionObj,
266
- R BOOST_FUNCTION_COMMA
267
- BOOST_FUNCTION_TEMPLATE_ARGS
207
+ R,
208
+ T...
268
209
  >,
269
- BOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
210
+ function_obj_invoker<
270
211
  FunctionObj,
271
- R BOOST_FUNCTION_COMMA
272
- BOOST_FUNCTION_TEMPLATE_ARGS
212
+ R,
213
+ T...
273
214
  >
274
215
  >::type type;
275
216
  };
276
217
 
277
218
  template<
278
219
  typename FunctionObj,
279
- typename R BOOST_FUNCTION_COMMA
280
- BOOST_FUNCTION_TEMPLATE_PARMS
220
+ typename R,
221
+ typename... T
281
222
  >
282
- struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
223
+ struct get_function_ref_invoker
283
224
  {
284
225
  typedef typename conditional<(is_void<R>::value),
285
- BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER<
226
+ void_function_ref_invoker<
286
227
  FunctionObj,
287
- R BOOST_FUNCTION_COMMA
288
- BOOST_FUNCTION_TEMPLATE_ARGS
228
+ R,
229
+ T...
289
230
  >,
290
- BOOST_FUNCTION_FUNCTION_REF_INVOKER<
231
+ function_ref_invoker<
291
232
  FunctionObj,
292
- R BOOST_FUNCTION_COMMA
293
- BOOST_FUNCTION_TEMPLATE_ARGS
233
+ R,
234
+ T...
294
235
  >
295
236
  >::type type;
296
237
  };
297
238
 
298
- #if BOOST_FUNCTION_NUM_ARGS > 0
299
239
  /* Retrieve the appropriate invoker for a member pointer. */
300
240
  template<
301
241
  typename MemberPtr,
302
- typename R BOOST_FUNCTION_COMMA
303
- BOOST_FUNCTION_TEMPLATE_PARMS
242
+ typename R,
243
+ typename... T
304
244
  >
305
- struct BOOST_FUNCTION_GET_MEMBER_INVOKER
245
+ struct get_member_invoker
306
246
  {
307
247
  typedef typename conditional<(is_void<R>::value),
308
- BOOST_FUNCTION_VOID_MEMBER_INVOKER<
248
+ void_member_invoker<
309
249
  MemberPtr,
310
- R BOOST_FUNCTION_COMMA
311
- BOOST_FUNCTION_TEMPLATE_ARGS
250
+ R,
251
+ T...
312
252
  >,
313
- BOOST_FUNCTION_MEMBER_INVOKER<
253
+ member_invoker<
314
254
  MemberPtr,
315
- R BOOST_FUNCTION_COMMA
316
- BOOST_FUNCTION_TEMPLATE_ARGS
255
+ R,
256
+ T...
317
257
  >
318
258
  >::type type;
319
259
  };
320
- #endif
321
260
 
322
261
  /* Given the tag returned by get_function_tag, retrieve the
323
262
  actual invoker that will be used for the given function
@@ -329,20 +268,20 @@ namespace boost {
329
268
  contains two typedefs, "invoker_type" and "manager_type",
330
269
  which correspond to the invoker and manager types. */
331
270
  template<typename Tag>
332
- struct BOOST_FUNCTION_GET_INVOKER { };
271
+ struct get_invoker { };
333
272
 
334
273
  /* Retrieve the invoker for a function pointer. */
335
274
  template<>
336
- struct BOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
275
+ struct get_invoker<function_ptr_tag>
337
276
  {
338
277
  template<typename FunctionPtr,
339
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
278
+ typename R, typename... T>
340
279
  struct apply
341
280
  {
342
- typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
281
+ typedef typename get_function_invoker<
343
282
  FunctionPtr,
344
- R BOOST_FUNCTION_COMMA
345
- BOOST_FUNCTION_TEMPLATE_ARGS
283
+ R,
284
+ T...
346
285
  >::type
347
286
  invoker_type;
348
287
 
@@ -350,13 +289,13 @@ namespace boost {
350
289
  };
351
290
 
352
291
  template<typename FunctionPtr, typename Allocator,
353
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
292
+ typename R, typename... T>
354
293
  struct apply_a
355
294
  {
356
- typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
295
+ typedef typename get_function_invoker<
357
296
  FunctionPtr,
358
- R BOOST_FUNCTION_COMMA
359
- BOOST_FUNCTION_TEMPLATE_ARGS
297
+ R,
298
+ T...
360
299
  >::type
361
300
  invoker_type;
362
301
 
@@ -364,19 +303,18 @@ namespace boost {
364
303
  };
365
304
  };
366
305
 
367
- #if BOOST_FUNCTION_NUM_ARGS > 0
368
306
  /* Retrieve the invoker for a member pointer. */
369
307
  template<>
370
- struct BOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
308
+ struct get_invoker<member_ptr_tag>
371
309
  {
372
310
  template<typename MemberPtr,
373
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
311
+ typename R, typename... T>
374
312
  struct apply
375
313
  {
376
- typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
314
+ typedef typename get_member_invoker<
377
315
  MemberPtr,
378
- R BOOST_FUNCTION_COMMA
379
- BOOST_FUNCTION_TEMPLATE_ARGS
316
+ R,
317
+ T...
380
318
  >::type
381
319
  invoker_type;
382
320
 
@@ -384,33 +322,32 @@ namespace boost {
384
322
  };
385
323
 
386
324
  template<typename MemberPtr, typename Allocator,
387
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
325
+ typename R, typename... T>
388
326
  struct apply_a
389
327
  {
390
- typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
328
+ typedef typename get_member_invoker<
391
329
  MemberPtr,
392
- R BOOST_FUNCTION_COMMA
393
- BOOST_FUNCTION_TEMPLATE_ARGS
330
+ R,
331
+ T...
394
332
  >::type
395
333
  invoker_type;
396
334
 
397
335
  typedef functor_manager<MemberPtr> manager_type;
398
336
  };
399
337
  };
400
- #endif
401
338
 
402
339
  /* Retrieve the invoker for a function object. */
403
340
  template<>
404
- struct BOOST_FUNCTION_GET_INVOKER<function_obj_tag>
341
+ struct get_invoker<function_obj_tag>
405
342
  {
406
343
  template<typename FunctionObj,
407
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
344
+ typename R, typename... T>
408
345
  struct apply
409
346
  {
410
- typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
347
+ typedef typename get_function_obj_invoker<
411
348
  FunctionObj,
412
- R BOOST_FUNCTION_COMMA
413
- BOOST_FUNCTION_TEMPLATE_ARGS
349
+ R,
350
+ T...
414
351
  >::type
415
352
  invoker_type;
416
353
 
@@ -418,13 +355,13 @@ namespace boost {
418
355
  };
419
356
 
420
357
  template<typename FunctionObj, typename Allocator,
421
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
358
+ typename R, typename... T>
422
359
  struct apply_a
423
360
  {
424
- typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
361
+ typedef typename get_function_obj_invoker<
425
362
  FunctionObj,
426
- R BOOST_FUNCTION_COMMA
427
- BOOST_FUNCTION_TEMPLATE_ARGS
363
+ R,
364
+ T...
428
365
  >::type
429
366
  invoker_type;
430
367
 
@@ -434,16 +371,16 @@ namespace boost {
434
371
 
435
372
  /* Retrieve the invoker for a reference to a function object. */
436
373
  template<>
437
- struct BOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
374
+ struct get_invoker<function_obj_ref_tag>
438
375
  {
439
376
  template<typename RefWrapper,
440
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
377
+ typename R, typename... T>
441
378
  struct apply
442
379
  {
443
- typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
380
+ typedef typename get_function_ref_invoker<
444
381
  typename RefWrapper::type,
445
- R BOOST_FUNCTION_COMMA
446
- BOOST_FUNCTION_TEMPLATE_ARGS
382
+ R,
383
+ T...
447
384
  >::type
448
385
  invoker_type;
449
386
 
@@ -451,13 +388,13 @@ namespace boost {
451
388
  };
452
389
 
453
390
  template<typename RefWrapper, typename Allocator,
454
- typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
391
+ typename R, typename... T>
455
392
  struct apply_a
456
393
  {
457
- typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
394
+ typedef typename get_function_ref_invoker<
458
395
  typename RefWrapper::type,
459
- R BOOST_FUNCTION_COMMA
460
- BOOST_FUNCTION_TEMPLATE_ARGS
396
+ R,
397
+ T...
461
398
  >::type
462
399
  invoker_type;
463
400
 
@@ -473,30 +410,26 @@ namespace boost {
473
410
  * members. It therefore cannot have any constructors,
474
411
  * destructors, base classes, etc.
475
412
  */
476
- template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
477
- struct BOOST_FUNCTION_VTABLE
413
+ template<typename R, typename... T>
414
+ struct basic_vtable
478
415
  {
479
- #ifndef BOOST_NO_VOID_RETURNS
480
416
  typedef R result_type;
481
- #else
482
- typedef typename function_return_type<R>::type result_type;
483
- #endif // BOOST_NO_VOID_RETURNS
484
417
 
485
418
  typedef result_type (*invoker_type)(function_buffer&
486
- BOOST_FUNCTION_COMMA
487
- BOOST_FUNCTION_TEMPLATE_ARGS);
419
+ ,
420
+ T...);
488
421
 
489
422
  template<typename F>
490
423
  bool assign_to(F f, function_buffer& functor) const
491
424
  {
492
425
  typedef typename get_function_tag<F>::type tag;
493
- return assign_to(f, functor, tag());
426
+ return assign_to(std::move(f), functor, tag());
494
427
  }
495
428
  template<typename F,typename Allocator>
496
429
  bool assign_to_a(F f, function_buffer& functor, Allocator a) const
497
430
  {
498
431
  typedef typename get_function_tag<F>::type tag;
499
- return assign_to_a(f, functor, a, tag());
432
+ return assign_to_a(std::move(f), functor, a, tag());
500
433
  }
501
434
 
502
435
  void clear(function_buffer& functor) const
@@ -521,8 +454,6 @@ namespace boost {
521
454
  {
522
455
  this->clear(functor);
523
456
  if (f) {
524
- // should be a reinterpret cast, but some compilers insist
525
- // on giving cv-qualifiers to free functions
526
457
  functor.members.func_ptr = reinterpret_cast<void (*)()>(f);
527
458
  return true;
528
459
  } else {
@@ -533,11 +464,10 @@ namespace boost {
533
464
  bool
534
465
  assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const
535
466
  {
536
- return assign_to(f,functor,function_ptr_tag());
467
+ return assign_to(std::move(f),functor,function_ptr_tag());
537
468
  }
538
469
 
539
470
  // Member pointers
540
- #if BOOST_FUNCTION_NUM_ARGS > 0
541
471
  template<typename MemberPtr>
542
472
  bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const
543
473
  {
@@ -564,7 +494,6 @@ namespace boost {
564
494
  return false;
565
495
  }
566
496
  }
567
- #endif // BOOST_FUNCTION_NUM_ARGS > 0
568
497
 
569
498
  // Function objects
570
499
  // Assign to a function object using the small object optimization
@@ -572,13 +501,13 @@ namespace boost {
572
501
  void
573
502
  assign_functor(FunctionObj f, function_buffer& functor, true_type) const
574
503
  {
575
- new (reinterpret_cast<void*>(functor.data)) FunctionObj(f);
504
+ new (reinterpret_cast<void*>(functor.data)) FunctionObj(std::move(f));
576
505
  }
577
506
  template<typename FunctionObj,typename Allocator>
578
507
  void
579
508
  assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, true_type) const
580
509
  {
581
- assign_functor(f,functor,true_type());
510
+ assign_functor(std::move(f),functor,true_type());
582
511
  }
583
512
 
584
513
  // Assign to a function object allocated on the heap.
@@ -586,28 +515,21 @@ namespace boost {
586
515
  void
587
516
  assign_functor(FunctionObj f, function_buffer& functor, false_type) const
588
517
  {
589
- functor.members.obj_ptr = new FunctionObj(f);
518
+ functor.members.obj_ptr = new FunctionObj(std::move(f));
590
519
  }
591
520
  template<typename FunctionObj,typename Allocator>
592
521
  void
593
522
  assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, false_type) const
594
523
  {
595
524
  typedef functor_wrapper<FunctionObj,Allocator> functor_wrapper_type;
596
- #if defined(BOOST_NO_CXX11_ALLOCATOR)
597
- typedef typename Allocator::template rebind<functor_wrapper_type>::other
598
- wrapper_allocator_type;
599
- typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type;
600
- #else
525
+
601
526
  using wrapper_allocator_type = typename std::allocator_traits<Allocator>::template rebind_alloc<functor_wrapper_type>;
602
527
  using wrapper_allocator_pointer_type = typename std::allocator_traits<wrapper_allocator_type>::pointer;
603
- #endif
528
+
604
529
  wrapper_allocator_type wrapper_allocator(a);
605
530
  wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1);
606
- #if defined(BOOST_NO_CXX11_ALLOCATOR)
607
- wrapper_allocator.construct(copy, functor_wrapper_type(f,a));
608
- #else
609
531
  std::allocator_traits<wrapper_allocator_type>::construct(wrapper_allocator, copy, functor_wrapper_type(f,a));
610
- #endif
532
+
611
533
  functor_wrapper_type* new_f = static_cast<functor_wrapper_type*>(copy);
612
534
  functor.members.obj_ptr = new_f;
613
535
  }
@@ -617,7 +539,7 @@ namespace boost {
617
539
  assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const
618
540
  {
619
541
  if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
620
- assign_functor(f, functor,
542
+ assign_functor(std::move(f), functor,
621
543
  integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
622
544
  return true;
623
545
  } else {
@@ -629,7 +551,7 @@ namespace boost {
629
551
  assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const
630
552
  {
631
553
  if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
632
- assign_functor_a(f, functor, a,
554
+ assign_functor_a(std::move(f), functor, a,
633
555
  integral_constant<bool, (function_allows_small_object_optimization<FunctionObj>::value)>());
634
556
  return true;
635
557
  } else {
@@ -660,26 +582,40 @@ namespace boost {
660
582
  vtable_base base;
661
583
  invoker_type invoker;
662
584
  };
585
+
586
+ template <typename... T>
587
+ struct variadic_function_base
588
+ {};
589
+
590
+ template <typename T>
591
+ struct variadic_function_base<T>
592
+ {
593
+ typedef T argument_type;
594
+ };
595
+
596
+ template <typename T0, typename T1>
597
+ struct variadic_function_base<T0, T1>
598
+ {
599
+ typedef T0 first_argument_type;
600
+ typedef T1 second_argument_type;
601
+ };
602
+
663
603
  } // end namespace function
664
604
  } // end namespace detail
665
605
 
666
606
  template<
667
- typename R BOOST_FUNCTION_COMMA
668
- BOOST_FUNCTION_TEMPLATE_PARMS
607
+ typename R,
608
+ typename... T
669
609
  >
670
- class BOOST_FUNCTION_FUNCTION : public function_base
610
+ class function_n : public function_base
611
+ , public detail::function::variadic_function_base<T...>
671
612
  {
672
613
  public:
673
- #ifndef BOOST_NO_VOID_RETURNS
674
614
  typedef R result_type;
675
- #else
676
- typedef typename boost::detail::function::function_return_type<R>::type
677
- result_type;
678
- #endif // BOOST_NO_VOID_RETURNS
679
615
 
680
616
  private:
681
- typedef boost::detail::function::BOOST_FUNCTION_VTABLE<
682
- R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>
617
+ typedef boost::detail::function::basic_vtable<
618
+ R, T...>
683
619
  vtable_type;
684
620
 
685
621
  vtable_type* get_vtable() const {
@@ -690,8 +626,6 @@ namespace boost {
690
626
  struct clear_type {};
691
627
 
692
628
  public:
693
- BOOST_STATIC_CONSTANT(int, args = BOOST_FUNCTION_NUM_ARGS);
694
-
695
629
  // add signature for boost::lambda
696
630
  template<typename Args>
697
631
  struct sig
@@ -699,93 +633,68 @@ namespace boost {
699
633
  typedef result_type type;
700
634
  };
701
635
 
702
- #if BOOST_FUNCTION_NUM_ARGS == 1
703
- typedef T0 argument_type;
704
- #elif BOOST_FUNCTION_NUM_ARGS == 2
705
- typedef T0 first_argument_type;
706
- typedef T1 second_argument_type;
707
- #endif
708
-
709
- BOOST_STATIC_CONSTANT(int, arity = BOOST_FUNCTION_NUM_ARGS);
710
- BOOST_FUNCTION_ARG_TYPES
636
+ BOOST_STATIC_CONSTANT(int, arity = sizeof...(T));
711
637
 
712
- typedef BOOST_FUNCTION_FUNCTION self_type;
638
+ typedef function_n self_type;
713
639
 
714
- BOOST_DEFAULTED_FUNCTION(BOOST_FUNCTION_FUNCTION(), : function_base() {})
640
+ BOOST_DEFAULTED_FUNCTION(function_n(), : function_base() {})
715
641
 
716
642
  // MSVC chokes if the following two constructors are collapsed into
717
643
  // one with a default parameter.
718
644
  template<typename Functor>
719
- BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f
720
- #ifndef BOOST_NO_SFINAE
645
+ function_n(Functor f
721
646
  ,typename boost::enable_if_<
722
647
  !(is_integral<Functor>::value),
723
648
  int>::type = 0
724
- #endif // BOOST_NO_SFINAE
725
649
  ) :
726
650
  function_base()
727
651
  {
728
- this->assign_to(f);
652
+ this->assign_to(std::move(f));
729
653
  }
730
654
  template<typename Functor,typename Allocator>
731
- BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a
732
- #ifndef BOOST_NO_SFINAE
655
+ function_n(Functor f, Allocator a
733
656
  ,typename boost::enable_if_<
734
657
  !(is_integral<Functor>::value),
735
658
  int>::type = 0
736
- #endif // BOOST_NO_SFINAE
737
659
  ) :
738
660
  function_base()
739
661
  {
740
- this->assign_to_a(f,a);
662
+ this->assign_to_a(std::move(f),a);
741
663
  }
742
664
 
743
- #ifndef BOOST_NO_SFINAE
744
- BOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { }
745
- #else
746
- BOOST_FUNCTION_FUNCTION(int zero) : function_base()
747
- {
748
- BOOST_ASSERT(zero == 0);
749
- }
750
- #endif
665
+ function_n(clear_type*) : function_base() { }
751
666
 
752
- BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION& f) : function_base()
667
+ function_n(const function_n& f) : function_base()
753
668
  {
754
669
  this->assign_to_own(f);
755
670
  }
756
671
 
757
- #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
758
- BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION&& f) : function_base()
672
+ function_n(function_n&& f) : function_base()
759
673
  {
760
674
  this->move_assign(f);
761
675
  }
762
- #endif
763
676
 
764
- ~BOOST_FUNCTION_FUNCTION() { clear(); }
677
+ ~function_n() { clear(); }
765
678
 
766
- result_type operator()(BOOST_FUNCTION_PARMS) const
679
+ result_type operator()(T... a) const
767
680
  {
768
681
  if (this->empty())
769
682
  boost::throw_exception(bad_function_call());
770
683
 
771
684
  return get_vtable()->invoker
772
- (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
685
+ (this->functor, static_cast<T&&>(a)...);
773
686
  }
774
687
 
775
- // The distinction between when to use BOOST_FUNCTION_FUNCTION and
688
+ // The distinction between when to use function_n and
776
689
  // when to use self_type is obnoxious. MSVC cannot handle self_type as
777
690
  // the return type of these assignment operators, but Borland C++ cannot
778
- // handle BOOST_FUNCTION_FUNCTION as the type of the temporary to
691
+ // handle function_n as the type of the temporary to
779
692
  // construct.
780
693
  template<typename Functor>
781
- #ifndef BOOST_NO_SFINAE
782
694
  typename boost::enable_if_<
783
695
  !(is_integral<Functor>::value),
784
- BOOST_FUNCTION_FUNCTION&>::type
785
- #else
786
- BOOST_FUNCTION_FUNCTION&
787
- #endif
788
- operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
696
+ function_n&>::type
697
+ operator=(Functor f)
789
698
  {
790
699
  this->clear();
791
700
  BOOST_TRY {
@@ -798,7 +707,7 @@ namespace boost {
798
707
  return *this;
799
708
  }
800
709
  template<typename Functor,typename Allocator>
801
- void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
710
+ void assign(Functor f, Allocator a)
802
711
  {
803
712
  this->clear();
804
713
  BOOST_TRY{
@@ -810,23 +719,14 @@ namespace boost {
810
719
  BOOST_CATCH_END
811
720
  }
812
721
 
813
- #ifndef BOOST_NO_SFINAE
814
- BOOST_FUNCTION_FUNCTION& operator=(clear_type*)
815
- {
816
- this->clear();
817
- return *this;
818
- }
819
- #else
820
- BOOST_FUNCTION_FUNCTION& operator=(int zero)
722
+ function_n& operator=(clear_type*)
821
723
  {
822
- BOOST_ASSERT(zero == 0);
823
724
  this->clear();
824
725
  return *this;
825
726
  }
826
- #endif
827
727
 
828
- // Assignment from another BOOST_FUNCTION_FUNCTION
829
- BOOST_FUNCTION_FUNCTION& operator=(const BOOST_FUNCTION_FUNCTION& f)
728
+ // Assignment from another function_n
729
+ function_n& operator=(const function_n& f)
830
730
  {
831
731
  if (&f == this)
832
732
  return *this;
@@ -842,9 +742,8 @@ namespace boost {
842
742
  return *this;
843
743
  }
844
744
 
845
- #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
846
- // Move assignment from another BOOST_FUNCTION_FUNCTION
847
- BOOST_FUNCTION_FUNCTION& operator=(BOOST_FUNCTION_FUNCTION&& f)
745
+ // Move assignment from another function_n
746
+ function_n& operator=(function_n&& f)
848
747
  {
849
748
  if (&f == this)
850
749
  return *this;
@@ -859,14 +758,13 @@ namespace boost {
859
758
  BOOST_CATCH_END
860
759
  return *this;
861
760
  }
862
- #endif
863
761
 
864
- void swap(BOOST_FUNCTION_FUNCTION& other)
762
+ void swap(function_n& other)
865
763
  {
866
764
  if (&other == this)
867
765
  return;
868
766
 
869
- BOOST_FUNCTION_FUNCTION tmp;
767
+ function_n tmp;
870
768
  tmp.move_assign(*this);
871
769
  this->move_assign(other);
872
770
  other.move_assign(tmp);
@@ -882,27 +780,10 @@ namespace boost {
882
780
  }
883
781
  }
884
782
 
885
- #if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG)
886
- // Sun C++ 5.3 can't handle the safe_bool idiom, so don't use it
887
- operator bool () const { return !this->empty(); }
888
- #else
889
- private:
890
- struct dummy {
891
- void nonnull() {}
892
- };
893
-
894
- typedef void (dummy::*safe_bool)();
895
-
896
- public:
897
- operator safe_bool () const
898
- { return (this->empty())? 0 : &dummy::nonnull; }
899
-
900
- bool operator!() const
901
- { return this->empty(); }
902
- #endif
783
+ explicit operator bool () const { return !this->empty(); }
903
784
 
904
785
  private:
905
- void assign_to_own(const BOOST_FUNCTION_FUNCTION& f)
786
+ void assign_to_own(const function_n& f)
906
787
  {
907
788
  if (!f.empty()) {
908
789
  this->vtable = f.vtable;
@@ -935,10 +816,10 @@ namespace boost {
935
816
  using boost::detail::function::vtable_base;
936
817
 
937
818
  typedef typename boost::detail::function::get_function_tag<Functor>::type tag;
938
- typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
819
+ typedef boost::detail::function::get_invoker<tag> get_invoker;
939
820
  typedef typename get_invoker::
940
- template apply<Functor, R BOOST_FUNCTION_COMMA
941
- BOOST_FUNCTION_TEMPLATE_ARGS>
821
+ template apply<Functor, R,
822
+ T...>
942
823
  handler_type;
943
824
 
944
825
  typedef typename handler_type::invoker_type invoker_type;
@@ -951,7 +832,7 @@ namespace boost {
951
832
  static const vtable_type stored_vtable =
952
833
  { { &manager_type::manage }, &invoker_type::invoke };
953
834
 
954
- if (stored_vtable.assign_to(f, functor)) {
835
+ if (stored_vtable.assign_to(std::move(f), functor)) {
955
836
  std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
956
837
  // coverity[pointless_expression]: suppress coverity warnings on apparant if(const).
957
838
  if (boost::has_trivial_copy_constructor<Functor>::value &&
@@ -969,10 +850,10 @@ namespace boost {
969
850
  using boost::detail::function::vtable_base;
970
851
 
971
852
  typedef typename boost::detail::function::get_function_tag<Functor>::type tag;
972
- typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
853
+ typedef boost::detail::function::get_invoker<tag> get_invoker;
973
854
  typedef typename get_invoker::
974
- template apply_a<Functor, Allocator, R BOOST_FUNCTION_COMMA
975
- BOOST_FUNCTION_TEMPLATE_ARGS>
855
+ template apply_a<Functor, Allocator, R,
856
+ T...>
976
857
  handler_type;
977
858
 
978
859
  typedef typename handler_type::invoker_type invoker_type;
@@ -985,7 +866,7 @@ namespace boost {
985
866
  static const vtable_type stored_vtable =
986
867
  { { &manager_type::manage }, &invoker_type::invoke };
987
868
 
988
- if (stored_vtable.assign_to_a(f, functor, a)) {
869
+ if (stored_vtable.assign_to_a(std::move(f), functor, a)) {
989
870
  std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
990
871
  // coverity[pointless_expression]: suppress coverity warnings on apparant if(const).
991
872
  if (boost::has_trivial_copy_constructor<Functor>::value &&
@@ -1000,7 +881,7 @@ namespace boost {
1000
881
  // Moves the value from the specified argument to *this. If the argument
1001
882
  // has its function object allocated on the heap, move_assign will pass
1002
883
  // its buffer to *this, and set the argument's buffer pointer to NULL.
1003
- void move_assign(BOOST_FUNCTION_FUNCTION& f)
884
+ void move_assign(function_n& f)
1004
885
  {
1005
886
  if (&f == this)
1006
887
  return;
@@ -1048,49 +929,41 @@ namespace boost {
1048
929
  }
1049
930
  };
1050
931
 
1051
- template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1052
- inline void swap(BOOST_FUNCTION_FUNCTION<
1053
- R BOOST_FUNCTION_COMMA
1054
- BOOST_FUNCTION_TEMPLATE_ARGS
932
+ template<typename R, typename... T>
933
+ inline void swap(function_n<
934
+ R,
935
+ T...
1055
936
  >& f1,
1056
- BOOST_FUNCTION_FUNCTION<
1057
- R BOOST_FUNCTION_COMMA
1058
- BOOST_FUNCTION_TEMPLATE_ARGS
937
+ function_n<
938
+ R,
939
+ T...
1059
940
  >& f2)
1060
941
  {
1061
942
  f1.swap(f2);
1062
943
  }
1063
944
 
1064
945
  // Poison comparisons between boost::function objects of the same type.
1065
- template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1066
- void operator==(const BOOST_FUNCTION_FUNCTION<
1067
- R BOOST_FUNCTION_COMMA
1068
- BOOST_FUNCTION_TEMPLATE_ARGS>&,
1069
- const BOOST_FUNCTION_FUNCTION<
1070
- R BOOST_FUNCTION_COMMA
1071
- BOOST_FUNCTION_TEMPLATE_ARGS>&);
1072
- template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1073
- void operator!=(const BOOST_FUNCTION_FUNCTION<
1074
- R BOOST_FUNCTION_COMMA
1075
- BOOST_FUNCTION_TEMPLATE_ARGS>&,
1076
- const BOOST_FUNCTION_FUNCTION<
1077
- R BOOST_FUNCTION_COMMA
1078
- BOOST_FUNCTION_TEMPLATE_ARGS>& );
1079
-
1080
- #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
1081
-
1082
- #if BOOST_FUNCTION_NUM_ARGS == 0
1083
- #define BOOST_FUNCTION_PARTIAL_SPEC R (void)
1084
- #else
1085
- #define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_FUNCTION_TEMPLATE_ARGS)
1086
- #endif
1087
-
1088
- template<typename R BOOST_FUNCTION_COMMA
1089
- BOOST_FUNCTION_TEMPLATE_PARMS>
1090
- class function<BOOST_FUNCTION_PARTIAL_SPEC>
1091
- : public BOOST_FUNCTION_FUNCTION<R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>
946
+ template<typename R, typename... T>
947
+ void operator==(const function_n<
948
+ R,
949
+ T...>&,
950
+ const function_n<
951
+ R,
952
+ T...>&);
953
+ template<typename R, typename... T>
954
+ void operator!=(const function_n<
955
+ R,
956
+ T...>&,
957
+ const function_n<
958
+ R,
959
+ T...>& );
960
+
961
+ template<typename R,
962
+ typename... T>
963
+ class function<R (T...)>
964
+ : public function_n<R, T...>
1092
965
  {
1093
- typedef BOOST_FUNCTION_FUNCTION<R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS> base_type;
966
+ typedef function_n<R, T...> base_type;
1094
967
  typedef function self_type;
1095
968
 
1096
969
  struct clear_type {};
@@ -1101,40 +974,32 @@ public:
1101
974
 
1102
975
  template<typename Functor>
1103
976
  function(Functor f
1104
- #ifndef BOOST_NO_SFINAE
1105
977
  ,typename boost::enable_if_<
1106
978
  !(is_integral<Functor>::value),
1107
979
  int>::type = 0
1108
- #endif
1109
980
  ) :
1110
- base_type(f)
981
+ base_type(std::move(f))
1111
982
  {
1112
983
  }
1113
984
  template<typename Functor,typename Allocator>
1114
985
  function(Functor f, Allocator a
1115
- #ifndef BOOST_NO_SFINAE
1116
986
  ,typename boost::enable_if_<
1117
987
  !(is_integral<Functor>::value),
1118
988
  int>::type = 0
1119
- #endif
1120
989
  ) :
1121
- base_type(f,a)
990
+ base_type(std::move(f),a)
1122
991
  {
1123
992
  }
1124
993
 
1125
- #ifndef BOOST_NO_SFINAE
1126
994
  function(clear_type*) : base_type() {}
1127
- #endif
1128
995
 
1129
996
  function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
1130
997
 
1131
998
  function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
1132
999
 
1133
- #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
1134
1000
  // Move constructors
1135
1001
  function(self_type&& f): base_type(static_cast<base_type&&>(f)){}
1136
1002
  function(base_type&& f): base_type(static_cast<base_type&&>(f)){}
1137
- #endif
1138
1003
 
1139
1004
  self_type& operator=(const self_type& f)
1140
1005
  {
@@ -1142,35 +1007,27 @@ public:
1142
1007
  return *this;
1143
1008
  }
1144
1009
 
1145
- #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
1146
1010
  self_type& operator=(self_type&& f)
1147
1011
  {
1148
1012
  self_type(static_cast<self_type&&>(f)).swap(*this);
1149
1013
  return *this;
1150
1014
  }
1151
- #endif
1152
1015
 
1153
1016
  template<typename Functor>
1154
- #ifndef BOOST_NO_SFINAE
1155
1017
  typename boost::enable_if_<
1156
1018
  !(is_integral<Functor>::value),
1157
1019
  self_type&>::type
1158
- #else
1159
- self_type&
1160
- #endif
1161
1020
  operator=(Functor f)
1162
1021
  {
1163
1022
  self_type(f).swap(*this);
1164
1023
  return *this;
1165
1024
  }
1166
1025
 
1167
- #ifndef BOOST_NO_SFINAE
1168
1026
  self_type& operator=(clear_type*)
1169
1027
  {
1170
1028
  this->clear();
1171
1029
  return *this;
1172
1030
  }
1173
- #endif
1174
1031
 
1175
1032
  self_type& operator=(const base_type& f)
1176
1033
  {
@@ -1178,50 +1035,42 @@ public:
1178
1035
  return *this;
1179
1036
  }
1180
1037
 
1181
- #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
1182
1038
  self_type& operator=(base_type&& f)
1183
1039
  {
1184
1040
  self_type(static_cast<base_type&&>(f)).swap(*this);
1185
1041
  return *this;
1186
1042
  }
1187
- #endif
1188
1043
  };
1189
1044
 
1190
- #undef BOOST_FUNCTION_PARTIAL_SPEC
1191
- #endif // have partial specialization
1192
-
1193
1045
  } // end namespace boost
1194
1046
 
1195
- // Cleanup after ourselves...
1196
- #undef BOOST_FUNCTION_VTABLE
1197
- #undef BOOST_FUNCTION_COMMA
1198
- #undef BOOST_FUNCTION_FUNCTION
1199
- #undef BOOST_FUNCTION_FUNCTION_INVOKER
1200
- #undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
1201
- #undef BOOST_FUNCTION_FUNCTION_OBJ_INVOKER
1202
- #undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
1203
- #undef BOOST_FUNCTION_FUNCTION_REF_INVOKER
1204
- #undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
1205
- #undef BOOST_FUNCTION_MEMBER_INVOKER
1206
- #undef BOOST_FUNCTION_VOID_MEMBER_INVOKER
1207
- #undef BOOST_FUNCTION_GET_FUNCTION_INVOKER
1208
- #undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
1209
- #undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
1210
- #undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER
1211
- #undef BOOST_FUNCTION_GET_INVOKER
1212
- #undef BOOST_FUNCTION_TEMPLATE_PARMS
1213
- #undef BOOST_FUNCTION_TEMPLATE_ARGS
1214
- #undef BOOST_FUNCTION_PARMS
1215
- #undef BOOST_FUNCTION_PARM
1216
- #ifdef BOOST_FUNCTION_ARG
1217
- # undef BOOST_FUNCTION_ARG
1218
- #endif
1219
- #undef BOOST_FUNCTION_ARGS
1220
- #undef BOOST_FUNCTION_ARG_TYPE
1221
- #undef BOOST_FUNCTION_ARG_TYPES
1222
- #undef BOOST_FUNCTION_VOID_RETURN_TYPE
1223
- #undef BOOST_FUNCTION_RETURN
1224
-
1225
1047
  #if defined(BOOST_MSVC)
1226
1048
  # pragma warning( pop )
1227
1049
  #endif
1050
+
1051
+ // Resolve C++20 issue with fn == bind(...)
1052
+ // https://github.com/boostorg/function/issues/45
1053
+
1054
+ namespace boost
1055
+ {
1056
+
1057
+ namespace _bi
1058
+ {
1059
+
1060
+ template<class R, class F, class L> class bind_t;
1061
+
1062
+ } // namespace _bi
1063
+
1064
+ template<class S, class R, class F, class L> bool operator==( function<S> const& f, _bi::bind_t<R, F, L> const& b )
1065
+ {
1066
+ return f.contains( b );
1067
+ }
1068
+
1069
+ template<class S, class R, class F, class L> bool operator!=( function<S> const& f, _bi::bind_t<R, F, L> const& b )
1070
+ {
1071
+ return !f.contains( b );
1072
+ }
1073
+
1074
+ } // namespace boost
1075
+
1076
+ #endif // #ifndef BOOST_FUNCTION_FUNCTION_TEMPLATE_HPP_INCLUDED