passenger 6.0.8 → 6.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1905) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +288 -0
  3. data/CONTRIBUTORS +15 -0
  4. data/bin/passenger-install-nginx-module +2 -1
  5. data/bin/passenger-status +29 -4
  6. data/build/common_library.rb +2 -1
  7. data/build/integration_tests.rb +8 -7
  8. data/build/ruby_tests.rb +1 -1
  9. data/build/test_basics.rb +8 -5
  10. data/dev/copy_boost_headers +119 -71
  11. data/dev/index_cxx_dependencies.rb +1 -1
  12. data/dev/webpacketpp.patch +39 -0
  13. data/doc/templates/markdown.html.erb +2 -6
  14. data/package.json +20 -18
  15. data/resources/mime.types +1 -0
  16. data/resources/templates/error_renderer/with_details/dist/bundle.js +2 -33
  17. data/resources/templates/error_renderer/with_details/dist/styles.css +2 -2
  18. data/resources/templates/error_renderer/with_details/src/index.html.template +0 -2
  19. data/resources/templates/error_renderer/with_details/webpack.config.js +13 -16
  20. data/resources/templates/error_renderer/without_details/dist/bundle.js +0 -1
  21. data/resources/templates/error_renderer/without_details/dist/styles.css +1 -1
  22. data/resources/templates/error_renderer/without_details/webpack.config.js +13 -16
  23. data/resources/templates/standalone/server.erb +1 -0
  24. data/src/agent/Core/ApiServer.h +35 -0
  25. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  26. data/src/agent/Core/ApplicationPool/Options.h +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool.h +9 -1
  28. data/src/agent/Core/Config.h +2 -1
  29. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  30. data/src/agent/Core/Controller/Config.h +6 -2
  31. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  32. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  33. data/src/agent/Core/Controller.h +4 -1
  34. data/src/agent/Core/OptionParser.h +4 -0
  35. data/src/agent/Core/SecurityUpdateChecker.h +4 -4
  36. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +7 -0
  37. data/src/agent/Core/SpawningKit/Config.h +13 -0
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +4 -0
  39. data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
  40. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  41. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -0
  42. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +27 -1
  43. data/src/agent/Watchdog/Config.h +2 -1
  44. data/src/agent/Watchdog/WatchdogMain.cpp +4 -0
  45. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +32 -27
  46. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  47. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +19 -1
  48. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  49. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  50. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  51. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  52. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +19 -2
  53. data/src/apache2_module/Hooks.cpp +1 -0
  54. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +19 -19
  55. data/src/cxx_supportlib/BackgroundEventLoop.cpp +4 -0
  56. data/src/cxx_supportlib/Constants.h +1 -1
  57. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -0
  58. data/src/cxx_supportlib/FileDescriptor.h +8 -0
  59. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  60. data/src/cxx_supportlib/LoggingKit/Context.h +1 -1
  61. data/src/cxx_supportlib/SafeLibev.h +2 -0
  62. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +3 -0
  63. data/src/cxx_supportlib/ServerKit/http_parser.cpp +740 -430
  64. data/src/cxx_supportlib/ServerKit/http_parser.h +156 -34
  65. data/src/cxx_supportlib/StaticString.h +2 -0
  66. data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
  67. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +3 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +2 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_all.hpp +2 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
  71. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +825 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +299 -11
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +80 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +141 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +129 -21
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +240 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +103 -16
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +299 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +1209 -120
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +11 -2
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +306 -125
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +50 -28
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +831 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +1 -1
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +703 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +308 -127
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +637 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +130 -56
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +143 -50
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +120 -37
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +102 -49
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +461 -207
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +1 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +1 -1
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +756 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +229 -93
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +1 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +1 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +55 -33
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +633 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +751 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +754 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +230 -24
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +753 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +479 -66
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +330 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +43 -10
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +39 -10
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +43 -10
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +1 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +307 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +73 -21
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +415 -13
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +206 -75
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +85 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +139 -47
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +804 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +8 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +4 -1
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +276 -65
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +2 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +192 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +2 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +1 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +578 -81
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +38 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +3 -1
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +41 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +42 -2
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +41 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +40 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +36 -7
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +36 -7
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +42 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +3 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +2 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +7 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +1 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +2 -2
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +16 -12
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +22 -19
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +155 -28
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +367 -5
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +21 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +27 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +21 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +47 -8
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +10 -8
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +4 -2
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +207 -0
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +142 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +114 -0
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +916 -0
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +251 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +21 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +44 -6
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +8 -4
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{reactive_serial_port_service.ipp → posix_serial_port_service.ipp} +38 -19
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +16 -9
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +29 -19
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +25 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +25 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +67 -5
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +164 -6
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +147 -132
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +4 -4
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +24 -42
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +25 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +3 -33
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +29 -5
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +37 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +10 -6
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +7 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/{impl/defer.hpp → detail/initiate_defer.hpp} +52 -48
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/{impl/dispatch.hpp → detail/initiate_dispatch.hpp} +43 -57
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/{impl/post.hpp → detail/initiate_post.hpp} +52 -48
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +14 -8
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +197 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +192 -0
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +689 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +191 -0
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +187 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +263 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +117 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +86 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +321 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +287 -0
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +143 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +207 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +208 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +194 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +193 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +196 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +633 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +665 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +115 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +27 -1
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +37 -8
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +97 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -5
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +19 -4
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +17 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{reactive_serial_port_service.hpp → posix_serial_port_service.hpp} +30 -18
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +45 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +176 -26
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +35 -1
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +87 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +41 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +40 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +41 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +41 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +41 -1
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +40 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +127 -20
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +239 -30
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +35 -1
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +29 -5
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +5 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +45 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +4 -5
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +11 -2
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +4 -3
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +4 -3
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +9 -7
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +16 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +17 -8
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +51 -0
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +59 -6
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +5 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +67 -4
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +37 -45
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +12 -1
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +1 -1
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +2 -2
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -1
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +8 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +4 -5
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +5 -5
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +10 -1
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +5 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +102 -25
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +18 -9
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +7 -3
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +31 -2
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +5 -1
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +3 -1
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +3 -1
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +17 -1
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +85 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +1 -1
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +1 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +6 -2
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +15 -6
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +125 -44
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +30 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +126 -19
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +708 -249
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +1 -1
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +332 -83
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +263 -70
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +62 -50
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +324 -90
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +52 -44
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +73 -14
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +40 -9
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +5 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +1 -1
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +1 -1
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +80 -54
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +50 -26
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +1 -1
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +1 -1
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +1 -1
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +325 -82
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +73 -14
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +6 -1
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +249 -70
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +7 -3
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +6 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +1 -1
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +248 -70
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +26 -24
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +6 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +6 -1
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +19 -17
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +19 -17
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +25 -23
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +19 -17
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +34 -29
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -1
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +1 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +130 -50
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +38 -0
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +138 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +38 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +493 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +493 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +72 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +88 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +303 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +147 -0
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +189 -0
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +72 -0
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +295 -0
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +230 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +38 -0
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +82 -0
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +131 -0
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +286 -0
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +141 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +122 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +146 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +150 -0
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +679 -0
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +143 -0
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +56 -0
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +614 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +201 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +241 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +63 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1177 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1224 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +794 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +256 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +216 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +463 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +38 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +226 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +197 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +168 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +1 -1
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +143 -0
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +227 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +322 -0
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +785 -26
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +50 -50
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +50 -50
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +98 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +193 -50
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +170 -127
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +75 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +151 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +158 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +1 -1
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +1 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +1 -2
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +1 -1
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +6 -5
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +57 -47
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +2 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +1 -1
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +227 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +275 -201
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +141 -111
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +498 -378
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +302 -58
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1375 -285
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +13 -2
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +1 -1
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +1 -2
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +6 -2
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +5 -4
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +43 -21
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +28 -3
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +235 -186
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +117 -96
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +126 -122
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +15 -3
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +23 -1
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +98 -3
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +1 -1
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +1 -1
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +81 -6
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +11 -1
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +32 -5
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +180 -68
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +1 -1
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +1 -1
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +1 -1
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +1 -1
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +1 -1
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +2 -2
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +4 -2
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +4 -2
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +2 -2
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +1 -1
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +1 -1
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +2 -2
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +1 -1
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +47 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -8
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +86 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +1 -1
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +1 -1
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +111 -27
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +136 -37
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +139 -47
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +243 -165
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +80 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +85 -57
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +37 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +381 -189
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +154 -53
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +529 -226
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +37 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +140 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +3 -3
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +358 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +147 -100
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +105 -63
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +184 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +655 -93
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +4 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +24 -24
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +2 -2
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +9 -1
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -2
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +33 -1
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +7 -3
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +44 -24
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +2 -2
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +3 -3
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +53 -1
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +1 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +2 -2
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +154 -71
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +25 -3
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +227 -54
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -1
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +77 -30
  620. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +37 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +18 -9
  624. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +236 -1
  626. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +48 -14
  627. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  628. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +1 -1
  629. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +1 -1
  630. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +1 -1
  631. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +1 -1
  632. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +7 -3
  633. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +1 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +1 -1
  635. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +1 -1
  636. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +1 -1
  637. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +1 -1
  638. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +1 -1
  639. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +1 -1
  640. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +1 -1
  641. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +1 -1
  642. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +1 -1
  643. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +1 -1
  644. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +1 -1
  645. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +1 -1
  646. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +1 -1
  647. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +1 -1
  648. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +1 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +1 -1
  650. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +1 -1
  651. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +1 -1
  652. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +1 -1
  653. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +1 -1
  654. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +1 -1
  655. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +1 -1
  656. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +3 -2
  657. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +1 -1
  658. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +1 -1
  659. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  660. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  661. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  662. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  663. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  664. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +3 -11
  665. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  666. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  667. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  668. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +13 -15
  669. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +10 -7
  670. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  672. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +81 -23
  674. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +110 -11
  675. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +125 -36
  676. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +122 -35
  677. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +1 -1
  678. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +1 -1
  679. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +9 -9
  680. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +1 -1
  681. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +1 -1
  682. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +37 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +378 -186
  684. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +156 -53
  685. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  686. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +35 -1
  687. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +120 -21
  688. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +8 -15
  689. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  690. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +5 -1
  691. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +183 -64
  692. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +169 -67
  693. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +83 -12
  694. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +40 -11
  695. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +8 -1
  696. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +8 -1
  697. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +8 -1
  698. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +19 -10
  699. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +29 -60
  700. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +6 -6
  701. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +105 -100
  702. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  703. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +4 -4
  704. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  705. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +1 -1
  706. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +32 -32
  707. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +15 -15
  708. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +73 -72
  709. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +8 -1
  710. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +4 -0
  711. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
  712. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +25 -1
  713. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +15 -6
  714. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +3 -3
  715. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
  717. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
  718. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  719. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
  720. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +3 -1
  721. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +65 -0
  722. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
  723. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +55 -26
  724. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +8 -2
  725. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  726. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +14 -0
  727. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +9 -28
  728. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +18 -18
  729. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +18 -18
  730. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/is_same.hpp +36 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/requires_cxx11.hpp +22 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +165 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +3 -2
  734. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +12 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +53 -8
  736. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +40 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +1 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +4 -320
  739. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  741. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  742. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  743. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +9 -6
  744. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  745. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
  746. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  747. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
  748. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
  749. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +3 -3
  750. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  752. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  753. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  754. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +6 -6
  755. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  756. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +2 -2
  757. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +1 -1
  758. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +21 -0
  759. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +7 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +1 -1
  761. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +211 -0
  762. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +209 -0
  763. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +47 -0
  764. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +62 -0
  765. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +59 -0
  766. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx98.hpp +23 -0
  767. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +7 -6
  768. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +1 -0
  769. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +16 -3
  770. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +83 -0
  771. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +1 -0
  772. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +32 -11
  773. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  774. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +1 -0
  775. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +14 -6
  776. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +1 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +1 -0
  780. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +1 -0
  781. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +1 -0
  783. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +7 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +1 -0
  785. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +27 -3
  786. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +9 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +203 -0
  789. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +184 -3
  791. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  792. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  793. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +23 -0
  794. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +66 -6
  795. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +36 -1
  796. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +132 -7
  797. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +11 -0
  798. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +22 -8
  799. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +20 -12
  800. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +9 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -3
  802. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +237 -175
  803. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  804. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +14 -13
  805. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
  806. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +182 -135
  807. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +28 -0
  808. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  809. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +14 -10
  810. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +11 -3
  811. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  812. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +17 -15
  813. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +3 -3
  814. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +961 -151
  815. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +181 -57
  816. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +59 -59
  817. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +218 -143
  818. data/src/cxx_supportlib/vendor-modified/boost/container/detail/guards_dended.hpp +198 -0
  819. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +10 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +35 -0
  821. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +8 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -69
  824. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +14 -10
  825. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -23
  826. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +24 -3
  827. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +252 -119
  828. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  829. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
  830. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +19 -91
  831. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
  832. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +3 -7
  834. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  835. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  836. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +249 -342
  837. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +3 -0
  838. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +4 -14
  839. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +67 -10
  840. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2961 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +265 -180
  842. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +36 -35
  843. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +72 -100
  844. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +95 -89
  845. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +10 -3
  846. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +3 -3
  847. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +14 -12
  848. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +159 -9
  849. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +51 -0
  850. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +8 -3
  851. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +3 -3
  852. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +9 -9
  853. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  854. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -3
  855. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +3 -3
  856. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +0 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +32 -43
  858. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +83 -115
  859. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +134 -162
  860. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +159 -101
  861. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +81 -50
  862. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +413 -293
  863. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +140 -26
  864. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +512 -725
  865. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  866. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +410 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +156 -0
  868. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  869. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/requires_cxx11.hpp +22 -0
  870. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +486 -571
  871. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
  872. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +92 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +74 -0
  875. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +42 -0
  876. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  878. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +7 -81
  879. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +472 -285
  880. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
  881. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +936 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +20 -3
  883. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +298 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +19 -9
  886. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  890. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  891. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_win32_sleep.hpp +54 -0
  892. data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +54 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
  894. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +25 -16
  895. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
  896. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  897. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  898. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  899. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +55 -0
  900. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +67 -22
  901. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +8 -54
  902. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  903. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  904. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  905. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +3 -0
  906. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +1 -1
  907. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +111 -60
  908. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
  909. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +58 -15
  910. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  911. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  912. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  913. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +399 -0
  914. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +27 -8
  915. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1181 -0
  916. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  917. data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
  918. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  919. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +4 -0
  920. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  921. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  922. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_iterator.hpp +8 -8
  923. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  924. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  925. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  926. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  927. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +3 -3
  928. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  929. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  930. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
  931. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  933. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  934. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  937. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_iterator.hpp +8 -8
  938. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  939. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  940. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  941. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  942. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  943. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
  944. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  945. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
  946. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
  947. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +108 -62
  948. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +2 -1
  949. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +3 -3
  950. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +84 -2
  951. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -4
  952. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +1 -1
  953. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +3 -3
  954. data/src/cxx_supportlib/vendor-modified/boost/function/detail/epilogue.hpp +39 -0
  955. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +1 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/function/detail/requires_cxx11.hpp +22 -0
  957. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +37 -32
  958. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +24 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +2 -0
  960. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +2 -2
  961. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +2 -2
  962. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +1 -1
  963. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +1 -1
  964. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +86 -81
  965. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +2 -2
  966. data/src/cxx_supportlib/vendor-modified/boost/integer/mod_inverse.hpp +1 -1
  967. data/src/cxx_supportlib/vendor-modified/boost/integer/static_log2.hpp +2 -2
  968. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +2 -2
  969. data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +2 -2
  970. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +2 -2
  971. data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +2 -2
  972. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  973. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  974. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  975. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +63 -63
  976. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  977. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +101 -109
  978. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +134 -128
  979. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +35 -27
  980. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +88 -19
  981. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  982. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +30 -30
  983. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +10 -8
  984. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +14 -14
  985. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -40
  986. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +84 -15
  987. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  988. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +1 -1
  989. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
  990. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +0 -31
  991. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  992. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +92 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +182 -102
  994. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
  995. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +115 -69
  996. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +3 -3
  997. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +4 -4
  998. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +7 -55
  999. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +1 -1
  1000. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +4 -4
  1001. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  1002. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +18 -18
  1003. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
  1004. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +3 -1
  1005. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +12 -4
  1006. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +2 -2
  1007. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +2 -2
  1008. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +6 -6
  1009. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/twin.hpp +49 -0
  1010. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +52 -0
  1011. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +29 -3
  1012. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1668 -969
  1013. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +2 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +97 -17
  1015. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +97 -94
  1016. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  1017. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  1018. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +17 -3
  1019. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +12 -8
  1020. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  1021. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  1022. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +30 -22
  1023. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +9 -2
  1024. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  1025. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +51 -51
  1026. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  1027. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  1028. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  1029. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +58 -66
  1030. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +40 -40
  1031. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +152 -159
  1032. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  1033. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  1034. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  1035. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +59 -57
  1036. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  1037. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +37 -39
  1038. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  1039. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  1040. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +90 -83
  1041. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +17 -17
  1042. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +11 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +6 -6
  1044. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
  1045. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
  1046. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  1047. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  1049. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  1050. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
  1051. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -7
  1052. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +1 -1
  1053. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +40 -51
  1054. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -7
  1055. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +13 -16
  1056. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +1 -1
  1057. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +2 -2
  1058. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -11
  1059. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +1 -1
  1060. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +5 -5
  1061. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +20 -2
  1062. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +1 -1
  1063. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +13 -25
  1064. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +10 -121
  1065. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +5 -1
  1066. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +17 -22
  1067. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  1068. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +48 -36
  1069. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +91 -74
  1070. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +225 -163
  1071. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +1 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +21 -10
  1073. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +125 -209
  1075. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +24 -15
  1076. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
  1077. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +8 -2
  1079. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
  1080. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  1081. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  1082. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +21 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +32 -6
  1084. data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  1086. data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
  1087. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +12 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +109 -9
  1089. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +8 -32
  1090. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +268 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
  1092. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +5 -1
  1093. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +2 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +263 -51
  1095. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +0 -26
  1096. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +82 -3
  1097. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
  1098. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +17 -18
  1099. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  1100. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
  1101. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1327 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
  1103. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
  1104. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
  1105. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
  1106. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
  1107. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  1108. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +164 -0
  1109. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
  1110. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
  1111. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  1112. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
  1113. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  1114. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
  1115. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
  1116. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
  1117. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
  1118. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
  1119. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  1120. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
  1121. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
  1122. data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
  1123. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +112 -0
  1124. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +42 -0
  1125. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +472 -0
  1126. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
  1127. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
  1128. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
  1129. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
  1130. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -6
  1131. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
  1132. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/enum.hpp +12 -0
  1133. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/params.hpp +12 -0
  1134. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
  1135. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
  1136. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
  1137. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
  1138. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +2 -2
  1139. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
  1140. data/src/cxx_supportlib/vendor-modified/boost/mpl/string.hpp +6 -6
  1141. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  1142. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  1143. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +3 -4
  1144. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +3 -1
  1145. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
  1146. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/converter_policies.hpp +4 -5
  1147. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +1 -1
  1148. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  1149. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/meta.hpp +1 -1
  1150. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  1151. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  1152. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  1153. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +5 -5
  1154. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +1 -1
  1155. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +4 -4
  1156. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
  1157. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +10 -3
  1158. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  1159. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +37 -26
  1160. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +87 -26
  1161. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +3 -2
  1162. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +5 -5
  1163. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/default.hpp +11 -0
  1164. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/maybe.hpp +2 -2
  1165. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/name.hpp +1 -1
  1166. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/item.hpp +2 -2
  1167. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_arg_list.hpp +4 -4
  1168. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +4 -4
  1169. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  1170. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_cast.hpp +1 -1
  1171. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp +1 -1
  1172. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/specification.hpp +2 -2
  1173. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_binary.hpp +1 -1
  1174. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_nullary.hpp +1 -1
  1175. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  1176. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +1 -1
  1177. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +6 -6
  1178. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +12 -3
  1179. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +4 -4
  1180. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  1181. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  1182. data/src/cxx_supportlib/vendor-modified/boost/parameter/config.hpp +1 -1
  1183. data/src/cxx_supportlib/vendor-modified/boost/parameter/macros.hpp +1 -1
  1184. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +2 -2
  1185. data/src/cxx_supportlib/vendor-modified/boost/parameter/parameters.hpp +6 -6
  1186. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  1187. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  1188. data/src/cxx_supportlib/vendor-modified/boost/pool/object_pool.hpp +2 -2
  1189. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
  1190. data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +1 -1
  1191. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  1192. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +5 -0
  1193. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +10 -0
  1194. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +5 -0
  1195. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +5 -0
  1196. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/e2k.h +54 -0
  1197. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +5 -0
  1198. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
  1199. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +5 -0
  1200. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +10 -0
  1201. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +5 -0
  1202. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +55 -4
  1203. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +5 -0
  1204. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +5 -0
  1205. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/riscv.h +5 -0
  1206. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +10 -0
  1207. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +14 -2
  1208. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +13 -0
  1209. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +5 -0
  1210. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +5 -0
  1211. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +5 -0
  1212. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +7 -2
  1213. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +5 -0
  1214. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +2 -1
  1215. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +1 -1
  1216. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +2 -2
  1217. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +1 -1
  1218. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +1 -1
  1219. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  1220. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +1 -0
  1221. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +1 -0
  1222. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +1 -0
  1223. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +1 -0
  1224. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +1 -0
  1225. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +8 -10
  1226. data/src/cxx_supportlib/vendor-modified/boost/predef/other/wordsize.h +73 -0
  1227. data/src/cxx_supportlib/vendor-modified/boost/predef/other.h +3 -2
  1228. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +0 -1
  1229. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  1230. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/add.hpp +54 -1
  1231. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/dec.hpp +33 -0
  1232. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_1_number.hpp +21 -0
  1233. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_maximum_number.hpp +22 -0
  1234. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_minimum_number.hpp +21 -0
  1235. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/maximum_number.hpp +19 -0
  1236. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/div.hpp +37 -1
  1237. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/inc.hpp +33 -0
  1238. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_1024.hpp +531 -0
  1239. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_256.hpp +276 -0
  1240. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_512.hpp +275 -0
  1241. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_1024.hpp +536 -0
  1242. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_256.hpp +275 -0
  1243. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_512.hpp +280 -0
  1244. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mod.hpp +37 -1
  1245. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mul.hpp +60 -1
  1246. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/sub.hpp +51 -1
  1247. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +1 -1
  1248. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/enum.hpp +17 -1
  1249. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/insert.hpp +71 -0
  1250. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/remove.hpp +66 -0
  1251. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/replace.hpp +58 -0
  1252. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_1024.hpp +1044 -0
  1253. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_256.hpp +793 -0
  1254. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_512.hpp +532 -0
  1255. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/not_equal.hpp +44 -1
  1256. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +16 -33
  1257. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/limits.hpp +136 -3
  1258. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/deduce_d.hpp +27 -0
  1259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/dmc/while.hpp +2 -3
  1260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_1024.hpp +1044 -0
  1261. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_256.hpp +533 -0
  1262. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_512.hpp +532 -0
  1263. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/while.hpp +27 -0
  1264. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_1024.hpp +1044 -0
  1265. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_256.hpp +533 -0
  1266. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_512.hpp +532 -0
  1267. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/while.hpp +27 -0
  1268. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_1024.hpp +531 -0
  1269. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_256.hpp +275 -0
  1270. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_512.hpp +275 -0
  1271. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/while.hpp +75 -0
  1272. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/auto_rec.hpp +41 -0
  1273. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/dmc/auto_rec.hpp +2 -2
  1274. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_1024.hpp +532 -0
  1275. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_256.hpp +280 -0
  1276. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_512.hpp +276 -0
  1277. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/intercept.hpp +29 -0
  1278. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty.hpp +0 -37
  1279. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +0 -4
  1280. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_1024.hpp +530 -0
  1281. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_256.hpp +273 -0
  1282. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_512.hpp +274 -0
  1283. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/overload.hpp +1 -3
  1284. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward1.hpp +27 -0
  1285. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward2.hpp +27 -0
  1286. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward3.hpp +27 -0
  1287. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward4.hpp +27 -0
  1288. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward5.hpp +27 -0
  1289. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_1024.hpp +2573 -0
  1290. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_256.hpp +1296 -0
  1291. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_512.hpp +1293 -0
  1292. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_1024.hpp +2573 -0
  1293. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_256.hpp +1296 -0
  1294. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_512.hpp +1293 -0
  1295. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_1024.hpp +2573 -0
  1296. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_256.hpp +1296 -0
  1297. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_512.hpp +1293 -0
  1298. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_1024.hpp +2573 -0
  1299. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_256.hpp +1296 -0
  1300. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_512.hpp +1293 -0
  1301. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_1024.hpp +2573 -0
  1302. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_256.hpp +1296 -0
  1303. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_512.hpp +1293 -0
  1304. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_1024.hpp +2571 -0
  1305. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_256.hpp +1296 -0
  1306. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_512.hpp +1291 -0
  1307. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_1024.hpp +2571 -0
  1308. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_256.hpp +1296 -0
  1309. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_512.hpp +1293 -0
  1310. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_1024.hpp +2571 -0
  1311. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_256.hpp +1296 -0
  1312. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_512.hpp +1293 -0
  1313. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_1024.hpp +2571 -0
  1314. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_256.hpp +1296 -0
  1315. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_512.hpp +1293 -0
  1316. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_1024.hpp +2571 -0
  1317. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_256.hpp +1296 -0
  1318. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_512.hpp +1293 -0
  1319. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse1.hpp +25 -0
  1320. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse2.hpp +25 -0
  1321. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse3.hpp +25 -0
  1322. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse4.hpp +25 -0
  1323. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse5.hpp +25 -0
  1324. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_1024.hpp +1549 -0
  1325. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_256.hpp +782 -0
  1326. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_512.hpp +781 -0
  1327. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_1024.hpp +1549 -0
  1328. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_256.hpp +782 -0
  1329. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_512.hpp +781 -0
  1330. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/local.hpp +27 -0
  1331. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/rlocal.hpp +25 -0
  1332. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/dmc/fold_left.hpp +3 -2
  1333. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_left.hpp +28 -0
  1334. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_right.hpp +29 -0
  1335. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_1024.hpp +1044 -0
  1336. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_256.hpp +533 -0
  1337. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_512.hpp +532 -0
  1338. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_1024.hpp +1557 -0
  1339. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_256.hpp +791 -0
  1340. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_512.hpp +789 -0
  1341. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_left.hpp +28 -0
  1342. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_right.hpp +26 -0
  1343. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_1024.hpp +532 -0
  1344. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_256.hpp +275 -0
  1345. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_512.hpp +276 -0
  1346. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_1024.hpp +532 -0
  1347. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_256.hpp +275 -0
  1348. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_512.hpp +276 -0
  1349. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/enum.hpp +13 -1
  1350. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_left.hpp +60 -0
  1351. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_right.hpp +44 -0
  1352. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/for_each_product.hpp +25 -6
  1353. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_1024.hpp +531 -0
  1354. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_256.hpp +275 -0
  1355. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_512.hpp +275 -0
  1356. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/reverse.hpp +35 -0
  1357. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/size.hpp +56 -1
  1358. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +5 -72
  1359. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/bool.hpp +22 -0
  1360. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_1024.hpp +531 -0
  1361. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_256.hpp +275 -0
  1362. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_512.hpp +275 -0
  1363. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/is_begin_parens.hpp +1 -5
  1364. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/remove_parens.hpp +0 -4
  1365. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/deduce_r.hpp +27 -0
  1366. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/dmc/for.hpp +3 -2
  1367. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/for.hpp +26 -0
  1368. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_1024.hpp +1044 -0
  1369. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_256.hpp +533 -0
  1370. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_512.hpp +532 -0
  1371. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/for.hpp +28 -0
  1372. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_1024.hpp +1044 -0
  1373. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_256.hpp +533 -0
  1374. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_512.hpp +532 -0
  1375. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/msvc/for.hpp +1 -0
  1376. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +114 -0
  1377. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_1024.hpp +531 -0
  1378. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_256.hpp +275 -0
  1379. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_512.hpp +275 -0
  1380. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_1024.hpp +1557 -0
  1381. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_256.hpp +791 -0
  1382. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_512.hpp +789 -0
  1383. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat.hpp +22 -0
  1384. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat_from_to.hpp +27 -0
  1385. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +6 -11
  1386. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_1024.hpp +530 -0
  1387. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_256.hpp +272 -0
  1388. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_512.hpp +274 -0
  1389. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/split.hpp +23 -0
  1390. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/elem.hpp +23 -0
  1391. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/enum.hpp +23 -0
  1392. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_left.hpp +52 -0
  1393. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_right.hpp +37 -0
  1394. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_1024.hpp +530 -0
  1395. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_256.hpp +272 -0
  1396. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_512.hpp +274 -0
  1397. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_1024.hpp +530 -0
  1398. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_256.hpp +272 -0
  1399. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_512.hpp +274 -0
  1400. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_1024.hpp +1556 -0
  1401. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_256.hpp +1053 -0
  1402. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_512.hpp +788 -0
  1403. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_1024.hpp +530 -0
  1404. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_256.hpp +273 -0
  1405. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_512.hpp +274 -0
  1406. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_1024.hpp +1043 -0
  1407. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_256.hpp +532 -0
  1408. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_512.hpp +531 -0
  1409. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +9 -3
  1410. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/size.hpp +23 -0
  1411. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/variadic_seq_to_seq.hpp +0 -2
  1412. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +0 -4
  1413. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +2 -2
  1414. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/eat.hpp +4 -18
  1415. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +11 -157
  1416. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +0 -5
  1417. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_128.hpp +403 -0
  1418. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_256.hpp +1171 -0
  1419. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_64.hpp +83 -0
  1420. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_128.hpp +595 -0
  1421. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_256.hpp +1747 -0
  1422. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_64.hpp +83 -0
  1423. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_128.hpp +403 -0
  1424. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +1171 -0
  1425. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_64.hpp +84 -0
  1426. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +0 -5
  1427. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +0 -5
  1428. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +0 -5
  1429. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +0 -6
  1430. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +17 -39
  1431. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +0 -5
  1432. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +0 -5
  1433. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +38 -25
  1434. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/size.hpp +13 -6
  1435. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_array.hpp +15 -12
  1436. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +37 -25
  1437. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +38 -24
  1438. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/has_opt.hpp +1 -1
  1439. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +2 -2
  1440. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/elem.hpp +93 -71
  1441. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +7 -3
  1442. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_128.hpp +275 -0
  1443. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_256.hpp +723 -0
  1444. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_64.hpp +81 -0
  1445. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_128.hpp +47 -0
  1446. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_256.hpp +53 -0
  1447. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_64.hpp +23 -0
  1448. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/size.hpp +39 -4
  1449. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_array.hpp +15 -9
  1450. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_list.hpp +9 -2
  1451. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_seq.hpp +1 -3
  1452. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_tuple.hpp +1 -3
  1453. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +0 -4
  1454. data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +2 -2
  1455. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +29 -5
  1456. data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +3 -4
  1457. data/src/cxx_supportlib/vendor-modified/boost/random/detail/mixmax_skip_N17.ipp +287 -0
  1458. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +1 -0
  1459. data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +1 -1
  1460. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +5 -5
  1461. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +9 -11
  1462. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +13 -14
  1463. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +1 -0
  1464. data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +2 -2
  1465. data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +2 -3
  1466. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +3 -3
  1467. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +3 -3
  1468. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +2 -3
  1469. data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +4 -4
  1470. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -7
  1471. data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +3 -3
  1472. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +2 -2
  1473. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +313 -0
  1474. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +2 -2
  1475. data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +2 -2
  1476. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +2 -2
  1477. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +3 -2
  1478. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +4 -4
  1479. data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +3 -3
  1480. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +7 -7
  1481. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -3
  1482. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +4 -5
  1483. data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +4 -2
  1484. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  1485. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +7 -2
  1486. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/requires_cxx11.hpp +22 -0
  1487. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +1 -1
  1488. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +7 -7
  1489. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +79 -74
  1490. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +97 -113
  1491. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +4 -75
  1492. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +4 -147
  1493. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +8 -761
  1494. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +4 -0
  1495. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +2 -0
  1496. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +8 -9
  1497. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +20 -19
  1498. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +23 -13
  1499. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +342 -42
  1500. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +107 -24
  1501. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -117
  1502. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1516 -0
  1503. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +5 -5
  1504. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +8 -8
  1505. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +39 -1
  1506. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +171 -0
  1507. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +128 -0
  1508. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +13 -4
  1509. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +1 -1
  1510. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +40 -41
  1511. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +6 -6
  1512. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +1 -1
  1513. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +3 -1
  1514. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -36
  1515. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +3 -3
  1516. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +35 -4
  1517. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +2 -0
  1518. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +638 -22
  1519. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  1520. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +1 -1
  1521. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +871 -0
  1522. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +521 -37
  1523. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +734 -0
  1524. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +1576 -0
  1525. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3130 -0
  1526. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +474 -0
  1527. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +59 -0
  1528. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +1040 -0
  1529. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +195 -0
  1530. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +59 -0
  1531. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +1402 -0
  1532. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +84 -0
  1533. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +32 -0
  1534. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +156 -0
  1535. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +667 -0
  1536. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +173 -0
  1537. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +160 -0
  1538. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +106 -0
  1539. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +576 -0
  1540. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +921 -0
  1541. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +1874 -0
  1542. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/primary_transform.hpp +120 -0
  1543. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +158 -0
  1544. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +106 -0
  1545. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +1124 -0
  1546. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +73 -0
  1547. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +98 -0
  1548. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +173 -0
  1549. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +92 -0
  1550. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +71 -0
  1551. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +213 -0
  1552. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +77 -0
  1553. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +103 -0
  1554. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +152 -0
  1555. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +255 -0
  1556. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +130 -0
  1557. data/src/cxx_supportlib/vendor-modified/boost/{libs/regex/src/regex_traits_defaults.cpp → regex/v5/regex_traits_defaults.hpp} +719 -415
  1558. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +159 -0
  1559. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +299 -0
  1560. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +382 -0
  1561. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +105 -0
  1562. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +177 -0
  1563. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +312 -0
  1564. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +862 -0
  1565. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +1311 -0
  1566. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +4 -0
  1567. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +4 -0
  1568. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1 -0
  1569. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +23 -0
  1570. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -2
  1571. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +4 -2
  1572. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  1573. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +23 -3
  1574. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  1575. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  1576. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +1 -0
  1577. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +3 -1
  1578. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -0
  1579. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +1 -0
  1580. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -0
  1581. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
  1582. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
  1583. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +3 -1
  1584. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +63 -7
  1585. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +1 -0
  1586. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +3 -2
  1587. data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
  1588. data/src/cxx_supportlib/vendor-modified/boost/system/detail/cerrno.hpp +329 -0
  1589. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +51 -12
  1590. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +32 -0
  1591. data/src/cxx_supportlib/vendor-modified/boost/system/detail/errc.hpp +126 -0
  1592. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +227 -0
  1593. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +190 -0
  1594. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +732 -0
  1595. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +349 -0
  1596. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +80 -58
  1597. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +108 -0
  1598. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  1599. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  1600. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +121 -0
  1601. data/src/cxx_supportlib/vendor-modified/boost/system/detail/requires_cxx11.hpp +21 -0
  1602. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +73 -0
  1603. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +88 -0
  1604. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
  1605. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +110 -0
  1606. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +61 -0
  1607. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
  1608. data/src/cxx_supportlib/vendor-modified/boost/system/detail/throws.hpp +59 -0
  1609. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +57 -0
  1610. data/src/cxx_supportlib/vendor-modified/boost/system/error_category.hpp +13 -0
  1611. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +7 -958
  1612. data/src/cxx_supportlib/vendor-modified/boost/system/error_condition.hpp +13 -0
  1613. data/src/cxx_supportlib/vendor-modified/boost/system/generic_category.hpp +13 -0
  1614. data/src/cxx_supportlib/vendor-modified/boost/system/is_error_code_enum.hpp +30 -0
  1615. data/src/cxx_supportlib/vendor-modified/boost/system/is_error_condition_enum.hpp +30 -0
  1616. data/src/cxx_supportlib/vendor-modified/boost/system/system_category.hpp +14 -0
  1617. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
  1618. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +1 -1
  1619. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +26 -0
  1620. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +1 -1
  1621. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
  1622. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
  1623. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +141 -45
  1624. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -2
  1625. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +22 -21
  1626. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +4 -1
  1627. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +247 -168
  1628. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  1629. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +27 -27
  1630. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +1 -1
  1631. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  1632. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +27 -27
  1633. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +242 -217
  1634. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  1635. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  1636. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +2 -1
  1637. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +1 -1
  1638. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +1 -1
  1639. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +1 -1
  1640. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  1641. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +1 -1
  1642. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1643. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1644. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_trivially_copyable.hpp +4 -0
  1645. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
  1646. data/src/cxx_supportlib/vendor-modified/boost/typeof/detail/requires_cxx11.hpp +18 -0
  1647. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +3 -3
  1648. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +2 -2
  1649. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -1
  1650. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +6 -1
  1651. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +1 -1
  1652. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +1 -1
  1653. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +1 -1
  1654. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +5 -4
  1655. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +1 -1
  1656. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +818 -0
  1657. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +54 -0
  1658. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +849 -0
  1659. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1324 -0
  1660. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2119 -0
  1661. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +60 -0
  1662. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +73 -0
  1663. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +44 -0
  1664. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1665. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +210 -0
  1666. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +132 -0
  1667. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +95 -0
  1668. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1669. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1670. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +556 -0
  1671. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +52 -0
  1672. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +88 -1
  1673. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1645 -2992
  1674. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +8 -14
  1675. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1676. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1677. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +263 -0
  1678. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/requires_cxx11.hpp +21 -0
  1679. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -13
  1680. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +122 -0
  1681. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  1682. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
  1683. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +781 -0
  1684. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +48 -0
  1685. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +592 -0
  1686. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +48 -0
  1687. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +666 -227
  1688. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +10 -2
  1689. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +884 -0
  1690. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +48 -0
  1691. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +688 -0
  1692. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +48 -0
  1693. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +387 -112
  1694. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +10 -2
  1695. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
  1696. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
  1697. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  1698. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
  1699. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +33 -11
  1700. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +6 -2
  1701. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +27 -4
  1702. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
  1703. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +5 -1
  1704. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1705. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
  1706. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/functional.hpp +2 -7
  1707. data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/md5.hpp +1 -1
  1708. data/src/helper-scripts/wsgi-loader.py +34 -17
  1709. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +16 -0
  1710. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +12 -0
  1711. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +24 -0
  1712. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +10 -0
  1713. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +39 -0
  1714. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +26 -0
  1715. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  1716. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +8 -0
  1717. data/src/nginx_module/ngx_http_passenger_module.c +1 -0
  1718. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
  1719. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
  1720. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
  1721. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
  1722. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
  1723. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
  1724. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
  1725. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
  1726. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
  1727. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
  1728. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
  1729. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
  1730. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
  1731. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
  1732. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
  1733. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
  1734. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
  1735. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
  1736. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
  1737. data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
  1738. data/src/ruby_native_extension/extconf.rb +1 -1
  1739. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  1740. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +6 -0
  1741. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
  1742. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +16 -12
  1743. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +7 -2
  1744. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +11 -2
  1745. data/src/ruby_supportlib/phusion_passenger/native_support.rb +4 -2
  1746. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +12 -0
  1747. data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -1
  1748. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +6 -3
  1749. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +23 -19
  1750. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +3 -0
  1751. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
  1752. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -2
  1753. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -1
  1754. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +5 -0
  1755. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +47 -28
  1756. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +65 -0
  1757. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +2 -2
  1758. data/src/ruby_supportlib/phusion_passenger/public_api.rb +3 -0
  1759. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +12 -1
  1760. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +18 -18
  1761. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  1762. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +5 -0
  1763. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +7 -1
  1764. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -0
  1765. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +28 -17
  1766. data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -0
  1767. data/src/ruby_supportlib/phusion_passenger.rb +7 -7
  1768. metadata +577 -150
  1769. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
  1770. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -637
  1771. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +0 -25
  1772. data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +0 -60
  1773. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
  1774. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  1775. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  1776. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  1777. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -363
  1778. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
  1779. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +0 -206
  1780. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cpp_regex_traits.cpp +0 -117
  1781. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +0 -667
  1782. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/instances.cpp +0 -32
  1783. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_raw_buffer.cpp +0 -72
  1784. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +0 -314
  1785. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/winstances.cpp +0 -35
  1786. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +0 -1038
  1787. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +0 -581
  1788. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/round_fwd.hpp +0 -93
  1789. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +0 -640
  1790. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +0 -1712
  1791. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +0 -194
  1792. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +0 -489
  1793. data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +0 -182
  1794. data/src/cxx_supportlib/vendor-modified/boost/math/tools/real_cast.hpp +0 -31
  1795. data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +0 -105
  1796. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
  1797. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -557
  1798. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +0 -236
  1799. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1800. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +0 -182
  1801. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +0 -132
  1802. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp.orig +0 -841
  1803. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp.orig +0 -54
  1804. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1805. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1806. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1807. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
  1808. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
  1809. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
  1810. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
  1811. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
  1812. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/COPYING +0 -0
  1813. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/changelog.md +0 -0
  1814. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/readme.md +0 -0
  1815. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/base64/base64.hpp +0 -0
  1816. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/client.hpp +0 -0
  1817. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/close.hpp +0 -0
  1818. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio.hpp +0 -0
  1819. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio_ssl.hpp +0 -0
  1820. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/chrono.hpp +0 -0
  1821. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/connection_hdl.hpp +0 -0
  1822. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/cpp11.hpp +0 -0
  1823. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/memory.hpp +0 -0
  1824. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/network.hpp +0 -0
  1825. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/platforms.hpp +0 -0
  1826. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/random.hpp +0 -0
  1827. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/regex.hpp +0 -0
  1828. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/stdint.hpp +0 -0
  1829. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/system_error.hpp +0 -0
  1830. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/thread.hpp +0 -0
  1831. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/time.hpp +0 -0
  1832. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/type_traits.hpp +0 -0
  1833. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/basic.hpp +0 -0
  1834. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/none.hpp +0 -0
  1835. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio.hpp +0 -0
  1836. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_client.hpp +0 -0
  1837. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -0
  1838. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -0
  1839. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/boost_config.hpp +0 -0
  1840. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core.hpp +0 -0
  1841. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core_client.hpp +0 -0
  1842. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug.hpp +0 -0
  1843. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio.hpp +0 -0
  1844. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -0
  1845. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_client.hpp +0 -0
  1846. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_server.hpp +0 -0
  1847. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection.hpp +0 -0
  1848. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection_base.hpp +0 -0
  1849. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint.hpp +0 -0
  1850. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint_base.hpp +0 -0
  1851. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/error.hpp +0 -0
  1852. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/extension.hpp +0 -0
  1853. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -0
  1854. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -0
  1855. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/frame.hpp +0 -0
  1856. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/constants.hpp +0 -0
  1857. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/parser.hpp +0 -0
  1858. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/request.hpp +0 -0
  1859. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/response.hpp +0 -0
  1860. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/parser.hpp +0 -0
  1861. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/request.hpp +0 -0
  1862. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/response.hpp +0 -0
  1863. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/connection_impl.hpp +0 -0
  1864. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -0
  1865. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -0
  1866. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/basic.hpp +0 -0
  1867. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/levels.hpp +0 -0
  1868. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/stub.hpp +0 -0
  1869. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/syslog.hpp +0 -0
  1870. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -0
  1871. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/message.hpp +0 -0
  1872. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/pool.hpp +0 -0
  1873. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/base.hpp +0 -0
  1874. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi00.hpp +0 -0
  1875. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi07.hpp +0 -0
  1876. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi08.hpp +0 -0
  1877. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi13.hpp +0 -0
  1878. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/processor.hpp +0 -0
  1879. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/none.hpp +0 -0
  1880. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/random_device.hpp +0 -0
  1881. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -0
  1882. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -0
  1883. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/server.hpp +0 -0
  1884. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/sha1/sha1.hpp +0 -0
  1885. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/base.hpp +0 -0
  1886. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/connection.hpp +0 -0
  1887. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -0
  1888. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -0
  1889. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -0
  1890. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -0
  1891. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/connection.hpp +0 -0
  1892. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -0
  1893. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/base.hpp +0 -0
  1894. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/connection.hpp +0 -0
  1895. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -0
  1896. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/base.hpp +0 -0
  1897. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -0
  1898. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -0
  1899. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/base.hpp +0 -0
  1900. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/connection.hpp +0 -0
  1901. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -0
  1902. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/uri.hpp +0 -0
  1903. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utf8_validator.hpp +0 -0
  1904. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utilities.hpp +0 -0
  1905. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/version.hpp +0 -0
@@ -38,22 +38,21 @@
38
38
  #include <boost/move/detail/to_raw_pointer.hpp>
39
39
  #include <boost/container/detail/version_type.hpp>
40
40
  #include <boost/container/detail/type_traits.hpp>
41
- #include <boost/container/detail/minimal_char_traits_header.hpp>
42
41
  #include <boost/container/detail/algorithm.hpp>
43
-
42
+ #include <boost/container/detail/minimal_char_traits_header.hpp> // for char_traits
43
+ //intrusive
44
44
  #include <boost/intrusive/pointer_traits.hpp>
45
-
45
+ #include <boost/intrusive/detail/hash_combine.hpp>
46
+ #include <boost/move/detail/force_ptr.hpp>
47
+ //move
46
48
  #include <boost/move/utility_core.hpp>
47
49
  #include <boost/move/adl_move_swap.hpp>
48
50
  #include <boost/move/traits.hpp>
49
51
 
50
52
  #include <boost/static_assert.hpp>
51
- #include <boost/core/no_exceptions_support.hpp>
52
- #include <boost/functional/hash.hpp>
53
53
 
54
- #include <algorithm>
55
- #include <iosfwd>
56
- #include <istream>
54
+ #include <iosfwd>
55
+ #include <istream> //
57
56
  #include <ostream>
58
57
  #include <ios>
59
58
  #include <locale>
@@ -65,6 +64,12 @@
65
64
  #include <initializer_list> //for std::initializer_list
66
65
  #endif
67
66
 
67
+ //GCC 12 has a regression for array-bounds warnings
68
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_GCC < 130000)
69
+ #pragma GCC diagnostic push
70
+ #pragma GCC diagnostic ignored "-Warray-bounds"
71
+ #endif
72
+
68
73
 
69
74
  namespace boost {
70
75
  namespace container {
@@ -89,38 +94,40 @@ class basic_string_base
89
94
 
90
95
  typedef Allocator allocator_type;
91
96
  public:
92
- typedef allocator_traits<allocator_type> allocator_traits_type;
93
- typedef allocator_type stored_allocator_type;
94
- typedef typename allocator_traits_type::pointer pointer;
95
- typedef typename allocator_traits_type::value_type value_type;
96
- typedef typename allocator_traits_type::size_type size_type;
97
+ typedef allocator_traits<allocator_type> allocator_traits_type;
98
+ typedef allocator_type stored_allocator_type;
99
+ typedef typename allocator_traits_type::pointer pointer;
100
+ typedef typename allocator_traits_type::value_type value_type;
101
+ typedef typename allocator_traits_type::size_type size_type;
102
+ typedef typename allocator_traits_type::difference_type difference_type;
103
+
97
104
  typedef ::boost::intrusive::pointer_traits<pointer> pointer_traits;
98
105
 
99
- basic_string_base()
106
+ BOOST_CONTAINER_FORCEINLINE basic_string_base()
100
107
  : members_()
101
108
  {}
102
109
 
103
- explicit basic_string_base(const allocator_type& a)
110
+ BOOST_CONTAINER_FORCEINLINE explicit basic_string_base(const allocator_type& a)
104
111
  : members_(a)
105
112
  {}
106
113
 
107
- explicit basic_string_base(BOOST_RV_REF(allocator_type) a)
114
+ BOOST_CONTAINER_FORCEINLINE explicit basic_string_base(BOOST_RV_REF(allocator_type) a)
108
115
  : members_(boost::move(a))
109
116
  {}
110
117
 
111
- basic_string_base(const allocator_type& a, size_type n)
118
+ BOOST_CONTAINER_FORCEINLINE basic_string_base(const allocator_type& a, size_type n)
112
119
  : members_(a)
113
120
  {
114
121
  this->allocate_initial_block(n);
115
122
  }
116
123
 
117
- explicit basic_string_base(size_type n)
124
+ BOOST_CONTAINER_FORCEINLINE explicit basic_string_base(size_type n)
118
125
  : members_()
119
126
  {
120
127
  this->allocate_initial_block(n);
121
128
  }
122
129
 
123
- ~basic_string_base()
130
+ BOOST_CONTAINER_FORCEINLINE ~basic_string_base()
124
131
  {
125
132
  if(!this->is_short()){
126
133
  this->deallocate(this->priv_long_addr(), this->priv_long_storage());
@@ -129,6 +136,11 @@ class basic_string_base
129
136
 
130
137
  private:
131
138
 
139
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
140
+ #pragma GCC diagnostic push
141
+ #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
142
+ #endif
143
+
132
144
  //This is the structure controlling a long string
133
145
  struct long_t
134
146
  {
@@ -137,15 +149,15 @@ class basic_string_base
137
149
  size_type storage;
138
150
  pointer start;
139
151
 
140
- long_t()
152
+ BOOST_CONTAINER_FORCEINLINE long_t()
141
153
  : is_short(0)
142
154
  {}
143
155
 
144
- long_t(size_type len, size_type stor, pointer ptr)
156
+ BOOST_CONTAINER_FORCEINLINE long_t(size_type len, size_type stor, pointer ptr)
145
157
  : is_short(0), length(len), storage(stor), start(ptr)
146
158
  {}
147
159
 
148
- long_t(const long_t &other)
160
+ BOOST_CONTAINER_FORCEINLINE long_t(const long_t &other)
149
161
  {
150
162
  this->is_short = false;
151
163
  length = other.length;
@@ -153,7 +165,7 @@ class basic_string_base
153
165
  start = other.start;
154
166
  }
155
167
 
156
- long_t &operator= (const long_t &other)
168
+ BOOST_CONTAINER_FORCEINLINE long_t &operator= (const long_t &other)
157
169
  {
158
170
  length = other.length;
159
171
  storage = other.storage;
@@ -162,6 +174,11 @@ class basic_string_base
162
174
  }
163
175
  };
164
176
 
177
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
178
+ #pragma GCC diagnostic pop
179
+ #endif
180
+
181
+
165
182
  //This type is the first part of the structure controlling a short string
166
183
  //The "data" member stores
167
184
  struct short_header
@@ -209,41 +226,41 @@ class basic_string_base
209
226
  struct members_holder
210
227
  : public allocator_type
211
228
  {
212
- void init()
229
+ BOOST_CONTAINER_FORCEINLINE void init()
213
230
  {
214
231
  short_t &s = *::new(this->m_repr.data) short_t;
215
232
  s.h.is_short = 1;
216
233
  s.h.length = 0;
217
234
  }
218
235
 
219
- members_holder()
236
+ BOOST_CONTAINER_FORCEINLINE members_holder()
220
237
  : allocator_type()
221
238
  { this->init(); }
222
239
 
223
240
  template<class AllocatorConvertible>
224
- explicit members_holder(BOOST_FWD_REF(AllocatorConvertible) a)
241
+ BOOST_CONTAINER_FORCEINLINE explicit members_holder(BOOST_FWD_REF(AllocatorConvertible) a)
225
242
  : allocator_type(boost::forward<AllocatorConvertible>(a))
226
243
  { this->init(); }
227
244
 
228
- const short_t *pshort_repr() const
229
- { return reinterpret_cast<const short_t*>(m_repr.data); }
245
+ BOOST_CONTAINER_FORCEINLINE const short_t *pshort_repr() const
246
+ { return move_detail::force_ptr<const short_t*>(m_repr.data); }
230
247
 
231
- const long_t *plong_repr() const
232
- { return reinterpret_cast<const long_t*>(m_repr.data); }
248
+ BOOST_CONTAINER_FORCEINLINE const long_t *plong_repr() const
249
+ { return move_detail::force_ptr<const long_t*>(m_repr.data); }
233
250
 
234
- short_t *pshort_repr()
235
- { return reinterpret_cast<short_t*>(m_repr.data); }
251
+ BOOST_CONTAINER_FORCEINLINE short_t *pshort_repr()
252
+ { return move_detail::force_ptr<short_t*>(m_repr.data); }
236
253
 
237
- long_t *plong_repr()
238
- { return reinterpret_cast<long_t*>(m_repr.data); }
254
+ BOOST_CONTAINER_FORCEINLINE long_t *plong_repr()
255
+ { return move_detail::force_ptr<long_t*>(m_repr.data); }
239
256
 
240
257
  repr_t m_repr;
241
258
  } members_;
242
259
 
243
- const allocator_type &alloc() const
260
+ BOOST_CONTAINER_FORCEINLINE const allocator_type &alloc() const
244
261
  { return members_; }
245
262
 
246
- allocator_type &alloc()
263
+ BOOST_CONTAINER_FORCEINLINE allocator_type &alloc()
247
264
  { return members_; }
248
265
 
249
266
  static const size_type InternalBufferChars = (sizeof(repr_t) - ShortDataOffset)/sizeof(value_type);
@@ -253,7 +270,7 @@ class basic_string_base
253
270
  static const size_type MinAllocation = InternalBufferChars*2;
254
271
 
255
272
  protected:
256
- bool is_short() const
273
+ BOOST_CONTAINER_FORCEINLINE bool is_short() const
257
274
  {
258
275
  //Access and copy (to avoid UB) the first byte of the union to know if the
259
276
  //active representation is short or long
@@ -263,14 +280,14 @@ class basic_string_base
263
280
  return hdr.is_short != 0;
264
281
  }
265
282
 
266
- short_t *construct_short()
283
+ BOOST_CONTAINER_FORCEINLINE short_t *construct_short()
267
284
  {
268
285
  short_t *ps = ::new(this->members_.m_repr.data) short_t;
269
286
  ps->h.is_short = 1;
270
287
  return ps;
271
288
  }
272
289
 
273
- void destroy_short()
290
+ BOOST_CONTAINER_FORCEINLINE void destroy_short()
274
291
  {
275
292
  BOOST_ASSERT(this->is_short());
276
293
  this->members_.pshort_repr()->~short_t();
@@ -285,14 +302,14 @@ class basic_string_base
285
302
  return this->members_.pshort_repr();
286
303
  }
287
304
 
288
- long_t *construct_long()
305
+ BOOST_CONTAINER_FORCEINLINE long_t *construct_long()
289
306
  {
290
307
  long_t *pl = ::new(this->members_.m_repr.data) long_t;
291
308
  //is_short flag is written in the constructor
292
309
  return pl;
293
310
  }
294
311
 
295
- void destroy_long()
312
+ BOOST_CONTAINER_FORCEINLINE void destroy_long()
296
313
  {
297
314
  BOOST_ASSERT(!this->is_short());
298
315
  this->members_.plong_repr()->~long_t();
@@ -338,7 +355,7 @@ class basic_string_base
338
355
  this->alloc().deallocate(p, n);
339
356
  }
340
357
 
341
- void construct(pointer p, const value_type &value = value_type())
358
+ BOOST_CONTAINER_FORCEINLINE void construct(pointer p, const value_type &value = value_type())
342
359
  {
343
360
  allocator_traits_type::construct
344
361
  ( this->alloc()
@@ -355,7 +372,7 @@ class basic_string_base
355
372
  }
356
373
  }
357
374
 
358
- void destroy(pointer p)
375
+ BOOST_CONTAINER_FORCEINLINE void destroy(pointer p)
359
376
  {
360
377
  allocator_traits_type::destroy
361
378
  ( this->alloc()
@@ -382,17 +399,17 @@ class basic_string_base
382
399
  }
383
400
  }
384
401
 
385
- void deallocate_block()
402
+ BOOST_CONTAINER_FORCEINLINE void deallocate_block()
386
403
  { this->deallocate(this->priv_addr(), this->priv_storage()); }
387
404
 
388
- size_type max_size() const
405
+ BOOST_CONTAINER_FORCEINLINE size_type max_size() const
389
406
  { return allocator_traits_type::max_size(this->alloc()) - 1; }
390
407
 
391
408
  protected:
392
- size_type priv_capacity() const
409
+ BOOST_CONTAINER_FORCEINLINE size_type priv_capacity() const
393
410
  { return this->priv_storage() - 1; }
394
411
 
395
- pointer priv_short_addr() const
412
+ BOOST_CONTAINER_FORCEINLINE pointer priv_short_addr() const
396
413
  { return pointer_traits::pointer_to(const_cast<value_type&>(this->members_.pshort_repr()->data[0])); }
397
414
 
398
415
  //GCC seems a bit confused about uninitialized accesses
@@ -401,10 +418,10 @@ class basic_string_base
401
418
  #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
402
419
  #endif
403
420
 
404
- pointer priv_long_addr() const
421
+ BOOST_CONTAINER_FORCEINLINE pointer priv_long_addr() const
405
422
  { return this->members_.plong_repr()->start; }
406
423
 
407
- pointer priv_addr() const
424
+ BOOST_CONTAINER_FORCEINLINE pointer priv_addr() const
408
425
  {
409
426
  return this->is_short()
410
427
  ? priv_short_addr()
@@ -412,47 +429,47 @@ class basic_string_base
412
429
  ;
413
430
  }
414
431
 
415
- pointer priv_end_addr() const
432
+ BOOST_CONTAINER_FORCEINLINE pointer priv_end_addr() const
416
433
  {
417
434
  return this->is_short()
418
- ? this->priv_short_addr() + this->priv_short_size()
419
- : this->priv_long_addr() + this->priv_long_size()
435
+ ? this->priv_short_addr() + difference_type(this->priv_short_size())
436
+ : this->priv_long_addr() + difference_type(this->priv_long_size())
420
437
  ;
421
438
  }
422
439
 
423
- void priv_long_addr(pointer addr)
440
+ BOOST_CONTAINER_FORCEINLINE void priv_long_addr(pointer addr)
424
441
  { this->members_.plong_repr()->start = addr; }
425
442
 
426
- size_type priv_storage() const
443
+ BOOST_CONTAINER_FORCEINLINE size_type priv_storage() const
427
444
  { return this->is_short() ? priv_short_storage() : priv_long_storage(); }
428
445
 
429
- size_type priv_short_storage() const
446
+ BOOST_CONTAINER_FORCEINLINE size_type priv_short_storage() const
430
447
  { return InternalBufferChars; }
431
448
 
432
- size_type priv_long_storage() const
449
+ BOOST_CONTAINER_FORCEINLINE size_type priv_long_storage() const
433
450
  { return this->members_.plong_repr()->storage; }
434
451
 
435
- void priv_storage(size_type storage)
452
+ BOOST_CONTAINER_FORCEINLINE void priv_storage(size_type storage)
436
453
  {
437
454
  if(!this->is_short())
438
455
  this->priv_long_storage(storage);
439
456
  }
440
457
 
441
- void priv_long_storage(size_type storage)
458
+ BOOST_CONTAINER_FORCEINLINE void priv_long_storage(size_type storage)
442
459
  {
443
460
  this->members_.plong_repr()->storage = storage;
444
461
  }
445
462
 
446
- size_type priv_size() const
463
+ BOOST_CONTAINER_FORCEINLINE size_type priv_size() const
447
464
  { return this->is_short() ? this->priv_short_size() : this->priv_long_size(); }
448
465
 
449
- size_type priv_short_size() const
466
+ BOOST_CONTAINER_FORCEINLINE size_type priv_short_size() const
450
467
  { return this->members_.pshort_repr()->h.length; }
451
468
 
452
- size_type priv_long_size() const
469
+ BOOST_CONTAINER_FORCEINLINE size_type priv_long_size() const
453
470
  { return this->members_.plong_repr()->length; }
454
471
 
455
- void priv_size(size_type sz)
472
+ BOOST_CONTAINER_FORCEINLINE void priv_size(size_type sz)
456
473
  {
457
474
  if(this->is_short())
458
475
  this->priv_short_size(sz);
@@ -460,12 +477,22 @@ class basic_string_base
460
477
  this->priv_long_size(sz);
461
478
  }
462
479
 
463
- void priv_short_size(size_type sz)
464
- { this->members_.pshort_repr()->h.length = (unsigned char)sz; }
465
-
466
- void priv_long_size(size_type sz)
467
- { this->members_.plong_repr()->length = sz; }
480
+ BOOST_CONTAINER_FORCEINLINE void priv_short_size(size_type sz)
481
+ {
482
+ typedef unsigned char uchar_type;
483
+ static const uchar_type mask = uchar_type(uchar_type(-1) >> 1U);
484
+ BOOST_ASSERT( sz <= mask );
485
+ //Make -Wconversion happy
486
+ this->members_.pshort_repr()->h.length = uchar_type(uchar_type(sz) & mask);
487
+ }
468
488
 
489
+ BOOST_CONTAINER_FORCEINLINE void priv_long_size(size_type sz)
490
+ {
491
+ static const size_type mask = size_type(-1) >> 1U;
492
+ BOOST_ASSERT( sz <= mask );
493
+ //Make -Wconversion happy
494
+ this->members_.plong_repr()->length = sz & mask;
495
+ }
469
496
  #if defined(BOOST_GCC) && (BOOST_GCC >= 40700)
470
497
  #pragma GCC diagnostic pop
471
498
  #endif
@@ -612,7 +639,7 @@ class basic_string
612
639
 
613
640
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
614
641
  private:
615
- typedef constant_iterator<CharT, difference_type> cvalue_iterator;
642
+ typedef constant_iterator<CharT> cvalue_iterator;
616
643
  typedef typename base_t::alloc_version alloc_version;
617
644
  typedef ::boost::intrusive::pointer_traits<pointer> pointer_traits;
618
645
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -752,7 +779,7 @@ class basic_string
752
779
  : base_t()
753
780
  {
754
781
  this->priv_terminate_string();
755
- this->assign(s, s + n);
782
+ this->assign(s, s + difference_type(n));
756
783
  }
757
784
 
758
785
  //! <b>Effects</b>: Constructs a basic_string taking the allocator as parameter,
@@ -761,7 +788,7 @@ class basic_string
761
788
  : base_t(a)
762
789
  {
763
790
  this->priv_terminate_string();
764
- this->assign(s, s + n);
791
+ this->assign(s, s + difference_type(n));
765
792
  }
766
793
 
767
794
  //! <b>Effects</b>: Constructs a basic_string with a default-constructed allocator,
@@ -951,7 +978,8 @@ class basic_string
951
978
  //! <b>Throws</b>: If allocator's copy constructor throws.
952
979
  //!
953
980
  //! <b>Complexity</b>: Constant.
954
- allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
981
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
982
+ allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
955
983
  { return this->alloc(); }
956
984
 
957
985
  //! <b>Effects</b>: Returns a reference to the internal allocator.
@@ -961,7 +989,8 @@ class basic_string
961
989
  //! <b>Complexity</b>: Constant.
962
990
  //!
963
991
  //! <b>Note</b>: Non-standard extension.
964
- stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
992
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
993
+ stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
965
994
  { return this->alloc(); }
966
995
 
967
996
  //! <b>Effects</b>: Returns a reference to the internal allocator.
@@ -971,7 +1000,8 @@ class basic_string
971
1000
  //! <b>Complexity</b>: Constant.
972
1001
  //!
973
1002
  //! <b>Note</b>: Non-standard extension.
974
- const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1003
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1004
+ const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
975
1005
  { return this->alloc(); }
976
1006
 
977
1007
  //////////////////////////////////////////////
@@ -985,7 +1015,8 @@ class basic_string
985
1015
  //! <b>Throws</b>: Nothing.
986
1016
  //!
987
1017
  //! <b>Complexity</b>: Constant.
988
- iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
1018
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1019
+ iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
989
1020
  { return this->priv_addr(); }
990
1021
 
991
1022
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -993,7 +1024,8 @@ class basic_string
993
1024
  //! <b>Throws</b>: Nothing.
994
1025
  //!
995
1026
  //! <b>Complexity</b>: Constant.
996
- const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1027
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1028
+ const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
997
1029
  { return this->priv_addr(); }
998
1030
 
999
1031
  //! <b>Effects</b>: Returns an iterator to the end of the vector.
@@ -1001,7 +1033,8 @@ class basic_string
1001
1033
  //! <b>Throws</b>: Nothing.
1002
1034
  //!
1003
1035
  //! <b>Complexity</b>: Constant.
1004
- iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1036
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1037
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1005
1038
  { return this->priv_end_addr(); }
1006
1039
 
1007
1040
  //! <b>Effects</b>: Returns a const_iterator to the end of the vector.
@@ -1009,7 +1042,8 @@ class basic_string
1009
1042
  //! <b>Throws</b>: Nothing.
1010
1043
  //!
1011
1044
  //! <b>Complexity</b>: Constant.
1012
- const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1045
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1046
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1013
1047
  { return this->priv_end_addr(); }
1014
1048
 
1015
1049
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
@@ -1018,7 +1052,8 @@ class basic_string
1018
1052
  //! <b>Throws</b>: Nothing.
1019
1053
  //!
1020
1054
  //! <b>Complexity</b>: Constant.
1021
- reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1055
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1056
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1022
1057
  { return reverse_iterator(this->priv_end_addr()); }
1023
1058
 
1024
1059
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -1027,7 +1062,8 @@ class basic_string
1027
1062
  //! <b>Throws</b>: Nothing.
1028
1063
  //!
1029
1064
  //! <b>Complexity</b>: Constant.
1030
- const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1065
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1066
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1031
1067
  { return this->crbegin(); }
1032
1068
 
1033
1069
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
@@ -1036,7 +1072,8 @@ class basic_string
1036
1072
  //! <b>Throws</b>: Nothing.
1037
1073
  //!
1038
1074
  //! <b>Complexity</b>: Constant.
1039
- reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1075
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1076
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1040
1077
  { return reverse_iterator(this->priv_addr()); }
1041
1078
 
1042
1079
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1045,7 +1082,8 @@ class basic_string
1045
1082
  //! <b>Throws</b>: Nothing.
1046
1083
  //!
1047
1084
  //! <b>Complexity</b>: Constant.
1048
- const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1085
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1086
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1049
1087
  { return this->crend(); }
1050
1088
 
1051
1089
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -1053,7 +1091,8 @@ class basic_string
1053
1091
  //! <b>Throws</b>: Nothing.
1054
1092
  //!
1055
1093
  //! <b>Complexity</b>: Constant.
1056
- const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1094
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1095
+ const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1057
1096
  { return this->priv_addr(); }
1058
1097
 
1059
1098
  //! <b>Effects</b>: Returns a const_iterator to the end of the vector.
@@ -1061,7 +1100,8 @@ class basic_string
1061
1100
  //! <b>Throws</b>: Nothing.
1062
1101
  //!
1063
1102
  //! <b>Complexity</b>: Constant.
1064
- const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1103
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1104
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1065
1105
  { return this->priv_end_addr(); }
1066
1106
 
1067
1107
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -1070,7 +1110,8 @@ class basic_string
1070
1110
  //! <b>Throws</b>: Nothing.
1071
1111
  //!
1072
1112
  //! <b>Complexity</b>: Constant.
1073
- const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1113
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1114
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1074
1115
  { return const_reverse_iterator(this->priv_end_addr()); }
1075
1116
 
1076
1117
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1079,7 +1120,8 @@ class basic_string
1079
1120
  //! <b>Throws</b>: Nothing.
1080
1121
  //!
1081
1122
  //! <b>Complexity</b>: Constant.
1082
- const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1123
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1124
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1083
1125
  { return const_reverse_iterator(this->priv_addr()); }
1084
1126
 
1085
1127
  //////////////////////////////////////////////
@@ -1093,7 +1135,8 @@ class basic_string
1093
1135
  //! <b>Throws</b>: Nothing.
1094
1136
  //!
1095
1137
  //! <b>Complexity</b>: Constant.
1096
- bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1138
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1139
+ bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1097
1140
  { return !this->priv_size(); }
1098
1141
 
1099
1142
  //! <b>Effects</b>: Returns the number of the elements contained in the vector.
@@ -1101,7 +1144,8 @@ class basic_string
1101
1144
  //! <b>Throws</b>: Nothing.
1102
1145
  //!
1103
1146
  //! <b>Complexity</b>: Constant.
1104
- size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1147
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1148
+ size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1105
1149
  { return this->priv_size(); }
1106
1150
 
1107
1151
  //! <b>Effects</b>: Returns the number of the elements contained in the vector.
@@ -1109,15 +1153,17 @@ class basic_string
1109
1153
  //! <b>Throws</b>: Nothing.
1110
1154
  //!
1111
1155
  //! <b>Complexity</b>: Constant.
1112
- size_type length() const BOOST_NOEXCEPT_OR_NOTHROW
1156
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1157
+ size_type length() const BOOST_NOEXCEPT_OR_NOTHROW
1113
1158
  { return this->size(); }
1114
1159
 
1115
1160
  //! <b>Effects</b>: Returns the largest possible size of the vector.
1116
1161
  //!
1117
1162
  //! <b>Throws</b>: Nothing.
1118
1163
  //!
1119
- //! <b>Complexity</b>: Constant.
1120
- size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1164
+ //! <b>Complexity</b>: Constant
1165
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1166
+ size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1121
1167
  { return base_t::max_size(); }
1122
1168
 
1123
1169
  //! <b>Effects</b>: Inserts or erases elements at the end such that
@@ -1129,7 +1175,7 @@ class basic_string
1129
1175
  void resize(size_type n, CharT c)
1130
1176
  {
1131
1177
  if (n <= this->size())
1132
- this->erase(this->begin() + n, this->end());
1178
+ this->erase(this->begin() + difference_type(n), this->end());
1133
1179
  else
1134
1180
  this->append(n - this->size(), c);
1135
1181
  }
@@ -1143,7 +1189,6 @@ class basic_string
1143
1189
  void resize(size_type n)
1144
1190
  { resize(n, CharT()); }
1145
1191
 
1146
-
1147
1192
  //! <b>Effects</b>: Inserts or erases elements at the end such that
1148
1193
  //! the size becomes n. New elements are uninitialized.
1149
1194
  //!
@@ -1155,7 +1200,7 @@ class basic_string
1155
1200
  void resize(size_type n, default_init_t)
1156
1201
  {
1157
1202
  if (n <= this->size())
1158
- this->erase(this->begin() + n, this->end());
1203
+ this->erase(this->begin() + difference_type(n), this->end());
1159
1204
  else{
1160
1205
  this->priv_reserve(n, false);
1161
1206
  this->priv_size(n);
@@ -1169,7 +1214,8 @@ class basic_string
1169
1214
  //! <b>Throws</b>: Nothing.
1170
1215
  //!
1171
1216
  //! <b>Complexity</b>: Constant.
1172
- size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
1217
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1218
+ size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
1173
1219
  { return this->priv_capacity(); }
1174
1220
 
1175
1221
  //! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
@@ -1228,7 +1274,8 @@ class basic_string
1228
1274
  //! <b>Throws</b>: Nothing.
1229
1275
  //!
1230
1276
  //! <b>Complexity</b>: Constant.
1231
- reference front() BOOST_NOEXCEPT_OR_NOTHROW
1277
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1278
+ reference front() BOOST_NOEXCEPT_OR_NOTHROW
1232
1279
  {
1233
1280
  BOOST_ASSERT(!this->empty());
1234
1281
  return *this->priv_addr();
@@ -1242,7 +1289,8 @@ class basic_string
1242
1289
  //! <b>Throws</b>: Nothing.
1243
1290
  //!
1244
1291
  //! <b>Complexity</b>: Constant.
1245
- const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1292
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1293
+ const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1246
1294
  {
1247
1295
  BOOST_ASSERT(!this->empty());
1248
1296
  return *this->priv_addr();
@@ -1256,7 +1304,8 @@ class basic_string
1256
1304
  //! <b>Throws</b>: Nothing.
1257
1305
  //!
1258
1306
  //! <b>Complexity</b>: Constant.
1259
- reference back() BOOST_NOEXCEPT_OR_NOTHROW
1307
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1308
+ reference back() BOOST_NOEXCEPT_OR_NOTHROW
1260
1309
  {
1261
1310
  BOOST_ASSERT(!this->empty());
1262
1311
  return *(this->priv_addr() + (this->size() - 1u) );
@@ -1270,7 +1319,8 @@ class basic_string
1270
1319
  //! <b>Throws</b>: Nothing.
1271
1320
  //!
1272
1321
  //! <b>Complexity</b>: Constant.
1273
- const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1322
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1323
+ const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1274
1324
  {
1275
1325
  BOOST_ASSERT(!this->empty());
1276
1326
  return *(this->priv_addr() + (this->size() - 1u) );
@@ -1284,10 +1334,11 @@ class basic_string
1284
1334
  //! <b>Throws</b>: Nothing.
1285
1335
  //!
1286
1336
  //! <b>Complexity</b>: Constant.
1287
- reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1337
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1338
+ reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1288
1339
  {
1289
1340
  BOOST_ASSERT(this->size() > n);
1290
- return *(this->priv_addr() + n);
1341
+ return *(this->priv_addr() + difference_type(n));
1291
1342
  }
1292
1343
 
1293
1344
  //! <b>Requires</b>: size() > n.
@@ -1298,10 +1349,11 @@ class basic_string
1298
1349
  //! <b>Throws</b>: Nothing.
1299
1350
  //!
1300
1351
  //! <b>Complexity</b>: Constant.
1301
- const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1352
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1353
+ const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1302
1354
  {
1303
1355
  BOOST_ASSERT(this->size() > n);
1304
- return *(this->priv_addr() + n);
1356
+ return *(this->priv_addr() + difference_type(n));
1305
1357
  }
1306
1358
 
1307
1359
  //! <b>Requires</b>: size() > n.
@@ -1309,14 +1361,15 @@ class basic_string
1309
1361
  //! <b>Effects</b>: Returns a reference to the nth element
1310
1362
  //! from the beginning of the container.
1311
1363
  //!
1312
- //! <b>Throws</b>: std::range_error if n >= size()
1364
+ //! <b>Throws</b>: range_error if n >= size()
1313
1365
  //!
1314
1366
  //! <b>Complexity</b>: Constant.
1315
- reference at(size_type n)
1367
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1368
+ reference at(size_type n)
1316
1369
  {
1317
1370
  if (n >= this->size())
1318
1371
  throw_out_of_range("basic_string::at invalid subscript");
1319
- return *(this->priv_addr() + n);
1372
+ return *(this->priv_addr() + difference_type(n));
1320
1373
  }
1321
1374
 
1322
1375
  //! <b>Requires</b>: size() > n.
@@ -1324,13 +1377,14 @@ class basic_string
1324
1377
  //! <b>Effects</b>: Returns a const reference to the nth element
1325
1378
  //! from the beginning of the container.
1326
1379
  //!
1327
- //! <b>Throws</b>: std::range_error if n >= size()
1380
+ //! <b>Throws</b>: range_error if n >= size()
1328
1381
  //!
1329
1382
  //! <b>Complexity</b>: Constant.
1330
- const_reference at(size_type n) const {
1383
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1384
+ const_reference at(size_type n) const {
1331
1385
  if (n >= this->size())
1332
1386
  throw_out_of_range("basic_string::at invalid subscript");
1333
- return *(this->priv_addr() + n);
1387
+ return *(this->priv_addr() + difference_type(n));
1334
1388
  }
1335
1389
 
1336
1390
  //////////////////////////////////////////////
@@ -1413,7 +1467,7 @@ class basic_string
1413
1467
  //!
1414
1468
  //! <b>Returns</b>: *this
1415
1469
  basic_string& append(const CharT* s, size_type n)
1416
- { return this->append(s, s + n); }
1470
+ { return this->append(s, s + difference_type(n)); }
1417
1471
 
1418
1472
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
1419
1473
  //!
@@ -1454,9 +1508,9 @@ class basic_string
1454
1508
  const size_type old_size = this->priv_size();
1455
1509
  if (old_size < this->capacity()){
1456
1510
  const pointer addr = this->priv_addr();
1457
- this->priv_construct_null(addr + old_size + 1);
1458
- Traits::assign(addr[old_size], c);
1459
- this->priv_size(old_size+1);
1511
+ this->priv_construct_null(addr + difference_type(old_size + 1u));
1512
+ Traits::assign(addr[difference_type(old_size)], c);
1513
+ this->priv_size(old_size+1u);
1460
1514
  }
1461
1515
  else{
1462
1516
  //No enough memory, insert a new object at the end
@@ -1512,7 +1566,7 @@ class basic_string
1512
1566
  //!
1513
1567
  //! <b>Returns</b>: *this
1514
1568
  basic_string& assign(const CharT* s, size_type n)
1515
- { return this->assign(s, s + n); }
1569
+ { return this->assign(s, s + difference_type(n)); }
1516
1570
 
1517
1571
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
1518
1572
  //!
@@ -1537,7 +1591,7 @@ class basic_string
1537
1591
  this->reserve(n);
1538
1592
  CharT* ptr = boost::movelib::to_raw_pointer(this->priv_addr());
1539
1593
  Traits::copy(ptr, first, n);
1540
- this->priv_construct_null(ptr + n);
1594
+ this->priv_construct_null(ptr + difference_type(n));
1541
1595
  this->priv_size(n);
1542
1596
  return *this;
1543
1597
  }
@@ -1563,7 +1617,7 @@ class basic_string
1563
1617
  ++ptr;
1564
1618
  }
1565
1619
  if (first == last)
1566
- this->erase(addr + cur, addr + old_size);
1620
+ this->erase(addr + difference_type(cur), addr + difference_type(old_size));
1567
1621
  else
1568
1622
  this->append(first, last);
1569
1623
  return *this;
@@ -1636,7 +1690,7 @@ class basic_string
1636
1690
  throw_out_of_range("basic_string::insert out of range position");
1637
1691
  if (this->size() > this->max_size() - n)
1638
1692
  throw_length_error("basic_string::insert max_size() exceeded");
1639
- this->insert(this->priv_addr() + pos, s, s + n);
1693
+ this->insert(this->priv_addr() + pos, s, s + difference_type(n));
1640
1694
  return *this;
1641
1695
  }
1642
1696
 
@@ -1688,7 +1742,7 @@ class basic_string
1688
1742
  //! <b>Returns</b>: An iterator which refers to the copy of the inserted character.
1689
1743
  iterator insert(const_iterator p, CharT c)
1690
1744
  {
1691
- size_type new_offset = p - this->priv_addr();
1745
+ size_type new_offset = size_type(p - this->priv_addr());
1692
1746
  this->insert(p, cvalue_iterator(c, 1), cvalue_iterator());
1693
1747
  return this->priv_addr() + new_offset;
1694
1748
  }
@@ -1721,7 +1775,7 @@ class basic_string
1721
1775
  for ( ; first != last; ++first, ++p) {
1722
1776
  p = this->insert(p, *first);
1723
1777
  }
1724
- return this->begin() + n_pos;
1778
+ return this->begin() + difference_type(n_pos);
1725
1779
  }
1726
1780
 
1727
1781
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
@@ -1734,9 +1788,9 @@ class basic_string
1734
1788
  >::type * = 0
1735
1789
  )
1736
1790
  {
1737
- const size_type n_pos = p - this->cbegin();
1791
+ const size_type n_pos = size_type(p - this->cbegin());
1738
1792
  if (first != last) {
1739
- const size_type n = boost::container::iterator_distance(first, last);
1793
+ const size_type n = boost::container::iterator_udistance(first, last);
1740
1794
  const size_type old_size = this->priv_size();
1741
1795
  const size_type remaining = this->capacity() - old_size;
1742
1796
  const pointer old_start = this->priv_addr();
@@ -1754,7 +1808,7 @@ class basic_string
1754
1808
  new_cap = this->next_capacity(n);
1755
1809
  hint = old_start;
1756
1810
  allocation_ret = this->allocation_command
1757
- (allocate_new | expand_fwd | expand_bwd, old_size + n + 1, new_cap, hint);
1811
+ (allocate_new | expand_fwd | expand_bwd, old_size + n + 1u, new_cap, hint);
1758
1812
 
1759
1813
  //Check forward expansion
1760
1814
  if(old_start == allocation_ret){
@@ -1765,32 +1819,35 @@ class basic_string
1765
1819
 
1766
1820
  //Reuse same buffer
1767
1821
  if(enough_capacity){
1768
- const size_type elems_after = old_size - (p - old_start);
1822
+ const size_type elems_after = old_size - size_type(p - old_start);
1769
1823
  const size_type old_length = old_size;
1824
+ size_type new_size = 0;
1770
1825
  if (elems_after >= n) {
1771
- const pointer pointer_past_last = old_start + old_size + 1;
1772
- priv_uninitialized_copy(old_start + (old_size - n + 1),
1826
+ const pointer pointer_past_last = old_start + difference_type(old_size + 1u);
1827
+ priv_uninitialized_copy(old_start + difference_type(old_size - n + 1u),
1773
1828
  pointer_past_last, pointer_past_last);
1774
1829
 
1775
- this->priv_size(old_size+n);
1776
- Traits::move(const_cast<CharT*>(boost::movelib::to_raw_pointer(p + n)),
1830
+ Traits::move(const_cast<CharT*>(boost::movelib::to_raw_pointer(p + difference_type(n))),
1777
1831
  boost::movelib::to_raw_pointer(p),
1778
- (elems_after - n) + 1);
1779
- this->priv_copy(first, last, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1832
+ (elems_after - n) + 1u);
1833
+ (priv_copy)(first, last, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1834
+ new_size = old_size + n;
1780
1835
  }
1781
1836
  else {
1782
1837
  ForwardIter mid = first;
1783
- boost::container::iterator_advance(mid, elems_after + 1);
1838
+ boost::container::iterator_uadvance(mid, elems_after + 1u);
1784
1839
 
1785
- priv_uninitialized_copy(mid, last, old_start + old_size + 1);
1840
+ priv_uninitialized_copy(mid, last, old_start + difference_type(old_size + 1u));
1786
1841
  const size_type newer_size = old_size + (n - elems_after);
1787
1842
  this->priv_size(newer_size);
1788
1843
  priv_uninitialized_copy
1789
- (p, const_iterator(old_start + old_length + 1),
1790
- old_start + newer_size);
1791
- this->priv_size(newer_size + elems_after);
1792
- this->priv_copy(first, mid, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1844
+ (p, const_iterator(old_start + difference_type(old_length + 1u)),
1845
+ old_start + difference_type(newer_size));
1846
+ (priv_copy)(first, mid, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1847
+ new_size = newer_size + elems_after;
1793
1848
  }
1849
+ this->priv_size(new_size);
1850
+ this->priv_construct_null(old_start + difference_type(new_size));
1794
1851
  }
1795
1852
  else{
1796
1853
  pointer new_start = allocation_ret;
@@ -1801,11 +1858,11 @@ class basic_string
1801
1858
  new_length += priv_uninitialized_copy
1802
1859
  (const_iterator(old_start), p, new_start);
1803
1860
  new_length += priv_uninitialized_copy
1804
- (first, last, new_start + new_length);
1861
+ (first, last, new_start + difference_type(new_length));
1805
1862
  new_length += priv_uninitialized_copy
1806
- (p, const_iterator(old_start + old_size),
1807
- new_start + new_length);
1808
- this->priv_construct_null(new_start + new_length);
1863
+ (p, const_iterator(old_start + difference_type(old_size)),
1864
+ new_start + difference_type(new_length));
1865
+ this->priv_construct_null(new_start + difference_type(new_length));
1809
1866
 
1810
1867
  this->deallocate_block();
1811
1868
  this->assure_long();
@@ -1819,14 +1876,14 @@ class basic_string
1819
1876
  value_type * const oldbuf = boost::movelib::to_raw_pointer(old_start);
1820
1877
  value_type * const newbuf = boost::movelib::to_raw_pointer(new_start);
1821
1878
  const value_type *const pos = boost::movelib::to_raw_pointer(p);
1822
- const size_type before = pos - oldbuf;
1879
+ const size_type before = size_type(pos - oldbuf);
1823
1880
 
1824
1881
  //First move old data
1825
1882
  Traits::move(newbuf, oldbuf, before);
1826
- Traits::move(newbuf + before + n, pos, old_size - before);
1883
+ Traits::move(newbuf + difference_type(before + n), pos, old_size - before);
1827
1884
  //Now initialize the new data
1828
- priv_uninitialized_copy(first, last, new_start + before);
1829
- this->priv_construct_null(new_start + (old_size + n));
1885
+ priv_uninitialized_copy(first, last, new_start + difference_type(before));
1886
+ this->priv_construct_null(new_start + difference_type(old_size + n));
1830
1887
  this->assure_long();
1831
1888
  this->priv_long_addr(new_start);
1832
1889
  this->priv_long_size(old_size + n);
@@ -1834,7 +1891,7 @@ class basic_string
1834
1891
  }
1835
1892
  }
1836
1893
  }
1837
- return this->begin() + n_pos;
1894
+ return this->begin() + difference_type(n_pos);
1838
1895
  }
1839
1896
  #endif
1840
1897
 
@@ -1843,7 +1900,7 @@ class basic_string
1843
1900
  //!
1844
1901
  //! <b>Returns</b>: An iterator which refers to the copy of the first inserted
1845
1902
  //! character, or p if i1 is empty.
1846
- iterator insert(const_iterator p, std::initializer_list<CharT> il)
1903
+ BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, std::initializer_list<CharT> il)
1847
1904
  {
1848
1905
  return this->insert(p, il.begin(), il.end());
1849
1906
  }
@@ -1877,7 +1934,7 @@ class basic_string
1877
1934
  if (pos > this->size())
1878
1935
  throw_out_of_range("basic_string::erase out of range position");
1879
1936
  const pointer addr = this->priv_addr();
1880
- erase(addr + pos, addr + pos + dtl::min_value(n, this->size() - pos));
1937
+ erase(addr + difference_type(pos), addr + difference_type(pos) + dtl::min_value(n, this->size() - pos));
1881
1938
  return *this;
1882
1939
  }
1883
1940
 
@@ -1894,8 +1951,8 @@ class basic_string
1894
1951
  const size_type old_size = this->priv_size();
1895
1952
  Traits::move(ptr,
1896
1953
  boost::movelib::to_raw_pointer(p + 1),
1897
- old_size - (p - this->priv_addr()));
1898
- this->priv_size(old_size-1);
1954
+ old_size - size_type(p - this->priv_addr()));
1955
+ this->priv_size(old_size-1u);
1899
1956
  return iterator(ptr);
1900
1957
  }
1901
1958
 
@@ -1911,11 +1968,11 @@ class basic_string
1911
1968
  {
1912
1969
  CharT * f = const_cast<CharT*>(boost::movelib::to_raw_pointer(first));
1913
1970
  if (first != last) { // The move includes the terminating null.
1914
- const size_type num_erased = last - first;
1971
+ const size_type num_erased = size_type(last - first);
1915
1972
  const size_type old_size = this->priv_size();
1916
1973
  Traits::move(f,
1917
1974
  boost::movelib::to_raw_pointer(last),
1918
- (old_size + 1)-(last - this->priv_addr()));
1975
+ old_size + 1u - size_type(last - this->priv_addr()));
1919
1976
  const size_type new_length = old_size - num_erased;
1920
1977
  this->priv_size(new_length);
1921
1978
  }
@@ -1929,10 +1986,14 @@ class basic_string
1929
1986
  //! <b>Complexity</b>: Linear to the number of elements in the vector.
1930
1987
  void clear() BOOST_NOEXCEPT_OR_NOTHROW
1931
1988
  {
1932
- if (!this->empty()) {
1933
- Traits::assign(*this->priv_addr(), CharT(0));
1934
- this->priv_size(0);
1935
- }
1989
+ if(this->is_short()) {
1990
+ Traits::assign(*this->priv_short_addr(), CharT(0));
1991
+ this->priv_short_size(0);
1992
+ }
1993
+ else {
1994
+ Traits::assign(*this->priv_long_addr(), CharT(0));
1995
+ this->priv_long_size(0);
1996
+ }
1936
1997
  }
1937
1998
 
1938
1999
  //! <b>Requires</b>: pos1 <= size().
@@ -1950,15 +2011,15 @@ class basic_string
1950
2011
  if (this->size() - len >= this->max_size() - str.size())
1951
2012
  throw_length_error("basic_string::replace max_size() exceeded");
1952
2013
  const pointer addr = this->priv_addr();
1953
- return this->replace( const_iterator(addr + pos1)
1954
- , const_iterator(addr + pos1 + len)
2014
+ return this->replace( const_iterator(addr + difference_type(pos1))
2015
+ , const_iterator(addr + difference_type(pos1 + len))
1955
2016
  , str.begin(), str.end());
1956
2017
  }
1957
2018
 
1958
2019
  //! <b>Effects</b>: Calls `return replace(pos1, n1, sv.data(), sv.size());`.
1959
2020
  //!
1960
2021
  template<template<class, class> class BasicStringView>
1961
- basic_string& replace(size_type pos1, size_type n1, BasicStringView<CharT, Traits> sv)
2022
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(size_type pos1, size_type n1, BasicStringView<CharT, Traits> sv)
1962
2023
  {
1963
2024
  return this->replace(pos1, n1, sv.data(), sv.size());
1964
2025
  }
@@ -2014,11 +2075,11 @@ class basic_string
2014
2075
  if (pos1 > this->size())
2015
2076
  throw_out_of_range("basic_string::replace out of range position");
2016
2077
  const size_type len = dtl::min_value(n1, this->size() - pos1);
2017
- const size_type max_size = this->max_size();
2018
- if (n2 > max_size || (this->size() - len) >= (max_size - n2))
2078
+ const size_type max_sz = this->max_size();
2079
+ if (n2 > max_sz || (this->size() - len) >= (max_sz - n2))
2019
2080
  throw_length_error("basic_string::replace max_size() exceeded");
2020
2081
  const pointer addr = this->priv_addr() + pos1;
2021
- return this->replace(addr, addr + len, s, s + n2);
2082
+ return this->replace(addr, addr + difference_type(len), s, s + difference_type(n2));
2022
2083
  }
2023
2084
 
2024
2085
  //! <b>Requires</b>: pos1 <= size() and s points to an array of at least n2 elements of CharT.
@@ -2035,7 +2096,7 @@ class basic_string
2035
2096
  //! if the length of the resulting string would exceed max_size()
2036
2097
  //!
2037
2098
  //! <b>Returns</b>: *this
2038
- basic_string& replace(size_type pos, size_type n1, const CharT* s)
2099
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(size_type pos, size_type n1, const CharT* s)
2039
2100
  {
2040
2101
  return this->replace(pos, n1, s, Traits::length(s));
2041
2102
  }
@@ -2056,7 +2117,7 @@ class basic_string
2056
2117
  if (n2 > this->max_size() || this->size() - len >= this->max_size() - n2)
2057
2118
  throw_length_error("basic_string::replace max_size() exceeded");
2058
2119
  const pointer addr = this->priv_addr();
2059
- return this->replace(addr + pos1, addr + pos1 + len, n2, c);
2120
+ return this->replace(addr + difference_type(pos1), addr + difference_type(pos1 + len), n2, c);
2060
2121
  }
2061
2122
 
2062
2123
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges.
@@ -2066,7 +2127,7 @@ class basic_string
2066
2127
  //! <b>Throws</b>: if memory allocation throws
2067
2128
  //!
2068
2129
  //! <b>Returns</b>: *this
2069
- basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str)
2130
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str)
2070
2131
  { return this->replace(i1, i2, str.data(), str.data()+str.size()); }
2071
2132
 
2072
2133
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges and
@@ -2077,8 +2138,8 @@ class basic_string
2077
2138
  //! <b>Throws</b>: if memory allocation throws
2078
2139
  //!
2079
2140
  //! <b>Returns</b>: *this
2080
- basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s, size_type n)
2081
- { return this->replace(i1, i2, s, s + n); }
2141
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s, size_type n)
2142
+ { return this->replace(i1, i2, s, s + difference_type(n)); }
2082
2143
 
2083
2144
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges and s points to an
2084
2145
  //! array of at least traits::length(s) + 1 elements of CharT.
@@ -2088,7 +2149,7 @@ class basic_string
2088
2149
  //! <b>Throws</b>: if memory allocation throws
2089
2150
  //!
2090
2151
  //! <b>Returns</b>: *this
2091
- basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s)
2152
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s)
2092
2153
  { return this->replace(i1, i2, s, s + Traits::length(s)); }
2093
2154
 
2094
2155
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges.
@@ -2103,7 +2164,7 @@ class basic_string
2103
2164
  const size_type len = static_cast<size_type>(i2 - i1);
2104
2165
  if (len >= n) {
2105
2166
  Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), n, c);
2106
- erase(i1 + n, i2);
2167
+ erase(i1 + difference_type(n), i2);
2107
2168
  }
2108
2169
  else {
2109
2170
  Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), len, c);
@@ -2155,7 +2216,7 @@ class basic_string
2155
2216
  const difference_type len = i2 - i1;
2156
2217
  if (len >= n) {
2157
2218
  this->priv_copy(j1, j2, const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)));
2158
- this->erase(i1 + n, i2);
2219
+ this->erase(i1 + difference_type(n), i2);
2159
2220
  }
2160
2221
  else {
2161
2222
  ForwardIter m = j1;
@@ -2173,7 +2234,7 @@ class basic_string
2173
2234
  //!
2174
2235
  //! <b>Returns</b>: *this.
2175
2236
  template<template <class, class> class BasicStringView>
2176
- basic_string& replace(const_iterator i1, const_iterator i2, BasicStringView<CharT, Traits> sv)
2237
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(const_iterator i1, const_iterator i2, BasicStringView<CharT, Traits> sv)
2177
2238
  {
2178
2239
  return this->replace( static_cast<size_type>(i1 - this->cbegin())
2179
2240
  , static_cast<size_type>(i2 - i1), sv);
@@ -2185,7 +2246,7 @@ class basic_string
2185
2246
  //! <b>Effects</b>: Calls replace(i1 - begin(), i2 - i1, il.begin(), il.size()).
2186
2247
  //!
2187
2248
  //! <b>Returns</b>: *this.
2188
- basic_string& replace(const_iterator i1, const_iterator i2, std::initializer_list<CharT> il)
2249
+ BOOST_CONTAINER_FORCEINLINE basic_string& replace(const_iterator i1, const_iterator i2, std::initializer_list<CharT> il)
2189
2250
  {
2190
2251
  return this->replace( static_cast<size_type>(i1 - this->cbegin())
2191
2252
  , static_cast<size_type>(i2 - i1)
@@ -2237,7 +2298,8 @@ class basic_string
2237
2298
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2238
2299
  //!
2239
2300
  //! <b>Complexity</b>: constant time.
2240
- const CharT* c_str() const BOOST_NOEXCEPT_OR_NOTHROW
2301
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2302
+ const CharT* c_str() const BOOST_NOEXCEPT_OR_NOTHROW
2241
2303
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2242
2304
 
2243
2305
  //! <b>Requires</b>: The program shall not alter any of the values stored in the character array.
@@ -2245,13 +2307,15 @@ class basic_string
2245
2307
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2246
2308
  //!
2247
2309
  //! <b>Complexity</b>: constant time.
2248
- const CharT* data() const BOOST_NOEXCEPT_OR_NOTHROW
2310
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2311
+ const CharT* data() const BOOST_NOEXCEPT_OR_NOTHROW
2249
2312
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2250
2313
 
2251
2314
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2252
2315
  //!
2253
2316
  //! <b>Complexity</b>: constant time.
2254
- CharT* data() BOOST_NOEXCEPT_OR_NOTHROW
2317
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2318
+ CharT* data() BOOST_NOEXCEPT_OR_NOTHROW
2255
2319
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2256
2320
 
2257
2321
  #ifndef BOOST_CONTAINER_TEMPLATED_CONVERSION_OPERATOR_BROKEN
@@ -2259,7 +2323,7 @@ class basic_string
2259
2323
  //!
2260
2324
  //! <b>Complexity</b>: constant time.
2261
2325
  template<template <class, class> class BasicStringView>
2262
- operator BasicStringView<CharT, Traits>() const BOOST_NOEXCEPT_OR_NOTHROW
2326
+ BOOST_CONTAINER_FORCEINLINE operator BasicStringView<CharT, Traits>() const BOOST_NOEXCEPT_OR_NOTHROW
2263
2327
  { return this->to_view< BasicStringView<CharT, Traits> >(); }
2264
2328
  #endif
2265
2329
 
@@ -2270,7 +2334,8 @@ class basic_string
2270
2334
  //! <b>Note</b>: This function is available to write portable code for compilers
2271
2335
  //! that don't support templated conversion operators.
2272
2336
  template<class BasicStringView>
2273
- BasicStringView to_view() const BOOST_NOEXCEPT_OR_NOTHROW
2337
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2338
+ BasicStringView to_view() const BOOST_NOEXCEPT_OR_NOTHROW
2274
2339
  { return BasicStringView(this->data(), this->size()); }
2275
2340
 
2276
2341
  //////////////////////////////////////////////
@@ -2287,7 +2352,8 @@ class basic_string
2287
2352
  //! <b>Throws</b>: Nothing
2288
2353
  //!
2289
2354
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2290
- size_type find(const basic_string& s, size_type pos = 0) const
2355
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2356
+ size_type find(const basic_string& s, size_type pos = 0) const
2291
2357
  { return find(s.c_str(), pos, s.size()); }
2292
2358
 
2293
2359
  //! <b>Effects</b>: Determines the lowest position xpos, if possible, such that both
@@ -2299,26 +2365,28 @@ class basic_string
2299
2365
  //!
2300
2366
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2301
2367
  template<template <class, class> class BasicStringView>
2302
- size_type find(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2303
- { return find(sv.data(), pos, sv.size()); }
2368
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2369
+ size_type find(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2370
+ { return this->find(sv.data(), pos, sv.size()); }
2304
2371
 
2305
2372
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
2306
2373
  //!
2307
2374
  //! <b>Throws</b>: Nothing
2308
2375
  //!
2309
2376
  //! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(s,n),pos).
2310
- size_type find(const CharT* s, size_type pos, size_type n) const
2377
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2378
+ size_type find(const CharT* s, size_type pos, size_type n) const
2311
2379
  {
2312
2380
  if (pos + n > this->size())
2313
2381
  return npos;
2314
2382
  else {
2315
2383
  const pointer addr = this->priv_addr();
2316
- pointer finish = addr + this->priv_size();
2384
+ pointer finish = addr + difference_type(this->priv_size());
2317
2385
  const const_iterator result =
2318
- boost::container::search(boost::movelib::to_raw_pointer(addr + pos),
2386
+ boost::container::search(boost::movelib::to_raw_pointer(addr + difference_type(pos)),
2319
2387
  boost::movelib::to_raw_pointer(finish),
2320
- s, s + n, Eq_traits<Traits>());
2321
- return result != finish ? result - begin() : npos;
2388
+ s, s + difference_type(n), Eq_traits<Traits>());
2389
+ return result != finish ? size_type(result - begin()) : npos;
2322
2390
  }
2323
2391
  }
2324
2392
 
@@ -2327,24 +2395,26 @@ class basic_string
2327
2395
  //! <b>Throws</b>: Nothing
2328
2396
  //!
2329
2397
  //! <b>Returns</b>: find(basic_string(s), pos).
2330
- size_type find(const CharT* s, size_type pos = 0) const
2398
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2399
+ size_type find(const CharT* s, size_type pos = 0) const
2331
2400
  { return this->find(s, pos, Traits::length(s)); }
2332
2401
 
2333
2402
  //! <b>Throws</b>: Nothing
2334
2403
  //!
2335
2404
  //! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(1,c), pos).
2336
- size_type find(CharT c, size_type pos = 0) const
2405
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2406
+ size_type find(CharT c, size_type pos = 0) const
2337
2407
  {
2338
2408
  const size_type sz = this->size();
2339
2409
  if (pos >= sz)
2340
2410
  return npos;
2341
2411
  else {
2342
2412
  const pointer addr = this->priv_addr();
2343
- pointer finish = addr + sz;
2413
+ pointer finish = addr + difference_type(sz);
2344
2414
  const const_iterator result =
2345
- boost::container::find_if(addr + pos, finish,
2415
+ boost::container::find_if(addr + difference_type(pos), finish,
2346
2416
  boost::container::bind2nd(Eq_traits<Traits>(), c));
2347
- return result != finish ? result - begin() : npos;
2417
+ return result != finish ? size_type(result - begin()) : npos;
2348
2418
  }
2349
2419
  }
2350
2420
 
@@ -2356,8 +2426,9 @@ class basic_string
2356
2426
  //! <b>Throws</b>: Nothing
2357
2427
  //!
2358
2428
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2359
- size_type rfind(const basic_string& str, size_type pos = npos) const
2360
- { return rfind(str.c_str(), pos, str.size()); }
2429
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2430
+ size_type rfind(const basic_string& str, size_type pos = npos) const
2431
+ { return this->rfind(str.c_str(), pos, str.size()); }
2361
2432
 
2362
2433
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such
2363
2434
  //! that both of the following conditions obtain:
@@ -2368,15 +2439,17 @@ class basic_string
2368
2439
  //!
2369
2440
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2370
2441
  template<template <class, class> class BasicStringView>
2371
- size_type rfind(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2372
- { return rfind(sv.data(), pos, sv.size()); }
2442
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2443
+ size_type rfind(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2444
+ { return this->rfind(sv.data(), pos, sv.size()); }
2373
2445
 
2374
2446
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
2375
2447
  //!
2376
2448
  //! <b>Throws</b>: Nothing
2377
2449
  //!
2378
2450
  //! <b>Returns</b>: rfind(basic_string(s, n), pos).
2379
- size_type rfind(const CharT* s, size_type pos, size_type n) const
2451
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2452
+ size_type rfind(const CharT* s, size_type pos, size_type n) const
2380
2453
  {
2381
2454
  const size_type len = this->size();
2382
2455
 
@@ -2385,11 +2458,10 @@ class basic_string
2385
2458
  else if (n == 0)
2386
2459
  return dtl::min_value(len, pos);
2387
2460
  else {
2388
- const const_iterator last = begin() + dtl::min_value(len - n, pos) + n;
2389
- const const_iterator result = find_end(begin(), last,
2390
- s, s + n,
2391
- Eq_traits<Traits>());
2392
- return result != last ? result - begin() : npos;
2461
+ const const_iterator last = begin() + difference_type(dtl::min_value(len - n, pos + n));
2462
+ const const_iterator result = boost::container::find_end
2463
+ (begin(), last, s, s + difference_type(n), Eq_traits<Traits>());
2464
+ return result != last ? size_type(result - begin()) : npos;
2393
2465
  }
2394
2466
  }
2395
2467
 
@@ -2399,13 +2471,15 @@ class basic_string
2399
2471
  //! <b>Throws</b>: Nothing
2400
2472
  //!
2401
2473
  //! <b>Returns</b>: rfind(basic_string(s), pos).
2402
- size_type rfind(const CharT* s, size_type pos = npos) const
2403
- { return rfind(s, pos, Traits::length(s)); }
2474
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2475
+ size_type rfind(const CharT* s, size_type pos = npos) const
2476
+ { return this->rfind(s, pos, Traits::length(s)); }
2404
2477
 
2405
2478
  //! <b>Throws</b>: Nothing
2406
2479
  //!
2407
2480
  //! <b>Returns</b>: rfind(basic_string<CharT,traits,allocator_type>(1,c),pos).
2408
- size_type rfind(CharT c, size_type pos = npos) const
2481
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2482
+ size_type rfind(CharT c, size_type pos = npos) const
2409
2483
  {
2410
2484
  const size_type len = this->size();
2411
2485
 
@@ -2416,7 +2490,7 @@ class basic_string
2416
2490
  const_reverse_iterator rresult =
2417
2491
  boost::container::find_if(const_reverse_iterator(last), rend(),
2418
2492
  boost::container::bind2nd(Eq_traits<Traits>(), c));
2419
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2493
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2420
2494
  }
2421
2495
  }
2422
2496
 
@@ -2427,7 +2501,8 @@ class basic_string
2427
2501
  //! <b>Throws</b>: Nothing
2428
2502
  //!
2429
2503
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2430
- size_type find_first_of(const basic_string& str, size_type pos = 0) const
2504
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2505
+ size_type find_first_of(const basic_string& str, size_type pos = 0) const
2431
2506
  { return this->find_first_of(str.c_str(), pos, str.size()); }
2432
2507
 
2433
2508
  //! <b>Effects</b>: Determines the lowest position xpos, if possible, such that both of the
@@ -2438,7 +2513,8 @@ class basic_string
2438
2513
  //!
2439
2514
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2440
2515
  template<template <class, class> class BasicStringView>
2441
- size_type find_first_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2516
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2517
+ size_type find_first_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2442
2518
  { return this->find_first_of(sv.data(), pos, sv.size()); }
2443
2519
 
2444
2520
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
@@ -2446,17 +2522,18 @@ class basic_string
2446
2522
  //! <b>Throws</b>: Nothing
2447
2523
  //!
2448
2524
  //! <b>Returns</b>: find_first_of(basic_string(s, n), pos).
2449
- size_type find_first_of(const CharT* s, size_type pos, size_type n) const
2525
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2526
+ size_type find_first_of(const CharT* s, size_type pos, size_type n) const
2450
2527
  {
2451
2528
  const size_type sz = this->size();
2452
2529
  if (pos >= sz)
2453
2530
  return npos;
2454
2531
  else {
2455
2532
  const pointer addr = this->priv_addr();
2456
- pointer finish = addr + sz;
2533
+ pointer finish = addr + difference_type(sz);
2457
2534
  const_iterator result = boost::container::find_first_of
2458
- (addr + pos, finish, s, s + n, Eq_traits<Traits>());
2459
- return result != finish ? result - this->begin() : npos;
2535
+ (addr + difference_type(pos), finish, s, s + difference_type(n), Eq_traits<Traits>());
2536
+ return result != finish ? size_type(result - this->begin()) : npos;
2460
2537
  }
2461
2538
  }
2462
2539
 
@@ -2465,7 +2542,8 @@ class basic_string
2465
2542
  //! <b>Throws</b>: Nothing
2466
2543
  //!
2467
2544
  //! <b>Returns</b>: find_first_of(basic_string(s), pos).
2468
- size_type find_first_of(const CharT* s, size_type pos = 0) const
2545
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2546
+ size_type find_first_of(const CharT* s, size_type pos = 0) const
2469
2547
  { return this->find_first_of(s, pos, Traits::length(s)); }
2470
2548
 
2471
2549
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
@@ -2473,7 +2551,8 @@ class basic_string
2473
2551
  //! <b>Throws</b>: Nothing
2474
2552
  //!
2475
2553
  //! <b>Returns</b>: find_first_of(basic_string<CharT,traits,allocator_type>(1,c), pos).
2476
- size_type find_first_of(CharT c, size_type pos = 0) const
2554
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2555
+ size_type find_first_of(CharT c, size_type pos = 0) const
2477
2556
  { return this->find(c, pos); }
2478
2557
 
2479
2558
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such that both of
@@ -2483,7 +2562,8 @@ class basic_string
2483
2562
  //! <b>Throws</b>: Nothing
2484
2563
  //!
2485
2564
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2486
- size_type find_last_of(const basic_string& str, size_type pos = npos) const
2565
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2566
+ size_type find_last_of(const basic_string& str, size_type pos = npos) const
2487
2567
  { return this->find_last_of(str.c_str(), pos, str.size()); }
2488
2568
 
2489
2569
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such that both of
@@ -2494,7 +2574,8 @@ class basic_string
2494
2574
  //!
2495
2575
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2496
2576
  template<template <class, class> class BasicStringView>
2497
- size_type find_last_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2577
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2578
+ size_type find_last_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2498
2579
  { return this->find_last_of(sv.data(), pos, sv.size()); }
2499
2580
 
2500
2581
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
@@ -2502,7 +2583,8 @@ class basic_string
2502
2583
  //! <b>Throws</b>: Nothing
2503
2584
  //!
2504
2585
  //! <b>Returns</b>: find_last_of(basic_string(s, n), pos).
2505
- size_type find_last_of(const CharT* s, size_type pos, size_type n) const
2586
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2587
+ size_type find_last_of(const CharT* s, size_type pos, size_type n) const
2506
2588
  {
2507
2589
  const size_type len = this->size();
2508
2590
 
@@ -2510,11 +2592,11 @@ class basic_string
2510
2592
  return npos;
2511
2593
  else {
2512
2594
  const pointer addr = this->priv_addr();
2513
- const const_iterator last = addr + dtl::min_value(len - 1, pos) + 1;
2595
+ const const_iterator last = addr + difference_type(dtl::min_value(len - 1, pos) + 1);
2514
2596
  const const_reverse_iterator rresult =
2515
2597
  boost::container::find_first_of(const_reverse_iterator(last), rend(),
2516
- s, s + n, Eq_traits<Traits>());
2517
- return rresult != rend() ? (rresult.base() - 1) - addr : npos;
2598
+ s, s + difference_type(n), Eq_traits<Traits>());
2599
+ return rresult != rend() ? size_type((rresult.base() - 1) - addr) : npos;
2518
2600
  }
2519
2601
  }
2520
2602
 
@@ -2523,14 +2605,16 @@ class basic_string
2523
2605
  //! <b>Throws</b>: Nothing
2524
2606
  //!
2525
2607
  //! <b>Returns</b>: find_last_of(basic_string<CharT,traits,allocator_type>(1,c),pos).
2526
- size_type find_last_of(const CharT* s, size_type pos = npos) const
2527
- { return find_last_of(s, pos, Traits::length(s)); }
2608
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2609
+ size_type find_last_of(const CharT* s, size_type pos = npos) const
2610
+ { return this->find_last_of(s, pos, Traits::length(s)); }
2528
2611
 
2529
2612
  //! <b>Throws</b>: Nothing
2530
2613
  //!
2531
2614
  //! <b>Returns</b>: find_last_of(basic_string(s), pos).
2532
- size_type find_last_of(CharT c, size_type pos = npos) const
2533
- { return rfind(c, pos); }
2615
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2616
+ size_type find_last_of(CharT c, size_type pos = npos) const
2617
+ { return this->rfind(c, pos); }
2534
2618
 
2535
2619
  //! <b>Effects</b>: Determines the lowest position xpos, if possible, such that
2536
2620
  //! both of the following conditions obtain:
@@ -2540,8 +2624,9 @@ class basic_string
2540
2624
  //! <b>Throws</b>: Nothing
2541
2625
  //!
2542
2626
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2543
- size_type find_first_not_of(const basic_string& str, size_type pos = 0) const
2544
- { return find_first_not_of(str.c_str(), pos, str.size()); }
2627
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2628
+ size_type find_first_not_of(const basic_string& str, size_type pos = 0) const
2629
+ { return this->find_first_not_of(str.c_str(), pos, str.size()); }
2545
2630
 
2546
2631
  //! <b>Effects</b>: Determines the lowest position xpos, if possible, such that
2547
2632
  //! both of the following conditions obtain:
@@ -2552,24 +2637,26 @@ class basic_string
2552
2637
  //!
2553
2638
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2554
2639
  template<template <class, class> class BasicStringView>
2555
- size_type find_first_not_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2556
- { return find_first_not_of(sv.data(), pos, sv.size()); }
2640
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2641
+ size_type find_first_not_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2642
+ { return this->find_first_not_of(sv.data(), pos, sv.size()); }
2557
2643
 
2558
2644
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
2559
2645
  //!
2560
2646
  //! <b>Throws</b>: Nothing
2561
2647
  //!
2562
2648
  //! <b>Returns</b>: find_first_not_of(basic_string(s, n), pos).
2563
- size_type find_first_not_of(const CharT* s, size_type pos, size_type n) const
2649
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2650
+ size_type find_first_not_of(const CharT* s, size_type pos, size_type n) const
2564
2651
  {
2565
2652
  if (pos > this->size())
2566
2653
  return npos;
2567
2654
  else {
2568
2655
  const pointer addr = this->priv_addr();
2569
- const pointer finish = addr + this->priv_size();
2656
+ const pointer finish = addr + difference_type(this->priv_size());
2570
2657
  const const_iterator result = boost::container::find_if
2571
- (addr + pos, finish, Not_within_traits<Traits>(s, s + n));
2572
- return result != finish ? result - addr : npos;
2658
+ (addr + difference_type(pos), finish, Not_within_traits<Traits>(s, s + difference_type(n)));
2659
+ return result != finish ? size_type(result - addr) : npos;
2573
2660
  }
2574
2661
  }
2575
2662
 
@@ -2578,23 +2665,25 @@ class basic_string
2578
2665
  //! <b>Throws</b>: Nothing
2579
2666
  //!
2580
2667
  //! <b>Returns</b>: find_first_not_of(basic_string(s), pos).
2581
- size_type find_first_not_of(const CharT* s, size_type pos = 0) const
2582
- { return find_first_not_of(s, pos, Traits::length(s)); }
2668
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2669
+ size_type find_first_not_of(const CharT* s, size_type pos = 0) const
2670
+ { return this->find_first_not_of(s, pos, Traits::length(s)); }
2583
2671
 
2584
2672
  //! <b>Throws</b>: Nothing
2585
2673
  //!
2586
2674
  //! <b>Returns</b>: find_first_not_of(basic_string(1, c), pos).
2587
- size_type find_first_not_of(CharT c, size_type pos = 0) const
2675
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2676
+ size_type find_first_not_of(CharT c, size_type pos = 0) const
2588
2677
  {
2589
2678
  if (pos > this->size())
2590
2679
  return npos;
2591
2680
  else {
2592
2681
  const pointer addr = this->priv_addr();
2593
- const pointer finish = addr + this->priv_size();
2682
+ const pointer finish = addr + difference_type(this->priv_size());
2594
2683
  const const_iterator result
2595
- = boost::container::find_if(addr + pos, finish,
2684
+ = boost::container::find_if(addr + difference_type(pos), finish,
2596
2685
  boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2597
- return result != finish ? result - begin() : npos;
2686
+ return result != finish ? size_type(result - begin()) : npos;
2598
2687
  }
2599
2688
  }
2600
2689
 
@@ -2605,8 +2694,9 @@ class basic_string
2605
2694
  //! <b>Throws</b>: Nothing
2606
2695
  //!
2607
2696
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2608
- size_type find_last_not_of(const basic_string& str, size_type pos = npos) const
2609
- { return find_last_not_of(str.c_str(), pos, str.size()); }
2697
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2698
+ size_type find_last_not_of(const basic_string& str, size_type pos = npos) const
2699
+ { return this->find_last_not_of(str.c_str(), pos, str.size()); }
2610
2700
 
2611
2701
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such that
2612
2702
  //! both of the following conditions obtain: a) xpos <= pos and xpos < size();
@@ -2616,15 +2706,17 @@ class basic_string
2616
2706
  //!
2617
2707
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2618
2708
  template<template <class, class> class BasicStringView>
2619
- size_type find_last_not_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2620
- { return find_last_not_of(sv.data(), pos, sv.size()); }
2709
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2710
+ size_type find_last_not_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2711
+ { return this->find_last_not_of(sv.data(), pos, sv.size()); }
2621
2712
 
2622
2713
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
2623
2714
  //!
2624
2715
  //! <b>Throws</b>: Nothing
2625
2716
  //!
2626
2717
  //! <b>Returns</b>: find_last_not_of(basic_string(s, n), pos).
2627
- size_type find_last_not_of(const CharT* s, size_type pos, size_type n) const
2718
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2719
+ size_type find_last_not_of(const CharT* s, size_type pos, size_type n) const
2628
2720
  {
2629
2721
  const size_type len = this->size();
2630
2722
 
@@ -2634,8 +2726,8 @@ class basic_string
2634
2726
  const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
2635
2727
  const const_reverse_iterator rresult =
2636
2728
  boost::container::find_if(const_reverse_iterator(last), rend(),
2637
- Not_within_traits<Traits>(s, s + n));
2638
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2729
+ Not_within_traits<Traits>(s, s + difference_type(n)));
2730
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2639
2731
  }
2640
2732
  }
2641
2733
 
@@ -2644,13 +2736,15 @@ class basic_string
2644
2736
  //! <b>Throws</b>: Nothing
2645
2737
  //!
2646
2738
  //! <b>Returns</b>: find_last_not_of(basic_string(s), pos).
2647
- size_type find_last_not_of(const CharT* s, size_type pos = npos) const
2648
- { return find_last_not_of(s, pos, Traits::length(s)); }
2739
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2740
+ size_type find_last_not_of(const CharT* s, size_type pos = npos) const
2741
+ { return this->find_last_not_of(s, pos, Traits::length(s)); }
2649
2742
 
2650
2743
  //! <b>Throws</b>: Nothing
2651
2744
  //!
2652
2745
  //! <b>Returns</b>: find_last_not_of(basic_string(1, c), pos).
2653
- size_type find_last_not_of(CharT c, size_type pos = npos) const
2746
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2747
+ size_type find_last_not_of(CharT c, size_type pos = npos) const
2654
2748
  {
2655
2749
  const size_type len = this->size();
2656
2750
 
@@ -2661,7 +2755,7 @@ class basic_string
2661
2755
  const const_reverse_iterator rresult =
2662
2756
  boost::container::find_if(const_reverse_iterator(last), rend(),
2663
2757
  boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2664
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2758
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2665
2759
  }
2666
2760
  }
2667
2761
 
@@ -2673,13 +2767,14 @@ class basic_string
2673
2767
  //! <b>Throws</b>: If memory allocation throws or out_of_range if pos > size().
2674
2768
  //!
2675
2769
  //! <b>Returns</b>: basic_string<CharT,traits,allocator_type>(data()+pos,rlen).
2676
- basic_string substr(size_type pos = 0, size_type n = npos) const
2770
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2771
+ basic_string substr(size_type pos = 0, size_type n = npos) const
2677
2772
  {
2678
2773
  if (pos > this->size())
2679
2774
  throw_out_of_range("basic_string::substr out of range position");
2680
2775
  const pointer addr = this->priv_addr();
2681
- return basic_string(addr + pos,
2682
- addr + pos + dtl::min_value(n, size() - pos), this->alloc());
2776
+ return basic_string(addr + difference_type(pos),
2777
+ addr + difference_type(pos + dtl::min_value(n, size() - pos)), this->alloc());
2683
2778
  }
2684
2779
 
2685
2780
  //! <b>Effects</b>: Determines the effective length rlen of the string to compare as
@@ -2691,21 +2786,23 @@ class basic_string
2691
2786
  //! <b>Returns</b>: The nonzero result if the result of the comparison is nonzero.
2692
2787
  //! Otherwise, returns a value < 0 if size() < str.size(), a 0 value if size() == str.size(),
2693
2788
  //! and value > 0 if size() > str.size()
2694
- int compare(const basic_string& str) const
2789
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2790
+ int compare(const basic_string& str) const
2695
2791
  {
2696
2792
  const pointer addr = this->priv_addr();
2697
2793
  const pointer str_addr = str.priv_addr();
2698
- return s_compare(addr, addr + this->priv_size(), str_addr, str_addr + str.priv_size());
2794
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), str_addr, str_addr + difference_type(str.priv_size()));
2699
2795
  }
2700
2796
 
2701
2797
  //! <b>Throws</b>: Nothing
2702
2798
  //!
2703
2799
  //! <b>Returns</b>: compare(basic_string(sv)).
2704
2800
  template<template <class, class> class BasicStringView>
2705
- int compare(BasicStringView<CharT,Traits> sv) const
2801
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2802
+ int compare(BasicStringView<CharT,Traits> sv) const
2706
2803
  {
2707
2804
  const pointer addr = this->priv_addr();
2708
- return s_compare(addr, addr + this->priv_size(), sv.data(), sv.data() + sv.size());
2805
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), sv.data(), sv.data() + difference_type(sv.size()));
2709
2806
  }
2710
2807
 
2711
2808
  //! <b>Requires</b>: pos1 <= size()
@@ -2717,15 +2814,16 @@ class basic_string
2717
2814
  //! <b>Throws</b>: out_of_range if pos1 > size()
2718
2815
  //!
2719
2816
  //! <b>Returns</b>:basic_string(*this,pos1,n1).compare(str).
2720
- int compare(size_type pos1, size_type n1, const basic_string& str) const
2817
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2818
+ int compare(size_type pos1, size_type n1, const basic_string& str) const
2721
2819
  {
2722
2820
  if (pos1 > this->size())
2723
2821
  throw_out_of_range("basic_string::compare out of range position");
2724
2822
  const pointer addr = this->priv_addr();
2725
2823
  const pointer str_addr = str.priv_addr();
2726
- return s_compare(addr + pos1,
2727
- addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2728
- str_addr, str_addr + str.priv_size());
2824
+ return this->s_compare(addr + difference_type(pos1),
2825
+ addr + difference_type(pos1 + dtl::min_value(n1, this->size() - pos1)),
2826
+ str_addr, str_addr + difference_type(str.priv_size()));
2729
2827
  }
2730
2828
 
2731
2829
  //! <b>Requires</b>: pos1 <= size()
@@ -2734,13 +2832,14 @@ class basic_string
2734
2832
  //!
2735
2833
  //! <b>Returns</b>:basic_string(*this,pos1,n1).compare(sv).
2736
2834
  template<template <class, class> class BasicStringView>
2737
- int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv) const
2835
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2836
+ int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv) const
2738
2837
  {
2739
2838
  if (pos1 > this->size())
2740
2839
  throw_out_of_range("basic_string::compare out of range position");
2741
2840
  const pointer addr = this->priv_addr() + pos1;
2742
2841
  const CharT* str_addr = sv.data();
2743
- return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2842
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2744
2843
  str_addr, str_addr + sv.size());
2745
2844
  }
2746
2845
 
@@ -2752,14 +2851,15 @@ class basic_string
2752
2851
  //! <b>Throws</b>: out_of_range if pos1 > size() or pos2 > str.size()
2753
2852
  //!
2754
2853
  //! <b>Returns</b>: basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)).
2755
- int compare(size_type pos1, size_type n1, const basic_string& str, size_type pos2, size_type n2 = npos) const
2854
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2855
+ int compare(size_type pos1, size_type n1, const basic_string& str, size_type pos2, size_type n2 = npos) const
2756
2856
  {
2757
2857
  if (pos1 > this->size() || pos2 > str.size())
2758
2858
  throw_out_of_range("basic_string::compare out of range position");
2759
2859
  const pointer addr = this->priv_addr() + pos1;
2760
2860
  const pointer str_addr = str.priv_addr() + pos2;
2761
- return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2762
- str_addr, str_addr + dtl::min_value(n2, str.size() - pos2));
2861
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2862
+ str_addr, str_addr + difference_type(dtl::min_value(n2, str.size() - pos2)));
2763
2863
  }
2764
2864
 
2765
2865
  //! <b>Requires</b>: pos1 <= size() and pos2 <= str.size()
@@ -2771,23 +2871,25 @@ class basic_string
2771
2871
  //!
2772
2872
  //! <b>Returns</b>: basic_string(*this, pos1, n1).compare(BasicStringView<CharT, Traits>(sv, pos2, n2)).
2773
2873
  template<template <class, class> class BasicStringView>
2774
- int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv, size_type pos2, size_type n2) const
2874
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2875
+ int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv, size_type pos2, size_type n2) const
2775
2876
  {
2776
2877
  if (pos1 > this->size() || pos2 > sv.size())
2777
2878
  throw_out_of_range("basic_string::compare out of range position");
2778
2879
  const pointer addr = this->priv_addr() + pos1;
2779
2880
  const CharT * str_addr = sv.data() + pos2;
2780
- return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2781
- str_addr, str_addr + dtl::min_value(n2, sv.size() - pos2));
2881
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2882
+ str_addr, str_addr + difference_type(dtl::min_value(n2, sv.size() - pos2)));
2782
2883
  }
2783
2884
 
2784
2885
  //! <b>Throws</b>: Nothing
2785
2886
  //!
2786
2887
  //! <b>Returns</b>: compare(basic_string(s)).
2787
- int compare(const CharT* s) const
2888
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2889
+ int compare(const CharT* s) const
2788
2890
  {
2789
2891
  const pointer addr = this->priv_addr();
2790
- return s_compare(addr, addr + this->priv_size(), s, s + Traits::length(s));
2892
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), s, s + Traits::length(s));
2791
2893
  }
2792
2894
 
2793
2895
  //! <b>Requires</b>: pos1 > size() and s points to an array of at least n2 elements of CharT.
@@ -2795,14 +2897,15 @@ class basic_string
2795
2897
  //! <b>Throws</b>: out_of_range if pos1 > size()
2796
2898
  //!
2797
2899
  //! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
2798
- int compare(size_type pos1, size_type n1, const CharT* s, size_type n2) const
2900
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2901
+ int compare(size_type pos1, size_type n1, const CharT* s, size_type n2) const
2799
2902
  {
2800
2903
  if (pos1 > this->size())
2801
2904
  throw_out_of_range("basic_string::compare out of range position");
2802
2905
  const pointer addr = this->priv_addr();
2803
- return s_compare( addr + pos1,
2804
- addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2805
- s, s + n2);
2906
+ return this->s_compare( addr + difference_type(pos1),
2907
+ addr + difference_type(pos1 + dtl::min_value(n1, this->size() - pos1)),
2908
+ s, s + difference_type(n2));
2806
2909
  }
2807
2910
 
2808
2911
  //! <b>Requires</b>: pos1 > size() and s points to an array of at least traits::length(s) + 1 elements of CharT.
@@ -2810,7 +2913,8 @@ class basic_string
2810
2913
  //! <b>Throws</b>: out_of_range if pos1 > size()
2811
2914
  //!
2812
2915
  //! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
2813
- int compare(size_type pos1, size_type n1, const CharT* s) const
2916
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2917
+ int compare(size_type pos1, size_type n1, const CharT* s) const
2814
2918
  { return this->compare(pos1, n1, s, Traits::length(s)); }
2815
2919
 
2816
2920
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -2830,9 +2934,9 @@ class basic_string
2830
2934
 
2831
2935
  const pointer addr = this->priv_addr();
2832
2936
  new_length += priv_uninitialized_copy
2833
- (addr, addr + this->priv_size(), new_start);
2937
+ (addr, addr + difference_type(this->priv_size()), new_start);
2834
2938
  if(null_terminate){
2835
- this->priv_construct_null(new_start + new_length);
2939
+ this->priv_construct_null(new_start + difference_type(new_length));
2836
2940
  }
2837
2941
  this->deallocate_block();
2838
2942
  this->assure_long();
@@ -2845,8 +2949,8 @@ class basic_string
2845
2949
  template<class It1, class It2>
2846
2950
  static int s_compare(It1 f1, It1 l1, It2 f2, It2 l2)
2847
2951
  {
2848
- const difference_type n1 = l1 - f1;
2849
- const difference_type n2 = l2 - f2;
2952
+ const std::size_t n1 = std::size_t(l1 - f1);
2953
+ const std::size_t n2 = std::size_t(l2 - f2);
2850
2954
  const int cmp = Traits::compare(boost::movelib::to_raw_pointer(f1),
2851
2955
  boost::movelib::to_raw_pointer(f2),
2852
2956
  dtl::min_value(n1, n2));
@@ -2864,7 +2968,7 @@ class basic_string
2864
2968
  const size_type long_size = this->priv_long_size();
2865
2969
  const size_type long_storage = this->priv_long_storage();
2866
2970
  //We can make this nothrow as chars are always NoThrowCopyables
2867
- BOOST_TRY{
2971
+ BOOST_CONTAINER_TRY{
2868
2972
  pointer reuse = 0;
2869
2973
  real_cap = long_size+1;
2870
2974
  const pointer ret = this->allocation_command(allocate_new, long_size+1, real_cap, reuse);
@@ -2877,10 +2981,10 @@ class basic_string
2877
2981
  //And release old buffer
2878
2982
  this->alloc().deallocate(long_addr, long_storage);
2879
2983
  }
2880
- BOOST_CATCH(...){
2984
+ BOOST_CONTAINER_CATCH(...){
2881
2985
  return;
2882
2986
  }
2883
- BOOST_CATCH_END
2987
+ BOOST_CONTAINER_CATCH_END
2884
2988
  }
2885
2989
 
2886
2990
  template<class AllocVersion>
@@ -2896,12 +3000,12 @@ class basic_string
2896
3000
  }
2897
3001
  }
2898
3002
 
2899
- void priv_construct_null(pointer p)
3003
+ BOOST_CONTAINER_FORCEINLINE void priv_construct_null(pointer p)
2900
3004
  { this->construct(p, CharT(0)); }
2901
3005
 
2902
3006
  // Helper functions used by constructors. It is a severe error for
2903
3007
  // any of them to be called anywhere except from within constructors.
2904
- void priv_terminate_string()
3008
+ BOOST_CONTAINER_FORCEINLINE void priv_terminate_string()
2905
3009
  { this->priv_construct_null(this->priv_end_addr()); }
2906
3010
 
2907
3011
  template<class FwdIt, class Count> inline
@@ -2910,20 +3014,20 @@ class basic_string
2910
3014
  //Save initial position
2911
3015
  FwdIt init = first;
2912
3016
 
2913
- BOOST_TRY{
3017
+ BOOST_CONTAINER_TRY{
2914
3018
  //Construct objects
2915
3019
  for (; count--; ++first){
2916
3020
  this->construct(first, val);
2917
3021
  }
2918
3022
  }
2919
- BOOST_CATCH(...){
3023
+ BOOST_CONTAINER_CATCH(...){
2920
3024
  //Call destructors
2921
3025
  for (; init != first; ++init){
2922
3026
  this->destroy(init);
2923
3027
  }
2924
- BOOST_RETHROW
3028
+ BOOST_CONTAINER_RETHROW
2925
3029
  }
2926
- BOOST_CATCH_END
3030
+ BOOST_CONTAINER_CATCH_END
2927
3031
  }
2928
3032
 
2929
3033
  template<class InpIt, class FwdIt> inline
@@ -2933,41 +3037,41 @@ class basic_string
2933
3037
  FwdIt dest_init = dest;
2934
3038
  size_type constructed = 0;
2935
3039
 
2936
- BOOST_TRY{
3040
+ BOOST_CONTAINER_TRY{
2937
3041
  //Try to build objects
2938
3042
  for (; first != last; ++dest, ++first, ++constructed){
2939
3043
  this->construct(dest, *first);
2940
3044
  }
2941
3045
  }
2942
- BOOST_CATCH(...){
3046
+ BOOST_CONTAINER_CATCH(...){
2943
3047
  //Call destructors
2944
3048
  for (; constructed--; ++dest_init){
2945
3049
  this->destroy(dest_init);
2946
3050
  }
2947
- BOOST_RETHROW
3051
+ BOOST_CONTAINER_RETHROW
2948
3052
  }
2949
- BOOST_CATCH_END
3053
+ BOOST_CONTAINER_CATCH_END
2950
3054
  return (constructed);
2951
3055
  }
2952
3056
 
2953
3057
  template <class InputIterator, class OutIterator>
2954
- void priv_copy(InputIterator first, InputIterator last, OutIterator result)
3058
+ static void priv_copy(InputIterator first, InputIterator last, OutIterator result)
2955
3059
  {
2956
3060
  for ( ; first != last; ++first, ++result)
2957
3061
  Traits::assign(*result, *first);
2958
3062
  }
2959
3063
 
2960
- void priv_copy(const CharT* first, const CharT* last, CharT* result)
2961
- { Traits::copy(result, first, last - first); }
3064
+ static BOOST_CONTAINER_FORCEINLINE void priv_copy(const CharT* first, const CharT* last, CharT* result)
3065
+ { Traits::copy(result, first, std::size_t(last - first)); }
2962
3066
 
2963
3067
  template <class Integer>
2964
- basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3068
+ BOOST_CONTAINER_FORCEINLINE basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
2965
3069
  Integer n, Integer x,
2966
3070
  dtl::true_)
2967
3071
  { return this->replace(first, last, (size_type) n, (CharT) x); }
2968
3072
 
2969
3073
  template <class InputIter>
2970
- basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3074
+ BOOST_CONTAINER_FORCEINLINE basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
2971
3075
  InputIter f, InputIter l,
2972
3076
  dtl::false_)
2973
3077
  {
@@ -3328,6 +3432,7 @@ operator>=( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT
3328
3432
  // Swap.
3329
3433
  template <class CharT, class Traits, class Allocator>
3330
3434
  inline void swap(basic_string<CharT,Traits,Allocator>& x, basic_string<CharT,Traits,Allocator>& y)
3435
+ BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
3331
3436
  { x.swap(y); }
3332
3437
 
3333
3438
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -3476,11 +3581,26 @@ getline(std::basic_istream<CharT, Traits>& is, basic_string<CharT,Traits,Allocat
3476
3581
  template <class Ch, class Allocator>
3477
3582
  inline std::size_t hash_value(basic_string<Ch, std::char_traits<Ch>, Allocator> const& v)
3478
3583
  {
3479
- return hash_range(v.begin(), v.end());
3584
+ std::size_t seed = 0;
3585
+ const Ch *first = v.data();
3586
+
3587
+ for(std::size_t i = 0, i_max = v.size(); i != i_max; ++i)
3588
+ {
3589
+ boost::intrusive::detail::hash_combine_size_t(seed, static_cast<std::size_t>(*first));
3590
+ ++first;
3591
+ }
3592
+
3593
+ return seed;
3480
3594
  }
3481
3595
 
3482
3596
  }}
3483
3597
 
3598
+ //GCC 12 has a regression for array-bounds warnings
3599
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_GCC < 130000)
3600
+ #pragma GCC diagnostic pop
3601
+ #endif
3602
+
3603
+
3484
3604
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
3485
3605
 
3486
3606
  namespace boost {