passenger 5.3.3 → 5.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1070) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +8 -0
  3. data/build/support/cxx_dependency_map.rb +151 -83
  4. data/dev/configkit-schemas/index.json +3 -3
  5. data/src/agent/Core/AdminPanelConnector.h +5 -3
  6. data/src/agent/Core/ApplicationPool/Common.h +1 -2
  7. data/src/agent/Core/ApplicationPool/Context.h +1 -2
  8. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  9. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  10. data/src/agent/Core/Config.h +1 -1
  11. data/src/agent/Core/Controller.h +2 -1
  12. data/src/agent/Core/Controller/Config.h +6 -5
  13. data/src/agent/Core/Controller/Hooks.cpp +11 -0
  14. data/src/agent/Core/Controller/SendRequest.cpp +7 -7
  15. data/src/agent/Core/CoreMain.cpp +0 -2
  16. data/src/agent/Core/SpawningKit/Context.h +1 -3
  17. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  18. data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
  19. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
  20. data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
  22. data/src/agent/Shared/ApiServerUtils.h +2 -2
  23. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
  24. data/src/agent/Watchdog/Config.h +1 -1
  25. data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
  26. data/src/apache2_module/Config.cpp +7 -6
  27. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  28. data/src/cxx_supportlib/Constants.h +1 -1
  29. data/src/cxx_supportlib/Exceptions.h +0 -1
  30. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
  31. data/src/cxx_supportlib/ResourceLocator.h +3 -21
  32. data/src/cxx_supportlib/SafeLibev.h +6 -6
  33. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  34. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
  35. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  36. data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
  37. data/src/cxx_supportlib/ServerKit/Server.h +2 -2
  38. data/src/cxx_supportlib/SystemTools/README.md +1 -0
  39. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
  40. data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
  41. data/src/cxx_supportlib/Utils.cpp +1 -113
  42. data/src/cxx_supportlib/Utils.h +1 -29
  43. data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
  44. data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
  48. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +26 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -14
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +61 -21
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +1 -1
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +212 -51
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +2 -2
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +8 -6
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -1
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +65 -14
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +5 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{function.hpp → functional.hpp} +10 -10
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +6 -6
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +80 -27
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +13 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +11 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +27 -13
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +181 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -51
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +36 -14
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +2 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +17 -5
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +10 -9
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +29 -19
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +7 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +26 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +7 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +5 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +82 -0
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +5 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +10 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +106 -0
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +25 -24
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +9 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +37 -18
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +9 -5
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +14 -13
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +9 -6
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +10 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -1
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +72 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +7 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +29 -2
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +11 -5
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +2 -2
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +29 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +74 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +3 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +4 -4
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +109 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +30 -30
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +313 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +56 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +263 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +48 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -2
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +27 -23
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +4 -10
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -13
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +3 -9
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
  470. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
  473. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
  474. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
  476. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
  477. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
  479. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
  480. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
  481. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
  503. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
  505. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
  508. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
  509. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
  510. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
  511. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
  513. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
  514. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
  516. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
  517. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
  518. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
  519. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
  520. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
  521. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
  522. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
  523. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
  524. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
  537. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
  538. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
  539. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
  540. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
  541. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
  542. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
  543. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
  544. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
  545. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
  546. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
  547. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
  548. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
  549. data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
  550. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
  551. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
  553. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
  556. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
  559. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
  564. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
  566. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
  567. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
  569. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
  573. data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
  574. data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
  576. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
  580. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
  586. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
  587. data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
  590. data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
  591. data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
  592. data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
  595. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
  607. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
  608. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
  609. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
  610. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
  611. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
  612. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
  613. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
  614. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
  615. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
  617. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
  619. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
  622. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
  623. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
  624. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
  625. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
  628. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
  630. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
  631. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
  634. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
  635. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
  636. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
  637. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
  638. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
  639. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
  640. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
  643. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
  645. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
  646. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
  647. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
  648. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
  650. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
  651. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
  652. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
  653. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
  654. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
  655. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
  656. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
  657. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
  658. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
  659. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
  662. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
  663. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  664. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  665. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
  666. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
  667. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
  668. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
  669. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
  670. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
  671. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
  672. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
  673. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
  674. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
  675. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
  676. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
  678. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
  680. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
  681. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
  682. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
  683. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
  684. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
  685. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
  687. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
  688. data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
  689. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
  690. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
  693. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
  694. data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
  695. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
  696. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
  697. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
  698. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
  699. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  700. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
  701. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
  702. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
  703. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
  704. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
  705. data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
  706. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
  707. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
  708. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
  709. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
  710. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
  711. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
  712. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
  713. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
  714. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
  715. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
  717. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
  718. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
  719. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
  720. data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
  721. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
  722. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
  723. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
  724. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
  725. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
  727. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
  728. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
  729. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
  730. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
  731. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
  732. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
  737. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
  738. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
  739. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
  742. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
  744. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
  745. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
  748. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
  749. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
  750. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
  752. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
  753. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
  754. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
  757. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
  758. data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
  759. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
  761. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
  762. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
  763. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
  764. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
  765. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
  766. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
  767. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
  768. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  769. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
  770. data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
  773. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
  776. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
  779. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
  780. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  781. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +111 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
  783. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
  785. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
  786. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
  789. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
  791. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
  793. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
  794. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
  796. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
  797. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
  798. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
  800. data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
  802. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
  803. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
  804. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
  805. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
  806. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
  808. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
  809. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
  810. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
  811. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  812. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
  814. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
  816. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
  817. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
  818. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
  819. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
  820. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
  821. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
  825. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
  826. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
  827. data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
  828. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
  829. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
  830. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
  831. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
  832. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
  833. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
  834. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
  835. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
  836. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
  837. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
  838. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
  839. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
  840. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  842. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
  843. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
  844. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
  845. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
  846. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
  847. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
  848. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
  849. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
  850. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
  851. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
  853. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
  854. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
  856. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
  858. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
  859. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  860. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
  862. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
  863. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
  864. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
  865. data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
  866. data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
  867. data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
  869. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
  870. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
  872. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
  875. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
  876. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
  878. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
  879. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
  880. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
  881. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
  883. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
  894. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
  895. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
  896. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
  897. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
  898. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
  899. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
  900. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
  901. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
  902. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
  903. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
  904. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
  905. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
  906. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
  908. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
  909. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  910. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
  911. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
  912. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
  917. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
  918. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
  934. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
  935. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
  936. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
  938. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
  939. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
  940. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
  941. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
  942. data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
  944. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
  945. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
  946. data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
  947. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
  948. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
  949. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
  950. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +6 -2
  951. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
  952. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
  954. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
  955. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
  957. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
  958. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
  960. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
  961. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
  962. data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
  963. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
  964. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
  965. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
  966. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
  967. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
  968. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
  969. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
  971. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
  972. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
  973. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
  975. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
  981. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
  982. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
  984. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
  986. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
  988. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
  1001. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
  1002. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
  1003. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
  1004. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
  1005. data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
  1006. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
  1007. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
  1008. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
  1009. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
  1010. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
  1011. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
  1012. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
  1013. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
  1015. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
  1016. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
  1023. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
  1024. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
  1025. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
  1026. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
  1031. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
  1032. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
  1034. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
  1035. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
  1036. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1037. data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
  1038. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  1039. data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
  1040. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
  1041. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
  1042. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1043. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
  1044. metadata +201 -47
  1045. data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
  1046. data/src/cxx_supportlib/MessageClient.h +0 -309
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
  1064. data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
  1065. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
  1066. data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
  1067. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
  1068. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
  1069. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
  1070. data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
@@ -33,7 +33,7 @@ namespace boost { namespace container {
33
33
 
34
34
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
35
35
 
36
- namespace container_detail {
36
+ namespace dtl {
37
37
 
38
38
  template<class T, std::size_t N>
39
39
  class static_storage_allocator
@@ -51,17 +51,17 @@ class static_storage_allocator
51
51
  { return *this; }
52
52
 
53
53
  BOOST_CONTAINER_FORCEINLINE T* internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW
54
- { return const_cast<T*>(static_cast<const T*>(static_cast<const void*>(&storage))); }
54
+ { return const_cast<T*>(static_cast<const T*>(static_cast<const void*>(storage.data))); }
55
55
 
56
56
  BOOST_CONTAINER_FORCEINLINE T* internal_storage() BOOST_NOEXCEPT_OR_NOTHROW
57
- { return static_cast<T*>(static_cast<void*>(&storage)); }
57
+ { return static_cast<T*>(static_cast<void*>(storage.data)); }
58
58
 
59
59
  static const std::size_t internal_capacity = N;
60
60
 
61
61
  std::size_t max_size() const
62
62
  { return N; }
63
63
 
64
- typedef boost::container::container_detail::version_type<static_storage_allocator, 0> version;
64
+ typedef boost::container::dtl::version_type<static_storage_allocator, 0> version;
65
65
 
66
66
  BOOST_CONTAINER_FORCEINLINE friend bool operator==(const static_storage_allocator &, const static_storage_allocator &) BOOST_NOEXCEPT_OR_NOTHROW
67
67
  { return false; }
@@ -73,7 +73,7 @@ class static_storage_allocator
73
73
  typename aligned_storage<sizeof(T)*N, alignment_of<T>::value>::type storage;
74
74
  };
75
75
 
76
- } //namespace container_detail {
76
+ } //namespace dtl {
77
77
 
78
78
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
79
79
 
@@ -103,16 +103,18 @@ class static_storage_allocator
103
103
  //!@tparam Capacity The maximum number of elements static_vector can store, fixed at compile time.
104
104
  template <typename Value, std::size_t Capacity>
105
105
  class static_vector
106
- : public vector<Value, container_detail::static_storage_allocator<Value, Capacity> >
106
+ : public vector<Value, dtl::static_storage_allocator<Value, Capacity> >
107
107
  {
108
108
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
109
- typedef vector<Value, container_detail::static_storage_allocator<Value, Capacity> > base_t;
109
+ typedef vector<Value, dtl::static_storage_allocator<Value, Capacity> > base_t;
110
110
 
111
111
  BOOST_COPYABLE_AND_MOVABLE(static_vector)
112
112
 
113
113
  template<class U, std::size_t OtherCapacity>
114
114
  friend class static_vector;
115
115
 
116
+ public:
117
+ typedef dtl::static_storage_allocator<Value, Capacity> allocator_type;
116
118
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
117
119
 
118
120
  public:
@@ -252,6 +254,19 @@ public:
252
254
  : base_t(other)
253
255
  {}
254
256
 
257
+ BOOST_CONTAINER_FORCEINLINE static_vector(static_vector const& other, const allocator_type &)
258
+ : base_t(other)
259
+ {}
260
+
261
+ BOOST_CONTAINER_FORCEINLINE static_vector(BOOST_RV_REF(static_vector) other, const allocator_type &)
262
+ BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<value_type>::value)
263
+ : base_t(BOOST_MOVE_BASE(base_t, other))
264
+ {}
265
+
266
+ BOOST_CONTAINER_FORCEINLINE explicit static_vector(const allocator_type &)
267
+ : base_t()
268
+ {}
269
+
255
270
  //! @pre <tt>other.size() <= capacity()</tt>.
256
271
  //!
257
272
  //! @brief Constructs a copy of other static_vector.
@@ -279,7 +294,7 @@ public:
279
294
  //! @par Complexity
280
295
  //! Linear O(N).
281
296
  BOOST_CONTAINER_FORCEINLINE static_vector(BOOST_RV_REF(static_vector) other)
282
- BOOST_NOEXCEPT_IF(boost::container::container_detail::is_nothrow_move_constructible<value_type>::value)
297
+ BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<value_type>::value)
283
298
  : base_t(BOOST_MOVE_BASE(base_t, other))
284
299
  {}
285
300
 
@@ -1213,7 +1228,7 @@ inline void swap(static_vector<V, C1> & x, static_vector<V, C2> & y);
1213
1228
 
1214
1229
  template<typename V, std::size_t C1, std::size_t C2>
1215
1230
  inline void swap(static_vector<V, C1> & x, static_vector<V, C2> & y
1216
- , typename container_detail::enable_if_c< C1 != C2>::type * = 0)
1231
+ , typename dtl::enable_if_c< C1 != C2>::type * = 0)
1217
1232
  {
1218
1233
  x.swap(y);
1219
1234
  }
@@ -35,10 +35,11 @@
35
35
  #include <boost/container/detail/min_max.hpp>
36
36
  #include <boost/container/detail/mpl.hpp>
37
37
  #include <boost/container/detail/next_capacity.hpp>
38
- #include <boost/container/detail/to_raw_pointer.hpp>
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
41
  #include <boost/container/detail/minimal_char_traits_header.hpp>
42
+ #include <boost/container/detail/algorithm.hpp>
42
43
 
43
44
  #include <boost/intrusive/pointer_traits.hpp>
44
45
 
@@ -51,7 +52,6 @@
51
52
  #include <boost/functional/hash.hpp>
52
53
 
53
54
  #include <algorithm>
54
- #include <functional> //bind2nd, etc.
55
55
  #include <iosfwd>
56
56
  #include <istream>
57
57
  #include <ostream>
@@ -70,7 +70,7 @@ namespace boost {
70
70
  namespace container {
71
71
 
72
72
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
73
- namespace container_detail {
73
+ namespace dtl {
74
74
  // ------------------------------------------------------------
75
75
  // Class basic_string_base.
76
76
 
@@ -170,8 +170,8 @@ class basic_string_base
170
170
  //This type has the same alignment and size as long_t but it's POD
171
171
  //so, unlike long_t, it can be placed in a union
172
172
 
173
- typedef typename container_detail::aligned_storage
174
- <sizeof(long_t), container_detail::alignment_of<long_t>::value>::type long_raw_t;
173
+ typedef typename dtl::aligned_storage
174
+ <sizeof(long_t), dtl::alignment_of<long_t>::value>::type long_raw_t;
175
175
 
176
176
  protected:
177
177
  static const size_type MinInternalBufferChars = 8;
@@ -199,7 +199,7 @@ class basic_string_base
199
199
  { return s; }
200
200
 
201
201
  const long_t &long_repr() const
202
- { return *static_cast<const long_t*>(static_cast<const void*>(&r)); }
202
+ { return *static_cast<const long_t*>(static_cast<const void*>(r.data)); }
203
203
 
204
204
  short_t &short_repr()
205
205
  { return s; }
@@ -274,8 +274,8 @@ class basic_string_base
274
274
 
275
275
  protected:
276
276
 
277
- typedef container_detail::integral_constant<unsigned,
278
- boost::container::container_detail::version<Allocator>::value> alloc_version;
277
+ typedef dtl::integral_constant<unsigned,
278
+ boost::container::dtl::version<Allocator>::value> alloc_version;
279
279
 
280
280
  pointer allocation_command(allocation_type command,
281
281
  size_type limit_size,
@@ -286,16 +286,14 @@ class basic_string_base
286
286
  reuse = 0;
287
287
  command &= ~(expand_fwd | expand_bwd);
288
288
  }
289
- return container_detail::allocator_version_traits<Allocator>::allocation_command
289
+ return dtl::allocator_version_traits<Allocator>::allocation_command
290
290
  (this->alloc(), command, limit_size, prefer_in_recvd_out_size, reuse);
291
291
  }
292
292
 
293
293
  size_type next_capacity(size_type additional_objects) const
294
294
  {
295
- return next_capacity_calculator
296
- <size_type, NextCapacityDouble /*NextCapacity60Percent*/>::
297
- get( allocator_traits_type::max_size(this->alloc())
298
- , this->priv_storage(), additional_objects );
295
+ return growth_factor_100()
296
+ ( this->priv_storage(), additional_objects, allocator_traits_type::max_size(this->alloc()));
299
297
  }
300
298
 
301
299
  void deallocate(pointer p, size_type n)
@@ -308,14 +306,14 @@ class basic_string_base
308
306
  {
309
307
  allocator_traits_type::construct
310
308
  ( this->alloc()
311
- , container_detail::to_raw_pointer(p)
309
+ , boost::movelib::to_raw_pointer(p)
312
310
  , value
313
311
  );
314
312
  }
315
313
 
316
314
  void destroy(pointer p, size_type n)
317
315
  {
318
- value_type *raw_p = container_detail::to_raw_pointer(p);
316
+ value_type *raw_p = boost::movelib::to_raw_pointer(p);
319
317
  for(; n--; ++raw_p){
320
318
  allocator_traits_type::destroy( this->alloc(), raw_p);
321
319
  }
@@ -325,7 +323,7 @@ class basic_string_base
325
323
  {
326
324
  allocator_traits_type::destroy
327
325
  ( this->alloc()
328
- , container_detail::to_raw_pointer(p)
326
+ , boost::movelib::to_raw_pointer(p)
329
327
  );
330
328
  }
331
329
 
@@ -460,7 +458,7 @@ class basic_string_base
460
458
  }
461
459
  };
462
460
 
463
- } //namespace container_detail {
461
+ } //namespace dtl {
464
462
 
465
463
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
466
464
 
@@ -502,13 +500,13 @@ template <class CharT, class Traits = std::char_traits<CharT>, class Allocator =
502
500
  template <class CharT, class Traits, class Allocator>
503
501
  #endif
504
502
  class basic_string
505
- : private container_detail::basic_string_base<Allocator>
503
+ : private dtl::basic_string_base<Allocator>
506
504
  {
507
505
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
508
506
  private:
509
507
  typedef allocator_traits<Allocator> allocator_traits_type;
510
508
  BOOST_COPYABLE_AND_MOVABLE(basic_string)
511
- typedef container_detail::basic_string_base<Allocator> base_t;
509
+ typedef dtl::basic_string_base<Allocator> base_t;
512
510
  static const typename base_t::size_type InternalBufferChars = base_t::InternalBufferChars;
513
511
 
514
512
  protected:
@@ -541,8 +539,8 @@ class basic_string
541
539
 
542
540
  bool operator()(const typename Tr::char_type& x) const
543
541
  {
544
- return std::find_if(m_first, m_last,
545
- std::bind1st(Eq_traits<Tr>(), x)) == m_last;
542
+ return boost::container::find_if(m_first, m_last,
543
+ boost::container::bind1st(Eq_traits<Tr>(), x)) == m_last;
546
544
  }
547
545
  };
548
546
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -598,7 +596,7 @@ class basic_string
598
596
  //! <b>Effects</b>: Default constructs a basic_string.
599
597
  //!
600
598
  //! <b>Throws</b>: If allocator_type's default constructor throws.
601
- basic_string() BOOST_NOEXCEPT_IF(container_detail::is_nothrow_default_constructible<Allocator>::value)
599
+ basic_string() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<Allocator>::value)
602
600
  : base_t()
603
601
  { this->priv_terminate_string(); }
604
602
 
@@ -689,7 +687,7 @@ class basic_string
689
687
  throw_out_of_range("basic_string::basic_string out of range position");
690
688
  else
691
689
  this->assign
692
- (s.begin() + pos, s.begin() + pos + container_detail::min_value(n, s.size() - pos));
690
+ (s.begin() + pos, s.begin() + pos + dtl::min_value(n, s.size() - pos));
693
691
  }
694
692
 
695
693
  //! <b>Effects</b>: Constructs a basic_string taking the allocator as parameter,
@@ -702,7 +700,7 @@ class basic_string
702
700
  throw_out_of_range("basic_string::basic_string out of range position");
703
701
  else
704
702
  this->assign
705
- (s.begin() + pos, s.begin() + pos + container_detail::min_value(n, s.size() - pos));
703
+ (s.begin() + pos, s.begin() + pos + dtl::min_value(n, s.size() - pos));
706
704
  }
707
705
 
708
706
  //! <b>Effects</b>: Constructs a basic_string taking a default-constructed allocator,
@@ -827,7 +825,7 @@ class basic_string
827
825
  if (&x != this){
828
826
  allocator_type &this_alloc = this->alloc();
829
827
  const allocator_type &x_alloc = x.alloc();
830
- container_detail::bool_<allocator_traits_type::
828
+ dtl::bool_<allocator_traits_type::
831
829
  propagate_on_container_copy_assignment::value> flag;
832
830
  if(flag && this_alloc != x_alloc){
833
831
  if(!this->is_short()){
@@ -837,7 +835,7 @@ class basic_string
837
835
  this->priv_short_size(0);
838
836
  }
839
837
  }
840
- container_detail::assign_alloc(this->alloc(), x.alloc(), flag);
838
+ dtl::assign_alloc(this->alloc(), x.alloc(), flag);
841
839
  this->assign(x.begin(), x.end());
842
840
  }
843
841
  return *this;
@@ -861,7 +859,7 @@ class basic_string
861
859
  allocator_type &x_alloc = x.alloc();
862
860
  const bool propagate_alloc = allocator_traits_type::
863
861
  propagate_on_container_move_assignment::value;
864
- container_detail::bool_<propagate_alloc> flag;
862
+ dtl::bool_<propagate_alloc> flag;
865
863
  const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal;
866
864
  //Resources can be transferred if both allocators are
867
865
  //going to be equal after this function (either propagated or already equal)
@@ -869,7 +867,7 @@ class basic_string
869
867
  //Destroy objects but retain memory in case x reuses it in the future
870
868
  this->clear();
871
869
  //Move allocator if needed
872
- container_detail::move_alloc(this_alloc, x_alloc, flag);
870
+ dtl::move_alloc(this_alloc, x_alloc, flag);
873
871
  //Nothrow swap
874
872
  this->swap_data(x);
875
873
  }
@@ -1158,8 +1156,8 @@ class basic_string
1158
1156
  size_type long_storage = this->priv_long_storage();
1159
1157
  size_type long_size = this->priv_long_size();
1160
1158
  //Shrink from allocated buffer to the internal one, including trailing null
1161
- Traits::copy( container_detail::to_raw_pointer(this->priv_short_addr())
1162
- , container_detail::to_raw_pointer(long_addr)
1159
+ Traits::copy( boost::movelib::to_raw_pointer(this->priv_short_addr())
1160
+ , boost::movelib::to_raw_pointer(long_addr)
1163
1161
  , long_size+1);
1164
1162
  this->is_short(true);
1165
1163
  this->alloc().deallocate(long_addr, long_storage);
@@ -1356,7 +1354,7 @@ class basic_string
1356
1354
  if (pos > s.size())
1357
1355
  throw_out_of_range("basic_string::append out of range position");
1358
1356
  return this->append(s.begin() + pos,
1359
- s.begin() + pos + container_detail::min_value(n, s.size() - pos));
1357
+ s.begin() + pos + dtl::min_value(n, s.size() - pos));
1360
1358
  }
1361
1359
 
1362
1360
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
@@ -1457,7 +1455,7 @@ class basic_string
1457
1455
  if (pos > s.size())
1458
1456
  throw_out_of_range("basic_string::assign out of range position");
1459
1457
  return this->assign(s.begin() + pos,
1460
- s.begin() + pos + container_detail::min_value(n, s.size() - pos));
1458
+ s.begin() + pos + dtl::min_value(n, s.size() - pos));
1461
1459
  }
1462
1460
 
1463
1461
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
@@ -1492,7 +1490,7 @@ class basic_string
1492
1490
  {
1493
1491
  size_type n = static_cast<size_type>(last - first);
1494
1492
  this->reserve(n);
1495
- CharT* ptr = container_detail::to_raw_pointer(this->priv_addr());
1493
+ CharT* ptr = boost::movelib::to_raw_pointer(this->priv_addr());
1496
1494
  Traits::copy(ptr, first, n);
1497
1495
  this->priv_construct_null(ptr + n);
1498
1496
  this->priv_size(n);
@@ -1505,13 +1503,13 @@ class basic_string
1505
1503
  template <class InputIter>
1506
1504
  basic_string& assign(InputIter first, InputIter last
1507
1505
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1508
- , typename container_detail::disable_if_convertible<InputIter, size_type>::type * = 0
1506
+ , typename dtl::disable_if_convertible<InputIter, size_type>::type * = 0
1509
1507
  #endif
1510
1508
  )
1511
1509
  {
1512
1510
  size_type cur = 0;
1513
1511
  const pointer addr = this->priv_addr();
1514
- CharT *ptr = container_detail::to_raw_pointer(addr);
1512
+ CharT *ptr = boost::movelib::to_raw_pointer(addr);
1515
1513
  const size_type old_size = this->priv_size();
1516
1514
  while (first != last && cur != old_size) {
1517
1515
  Traits::assign(*ptr, *first);
@@ -1567,10 +1565,10 @@ class basic_string
1567
1565
  const size_type str_size = s.size();
1568
1566
  if (pos1 > sz || pos2 > str_size)
1569
1567
  throw_out_of_range("basic_string::insert out of range position");
1570
- size_type len = container_detail::min_value(n, str_size - pos2);
1568
+ size_type len = dtl::min_value(n, str_size - pos2);
1571
1569
  if (sz > this->max_size() - len)
1572
1570
  throw_length_error("basic_string::insert max_size() exceeded");
1573
- const CharT *beg_ptr = container_detail::to_raw_pointer(s.begin()) + pos2;
1571
+ const CharT *beg_ptr = boost::movelib::to_raw_pointer(s.begin()) + pos2;
1574
1572
  const CharT *end_ptr = beg_ptr + len;
1575
1573
  this->insert(this->priv_addr() + pos1, beg_ptr, end_ptr);
1576
1574
  return *this;
@@ -1666,10 +1664,10 @@ class basic_string
1666
1664
  template <class InputIter>
1667
1665
  iterator insert(const_iterator p, InputIter first, InputIter last
1668
1666
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1669
- , typename container_detail::disable_if_or
1667
+ , typename dtl::disable_if_or
1670
1668
  < void
1671
- , container_detail::is_convertible<InputIter, size_type>
1672
- , container_detail::is_not_input_iterator<InputIter>
1669
+ , dtl::is_convertible<InputIter, size_type>
1670
+ , dtl::is_not_input_iterator<InputIter>
1673
1671
  >::type * = 0
1674
1672
  #endif
1675
1673
  )
@@ -1684,10 +1682,10 @@ class basic_string
1684
1682
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1685
1683
  template <class ForwardIter>
1686
1684
  iterator insert(const_iterator p, ForwardIter first, ForwardIter last
1687
- , typename container_detail::disable_if_or
1685
+ , typename dtl::disable_if_or
1688
1686
  < void
1689
- , container_detail::is_convertible<ForwardIter, size_type>
1690
- , container_detail::is_input_iterator<ForwardIter>
1687
+ , dtl::is_convertible<ForwardIter, size_type>
1688
+ , dtl::is_input_iterator<ForwardIter>
1691
1689
  >::type * = 0
1692
1690
  )
1693
1691
  {
@@ -1730,10 +1728,10 @@ class basic_string
1730
1728
  pointer_past_last, pointer_past_last);
1731
1729
 
1732
1730
  this->priv_size(old_size+n);
1733
- Traits::move(const_cast<CharT*>(container_detail::to_raw_pointer(p + n)),
1734
- container_detail::to_raw_pointer(p),
1731
+ Traits::move(const_cast<CharT*>(boost::movelib::to_raw_pointer(p + n)),
1732
+ boost::movelib::to_raw_pointer(p),
1735
1733
  (elems_after - n) + 1);
1736
- this->priv_copy(first, last, const_cast<CharT*>(container_detail::to_raw_pointer(p)));
1734
+ this->priv_copy(first, last, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1737
1735
  }
1738
1736
  else {
1739
1737
  ForwardIter mid = first;
@@ -1746,7 +1744,7 @@ class basic_string
1746
1744
  (p, const_iterator(old_start + old_length + 1),
1747
1745
  old_start + newer_size);
1748
1746
  this->priv_size(newer_size + elems_after);
1749
- this->priv_copy(first, mid, const_cast<CharT*>(container_detail::to_raw_pointer(p)));
1747
+ this->priv_copy(first, mid, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1750
1748
  }
1751
1749
  }
1752
1750
  else{
@@ -1773,9 +1771,9 @@ class basic_string
1773
1771
  else{
1774
1772
  //value_type is POD, so backwards expansion is much easier
1775
1773
  //than with vector<T>
1776
- value_type * const oldbuf = container_detail::to_raw_pointer(old_start);
1777
- value_type * const newbuf = container_detail::to_raw_pointer(new_start);
1778
- const value_type *const pos = container_detail::to_raw_pointer(p);
1774
+ value_type * const oldbuf = boost::movelib::to_raw_pointer(old_start);
1775
+ value_type * const newbuf = boost::movelib::to_raw_pointer(new_start);
1776
+ const value_type *const pos = boost::movelib::to_raw_pointer(p);
1779
1777
  const size_type before = pos - oldbuf;
1780
1778
 
1781
1779
  //First move old data
@@ -1834,7 +1832,7 @@ class basic_string
1834
1832
  if (pos > this->size())
1835
1833
  throw_out_of_range("basic_string::erase out of range position");
1836
1834
  const pointer addr = this->priv_addr();
1837
- erase(addr + pos, addr + pos + container_detail::min_value(n, this->size() - pos));
1835
+ erase(addr + pos, addr + pos + dtl::min_value(n, this->size() - pos));
1838
1836
  return *this;
1839
1837
  }
1840
1838
 
@@ -1847,10 +1845,10 @@ class basic_string
1847
1845
  iterator erase(const_iterator p) BOOST_NOEXCEPT_OR_NOTHROW
1848
1846
  {
1849
1847
  // The move includes the terminating null.
1850
- CharT * const ptr = const_cast<CharT*>(container_detail::to_raw_pointer(p));
1848
+ CharT * const ptr = const_cast<CharT*>(boost::movelib::to_raw_pointer(p));
1851
1849
  const size_type old_size = this->priv_size();
1852
1850
  Traits::move(ptr,
1853
- container_detail::to_raw_pointer(p + 1),
1851
+ boost::movelib::to_raw_pointer(p + 1),
1854
1852
  old_size - (p - this->priv_addr()));
1855
1853
  this->priv_size(old_size-1);
1856
1854
  return iterator(ptr);
@@ -1866,12 +1864,12 @@ class basic_string
1866
1864
  //! the other elements being erased. If no such element exists, end() is returned.
1867
1865
  iterator erase(const_iterator first, const_iterator last) BOOST_NOEXCEPT_OR_NOTHROW
1868
1866
  {
1869
- CharT * f = const_cast<CharT*>(container_detail::to_raw_pointer(first));
1867
+ CharT * f = const_cast<CharT*>(boost::movelib::to_raw_pointer(first));
1870
1868
  if (first != last) { // The move includes the terminating null.
1871
1869
  const size_type num_erased = last - first;
1872
1870
  const size_type old_size = this->priv_size();
1873
1871
  Traits::move(f,
1874
- container_detail::to_raw_pointer(last),
1872
+ boost::movelib::to_raw_pointer(last),
1875
1873
  (old_size + 1)-(last - this->priv_addr()));
1876
1874
  const size_type new_length = old_size - num_erased;
1877
1875
  this->priv_size(new_length);
@@ -1903,7 +1901,7 @@ class basic_string
1903
1901
  {
1904
1902
  if (pos1 > this->size())
1905
1903
  throw_out_of_range("basic_string::replace out of range position");
1906
- const size_type len = container_detail::min_value(n1, this->size() - pos1);
1904
+ const size_type len = dtl::min_value(n1, this->size() - pos1);
1907
1905
  if (this->size() - len >= this->max_size() - str.size())
1908
1906
  throw_length_error("basic_string::replace max_size() exceeded");
1909
1907
  const pointer addr = this->priv_addr();
@@ -1934,7 +1932,7 @@ class basic_string
1934
1932
  {
1935
1933
  if (pos2 > str.size())
1936
1934
  throw_out_of_range("basic_string::replace out of range position");
1937
- return this->replace(pos1, n1, str.data()+pos2, container_detail::min_value(n2, str.size() - pos2));
1935
+ return this->replace(pos1, n1, str.data()+pos2, dtl::min_value(n2, str.size() - pos2));
1938
1936
  }
1939
1937
 
1940
1938
  //! <b>Throws</b>: out_of_range if pos1 > size() or pos2 > sv.size().
@@ -1949,7 +1947,7 @@ class basic_string
1949
1947
  {
1950
1948
  if (pos2 > sv.size())
1951
1949
  throw_out_of_range("basic_string::replace out of range position");
1952
- return this->replace(pos1, n1, sv.data()+pos2, container_detail::min_value(n2, sv.size() - pos2));
1950
+ return this->replace(pos1, n1, sv.data()+pos2, dtl::min_value(n2, sv.size() - pos2));
1953
1951
  }
1954
1952
 
1955
1953
  //! <b>Requires</b>: pos1 <= size() and s points to an array of at least n2 elements of CharT.
@@ -1970,7 +1968,7 @@ class basic_string
1970
1968
  {
1971
1969
  if (pos1 > this->size())
1972
1970
  throw_out_of_range("basic_string::replace out of range position");
1973
- const size_type len = container_detail::min_value(n1, this->size() - pos1);
1971
+ const size_type len = dtl::min_value(n1, this->size() - pos1);
1974
1972
  const size_type max_size = this->max_size();
1975
1973
  if (n2 > max_size || (this->size() - len) >= (max_size - n2))
1976
1974
  throw_length_error("basic_string::replace max_size() exceeded");
@@ -2009,7 +2007,7 @@ class basic_string
2009
2007
  {
2010
2008
  if (pos1 > this->size())
2011
2009
  throw_out_of_range("basic_string::replace out of range position");
2012
- const size_type len = container_detail::min_value(n1, this->size() - pos1);
2010
+ const size_type len = dtl::min_value(n1, this->size() - pos1);
2013
2011
  if (n2 > this->max_size() || this->size() - len >= this->max_size() - n2)
2014
2012
  throw_length_error("basic_string::replace max_size() exceeded");
2015
2013
  const pointer addr = this->priv_addr();
@@ -2059,11 +2057,11 @@ class basic_string
2059
2057
  {
2060
2058
  const size_type len = static_cast<size_type>(i2 - i1);
2061
2059
  if (len >= n) {
2062
- Traits::assign(const_cast<CharT*>(container_detail::to_raw_pointer(i1)), n, c);
2060
+ Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), n, c);
2063
2061
  erase(i1 + n, i2);
2064
2062
  }
2065
2063
  else {
2066
- Traits::assign(const_cast<CharT*>(container_detail::to_raw_pointer(i1)), len, c);
2064
+ Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), len, c);
2067
2065
  insert(i2, n - len, c);
2068
2066
  }
2069
2067
  return *this;
@@ -2079,16 +2077,16 @@ class basic_string
2079
2077
  template <class InputIter>
2080
2078
  basic_string& replace(const_iterator i1, const_iterator i2, InputIter j1, InputIter j2
2081
2079
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2082
- , typename container_detail::disable_if_or
2080
+ , typename dtl::disable_if_or
2083
2081
  < void
2084
- , container_detail::is_convertible<InputIter, size_type>
2085
- , container_detail::is_input_iterator<InputIter>
2082
+ , dtl::is_convertible<InputIter, size_type>
2083
+ , dtl::is_input_iterator<InputIter>
2086
2084
  >::type * = 0
2087
2085
  #endif
2088
2086
  )
2089
2087
  {
2090
2088
  for ( ; i1 != i2 && j1 != j2; ++i1, ++j1){
2091
- Traits::assign(*const_cast<CharT*>(container_detail::to_raw_pointer(i1)), *j1);
2089
+ Traits::assign(*const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), *j1);
2092
2090
  }
2093
2091
 
2094
2092
  if (j1 == j2)
@@ -2101,23 +2099,23 @@ class basic_string
2101
2099
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2102
2100
  template <class ForwardIter>
2103
2101
  basic_string& replace(const_iterator i1, const_iterator i2, ForwardIter j1, ForwardIter j2
2104
- , typename container_detail::disable_if_or
2102
+ , typename dtl::disable_if_or
2105
2103
  < void
2106
- , container_detail::is_convertible<ForwardIter, size_type>
2107
- , container_detail::is_not_input_iterator<ForwardIter>
2104
+ , dtl::is_convertible<ForwardIter, size_type>
2105
+ , dtl::is_not_input_iterator<ForwardIter>
2108
2106
  >::type * = 0
2109
2107
  )
2110
2108
  {
2111
2109
  difference_type n = boost::container::iterator_distance(j1, j2);
2112
2110
  const difference_type len = i2 - i1;
2113
2111
  if (len >= n) {
2114
- this->priv_copy(j1, j2, const_cast<CharT*>(container_detail::to_raw_pointer(i1)));
2112
+ this->priv_copy(j1, j2, const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)));
2115
2113
  this->erase(i1 + n, i2);
2116
2114
  }
2117
2115
  else {
2118
2116
  ForwardIter m = j1;
2119
2117
  boost::container::iterator_advance(m, len);
2120
- this->priv_copy(j1, m, const_cast<CharT*>(container_detail::to_raw_pointer(i1)));
2118
+ this->priv_copy(j1, m, const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)));
2121
2119
  this->insert(i2, m, j2);
2122
2120
  }
2123
2121
  return *this;
@@ -2128,7 +2126,7 @@ class basic_string
2128
2126
  //!
2129
2127
  //! <b>Effects</b>: Calls `replace(i1 - begin(), i2 - i1, sv).`.
2130
2128
  //!
2131
- //! <bReturns</b>: *this.
2129
+ //! <b>Returns</b>: *this.
2132
2130
  template<template <class, class> class BasicStringView>
2133
2131
  basic_string& replace(const_iterator i1, const_iterator i2, BasicStringView<CharT, Traits> sv)
2134
2132
  {
@@ -2141,7 +2139,7 @@ class basic_string
2141
2139
  //!
2142
2140
  //! <b>Effects</b>: Calls replace(i1 - begin(), i2 - i1, il.begin(), il.size()).
2143
2141
  //!
2144
- //! <bReturns</b>: *this.
2142
+ //! <b>Returns</b>: *this.
2145
2143
  basic_string& replace(const_iterator i1, const_iterator i2, std::initializer_list<CharT> il)
2146
2144
  {
2147
2145
  return this->replace( static_cast<size_type>(i1 - this->cbegin())
@@ -2165,8 +2163,8 @@ class basic_string
2165
2163
  {
2166
2164
  if (pos > this->size())
2167
2165
  throw_out_of_range("basic_string::copy out of range position");
2168
- const size_type len = container_detail::min_value(n, this->size() - pos);
2169
- Traits::copy(s, container_detail::to_raw_pointer(this->priv_addr() + pos), len);
2166
+ const size_type len = dtl::min_value(n, this->size() - pos);
2167
+ Traits::copy(s, boost::movelib::to_raw_pointer(this->priv_addr() + pos), len);
2170
2168
  return len;
2171
2169
  }
2172
2170
 
@@ -2179,8 +2177,8 @@ class basic_string
2179
2177
  || allocator_traits_type::is_always_equal::value)
2180
2178
  {
2181
2179
  this->base_t::swap_data(x);
2182
- container_detail::bool_<allocator_traits_type::propagate_on_container_swap::value> flag;
2183
- container_detail::swap_alloc(this->alloc(), x.alloc(), flag);
2180
+ dtl::bool_<allocator_traits_type::propagate_on_container_swap::value> flag;
2181
+ dtl::swap_alloc(this->alloc(), x.alloc(), flag);
2184
2182
  }
2185
2183
 
2186
2184
  //////////////////////////////////////////////
@@ -2195,7 +2193,7 @@ class basic_string
2195
2193
  //!
2196
2194
  //! <b>Complexity</b>: constant time.
2197
2195
  const CharT* c_str() const BOOST_NOEXCEPT_OR_NOTHROW
2198
- { return container_detail::to_raw_pointer(this->priv_addr()); }
2196
+ { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2199
2197
 
2200
2198
  //! <b>Requires</b>: The program shall not alter any of the values stored in the character array.
2201
2199
  //!
@@ -2203,13 +2201,13 @@ class basic_string
2203
2201
  //!
2204
2202
  //! <b>Complexity</b>: constant time.
2205
2203
  const CharT* data() const BOOST_NOEXCEPT_OR_NOTHROW
2206
- { return container_detail::to_raw_pointer(this->priv_addr()); }
2204
+ { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2207
2205
 
2208
2206
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2209
2207
  //!
2210
2208
  //! <b>Complexity</b>: constant time.
2211
2209
  CharT* data() BOOST_NOEXCEPT_OR_NOTHROW
2212
- { return container_detail::to_raw_pointer(this->priv_addr()); }
2210
+ { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2213
2211
 
2214
2212
  #ifndef BOOST_CONTAINER_TEMPLATED_CONVERSION_OPERATOR_BROKEN
2215
2213
  //! <b>Returns</b>: a string_view to the characters in the string.
@@ -2272,8 +2270,8 @@ class basic_string
2272
2270
  const pointer addr = this->priv_addr();
2273
2271
  pointer finish = addr + this->priv_size();
2274
2272
  const const_iterator result =
2275
- std::search(container_detail::to_raw_pointer(addr + pos),
2276
- container_detail::to_raw_pointer(finish),
2273
+ boost::container::search(boost::movelib::to_raw_pointer(addr + pos),
2274
+ boost::movelib::to_raw_pointer(finish),
2277
2275
  s, s + n, Eq_traits<Traits>());
2278
2276
  return result != finish ? result - begin() : npos;
2279
2277
  }
@@ -2299,8 +2297,8 @@ class basic_string
2299
2297
  const pointer addr = this->priv_addr();
2300
2298
  pointer finish = addr + sz;
2301
2299
  const const_iterator result =
2302
- std::find_if(addr + pos, finish,
2303
- std::bind2nd(Eq_traits<Traits>(), c));
2300
+ boost::container::find_if(addr + pos, finish,
2301
+ boost::container::bind2nd(Eq_traits<Traits>(), c));
2304
2302
  return result != finish ? result - begin() : npos;
2305
2303
  }
2306
2304
  }
@@ -2340,9 +2338,9 @@ class basic_string
2340
2338
  if (n > len)
2341
2339
  return npos;
2342
2340
  else if (n == 0)
2343
- return container_detail::min_value(len, pos);
2341
+ return dtl::min_value(len, pos);
2344
2342
  else {
2345
- const const_iterator last = begin() + container_detail::min_value(len - n, pos) + n;
2343
+ const const_iterator last = begin() + dtl::min_value(len - n, pos) + n;
2346
2344
  const const_iterator result = find_end(begin(), last,
2347
2345
  s, s + n,
2348
2346
  Eq_traits<Traits>());
@@ -2369,10 +2367,10 @@ class basic_string
2369
2367
  if (len < 1)
2370
2368
  return npos;
2371
2369
  else {
2372
- const const_iterator last = begin() + container_detail::min_value(len - 1, pos) + 1;
2370
+ const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
2373
2371
  const_reverse_iterator rresult =
2374
- std::find_if(const_reverse_iterator(last), rend(),
2375
- std::bind2nd(Eq_traits<Traits>(), c));
2372
+ boost::container::find_if(const_reverse_iterator(last), rend(),
2373
+ boost::container::bind2nd(Eq_traits<Traits>(), c));
2376
2374
  return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2377
2375
  }
2378
2376
  }
@@ -2385,7 +2383,7 @@ class basic_string
2385
2383
  //!
2386
2384
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2387
2385
  size_type find_first_of(const basic_string& str, size_type pos = 0) const
2388
- { return find_first_of(str.c_str(), pos, str.size()); }
2386
+ { return this->find_first_of(str.c_str(), pos, str.size()); }
2389
2387
 
2390
2388
  //! <b>Effects</b>: Determines the lowest position xpos, if possible, such that both of the
2391
2389
  //! following conditions obtain: a) pos <= xpos and xpos < size();
@@ -2396,7 +2394,7 @@ class basic_string
2396
2394
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2397
2395
  template<template <class, class> class BasicStringView>
2398
2396
  size_type find_first_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2399
- { return find_first_of(sv.data(), pos, sv.size()); }
2397
+ { return this->find_first_of(sv.data(), pos, sv.size()); }
2400
2398
 
2401
2399
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
2402
2400
  //!
@@ -2411,7 +2409,7 @@ class basic_string
2411
2409
  else {
2412
2410
  const pointer addr = this->priv_addr();
2413
2411
  pointer finish = addr + sz;
2414
- const_iterator result = std::find_first_of
2412
+ const_iterator result = boost::container::find_first_of
2415
2413
  (addr + pos, finish, s, s + n, Eq_traits<Traits>());
2416
2414
  return result != finish ? result - this->begin() : npos;
2417
2415
  }
@@ -2423,7 +2421,7 @@ class basic_string
2423
2421
  //!
2424
2422
  //! <b>Returns</b>: find_first_of(basic_string(s), pos).
2425
2423
  size_type find_first_of(const CharT* s, size_type pos = 0) const
2426
- { return find_first_of(s, pos, Traits::length(s)); }
2424
+ { return this->find_first_of(s, pos, Traits::length(s)); }
2427
2425
 
2428
2426
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
2429
2427
  //!
@@ -2431,7 +2429,7 @@ class basic_string
2431
2429
  //!
2432
2430
  //! <b>Returns</b>: find_first_of(basic_string<CharT,traits,Allocator>(1,c), pos).
2433
2431
  size_type find_first_of(CharT c, size_type pos = 0) const
2434
- { return find(c, pos); }
2432
+ { return this->find(c, pos); }
2435
2433
 
2436
2434
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such that both of
2437
2435
  //! the following conditions obtain: a) xpos <= pos and xpos < size(); b)
@@ -2441,7 +2439,7 @@ class basic_string
2441
2439
  //!
2442
2440
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2443
2441
  size_type find_last_of(const basic_string& str, size_type pos = npos) const
2444
- { return find_last_of(str.c_str(), pos, str.size()); }
2442
+ { return this->find_last_of(str.c_str(), pos, str.size()); }
2445
2443
 
2446
2444
  //! <b>Effects</b>: Determines the highest position xpos, if possible, such that both of
2447
2445
  //! the following conditions obtain: a) xpos <= pos and xpos < size(); b)
@@ -2452,7 +2450,7 @@ class basic_string
2452
2450
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2453
2451
  template<template <class, class> class BasicStringView>
2454
2452
  size_type find_last_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2455
- { return find_last_of(sv.data(), pos, sv.size()); }
2453
+ { return this->find_last_of(sv.data(), pos, sv.size()); }
2456
2454
 
2457
2455
  //! <b>Requires</b>: s points to an array of at least n elements of CharT.
2458
2456
  //!
@@ -2467,9 +2465,9 @@ class basic_string
2467
2465
  return npos;
2468
2466
  else {
2469
2467
  const pointer addr = this->priv_addr();
2470
- const const_iterator last = addr + container_detail::min_value(len - 1, pos) + 1;
2468
+ const const_iterator last = addr + dtl::min_value(len - 1, pos) + 1;
2471
2469
  const const_reverse_iterator rresult =
2472
- std::find_first_of(const_reverse_iterator(last), rend(),
2470
+ boost::container::find_first_of(const_reverse_iterator(last), rend(),
2473
2471
  s, s + n, Eq_traits<Traits>());
2474
2472
  return rresult != rend() ? (rresult.base() - 1) - addr : npos;
2475
2473
  }
@@ -2524,7 +2522,7 @@ class basic_string
2524
2522
  else {
2525
2523
  const pointer addr = this->priv_addr();
2526
2524
  const pointer finish = addr + this->priv_size();
2527
- const const_iterator result = std::find_if
2525
+ const const_iterator result = boost::container::find_if
2528
2526
  (addr + pos, finish, Not_within_traits<Traits>(s, s + n));
2529
2527
  return result != finish ? result - addr : npos;
2530
2528
  }
@@ -2549,8 +2547,8 @@ class basic_string
2549
2547
  const pointer addr = this->priv_addr();
2550
2548
  const pointer finish = addr + this->priv_size();
2551
2549
  const const_iterator result
2552
- = std::find_if(addr + pos, finish,
2553
- std::not1(std::bind2nd(Eq_traits<Traits>(), c)));
2550
+ = boost::container::find_if(addr + pos, finish,
2551
+ boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2554
2552
  return result != finish ? result - begin() : npos;
2555
2553
  }
2556
2554
  }
@@ -2588,9 +2586,9 @@ class basic_string
2588
2586
  if (len < 1)
2589
2587
  return npos;
2590
2588
  else {
2591
- const const_iterator last = begin() + container_detail::min_value(len - 1, pos) + 1;
2589
+ const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
2592
2590
  const const_reverse_iterator rresult =
2593
- std::find_if(const_reverse_iterator(last), rend(),
2591
+ boost::container::find_if(const_reverse_iterator(last), rend(),
2594
2592
  Not_within_traits<Traits>(s, s + n));
2595
2593
  return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2596
2594
  }
@@ -2614,10 +2612,10 @@ class basic_string
2614
2612
  if (len < 1)
2615
2613
  return npos;
2616
2614
  else {
2617
- const const_iterator last = begin() + container_detail::min_value(len - 1, pos) + 1;
2615
+ const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
2618
2616
  const const_reverse_iterator rresult =
2619
- std::find_if(const_reverse_iterator(last), rend(),
2620
- std::not1(std::bind2nd(Eq_traits<Traits>(), c)));
2617
+ boost::container::find_if(const_reverse_iterator(last), rend(),
2618
+ boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2621
2619
  return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2622
2620
  }
2623
2621
  }
@@ -2636,7 +2634,7 @@ class basic_string
2636
2634
  throw_out_of_range("basic_string::substr out of range position");
2637
2635
  const pointer addr = this->priv_addr();
2638
2636
  return basic_string(addr + pos,
2639
- addr + pos + container_detail::min_value(n, size() - pos), this->alloc());
2637
+ addr + pos + dtl::min_value(n, size() - pos), this->alloc());
2640
2638
  }
2641
2639
 
2642
2640
  //! <b>Effects</b>: Determines the effective length rlen of the string to compare as
@@ -2681,7 +2679,7 @@ class basic_string
2681
2679
  const pointer addr = this->priv_addr();
2682
2680
  const pointer str_addr = str.priv_addr();
2683
2681
  return s_compare(addr + pos1,
2684
- addr + pos1 + container_detail::min_value(n1, this->size() - pos1),
2682
+ addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2685
2683
  str_addr, str_addr + str.priv_size());
2686
2684
  }
2687
2685
 
@@ -2697,7 +2695,7 @@ class basic_string
2697
2695
  throw_out_of_range("basic_string::compare out of range position");
2698
2696
  const pointer addr = this->priv_addr() + pos1;
2699
2697
  const CharT* str_addr = sv.data();
2700
- return s_compare(addr, addr + container_detail::min_value(n1, this->size() - pos1),
2698
+ return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2701
2699
  str_addr, str_addr + sv.size());
2702
2700
  }
2703
2701
 
@@ -2715,8 +2713,8 @@ class basic_string
2715
2713
  throw_out_of_range("basic_string::compare out of range position");
2716
2714
  const pointer addr = this->priv_addr() + pos1;
2717
2715
  const pointer str_addr = str.priv_addr() + pos2;
2718
- return s_compare(addr, addr + container_detail::min_value(n1, this->size() - pos1),
2719
- str_addr, str_addr + container_detail::min_value(n2, str.size() - pos2));
2716
+ return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2717
+ str_addr, str_addr + dtl::min_value(n2, str.size() - pos2));
2720
2718
  }
2721
2719
 
2722
2720
  //! <b>Requires</b>: pos1 <= size() and pos2 <= str.size()
@@ -2734,8 +2732,8 @@ class basic_string
2734
2732
  throw_out_of_range("basic_string::compare out of range position");
2735
2733
  const pointer addr = this->priv_addr() + pos1;
2736
2734
  const CharT * str_addr = sv.data() + pos2;
2737
- return s_compare(addr, addr + container_detail::min_value(n1, this->size() - pos1),
2738
- str_addr, str_addr + container_detail::min_value(n2, sv.size() - pos2));
2735
+ return s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2736
+ str_addr, str_addr + dtl::min_value(n2, sv.size() - pos2));
2739
2737
  }
2740
2738
 
2741
2739
  //! <b>Throws</b>: Nothing
@@ -2758,7 +2756,7 @@ class basic_string
2758
2756
  throw_out_of_range("basic_string::compare out of range position");
2759
2757
  const pointer addr = this->priv_addr();
2760
2758
  return s_compare( addr + pos1,
2761
- addr + pos1 + container_detail::min_value(n1, this->size() - pos1),
2759
+ addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2762
2760
  s, s + n2);
2763
2761
  }
2764
2762
 
@@ -2779,7 +2777,7 @@ class basic_string
2779
2777
  }
2780
2778
 
2781
2779
  if (this->capacity() < res_arg){
2782
- size_type n = container_detail::max_value(res_arg, this->size()) + 1;
2780
+ size_type n = dtl::max_value(res_arg, this->size()) + 1;
2783
2781
  size_type new_cap = this->next_capacity(n);
2784
2782
  pointer reuse = 0;
2785
2783
  pointer new_start = this->allocation_command(allocate_new, n, new_cap, reuse);
@@ -2804,16 +2802,16 @@ class basic_string
2804
2802
  {
2805
2803
  const difference_type n1 = l1 - f1;
2806
2804
  const difference_type n2 = l2 - f2;
2807
- const int cmp = Traits::compare(container_detail::to_raw_pointer(f1),
2808
- container_detail::to_raw_pointer(f2),
2809
- container_detail::min_value(n1, n2));
2805
+ const int cmp = Traits::compare(boost::movelib::to_raw_pointer(f1),
2806
+ boost::movelib::to_raw_pointer(f2),
2807
+ dtl::min_value(n1, n2));
2810
2808
  return cmp != 0 ? cmp : (n1 < n2 ? -1 : (n1 > n2 ? 1 : 0));
2811
2809
  }
2812
2810
 
2813
2811
  template<class AllocVersion>
2814
2812
  void priv_shrink_to_fit_dynamic_buffer
2815
2813
  ( AllocVersion
2816
- , typename container_detail::enable_if<container_detail::is_same<AllocVersion, version_1> >::type* = 0)
2814
+ , typename dtl::enable_if<dtl::is_same<AllocVersion, version_1> >::type* = 0)
2817
2815
  {
2818
2816
  //Allocate a new buffer.
2819
2817
  size_type real_cap = 0;
@@ -2826,8 +2824,8 @@ class basic_string
2826
2824
  real_cap = long_size+1;
2827
2825
  const pointer ret = this->allocation_command(allocate_new, long_size+1, real_cap, reuse);
2828
2826
  //Copy and update
2829
- Traits::copy( container_detail::to_raw_pointer(ret)
2830
- , container_detail::to_raw_pointer(this->priv_long_addr())
2827
+ Traits::copy( boost::movelib::to_raw_pointer(ret)
2828
+ , boost::movelib::to_raw_pointer(this->priv_long_addr())
2831
2829
  , long_size+1);
2832
2830
  this->priv_long_addr(ret);
2833
2831
  this->priv_storage(real_cap);
@@ -2843,7 +2841,7 @@ class basic_string
2843
2841
  template<class AllocVersion>
2844
2842
  void priv_shrink_to_fit_dynamic_buffer
2845
2843
  ( AllocVersion
2846
- , typename container_detail::enable_if<container_detail::is_same<AllocVersion, version_2> >::type* = 0)
2844
+ , typename dtl::enable_if<dtl::is_same<AllocVersion, version_2> >::type* = 0)
2847
2845
  {
2848
2846
  size_type received_size = this->priv_long_size()+1;
2849
2847
  pointer hint = this->priv_long_addr();
@@ -2920,13 +2918,13 @@ class basic_string
2920
2918
  template <class Integer>
2921
2919
  basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
2922
2920
  Integer n, Integer x,
2923
- container_detail::true_)
2921
+ dtl::true_)
2924
2922
  { return this->replace(first, last, (size_type) n, (CharT) x); }
2925
2923
 
2926
2924
  template <class InputIter>
2927
2925
  basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
2928
2926
  InputIter f, InputIter l,
2929
- container_detail::false_)
2927
+ dtl::false_)
2930
2928
  {
2931
2929
  typedef typename boost::container::iterator_traits<InputIter>::iterator_category Category;
2932
2930
  return this->priv_replace(first, last, f, l, Category());
@@ -2953,6 +2951,24 @@ typedef basic_string
2953
2951
  ,new_allocator<wchar_t> >
2954
2952
  wstring;
2955
2953
 
2954
+ #else
2955
+
2956
+ template <class CharT, class Traits, class Allocator>
2957
+ const typename basic_string<CharT,Traits,Allocator>::size_type
2958
+ basic_string<CharT,Traits,Allocator>::npos;
2959
+
2960
+ template<class S>
2961
+ struct is_string
2962
+ {
2963
+ static const bool value = false;
2964
+ };
2965
+
2966
+ template<class C, class T, class A>
2967
+ struct is_string< basic_string<C, T, A> >
2968
+ {
2969
+ static const bool value = true;
2970
+ };
2971
+
2956
2972
  #endif
2957
2973
 
2958
2974
  // ------------------------------------------------------------
@@ -3060,16 +3076,22 @@ operator==(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3060
3076
  }
3061
3077
 
3062
3078
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3063
- inline bool
3064
- operator==( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3079
+ inline
3080
+ BOOST_CONTAINER_DOC1ST( bool,
3081
+ typename dtl::disable_if
3082
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3083
+ operator==( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3065
3084
  {
3066
3085
  return x.size() == y.size() &&
3067
3086
  Traits::compare(x.data(), y.data(), x.size()) == 0;
3068
3087
  }
3069
3088
 
3070
3089
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3071
- inline bool
3072
- operator==( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3090
+ inline
3091
+ BOOST_CONTAINER_DOC1ST( bool,
3092
+ typename dtl::disable_if
3093
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3094
+ operator==( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3073
3095
  {
3074
3096
  return x.size() == y.size() &&
3075
3097
  Traits::compare(x.data(), y.data(), x.size()) == 0;
@@ -3092,12 +3114,18 @@ operator!=(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3092
3114
 
3093
3115
 
3094
3116
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3095
- inline bool
3117
+ inline
3118
+ BOOST_CONTAINER_DOC1ST( bool,
3119
+ typename dtl::disable_if
3120
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3096
3121
  operator!=( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3097
3122
  { return !(x == y); }
3098
3123
 
3099
3124
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3100
- inline bool
3125
+ inline
3126
+ BOOST_CONTAINER_DOC1ST( bool,
3127
+ typename dtl::disable_if
3128
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3101
3129
  operator!=( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3102
3130
  { return !(x == y); }
3103
3131
 
@@ -3124,12 +3152,18 @@ operator<(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3124
3152
  }
3125
3153
 
3126
3154
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3127
- inline bool
3155
+ inline
3156
+ BOOST_CONTAINER_DOC1ST( bool,
3157
+ typename dtl::disable_if
3158
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3128
3159
  operator<( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3129
3160
  { return y.compare(x) > 0; }
3130
3161
 
3131
3162
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3132
- inline bool
3163
+ inline
3164
+ BOOST_CONTAINER_DOC1ST( bool,
3165
+ typename dtl::disable_if
3166
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3133
3167
  operator<( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3134
3168
  { return x.compare(y) < 0; }
3135
3169
 
@@ -3153,12 +3187,18 @@ operator>(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3153
3187
  }
3154
3188
 
3155
3189
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3156
- inline bool
3190
+ inline
3191
+ BOOST_CONTAINER_DOC1ST( bool,
3192
+ typename dtl::disable_if
3193
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3157
3194
  operator>( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3158
3195
  { return y < x; }
3159
3196
 
3160
3197
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3161
- inline bool
3198
+ inline
3199
+ BOOST_CONTAINER_DOC1ST( bool,
3200
+ typename dtl::disable_if
3201
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3162
3202
  operator>( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3163
3203
  { return y < x; }
3164
3204
 
@@ -3181,12 +3221,18 @@ operator<=(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3181
3221
 
3182
3222
 
3183
3223
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3184
- inline bool
3224
+ inline
3225
+ BOOST_CONTAINER_DOC1ST( bool,
3226
+ typename dtl::disable_if
3227
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3185
3228
  operator<=( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3186
3229
  { return !(y < x); }
3187
3230
 
3188
3231
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3189
- inline bool
3232
+ inline
3233
+ BOOST_CONTAINER_DOC1ST( bool,
3234
+ typename dtl::disable_if
3235
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3190
3236
  operator<=( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3191
3237
  { return !(y < x); }
3192
3238
 
@@ -3207,12 +3253,18 @@ operator>=(const basic_string<CharT,Traits,Allocator>& x, const CharT* s)
3207
3253
  { return !(x < s); }
3208
3254
 
3209
3255
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3210
- inline bool
3256
+ inline
3257
+ BOOST_CONTAINER_DOC1ST( bool,
3258
+ typename dtl::disable_if
3259
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3211
3260
  operator>=( BasicStringView<CharT,Traits> x, const basic_string<CharT,Traits,Allocator>& y)
3212
3261
  { return !(x < y); }
3213
3262
 
3214
3263
  template <class CharT, class Traits, class Allocator, template <class, class> class BasicStringView>
3215
- inline bool
3264
+ inline
3265
+ BOOST_CONTAINER_DOC1ST( bool,
3266
+ typename dtl::disable_if
3267
+ <is_string< BasicStringView<CharT BOOST_MOVE_I Traits> > BOOST_MOVE_I bool >::type)
3216
3268
  operator>=( const basic_string<CharT,Traits,Allocator>& x, BasicStringView<CharT,Traits> y)
3217
3269
  { return !(x < y); }
3218
3270
 
@@ -3223,7 +3275,7 @@ inline void swap(basic_string<CharT,Traits,Allocator>& x, basic_string<CharT,Tra
3223
3275
 
3224
3276
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
3225
3277
  // I/O.
3226
- namespace container_detail {
3278
+ namespace dtl {
3227
3279
 
3228
3280
  template <class CharT, class Traits>
3229
3281
  inline bool
@@ -3240,7 +3292,7 @@ string_fill(std::basic_ostream<CharT, Traits>& os,
3240
3292
  return ok;
3241
3293
  }
3242
3294
 
3243
- } //namespace container_detail {
3295
+ } //namespace dtl {
3244
3296
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
3245
3297
 
3246
3298
  template <class CharT, class Traits, class Allocator>
@@ -3262,13 +3314,13 @@ operator<<(std::basic_ostream<CharT, Traits>& os, const basic_string<CharT,Trait
3262
3314
  pad_len = w - n;
3263
3315
 
3264
3316
  if (!left)
3265
- ok = container_detail::string_fill(os, buf, pad_len);
3317
+ ok = dtl::string_fill(os, buf, pad_len);
3266
3318
 
3267
3319
  ok = ok &&
3268
3320
  buf->sputn(s.data(), std::streamsize(n)) == std::streamsize(n);
3269
3321
 
3270
3322
  if (left)
3271
- ok = ok && container_detail::string_fill(os, buf, pad_len);
3323
+ ok = ok && dtl::string_fill(os, buf, pad_len);
3272
3324
  }
3273
3325
 
3274
3326
  if (!ok)