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,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2023.
3
+ // Copyright Antony Polukhin, 2011-2024.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -34,8 +34,10 @@
34
34
  #include <cstdio>
35
35
  #include <boost/limits.hpp>
36
36
  #include <boost/type_traits/conditional.hpp>
37
+ #include <boost/type_traits/is_enum.hpp>
38
+ #include <boost/type_traits/is_signed.hpp>
39
+ #include <boost/type_traits/is_unsigned.hpp>
37
40
  #include <boost/type_traits/is_pointer.hpp>
38
- #include <boost/static_assert.hpp>
39
41
  #include <boost/detail/lcast_precision.hpp>
40
42
  #include <boost/detail/workaround.hpp>
41
43
  #include <boost/core/snprintf.hpp>
@@ -59,715 +61,691 @@
59
61
  #include <sstream>
60
62
  #endif
61
63
 
64
+ #include <boost/lexical_cast/detail/buffer_view.hpp>
62
65
  #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
63
66
  #include <boost/lexical_cast/detail/lcast_unsigned_converters.hpp>
67
+ #include <boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp>
64
68
  #include <boost/lexical_cast/detail/inf_nan.hpp>
65
69
 
66
70
  #include <istream>
67
71
 
68
- #ifndef BOOST_NO_CXX11_HDR_ARRAY
69
72
  #include <array>
70
- #endif
71
73
 
72
- #include <boost/array.hpp>
73
74
  #include <boost/type_traits/make_unsigned.hpp>
74
75
  #include <boost/type_traits/is_integral.hpp>
75
76
  #include <boost/type_traits/is_float.hpp>
76
- #include <boost/range/iterator_range_core.hpp>
77
+ #include <boost/type_traits/is_const.hpp>
78
+ #include <boost/type_traits/is_reference.hpp>
77
79
  #include <boost/container/container_fwd.hpp>
78
- #include <boost/integer.hpp>
79
- #include <boost/detail/basic_pointerbuf.hpp>
80
- #include <boost/core/noncopyable.hpp>
80
+ #include <boost/core/enable_if.hpp>
81
81
  #ifndef BOOST_NO_CWCHAR
82
82
  # include <cwchar>
83
83
  #endif
84
84
 
85
+ // Forward declarations
85
86
  namespace boost {
86
-
87
- namespace detail // basic_unlockedbuf
88
- {
89
- // acts as a stream buffer which wraps around a pair of pointers
90
- // and gives acces to internals
91
- template <class BufferType, class CharT>
92
- class basic_unlockedbuf : public basic_pointerbuf<CharT, BufferType> {
93
- public:
94
- typedef basic_pointerbuf<CharT, BufferType> base_type;
95
- typedef BOOST_DEDUCED_TYPENAME base_type::streamsize streamsize;
96
-
97
- #ifndef BOOST_NO_USING_TEMPLATE
98
- using base_type::pptr;
99
- using base_type::pbase;
100
- using base_type::setbuf;
101
- #else
102
- charT* pptr() const { return base_type::pptr(); }
103
- charT* pbase() const { return base_type::pbase(); }
104
- BufferType* setbuf(char_type* s, streamsize n) { return base_type::setbuf(s, n); }
105
- #endif
106
- };
107
- }
108
-
109
- namespace detail
110
- {
111
- struct do_not_construct_out_buffer_t{};
112
- struct do_not_construct_out_stream_t{
113
- do_not_construct_out_stream_t(do_not_construct_out_buffer_t*){}
114
- };
115
-
116
- template <class CharT, class Traits>
117
- struct out_stream_helper_trait {
118
- #if defined(BOOST_NO_STRINGSTREAM)
119
- typedef std::ostream out_stream_t;
120
- typedef basic_unlockedbuf<std::strstreambuf, char> stringbuffer_t;
121
- #elif defined(BOOST_NO_STD_LOCALE)
122
- typedef std::ostream out_stream_t;
123
- typedef basic_unlockedbuf<std::stringbuf, char> stringbuffer_t;
124
- typedef basic_unlockedbuf<std::streambuf, char> buffer_t;
125
- #else
126
- typedef std::basic_ostream<CharT, Traits> out_stream_t;
127
- typedef basic_unlockedbuf<std::basic_stringbuf<CharT, Traits>, CharT> stringbuffer_t;
128
- typedef basic_unlockedbuf<std::basic_streambuf<CharT, Traits>, CharT> buffer_t;
129
- #endif
130
- };
131
- }
132
-
133
- namespace detail // optimized stream wrappers
134
- {
135
- template< class CharT // a result of widest_char transformation
136
- , class Traits
137
- , bool RequiresStringbuffer
138
- , std::size_t CharacterBufferSize
139
- >
140
- class lexical_istream_limited_src: boost::noncopyable {
141
- typedef BOOST_DEDUCED_TYPENAME boost::conditional<
142
- RequiresStringbuffer,
143
- BOOST_DEDUCED_TYPENAME out_stream_helper_trait<CharT, Traits>::out_stream_t,
144
- do_not_construct_out_stream_t
145
- >::type deduced_out_stream_t;
146
-
147
- typedef BOOST_DEDUCED_TYPENAME boost::conditional<
148
- RequiresStringbuffer,
149
- BOOST_DEDUCED_TYPENAME out_stream_helper_trait<CharT, Traits>::stringbuffer_t,
150
- do_not_construct_out_buffer_t
151
- >::type deduced_out_buffer_t;
152
-
153
- deduced_out_buffer_t out_buffer;
154
- deduced_out_stream_t out_stream;
155
- CharT buffer[CharacterBufferSize];
156
-
157
- // After the `operator <<` finishes, `[start, finish)` is
158
- // the range to output by `operator >>`
159
- const CharT* start;
160
- const CharT* finish;
161
-
162
- public:
163
- lexical_istream_limited_src() BOOST_NOEXCEPT
164
- : out_buffer()
165
- , out_stream(&out_buffer)
166
- , start(buffer)
167
- , finish(buffer + CharacterBufferSize)
168
- {}
169
-
170
- const CharT* cbegin() const BOOST_NOEXCEPT {
171
- return start;
172
- }
173
-
174
- const CharT* cend() const BOOST_NOEXCEPT {
175
- return finish;
176
- }
177
-
178
- private:
179
- /************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/
180
- bool shl_char(CharT ch) BOOST_NOEXCEPT {
181
- Traits::assign(buffer[0], ch);
182
- finish = start + 1;
183
- return true;
184
- }
87
+ template<class T, std::size_t N>
88
+ class array;
89
+ template<class IteratorT>
90
+ class iterator_range;
91
+
92
+ // forward declaration of boost::basic_string_view from Utility
93
+ template<class Ch, class Tr> class basic_string_view;
94
+ }
95
+
96
+ namespace boost { namespace detail { namespace lcast {
97
+
98
+ template <typename T>
99
+ struct exact {
100
+ static_assert(!boost::is_const<T>::value, "");
101
+ static_assert(!boost::is_reference<T>::value, "");
102
+
103
+ const T& payload;
104
+ };
105
+
106
+ template< class CharT // a result of widest_char transformation
107
+ , class Traits
108
+ , std::size_t CharacterBufferSize
109
+ >
110
+ class optimized_src_stream {
111
+ CharT buffer[CharacterBufferSize];
112
+
113
+ // After the `stream_in(` finishes, `[start, finish)` is
114
+ // the range to output by `operator >>`
115
+ const CharT* start;
116
+ const CharT* finish;
117
+ public:
118
+ optimized_src_stream(optimized_src_stream&&) = delete;
119
+ optimized_src_stream(const optimized_src_stream&) = delete;
120
+ optimized_src_stream& operator=(optimized_src_stream&&) = delete;
121
+ optimized_src_stream& operator=(const optimized_src_stream&) = delete;
122
+
123
+ optimized_src_stream() noexcept
124
+ : start(buffer)
125
+ , finish(buffer + CharacterBufferSize)
126
+ {}
127
+
128
+ const CharT* cbegin() const noexcept {
129
+ return start;
130
+ }
131
+
132
+ const CharT* cend() const noexcept {
133
+ return finish;
134
+ }
135
+
136
+ private:
137
+ bool shl_char(CharT ch) noexcept {
138
+ Traits::assign(buffer[0], ch);
139
+ finish = start + 1;
140
+ return true;
141
+ }
185
142
 
186
143
  #ifndef BOOST_LCAST_NO_WCHAR_T
187
- template <class T>
188
- bool shl_char(T ch) {
189
- BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
190
- "boost::lexical_cast does not support narrowing of char types."
191
- "Use boost::locale instead" );
144
+ template <class T>
145
+ bool shl_char(T ch) {
146
+ static_assert(sizeof(T) <= sizeof(CharT),
147
+ "boost::lexical_cast does not support narrowing of char types."
148
+ "Use boost::locale instead" );
192
149
  #ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
193
- std::locale loc;
194
- CharT const w = BOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
150
+ std::locale loc;
151
+ CharT const w = BOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
195
152
  #else
196
- CharT const w = static_cast<CharT>(ch);
197
- #endif
198
- Traits::assign(buffer[0], w);
199
- finish = start + 1;
200
- return true;
201
- }
202
- #endif
203
-
204
- bool shl_char_array(CharT const* str_value) BOOST_NOEXCEPT {
205
- start = str_value;
206
- finish = start + Traits::length(str_value);
207
- return true;
208
- }
153
+ CharT const w = static_cast<CharT>(ch);
154
+ #endif
155
+ Traits::assign(buffer[0], w);
156
+ finish = start + 1;
157
+ return true;
158
+ }
159
+ #endif
160
+
161
+ bool shl_char_array(CharT const* str_value) noexcept {
162
+ start = str_value;
163
+ finish = start + Traits::length(str_value);
164
+ return true;
165
+ }
166
+
167
+ bool shl_char_array_limited(CharT const* str, std::size_t max_size) noexcept {
168
+ start = str;
169
+ finish = start;
170
+ const auto zero = Traits::to_char_type(0);
171
+ while (finish < start + max_size && zero != *finish) {
172
+ ++ finish;
173
+ }
174
+ return true;
175
+ }
176
+
177
+ template <class T>
178
+ inline bool shl_unsigned(const T n) {
179
+ CharT* tmp_finish = buffer + CharacterBufferSize;
180
+ start = lcast_put_unsigned<Traits, T, CharT>(n, tmp_finish).convert();
181
+ finish = tmp_finish;
182
+ return true;
183
+ }
184
+
185
+ template <class T>
186
+ inline bool shl_signed(const T n) {
187
+ CharT* tmp_finish = buffer + CharacterBufferSize;
188
+ typedef typename boost::make_unsigned<T>::type utype;
189
+ CharT* tmp_start = lcast_put_unsigned<Traits, utype, CharT>(lcast_to_unsigned(n), tmp_finish).convert();
190
+ if (n < 0) {
191
+ --tmp_start;
192
+ CharT const minus = lcast_char_constants<CharT>::minus;
193
+ Traits::assign(*tmp_start, minus);
194
+ }
195
+ start = tmp_start;
196
+ finish = tmp_finish;
197
+ return true;
198
+ }
199
+
200
+ bool shl_real_type(float val, char* begin) {
201
+ using namespace std;
202
+ const double val_as_double = val;
203
+ finish = start +
204
+ boost::core::snprintf(begin, CharacterBufferSize,
205
+ "%.*g", static_cast<int>(boost::detail::lcast_get_precision<float>()), val_as_double);
206
+ return finish > start;
207
+ }
208
+
209
+ bool shl_real_type(double val, char* begin) {
210
+ using namespace std;
211
+ finish = start +
212
+ boost::core::snprintf(begin, CharacterBufferSize,
213
+ "%.*g", static_cast<int>(boost::detail::lcast_get_precision<double>()), val);
214
+ return finish > start;
215
+ }
209
216
 
210
- template <class T>
211
- bool shl_char_array(T const* str_value) {
212
- BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)),
213
- "boost::lexical_cast does not support narrowing of char types."
214
- "Use boost::locale instead" );
215
- return shl_input_streamable(str_value);
216
- }
217
+ #ifndef __MINGW32__
218
+ bool shl_real_type(long double val, char* begin) {
219
+ using namespace std;
220
+ finish = start +
221
+ boost::core::snprintf(begin, CharacterBufferSize,
222
+ "%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double>()), val );
223
+ return finish > start;
224
+ }
225
+ #else
226
+ bool shl_real_type(long double val, char* begin) {
227
+ return shl_real_type(static_cast<double>(val), begin);
228
+ }
229
+ #endif
217
230
 
218
- bool shl_char_array_limited(CharT const* str, std::size_t max_size) BOOST_NOEXCEPT {
219
- start = str;
220
- finish = std::find(start, start + max_size, Traits::to_char_type(0));
231
+ #if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
232
+ bool shl_real_type(float val, wchar_t* begin) {
233
+ using namespace std;
234
+ const double val_as_double = val;
235
+ finish = start + swprintf(begin, CharacterBufferSize,
236
+ L"%.*g",
237
+ static_cast<int>(boost::detail::lcast_get_precision<float >()),
238
+ val_as_double );
239
+ return finish > start;
240
+ }
241
+
242
+ bool shl_real_type(double val, wchar_t* begin) {
243
+ using namespace std;
244
+ finish = start + swprintf(begin, CharacterBufferSize,
245
+ L"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
246
+ return finish > start;
247
+ }
248
+
249
+ bool shl_real_type(long double val, wchar_t* begin) {
250
+ using namespace std;
251
+ finish = start + swprintf(begin, CharacterBufferSize,
252
+ L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
253
+ return finish > start;
254
+ }
255
+ #endif
256
+ public:
257
+ template <class C>
258
+ using enable_if_compatible_char_t = typename boost::enable_if_c<
259
+ boost::is_same<const C, const CharT>::value || (
260
+ boost::is_same<const char, const CharT>::value && (
261
+ boost::is_same<const C, const unsigned char>::value ||
262
+ boost::is_same<const C, const signed char>::value
263
+ )
264
+ ), bool
265
+ >::type;
266
+
267
+ template<class CharTraits, class Alloc>
268
+ bool stream_in(lcast::exact<std::basic_string<CharT,CharTraits,Alloc>> x) noexcept {
269
+ start = x.payload.data();
270
+ finish = start + x.payload.length();
271
+ return true;
272
+ }
273
+
274
+ template<class CharTraits, class Alloc>
275
+ bool stream_in(lcast::exact<boost::container::basic_string<CharT,CharTraits,Alloc>> x) noexcept {
276
+ start = x.payload.data();
277
+ finish = start + x.payload.length();
278
+ return true;
279
+ }
280
+
281
+ bool stream_in(lcast::exact<bool> x) noexcept {
282
+ CharT const czero = lcast_char_constants<CharT>::zero;
283
+ Traits::assign(buffer[0], Traits::to_char_type(czero + x.payload));
284
+ finish = start + 1;
285
+ return true;
286
+ }
287
+
288
+ bool stream_in(lcast::exact<boost::conversion::detail::buffer_view<CharT>> x) noexcept {
289
+ start = x.payload.begin;
290
+ finish = x.payload.end;
291
+ return true;
292
+ }
293
+
294
+ template <class C>
295
+ enable_if_compatible_char_t<C>
296
+ stream_in(lcast::exact<boost::iterator_range<C*>> x) noexcept {
297
+ auto buf = boost::conversion::detail::make_buffer_view(x.payload.begin(), x.payload.end());
298
+ return stream_in(lcast::exact<decltype(buf)>{buf});
299
+ }
300
+
301
+ bool stream_in(lcast::exact<char> x) { return shl_char(x.payload); }
302
+ bool stream_in(lcast::exact<unsigned char> x) { return shl_char(static_cast<char>(x.payload)); }
303
+ bool stream_in(lcast::exact<signed char> x) { return shl_char(static_cast<char>(x.payload)); }
304
+
305
+ template <class C>
306
+ typename boost::enable_if_c<boost::detail::is_character<C>::value, bool>::type
307
+ stream_in(lcast::exact<C> x) { return shl_char(x.payload); }
308
+
309
+ template <class Type>
310
+ enable_if_compatible_char_t<Type>
311
+ stream_in(lcast::exact<Type*> x) { return shl_char_array(reinterpret_cast<CharT const*>(x.payload)); }
312
+
313
+ template <class Type>
314
+ typename boost::enable_if_c<boost::is_signed<Type>::value && !boost::is_enum<Type>::value, bool>::type
315
+ stream_in(lcast::exact<Type> x) { return shl_signed(x.payload); }
316
+
317
+ template <class Type>
318
+ typename boost::enable_if_c<boost::is_unsigned<Type>::value && !boost::is_enum<Type>::value, bool>::type
319
+ stream_in(lcast::exact<Type> x) { return shl_unsigned(x.payload); }
320
+
321
+ template <class Type>
322
+ auto stream_in(lcast::exact<Type> x) -> decltype(shl_real_type(x.payload, buffer)) {
323
+ const CharT* inf_nan = detail::get_inf_nan(x.payload, CharT());
324
+ if (inf_nan) {
325
+ start = inf_nan;
326
+ finish = start + Traits::length(inf_nan);
221
327
  return true;
222
328
  }
223
-
224
- template<typename InputStreamable>
225
- bool shl_input_streamable(InputStreamable& input) {
329
+ return shl_real_type(x.payload, buffer);
330
+ }
331
+
332
+ template <class C, std::size_t N>
333
+ enable_if_compatible_char_t<C>
334
+ stream_in(lcast::exact<boost::array<C, N>> x) noexcept {
335
+ return shl_char_array_limited(reinterpret_cast<const CharT*>(x.payload.data()), N);
336
+ }
337
+
338
+ template <class C, std::size_t N>
339
+ enable_if_compatible_char_t<C>
340
+ stream_in(lcast::exact<std::array<C, N>> x) noexcept {
341
+ return shl_char_array_limited(reinterpret_cast<const CharT*>(x.payload.data()), N);
342
+ }
343
+
344
+ #ifndef BOOST_NO_CXX17_HDR_STRING_VIEW
345
+ template <class C, class CharTraits>
346
+ enable_if_compatible_char_t<C>
347
+ stream_in(lcast::exact<std::basic_string_view<C, CharTraits>> x) noexcept {
348
+ return shl_char_array_limited(reinterpret_cast<const CharT*>(x.payload.data()), x.payload.size());
349
+ }
350
+ #endif
351
+ template <class C, class CharTraits>
352
+ enable_if_compatible_char_t<C>
353
+ stream_in(lcast::exact<boost::basic_string_view<C, CharTraits>> x) noexcept {
354
+ return shl_char_array_limited(reinterpret_cast<const CharT*>(x.payload.data()), x.payload.size());
355
+ }
356
+ };
357
+
358
+
359
+ template <class CharT, class Traits>
360
+ class ios_src_stream {
361
+ typedef detail::lcast::out_stream_t<CharT, Traits> deduced_out_stream_t;
362
+ typedef detail::lcast::stringbuffer_t<CharT, Traits> deduced_out_buffer_t;
363
+
364
+ deduced_out_buffer_t out_buffer;
365
+ deduced_out_stream_t out_stream;
366
+
367
+ const CharT* start = nullptr;
368
+ const CharT* finish = nullptr;
369
+ public:
370
+ ios_src_stream(ios_src_stream&&) = delete;
371
+ ios_src_stream(const ios_src_stream&) = delete;
372
+ ios_src_stream& operator=(ios_src_stream&&) = delete;
373
+ ios_src_stream& operator=(const ios_src_stream&) = delete;
374
+
375
+ ios_src_stream(): out_buffer(), out_stream(&out_buffer) {}
376
+
377
+ const CharT* cbegin() const noexcept {
378
+ return start;
379
+ }
380
+
381
+ const CharT* cend() const noexcept {
382
+ return finish;
383
+ }
384
+ private:
385
+ const deduced_out_buffer_t* get_rdbuf() const {
386
+ return static_cast<deduced_out_buffer_t*>(
387
+ out_stream.rdbuf()
388
+ );
389
+ }
390
+
391
+ template<typename InputStreamable>
392
+ bool shl_input_streamable(InputStreamable& input) {
226
393
  #if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
227
- // If you have compilation error at this point, than your STL library
228
- // does not support such conversions. Try updating it.
229
- BOOST_STATIC_ASSERT((boost::is_same<char, CharT>::value));
394
+ // If you have compilation error at this point, than your STL library
395
+ // does not support such conversions. Try updating it.
396
+ static_assert(boost::is_same<char, CharT>::value, "");
230
397
  #endif
231
398
 
232
399
  #ifndef BOOST_NO_EXCEPTIONS
233
- out_stream.exceptions(std::ios::badbit);
234
- try {
235
- #endif
236
- bool const result = !(out_stream << input).fail();
237
- const deduced_out_buffer_t* const p = static_cast<deduced_out_buffer_t*>(
238
- out_stream.rdbuf()
239
- );
240
- start = p->pbase();
241
- finish = p->pptr();
242
- return result;
400
+ out_stream.exceptions(std::ios::badbit);
401
+ try {
402
+ #endif
403
+ bool const result = !(out_stream << input).fail();
404
+ const auto* const p = get_rdbuf();
405
+ start = p->pbase();
406
+ finish = p->pptr();
407
+ return result;
243
408
  #ifndef BOOST_NO_EXCEPTIONS
244
- } catch (const ::std::ios_base::failure& /*f*/) {
245
- return false;
246
- }
247
- #endif
248
- }
249
-
250
- template <class T>
251
- inline bool shl_unsigned(const T n) {
252
- CharT* tmp_finish = buffer + CharacterBufferSize;
253
- start = lcast_put_unsigned<Traits, T, CharT>(n, tmp_finish).convert();
254
- finish = tmp_finish;
409
+ } catch (const ::std::ios_base::failure& /*f*/) {
410
+ return false;
411
+ }
412
+ #endif
413
+ }
414
+
415
+ template <class T>
416
+ bool shl_char_array(T const* str_value) {
417
+ static_assert(sizeof(T) <= sizeof(CharT),
418
+ "boost::lexical_cast does not support narrowing of char types."
419
+ "Use boost::locale instead" );
420
+ return shl_input_streamable(str_value);
421
+ }
422
+
423
+ template <class T>
424
+ bool shl_real(T val) {
425
+ const CharT* inf_nan = detail::get_inf_nan(val, CharT());
426
+ if (inf_nan) {
427
+ start = inf_nan;
428
+ finish = start + Traits::length(inf_nan);
255
429
  return true;
256
430
  }
257
431
 
258
- template <class T>
259
- inline bool shl_signed(const T n) {
260
- CharT* tmp_finish = buffer + CharacterBufferSize;
261
- typedef BOOST_DEDUCED_TYPENAME boost::make_unsigned<T>::type utype;
262
- CharT* tmp_start = lcast_put_unsigned<Traits, utype, CharT>(lcast_to_unsigned(n), tmp_finish).convert();
263
- if (n < 0) {
264
- --tmp_start;
265
- CharT const minus = lcast_char_constants<CharT>::minus;
266
- Traits::assign(*tmp_start, minus);
267
- }
268
- start = tmp_start;
269
- finish = tmp_finish;
270
- return true;
271
- }
432
+ lcast_set_precision(out_stream, &val);
433
+ return shl_input_streamable(val);
434
+ }
272
435
 
273
- template <class T, class SomeCharT>
274
- bool shl_real_type(const T& val, SomeCharT* /*begin*/) {
275
- lcast_set_precision(out_stream, &val);
276
- return shl_input_streamable(val);
277
- }
436
+ public:
437
+ template <class Type>
438
+ typename boost::enable_if_c<boost::detail::is_character<Type>::value && sizeof(char) == sizeof(Type), bool>::type
439
+ stream_in(lcast::exact<const Type*> x) { return shl_char_array(reinterpret_cast<char const*>(x.payload)); }
278
440
 
279
- bool shl_real_type(float val, char* begin) {
280
- using namespace std;
281
- const double val_as_double = val;
282
- finish = start +
283
- boost::core::snprintf(begin, CharacterBufferSize,
284
- "%.*g", static_cast<int>(boost::detail::lcast_get_precision<float>()), val_as_double);
285
- return finish > start;
286
- }
287
-
288
- bool shl_real_type(double val, char* begin) {
289
- using namespace std;
290
- finish = start +
291
- boost::core::snprintf(begin, CharacterBufferSize,
292
- "%.*g", static_cast<int>(boost::detail::lcast_get_precision<double>()), val);
293
- return finish > start;
294
- }
441
+ template <class Type>
442
+ typename boost::enable_if_c<boost::detail::is_character<Type>::value && sizeof(char) != sizeof(Type), bool>::type
443
+ stream_in(lcast::exact<const Type*> x) { return shl_char_array(x.payload); }
295
444
 
445
+ bool stream_in(lcast::exact<float> x) { return shl_real(x.payload); }
446
+ bool stream_in(lcast::exact<double> x) { return shl_real(x.payload); }
447
+ bool stream_in(lcast::exact<long double> x) {
296
448
  #ifndef __MINGW32__
297
- bool shl_real_type(long double val, char* begin) {
298
- using namespace std;
299
- finish = start +
300
- boost::core::snprintf(begin, CharacterBufferSize,
301
- "%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double>()), val );
302
- return finish > start;
303
- }
304
- #endif
305
-
306
-
307
- #if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
308
- bool shl_real_type(float val, wchar_t* begin) {
309
- using namespace std;
310
- const double val_as_double = val;
311
- finish = start + swprintf(begin, CharacterBufferSize,
312
- L"%.*g",
313
- static_cast<int>(boost::detail::lcast_get_precision<float >()),
314
- val_as_double );
315
- return finish > start;
316
- }
317
-
318
- bool shl_real_type(double val, wchar_t* begin) {
319
- using namespace std;
320
- finish = start + swprintf(begin, CharacterBufferSize,
321
- L"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
322
- return finish > start;
323
- }
324
-
325
- bool shl_real_type(long double val, wchar_t* begin) {
326
- using namespace std;
327
- finish = start + swprintf(begin, CharacterBufferSize,
328
- L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
329
- return finish > start;
330
- }
331
- #endif
332
- template <class T>
333
- bool shl_real(T val) {
334
- CharT* tmp_finish = buffer + CharacterBufferSize;
335
- if (put_inf_nan(buffer, tmp_finish, val)) {
336
- finish = tmp_finish;
337
- return true;
338
- }
339
-
340
- return shl_real_type(val, static_cast<CharT*>(buffer));
341
- }
342
-
343
- /************************************ OPERATORS << ( ... ) ********************************/
344
- public:
345
- template<class Alloc>
346
- bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT {
347
- start = str.data();
348
- finish = start + str.length();
349
- return true;
350
- }
351
-
352
- template<class Alloc>
353
- bool operator<<(boost::container::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT {
354
- start = str.data();
355
- finish = start + str.length();
356
- return true;
357
- }
358
-
359
- bool operator<<(bool value) BOOST_NOEXCEPT {
360
- CharT const czero = lcast_char_constants<CharT>::zero;
361
- Traits::assign(buffer[0], Traits::to_char_type(czero + value));
362
- finish = start + 1;
363
- return true;
364
- }
365
-
366
- template <class C>
367
- BOOST_DEDUCED_TYPENAME boost::disable_if<boost::is_const<C>, bool>::type
368
- operator<<(const iterator_range<C*>& rng) BOOST_NOEXCEPT {
369
- return (*this) << iterator_range<const C*>(rng.begin(), rng.end());
370
- }
371
-
372
- bool operator<<(const iterator_range<const CharT*>& rng) BOOST_NOEXCEPT {
373
- start = rng.begin();
374
- finish = rng.end();
375
- return true;
376
- }
377
-
378
- bool operator<<(const iterator_range<const signed char*>& rng) BOOST_NOEXCEPT {
379
- return (*this) << iterator_range<const char*>(
380
- reinterpret_cast<const char*>(rng.begin()),
381
- reinterpret_cast<const char*>(rng.end())
382
- );
383
- }
384
-
385
- bool operator<<(const iterator_range<const unsigned char*>& rng) BOOST_NOEXCEPT {
386
- return (*this) << iterator_range<const char*>(
387
- reinterpret_cast<const char*>(rng.begin()),
388
- reinterpret_cast<const char*>(rng.end())
389
- );
390
- }
391
-
392
- bool operator<<(char ch) { return shl_char(ch); }
393
- bool operator<<(unsigned char ch) { return ((*this) << static_cast<char>(ch)); }
394
- bool operator<<(signed char ch) { return ((*this) << static_cast<char>(ch)); }
395
- #if !defined(BOOST_LCAST_NO_WCHAR_T)
396
- bool operator<<(wchar_t const* str) { return shl_char_array(str); }
397
- bool operator<<(wchar_t * str) { return shl_char_array(str); }
398
- #ifndef BOOST_NO_INTRINSIC_WCHAR_T
399
- bool operator<<(wchar_t ch) { return shl_char(ch); }
400
- #endif
401
- #endif
402
- #if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
403
- bool operator<<(char16_t ch) { return shl_char(ch); }
404
- bool operator<<(char16_t * str) { return shl_char_array(str); }
405
- bool operator<<(char16_t const * str) { return shl_char_array(str); }
406
- #endif
407
- #if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
408
- bool operator<<(char32_t ch) { return shl_char(ch); }
409
- bool operator<<(char32_t * str) { return shl_char_array(str); }
410
- bool operator<<(char32_t const * str) { return shl_char_array(str); }
411
- #endif
412
- bool operator<<(unsigned char const* ch) { return ((*this) << reinterpret_cast<char const*>(ch)); }
413
- bool operator<<(unsigned char * ch) { return ((*this) << reinterpret_cast<char *>(ch)); }
414
- bool operator<<(signed char const* ch) { return ((*this) << reinterpret_cast<char const*>(ch)); }
415
- bool operator<<(signed char * ch) { return ((*this) << reinterpret_cast<char *>(ch)); }
416
- bool operator<<(char const* str_value) { return shl_char_array(str_value); }
417
- bool operator<<(char* str_value) { return shl_char_array(str_value); }
418
- bool operator<<(short n) { return shl_signed(n); }
419
- bool operator<<(int n) { return shl_signed(n); }
420
- bool operator<<(long n) { return shl_signed(n); }
421
- bool operator<<(unsigned short n) { return shl_unsigned(n); }
422
- bool operator<<(unsigned int n) { return shl_unsigned(n); }
423
- bool operator<<(unsigned long n) { return shl_unsigned(n); }
424
-
425
- #if defined(BOOST_HAS_LONG_LONG)
426
- bool operator<<(boost::ulong_long_type n) { return shl_unsigned(n); }
427
- bool operator<<(boost::long_long_type n) { return shl_signed(n); }
428
- #elif defined(BOOST_HAS_MS_INT64)
429
- bool operator<<(unsigned __int64 n) { return shl_unsigned(n); }
430
- bool operator<<( __int64 n) { return shl_signed(n); }
431
- #endif
432
-
433
- #ifdef BOOST_HAS_INT128
434
- bool operator<<(const boost::uint128_type& n) { return shl_unsigned(n); }
435
- bool operator<<(const boost::int128_type& n) { return shl_signed(n); }
436
- #endif
437
- bool operator<<(float val) { return shl_real(val); }
438
- bool operator<<(double val) { return shl_real(val); }
439
- bool operator<<(long double val) {
440
- #ifndef __MINGW32__
441
- return shl_real(val);
449
+ return shl_real(x.payload);
442
450
  #else
443
- return shl_real(static_cast<double>(val));
444
- #endif
445
- }
446
-
447
- // Adding constness to characters. Constness does not change layout
448
- template <class C, std::size_t N>
449
- BOOST_DEDUCED_TYPENAME boost::disable_if<boost::is_const<C>, bool>::type
450
- operator<<(boost::array<C, N> const& input) BOOST_NOEXCEPT {
451
- BOOST_STATIC_ASSERT_MSG(
452
- (sizeof(boost::array<const C, N>) == sizeof(boost::array<C, N>)),
453
- "boost::array<C, N> and boost::array<const C, N> must have exactly the same layout."
454
- );
455
- return ((*this) << reinterpret_cast<boost::array<const C, N> const& >(input));
456
- }
457
-
458
- template <std::size_t N>
459
- bool operator<<(boost::array<const CharT, N> const& input) BOOST_NOEXCEPT {
460
- return shl_char_array_limited(input.data(), N);
461
- }
462
-
463
- template <std::size_t N>
464
- bool operator<<(boost::array<const unsigned char, N> const& input) BOOST_NOEXCEPT {
465
- return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input));
466
- }
467
-
468
- template <std::size_t N>
469
- bool operator<<(boost::array<const signed char, N> const& input) BOOST_NOEXCEPT {
470
- return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input));
471
- }
472
-
473
- #ifndef BOOST_NO_CXX11_HDR_ARRAY
474
- // Making a Boost.Array from std::array
475
- template <class C, std::size_t N>
476
- bool operator<<(std::array<C, N> const& input) BOOST_NOEXCEPT {
477
- BOOST_STATIC_ASSERT_MSG(
478
- (sizeof(std::array<C, N>) == sizeof(boost::array<C, N>)),
479
- "std::array and boost::array must have exactly the same layout. "
480
- "Bug in implementation of std::array or boost::array."
481
- );
482
- return ((*this) << reinterpret_cast<boost::array<C, N> const& >(input));
483
- }
484
- #endif
485
- template <class InStreamable>
486
- bool operator<<(const InStreamable& input) { return shl_input_streamable(input); }
487
- };
488
-
489
-
490
- template <class CharT, class Traits>
491
- class lexical_ostream_limited_src: boost::noncopyable {
492
- //`[start, finish)` is the range to output by `operator >>`
493
- const CharT* start;
494
- const CharT* const finish;
495
-
496
- public:
497
- lexical_ostream_limited_src(const CharT* begin, const CharT* end) BOOST_NOEXCEPT
498
- : start(begin)
499
- , finish(end)
500
- {}
501
-
502
- /************************************ HELPER FUNCTIONS FOR OPERATORS >> ( ... ) ********************************/
503
- private:
504
- template <typename Type>
505
- bool shr_unsigned(Type& output) {
506
- if (start == finish) return false;
507
- CharT const minus = lcast_char_constants<CharT>::minus;
508
- CharT const plus = lcast_char_constants<CharT>::plus;
509
- bool const has_minus = Traits::eq(minus, *start);
510
-
511
- /* We won`t use `start' any more, so no need in decrementing it after */
512
- if (has_minus || Traits::eq(plus, *start)) {
513
- ++start;
514
- }
515
-
516
- bool const succeed = lcast_ret_unsigned<Traits, Type, CharT>(output, start, finish).convert();
517
-
518
- if (has_minus) {
519
- output = static_cast<Type>(0u - output);
520
- }
521
-
522
- return succeed;
523
- }
524
-
525
- template <typename Type>
526
- bool shr_signed(Type& output) {
527
- if (start == finish) return false;
528
- CharT const minus = lcast_char_constants<CharT>::minus;
529
- CharT const plus = lcast_char_constants<CharT>::plus;
530
- typedef BOOST_DEDUCED_TYPENAME make_unsigned<Type>::type utype;
531
- utype out_tmp = 0;
532
- bool const has_minus = Traits::eq(minus, *start);
533
-
534
- /* We won`t use `start' any more, so no need in decrementing it after */
535
- if (has_minus || Traits::eq(plus, *start)) {
536
- ++start;
537
- }
538
-
539
- bool succeed = lcast_ret_unsigned<Traits, utype, CharT>(out_tmp, start, finish).convert();
540
- if (has_minus) {
541
- utype const comp_val = (static_cast<utype>(1) << std::numeric_limits<Type>::digits);
542
- succeed = succeed && out_tmp<=comp_val;
543
- output = static_cast<Type>(0u - out_tmp);
544
- } else {
545
- utype const comp_val = static_cast<utype>((std::numeric_limits<Type>::max)());
546
- succeed = succeed && out_tmp<=comp_val;
547
- output = static_cast<Type>(out_tmp);
548
- }
549
- return succeed;
550
- }
551
-
552
- template<typename InputStreamable>
553
- bool shr_using_base_class(InputStreamable& output)
554
- {
555
- BOOST_STATIC_ASSERT_MSG(
556
- (!boost::is_pointer<InputStreamable>::value),
557
- "boost::lexical_cast can not convert to pointers"
558
- );
451
+ return shl_real(static_cast<double>(x.payload));
452
+ #endif
453
+ }
454
+
455
+ template <class C>
456
+ typename boost::enable_if_c<boost::detail::is_character<C>::value, bool>::type
457
+ stream_in(lcast::exact<iterator_range<C*>> x) noexcept {
458
+ auto buf = boost::conversion::detail::make_buffer_view(x.payload.begin(), x.payload.end());
459
+ return stream_in(lcast::exact<decltype(buf)>{buf});
460
+ }
461
+
462
+ template <class C>
463
+ typename boost::enable_if_c<boost::detail::is_character<C>::value, bool>::type
464
+ stream_in(lcast::exact<iterator_range<const C*>> x) noexcept {
465
+ auto buf = boost::conversion::detail::make_buffer_view(x.payload.begin(), x.payload.end());
466
+ return stream_in(lcast::exact<decltype(buf)>{buf});
467
+ }
468
+
469
+ template <class InStreamable>
470
+ bool stream_in(lcast::exact<InStreamable> x) { return shl_input_streamable(x.payload); }
471
+ };
472
+
473
+
474
+ template <class CharT, class Traits>
475
+ class to_target_stream {
476
+ //`[start, finish)` is the range to output by `operator >>`
477
+ const CharT* start;
478
+ const CharT* const finish;
479
+
480
+ public:
481
+ to_target_stream(to_target_stream&&) = delete;
482
+ to_target_stream(const to_target_stream&) = delete;
483
+ to_target_stream& operator=(to_target_stream&&) = delete;
484
+ to_target_stream& operator=(const to_target_stream&) = delete;
485
+
486
+ to_target_stream(const CharT* begin, const CharT* end) noexcept
487
+ : start(begin)
488
+ , finish(end)
489
+ {}
490
+
491
+ private:
492
+ template <typename Type>
493
+ #if defined(__clang__) && (__clang_major__ > 3 || __clang_minor__ > 6)
494
+ __attribute__((no_sanitize("unsigned-integer-overflow")))
495
+ #endif
496
+ bool shr_unsigned(Type& output) {
497
+ if (start == finish) return false;
498
+ CharT const minus = lcast_char_constants<CharT>::minus;
499
+ CharT const plus = lcast_char_constants<CharT>::plus;
500
+ bool const has_minus = Traits::eq(minus, *start);
501
+
502
+ /* We won`t use `start' any more, so no need in decrementing it after */
503
+ if (has_minus || Traits::eq(plus, *start)) {
504
+ ++start;
505
+ }
506
+
507
+ bool const succeed = lcast_ret_unsigned<Traits, Type, CharT>(output, start, finish).convert();
508
+
509
+ if (has_minus) {
510
+ output = static_cast<Type>(0u - output);
511
+ }
512
+
513
+ return succeed;
514
+ }
515
+
516
+ template <typename Type>
517
+ #if defined(__clang__) && (__clang_major__ > 3 || __clang_minor__ > 6)
518
+ __attribute__((no_sanitize("unsigned-integer-overflow")))
519
+ #endif
520
+ bool shr_signed(Type& output) {
521
+ if (start == finish) return false;
522
+ CharT const minus = lcast_char_constants<CharT>::minus;
523
+ CharT const plus = lcast_char_constants<CharT>::plus;
524
+ typedef typename make_unsigned<Type>::type utype;
525
+ utype out_tmp = 0;
526
+ bool const has_minus = Traits::eq(minus, *start);
527
+
528
+ /* We won`t use `start' any more, so no need in decrementing it after */
529
+ if (has_minus || Traits::eq(plus, *start)) {
530
+ ++start;
531
+ }
532
+
533
+ bool succeed = lcast_ret_unsigned<Traits, utype, CharT>(out_tmp, start, finish).convert();
534
+ if (has_minus) {
535
+ utype const comp_val = (static_cast<utype>(1) << std::numeric_limits<Type>::digits);
536
+ succeed = succeed && out_tmp<=comp_val;
537
+ output = static_cast<Type>(0u - out_tmp);
538
+ } else {
539
+ utype const comp_val = static_cast<utype>((std::numeric_limits<Type>::max)());
540
+ succeed = succeed && out_tmp<=comp_val;
541
+ output = static_cast<Type>(out_tmp);
542
+ }
543
+ return succeed;
544
+ }
545
+
546
+ template<typename InputStreamable>
547
+ bool shr_using_base_class(InputStreamable& output)
548
+ {
549
+ static_assert(
550
+ !boost::is_pointer<InputStreamable>::value,
551
+ "boost::lexical_cast can not convert to pointers"
552
+ );
559
553
 
560
554
  #if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
561
- BOOST_STATIC_ASSERT_MSG((boost::is_same<char, CharT>::value),
562
- "boost::lexical_cast can not convert, because your STL library does not "
563
- "support such conversions. Try updating it."
564
- );
555
+ static_assert(boost::is_same<char, CharT>::value,
556
+ "boost::lexical_cast can not convert, because your STL library does not "
557
+ "support such conversions. Try updating it."
558
+ );
565
559
  #endif
566
560
 
567
561
  #if defined(BOOST_NO_STRINGSTREAM)
568
- std::istrstream stream(start, static_cast<std::istrstream::streamsize>(finish - start));
562
+ std::istrstream stream(start, static_cast<std::istrstream::streamsize>(finish - start));
569
563
  #else
570
- typedef BOOST_DEDUCED_TYPENAME out_stream_helper_trait<CharT, Traits>::buffer_t buffer_t;
571
- buffer_t buf;
572
- // Usually `istream` and `basic_istream` do not modify
573
- // content of buffer; `buffer_t` assures that this is true
574
- buf.setbuf(const_cast<CharT*>(start), static_cast<typename buffer_t::streamsize>(finish - start));
564
+ typedef detail::lcast::buffer_t<CharT, Traits> buffer_t;
565
+ buffer_t buf;
566
+ // Usually `istream` and `basic_istream` do not modify
567
+ // content of buffer; `buffer_t` assures that this is true
568
+ buf.setbuf(const_cast<CharT*>(start), static_cast<typename buffer_t::streamsize>(finish - start));
575
569
  #if defined(BOOST_NO_STD_LOCALE)
576
- std::istream stream(&buf);
570
+ std::istream stream(&buf);
577
571
  #else
578
- std::basic_istream<CharT, Traits> stream(&buf);
572
+ std::basic_istream<CharT, Traits> stream(&buf);
579
573
  #endif // BOOST_NO_STD_LOCALE
580
574
  #endif // BOOST_NO_STRINGSTREAM
581
575
 
582
576
  #ifndef BOOST_NO_EXCEPTIONS
583
- stream.exceptions(std::ios::badbit);
584
- try {
577
+ stream.exceptions(std::ios::badbit);
578
+ try {
585
579
  #endif
586
- stream.unsetf(std::ios::skipws);
587
- lcast_set_precision(stream, static_cast<InputStreamable*>(0));
580
+ stream.unsetf(std::ios::skipws);
581
+ lcast_set_precision(stream, static_cast<InputStreamable*>(0));
588
582
 
589
- return (stream >> output)
590
- && (stream.get() == Traits::eof());
583
+ return (stream >> output)
584
+ && (stream.get() == Traits::eof());
591
585
 
592
586
  #ifndef BOOST_NO_EXCEPTIONS
593
- } catch (const ::std::ios_base::failure& /*f*/) {
594
- return false;
595
- }
596
- #endif
597
- }
598
-
599
- template<class T>
600
- inline bool shr_xchar(T& output) BOOST_NOEXCEPT {
601
- BOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ),
602
- "boost::lexical_cast does not support narrowing of character types."
603
- "Use boost::locale instead" );
604
- bool const ok = (finish - start == 1);
605
- if (ok) {
606
- CharT out;
607
- Traits::assign(out, *start);
608
- output = static_cast<T>(out);
609
- }
610
- return ok;
611
- }
612
-
613
- template <std::size_t N, class ArrayT>
614
- bool shr_std_array(ArrayT& output) BOOST_NOEXCEPT {
615
- using namespace std;
616
- const std::size_t size = static_cast<std::size_t>(finish - start);
617
- if (size > N - 1) { // `-1` because we need to store \0 at the end
618
- return false;
619
- }
620
-
621
- memcpy(&output[0], start, size * sizeof(CharT));
622
- output[size] = Traits::to_char_type(0);
623
- return true;
624
- }
625
-
626
- /************************************ OPERATORS >> ( ... ) ********************************/
627
- public:
628
- bool operator>>(unsigned short& output) { return shr_unsigned(output); }
629
- bool operator>>(unsigned int& output) { return shr_unsigned(output); }
630
- bool operator>>(unsigned long int& output) { return shr_unsigned(output); }
631
- bool operator>>(short& output) { return shr_signed(output); }
632
- bool operator>>(int& output) { return shr_signed(output); }
633
- bool operator>>(long int& output) { return shr_signed(output); }
587
+ } catch (const ::std::ios_base::failure& /*f*/) {
588
+ return false;
589
+ }
590
+ #endif
591
+ }
592
+
593
+ template<class T>
594
+ inline bool shr_xchar(T& output) noexcept {
595
+ static_assert(sizeof(CharT) == sizeof(T),
596
+ "boost::lexical_cast does not support narrowing of character types."
597
+ "Use boost::locale instead" );
598
+ bool const ok = (finish - start == 1);
599
+ if (ok) {
600
+ CharT out;
601
+ Traits::assign(out, *start);
602
+ output = static_cast<T>(out);
603
+ }
604
+ return ok;
605
+ }
606
+
607
+ template <std::size_t N, class ArrayT>
608
+ bool shr_std_array(ArrayT& output) noexcept {
609
+ const std::size_t size = static_cast<std::size_t>(finish - start);
610
+ if (size > N - 1) { // `-1` because we need to store \0 at the end
611
+ return false;
612
+ }
613
+
614
+ std::memcpy(&output[0], start, size * sizeof(CharT));
615
+ output[size] = Traits::to_char_type(0);
616
+ return true;
617
+ }
618
+
619
+ public:
620
+ bool stream_out(unsigned short& output) { return shr_unsigned(output); }
621
+ bool stream_out(unsigned int& output) { return shr_unsigned(output); }
622
+ bool stream_out(unsigned long int& output) { return shr_unsigned(output); }
623
+ bool stream_out(short& output) { return shr_signed(output); }
624
+ bool stream_out(int& output) { return shr_signed(output); }
625
+ bool stream_out(long int& output) { return shr_signed(output); }
634
626
  #if defined(BOOST_HAS_LONG_LONG)
635
- bool operator>>(boost::ulong_long_type& output) { return shr_unsigned(output); }
636
- bool operator>>(boost::long_long_type& output) { return shr_signed(output); }
627
+ bool stream_out(boost::ulong_long_type& output) { return shr_unsigned(output); }
628
+ bool stream_out(boost::long_long_type& output) { return shr_signed(output); }
637
629
  #elif defined(BOOST_HAS_MS_INT64)
638
- bool operator>>(unsigned __int64& output) { return shr_unsigned(output); }
639
- bool operator>>(__int64& output) { return shr_signed(output); }
630
+ bool stream_out(unsigned __int64& output) { return shr_unsigned(output); }
631
+ bool stream_out(__int64& output) { return shr_signed(output); }
640
632
  #endif
641
633
 
642
634
  #ifdef BOOST_HAS_INT128
643
- bool operator>>(boost::uint128_type& output) { return shr_unsigned(output); }
644
- bool operator>>(boost::int128_type& output) { return shr_signed(output); }
635
+ bool stream_out(boost::uint128_type& output) { return shr_unsigned(output); }
636
+ bool stream_out(boost::int128_type& output) { return shr_signed(output); }
645
637
  #endif
646
638
 
647
- bool operator>>(char& output) { return shr_xchar(output); }
648
- bool operator>>(unsigned char& output) { return shr_xchar(output); }
649
- bool operator>>(signed char& output) { return shr_xchar(output); }
639
+ bool stream_out(char& output) { return shr_xchar(output); }
640
+ bool stream_out(unsigned char& output) { return shr_xchar(output); }
641
+ bool stream_out(signed char& output) { return shr_xchar(output); }
650
642
  #if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
651
- bool operator>>(wchar_t& output) { return shr_xchar(output); }
643
+ bool stream_out(wchar_t& output) { return shr_xchar(output); }
652
644
  #endif
653
645
  #if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
654
- bool operator>>(char16_t& output) { return shr_xchar(output); }
646
+ bool stream_out(char16_t& output) { return shr_xchar(output); }
655
647
  #endif
656
648
  #if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
657
- bool operator>>(char32_t& output) { return shr_xchar(output); }
649
+ bool stream_out(char32_t& output) { return shr_xchar(output); }
658
650
  #endif
659
- template<class Alloc>
660
- bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) {
661
- str.assign(start, finish); return true;
662
- }
651
+ template<class CharTraits, class Alloc>
652
+ bool stream_out(std::basic_string<CharT,CharTraits,Alloc>& str) {
653
+ str.assign(start, finish); return true;
654
+ }
663
655
 
664
- template<class Alloc>
665
- bool operator>>(boost::container::basic_string<CharT,Traits,Alloc>& str) {
666
- str.assign(start, finish); return true;
667
- }
656
+ template<class CharTraits, class Alloc>
657
+ bool stream_out(boost::container::basic_string<CharT,CharTraits,Alloc>& str) {
658
+ str.assign(start, finish); return true;
659
+ }
668
660
 
669
- template <std::size_t N>
670
- bool operator>>(boost::array<CharT, N>& output) BOOST_NOEXCEPT {
671
- return shr_std_array<N>(output);
672
- }
661
+ template <class C, std::size_t N>
662
+ bool stream_out(std::array<C, N>& output) noexcept {
663
+ static_assert(sizeof(C) == sizeof(CharT), "");
664
+ return shr_std_array<N>(output);
665
+ }
673
666
 
674
- template <std::size_t N>
675
- bool operator>>(boost::array<unsigned char, N>& output) BOOST_NOEXCEPT {
676
- return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output));
677
- }
667
+ template <class C, std::size_t N>
668
+ bool stream_out(boost::array<C, N>& output) noexcept {
669
+ static_assert(sizeof(C) == sizeof(CharT), "");
670
+ return shr_std_array<N>(output);
671
+ }
678
672
 
679
- template <std::size_t N>
680
- bool operator>>(boost::array<signed char, N>& output) BOOST_NOEXCEPT {
681
- return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output));
682
- }
673
+ bool stream_out(bool& output) noexcept {
674
+ output = false; // Suppress warning about uninitalized variable
683
675
 
684
- #ifndef BOOST_NO_CXX11_HDR_ARRAY
685
- template <class C, std::size_t N>
686
- bool operator>>(std::array<C, N>& output) BOOST_NOEXCEPT {
687
- BOOST_STATIC_ASSERT_MSG(
688
- (sizeof(std::array<C, N>) == sizeof(boost::array<C, N>)),
689
- "std::array<C, N> and boost::array<C, N> must have exactly the same layout."
690
- );
691
- return ((*this) >> reinterpret_cast<boost::array<C, N>& >(output));
692
- }
693
- #endif
694
-
695
- bool operator>>(bool& output) BOOST_NOEXCEPT {
696
- output = false; // Suppress warning about uninitalized variable
697
-
698
- if (start == finish) return false;
699
- CharT const zero = lcast_char_constants<CharT>::zero;
700
- CharT const plus = lcast_char_constants<CharT>::plus;
701
- CharT const minus = lcast_char_constants<CharT>::minus;
702
-
703
- const CharT* const dec_finish = finish - 1;
704
- output = Traits::eq(*dec_finish, zero + 1);
705
- if (!output && !Traits::eq(*dec_finish, zero)) {
706
- return false; // Does not ends on '0' or '1'
707
- }
708
-
709
- if (start == dec_finish) return true;
710
-
711
- // We may have sign at the beginning
712
- if (Traits::eq(plus, *start) || (Traits::eq(minus, *start) && !output)) {
713
- ++ start;
714
- }
715
-
716
- // Skipping zeros
717
- while (start != dec_finish) {
718
- if (!Traits::eq(zero, *start)) {
719
- return false; // Not a zero => error
720
- }
676
+ if (start == finish) return false;
677
+ CharT const zero = lcast_char_constants<CharT>::zero;
678
+ CharT const plus = lcast_char_constants<CharT>::plus;
679
+ CharT const minus = lcast_char_constants<CharT>::minus;
721
680
 
722
- ++ start;
723
- }
724
-
725
- return true;
681
+ const CharT* const dec_finish = finish - 1;
682
+ output = Traits::eq(*dec_finish, zero + 1);
683
+ if (!output && !Traits::eq(*dec_finish, zero)) {
684
+ return false; // Does not ends on '0' or '1'
726
685
  }
727
686
 
728
- private:
729
- // Not optimised converter
730
- template <class T>
731
- bool float_types_converter_internal(T& output) {
732
- if (parse_inf_nan(start, finish, output)) return true;
733
- bool const return_value = shr_using_base_class(output);
734
-
735
- /* Some compilers and libraries successfully
736
- * parse 'inf', 'INFINITY', '1.0E', '1.0E-'...
737
- * We are trying to provide a unified behaviour,
738
- * so we just forbid such conversions (as some
739
- * of the most popular compilers/libraries do)
740
- * */
741
- CharT const minus = lcast_char_constants<CharT>::minus;
742
- CharT const plus = lcast_char_constants<CharT>::plus;
743
- CharT const capital_e = lcast_char_constants<CharT>::capital_e;
744
- CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
745
- if ( return_value &&
746
- (
747
- Traits::eq(*(finish-1), lowercase_e) // 1.0e
748
- || Traits::eq(*(finish-1), capital_e) // 1.0E
749
- || Traits::eq(*(finish-1), minus) // 1.0e- or 1.0E-
750
- || Traits::eq(*(finish-1), plus) // 1.0e+ or 1.0E+
751
- )
752
- ) return false;
753
-
754
- return return_value;
687
+ if (start == dec_finish) return true;
688
+
689
+ // We may have sign at the beginning
690
+ if (Traits::eq(plus, *start) || (Traits::eq(minus, *start) && !output)) {
691
+ ++ start;
755
692
  }
756
693
 
757
- public:
758
- bool operator>>(float& output) { return float_types_converter_internal(output); }
759
- bool operator>>(double& output) { return float_types_converter_internal(output); }
760
- bool operator>>(long double& output) { return float_types_converter_internal(output); }
694
+ // Skipping zeros
695
+ while (start != dec_finish) {
696
+ if (!Traits::eq(zero, *start)) {
697
+ return false; // Not a zero => error
698
+ }
761
699
 
762
- // Generic istream-based algorithm.
763
- // lcast_streambuf_for_target<InputStreamable>::value is true.
764
- template <typename InputStreamable>
765
- bool operator>>(InputStreamable& output) {
766
- return shr_using_base_class(output);
767
- }
768
- };
769
- }
770
- } // namespace boost
700
+ ++ start;
701
+ }
702
+
703
+ return true;
704
+ }
705
+
706
+ private:
707
+ // Not optimised converter
708
+ template <class T>
709
+ bool float_types_converter_internal(T& output) {
710
+ if (parse_inf_nan(start, finish, output)) return true;
711
+ bool const return_value = shr_using_base_class(output);
712
+
713
+ /* Some compilers and libraries successfully
714
+ * parse 'inf', 'INFINITY', '1.0E', '1.0E-'...
715
+ * We are trying to provide a unified behaviour,
716
+ * so we just forbid such conversions (as some
717
+ * of the most popular compilers/libraries do)
718
+ * */
719
+ CharT const minus = lcast_char_constants<CharT>::minus;
720
+ CharT const plus = lcast_char_constants<CharT>::plus;
721
+ CharT const capital_e = lcast_char_constants<CharT>::capital_e;
722
+ CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
723
+ if ( return_value &&
724
+ (
725
+ Traits::eq(*(finish-1), lowercase_e) // 1.0e
726
+ || Traits::eq(*(finish-1), capital_e) // 1.0E
727
+ || Traits::eq(*(finish-1), minus) // 1.0e- or 1.0E-
728
+ || Traits::eq(*(finish-1), plus) // 1.0e+ or 1.0E+
729
+ )
730
+ ) return false;
731
+
732
+ return return_value;
733
+ }
734
+
735
+ public:
736
+ bool stream_out(float& output) { return float_types_converter_internal(output); }
737
+ bool stream_out(double& output) { return float_types_converter_internal(output); }
738
+ bool stream_out(long double& output) { return float_types_converter_internal(output); }
739
+
740
+ // Generic istream-based algorithm.
741
+ // lcast_streambuf_for_target<InputStreamable>::value is true.
742
+ template <typename InputStreamable>
743
+ bool stream_out(InputStreamable& output) {
744
+ return shr_using_base_class(output);
745
+ }
746
+ };
747
+
748
+ }}} // namespace boost::detail::lcast
771
749
 
772
750
  #undef BOOST_LCAST_NO_WCHAR_T
773
751