passenger 6.0.20 → 6.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +41 -1
  3. data/CONTRIBUTORS +2 -0
  4. data/README.md +2 -2
  5. data/bin/passenger-install-nginx-module +4 -4
  6. data/build/support/cxx_dependency_map.rb +155 -54
  7. data/dev/copy_boost_headers +21 -7
  8. data/dev/nginx_version_sha256 +72 -0
  9. data/src/agent/AgentMain.cpp +2 -8
  10. data/src/agent/Core/AdminPanelConnector.h +2 -3
  11. data/src/agent/Core/ApiServer.h +1 -1
  12. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
  13. data/src/agent/Core/Config.h +6 -3
  14. data/src/agent/Core/Controller/AppResponse.h +0 -1
  15. data/src/agent/Core/Controller/Config.h +2 -2
  16. data/src/agent/Core/Controller/SendRequest.cpp +2 -2
  17. data/src/agent/Core/CoreMain.cpp +1 -0
  18. data/src/agent/Core/ResponseCache.h +3 -2
  19. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  20. data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
  22. data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
  23. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
  24. data/src/agent/MainFunctions.h +38 -0
  25. data/src/agent/Shared/ApiServerUtils.h +3 -2
  26. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  27. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
  28. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
  29. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
  30. data/src/agent/Watchdog/ApiServer.h +1 -1
  31. data/src/agent/Watchdog/Config.h +1 -1
  32. data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
  33. data/src/apache2_module/Hooks.cpp +26 -1
  34. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  35. data/src/cxx_supportlib/Constants.h +1 -1
  36. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  37. data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
  38. data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
  39. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
  40. data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
  41. data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
  42. data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
  43. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
  44. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
  45. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
  46. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  47. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  48. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  49. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
  50. data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
  51. data/src/cxx_supportlib/ServerKit/Context.h +6 -0
  52. data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
  53. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +96 -64
  54. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
  55. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  56. data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
  57. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  58. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  59. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  60. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  61. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  62. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  63. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  64. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  65. data/src/cxx_supportlib/StaticString.h +3 -1
  66. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  67. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
  68. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
  69. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
  70. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
  71. data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
  72. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
  73. data/src/cxx_supportlib/Utils.cpp +1 -1
  74. data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
  75. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +61 -62
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +28 -46
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +42 -59
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +154 -883
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +19 -22
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +106 -153
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +75 -294
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +75 -283
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +89 -288
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +73 -275
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +170 -328
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +26 -39
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +32 -48
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +26 -39
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +53 -272
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +22 -26
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +188 -275
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +2 -3
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +91 -975
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +4 -4
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +4 -4
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +5 -6
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +73 -127
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +32 -11
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +2 -2
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +56 -101
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +56 -92
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +56 -101
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +3 -3
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +3 -3
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +9 -9
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +3 -3
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +3 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +7 -12
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +3 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +3 -3
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -4
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -3
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +3 -3
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +3 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +3 -4
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +12 -44
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +9 -9
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +4 -5
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +11 -16
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +4 -5
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +4 -5
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +4 -5
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +4 -5
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +4 -5
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +4 -5
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +11 -13
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +15 -15
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +4 -5
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +3 -4
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +3 -4
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +2 -2
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +1 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +21 -26
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +229 -1019
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +55 -33
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +55 -33
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -2
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +20 -20
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +130 -53
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +92 -9
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +15 -8
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +73 -25
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +12 -12
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +48 -48
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +39 -30
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +16 -17
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +14 -14
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +3 -2
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +2 -2
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +14 -20
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +11 -11
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +62 -137
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +22 -21
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +44 -36
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +32 -41
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +1 -1
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +36 -420
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +205 -421
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +1 -1
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +77 -423
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +25 -34
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +4 -4
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +4 -4
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +21 -26
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +10 -21
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +1 -27
  618. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -2
  619. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
  621. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  623. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  624. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  625. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  626. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  627. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
  629. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  630. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
  631. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
  632. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -61
  633. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +229 -1740
  634. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  635. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +138 -289
  640. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -280
  642. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -7
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +1 -1
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
  650. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  651. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
  652. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  653. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +3 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +4 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
  657. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +4 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +3 -1
  659. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +3 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +3 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +4 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +3 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +3 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +3 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +7 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +40 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
  675. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
  676. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
  677. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +112 -112
  678. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +40 -40
  679. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  680. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +10 -10
  681. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
  682. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +30 -25
  683. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
  684. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +6 -6
  685. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +129 -129
  686. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
  687. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
  688. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
  689. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +32 -32
  690. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +6 -6
  691. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
  692. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  693. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +77 -77
  694. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  695. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +44 -1
  696. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +78 -78
  697. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -231
  698. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +85 -85
  699. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
  700. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -109
  701. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
  702. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
  703. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +18 -8
  704. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
  705. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  706. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -80
  707. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
  708. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -24
  709. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +115 -109
  710. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +101 -101
  711. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
  712. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +150 -190
  713. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +165 -165
  714. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
  716. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +84 -86
  717. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +5 -99
  718. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +20 -20
  719. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +25 -126
  720. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -21
  721. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
  722. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -41
  723. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +4 -10
  724. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
  725. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +20 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +19 -1
  727. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +9 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +1 -1
  729. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1 -1
  730. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +17 -3
  734. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -55
  736. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
  737. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  738. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  739. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  741. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +2 -2
  742. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  744. data/src/cxx_supportlib/vendor-modified/boost/{ratio → exception}/detail/requires_cxx11.hpp +7 -5
  745. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
  748. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  749. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
  750. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  752. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  753. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  754. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  756. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  757. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  758. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  759. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  760. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  761. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  762. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  763. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +21 -166
  764. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  765. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +267 -418
  766. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  767. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -63
  768. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  769. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
  770. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
  771. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
  773. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
  774. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
  775. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +2 -2
  776. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
  777. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
  778. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  779. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  781. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  782. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
  783. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  784. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  785. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  786. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
  789. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -21
  790. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  791. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
  792. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  793. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
  794. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  796. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  797. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  798. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  799. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -21
  800. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  801. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  802. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  803. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +32 -1
  804. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
  805. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
  806. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +56 -57
  807. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
  808. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  809. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
  810. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
  811. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
  812. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
  813. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
  814. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
  815. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +60 -61
  816. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
  817. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
  818. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
  819. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
  821. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
  822. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  823. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  824. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  825. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  827. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +611 -633
  828. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
  829. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
  830. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  831. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  832. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
  834. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  835. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  836. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -30
  837. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  838. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  840. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  841. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +1 -0
  843. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +1 -0
  844. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +5 -19
  845. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  846. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +1 -1
  847. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +15 -15
  848. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +10 -10
  849. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
  850. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  851. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  853. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
  854. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +67 -17
  856. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +5 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  858. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +48 -48
  859. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +59 -0
  860. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
  861. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +3 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
  863. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +9 -0
  864. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +9 -0
  865. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  866. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +2 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  869. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +2 -2
  870. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  876. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  878. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  879. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  880. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  881. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -87
  883. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +0 -11
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +0 -11
  894. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +1 -8
  895. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  896. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -57
  897. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -29
  898. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +51 -124
  899. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
  900. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  901. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
  902. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  903. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  904. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +8 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
  906. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +5 -9
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
  908. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  909. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
  910. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
  911. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
  912. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  917. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  918. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  934. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
  935. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  938. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  939. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  940. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  941. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  942. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  943. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  944. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +2 -54
  945. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  946. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  947. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  948. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  949. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  950. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  951. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -12
  952. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  953. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  954. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  955. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  956. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  957. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  958. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  959. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  960. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  961. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  962. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -203
  963. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +145 -103
  964. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +1 -4
  965. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
  966. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  971. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
  972. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +531 -91
  973. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +346 -194
  974. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +10 -6
  975. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +13 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +2 -8
  977. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +22 -15
  978. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +10 -13
  979. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +150 -55
  981. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +346 -1039
  982. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +8 -8
  984. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +95 -144
  986. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  988. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  992. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +123 -19
  993. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
  994. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +65 -46
  995. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -5
  996. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +41 -23
  997. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -5
  998. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +324 -997
  999. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -12
  1000. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +57 -46
  1001. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +1 -5
  1002. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +35 -24
  1003. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +1 -5
  1004. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +229 -629
  1005. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -13
  1006. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1007. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
  1008. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1009. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1010. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
  1011. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
  1012. data/src/helper-scripts/wsgi-loader.py +2 -2
  1013. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1014. data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
  1015. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  1016. data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
  1017. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -7
  1018. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
  1019. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
  1020. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1021. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
  1022. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  1023. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
  1024. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
  1025. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  1026. metadata +50 -149
  1027. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2575
  1028. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -452
  1029. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1030. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -91
  1031. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1032. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1033. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1034. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1035. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1036. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1037. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1038. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1039. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1040. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
  1041. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
  1042. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
  1043. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1044. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
  1045. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1046. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1064. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1065. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1066. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1067. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1068. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1069. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1070. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1071. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1072. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1073. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1074. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1075. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1076. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1077. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1078. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1079. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1080. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1081. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1082. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
  1083. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
  1084. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
  1085. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
  1086. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1087. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1088. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1089. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1090. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1091. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1092. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1093. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
  1094. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
  1095. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1096. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1097. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1098. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/is_same.hpp +0 -36
  1099. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/requires_cxx11.hpp +0 -22
  1100. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1101. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1102. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1103. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -476
  1104. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1105. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/requires_cxx11.hpp +0 -22
  1106. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_win32_sleep.hpp +0 -54
  1107. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1108. data/src/cxx_supportlib/vendor-modified/boost/function/detail/epilogue.hpp +0 -39
  1109. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1110. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1111. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1112. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -27
  1113. data/src/cxx_supportlib/vendor-modified/boost/function/detail/requires_cxx11.hpp +0 -22
  1114. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1115. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1116. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1117. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1118. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1119. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1120. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1121. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1122. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1123. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1124. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1125. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1126. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1127. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1128. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1129. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1130. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1131. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1132. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1133. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1134. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1135. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1136. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1137. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1138. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1139. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1140. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1141. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1142. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1143. data/src/cxx_supportlib/vendor-modified/boost/system/detail/requires_cxx11.hpp +0 -21
  1144. data/src/cxx_supportlib/vendor-modified/boost/typeof/detail/requires_cxx11.hpp +0 -18
  1145. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1146. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1147. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1148. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1149. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1150. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1151. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1152. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1153. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1154. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1155. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1156. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1157. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1158. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1159. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1160. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1161. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1162. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1163. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1164. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1165. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1166. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1167. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1168. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1169. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -150
  1170. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/requires_cxx11.hpp +0 -21
  1171. /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
@@ -8,46 +8,33 @@
8
8
  #endif
9
9
 
10
10
  //
11
- // bind.hpp - binds function objects to arguments
11
+ // bind.hpp - binds function objects to arguments
12
12
  //
13
- // Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
14
- // Copyright (c) 2001 David Abrahams
15
- // Copyright (c) 2005 Peter Dimov
13
+ // Copyright 2001-2005, 2024 Peter Dimov
14
+ // Copyright 2001 David Abrahams
16
15
  //
17
16
  // Distributed under the Boost Software License, Version 1.0. (See
18
17
  // accompanying file LICENSE_1_0.txt or copy at
19
18
  // http://www.boost.org/LICENSE_1_0.txt)
20
19
  //
21
- // See http://www.boost.org/libs/bind/bind.html for documentation.
20
+ // See http://www.boost.org/libs/bind for documentation.
22
21
  //
23
22
 
24
- #include <boost/bind/detail/requires_cxx11.hpp>
25
- #include <boost/config.hpp>
26
23
  #include <boost/bind/mem_fn.hpp>
27
- #include <boost/type.hpp>
28
- #include <boost/is_placeholder.hpp>
29
24
  #include <boost/bind/arg.hpp>
30
- #include <boost/bind/detail/result_traits.hpp>
31
25
  #include <boost/bind/std_placeholders.hpp>
32
- #include <boost/config/workaround.hpp>
26
+ #include <boost/bind/detail/result_traits.hpp>
27
+ #include <boost/bind/detail/tuple_for_each.hpp>
28
+ #include <boost/bind/detail/integer_sequence.hpp>
33
29
  #include <boost/visit_each.hpp>
30
+ #include <boost/is_placeholder.hpp>
31
+ #include <boost/type.hpp>
34
32
  #include <boost/core/ref.hpp>
35
- #include <boost/core/enable_if.hpp>
36
- #include <boost/bind/detail/is_same.hpp>
37
-
38
- #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
39
- #include <utility> // std::forward
40
- #endif
41
-
42
- // Borland-specific bug, visit_each() silently fails to produce code
43
-
44
- #if defined(BOOST_BORLANDC)
45
- # define BOOST_BIND_VISIT_EACH boost::visit_each
46
- #else
47
- # define BOOST_BIND_VISIT_EACH visit_each
48
- #endif
49
-
50
- #include <boost/bind/storage.hpp>
33
+ #include <boost/config.hpp>
34
+ #include <boost/config/workaround.hpp>
35
+ #include <utility>
36
+ #include <type_traits>
37
+ #include <tuple>
51
38
 
52
39
  #ifdef BOOST_MSVC
53
40
  # pragma warning(push)
@@ -64,22 +51,22 @@ namespace _bi // implementation details
64
51
 
65
52
  // ref_compare
66
53
 
67
- template<class T> bool ref_compare( T const & a, T const & b, long )
54
+ template<class T> bool ref_compare( T const & a, T const & b )
68
55
  {
69
56
  return a == b;
70
57
  }
71
58
 
72
- template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )
59
+ template<int I> bool ref_compare( arg<I> const &, arg<I> const & )
73
60
  {
74
61
  return true;
75
62
  }
76
63
 
77
- template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )
64
+ template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) () )
78
65
  {
79
66
  return true;
80
67
  }
81
68
 
82
- template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )
69
+ template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b )
83
70
  {
84
71
  return a.get_pointer() == b.get_pointer();
85
72
  }
@@ -88,7 +75,7 @@ template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wr
88
75
 
89
76
  template<class R, class F, class L> class bind_t;
90
77
 
91
- template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
78
+ template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
92
79
  {
93
80
  return a.compare( b );
94
81
  }
@@ -116,7 +103,7 @@ private:
116
103
 
117
104
  // ref_compare for weak_ptr
118
105
 
119
- template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )
106
+ template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b )
120
107
  {
121
108
  return !(a.get() < b.get()) && !(b.get() < a.get());
122
109
  }
@@ -145,1409 +132,235 @@ template<class F> struct unwrapper
145
132
  }
146
133
  };
147
134
 
148
- // listN
135
+ // list
149
136
 
150
- class list0
137
+ template<class V> struct accept_lambda
151
138
  {
152
- public:
153
-
154
- list0() {}
155
-
156
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
157
-
158
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
159
-
160
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
161
-
162
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
163
-
164
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
165
-
166
- template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)
167
- {
168
- return unwrapper<F>::unwrap(f, 0)();
169
- }
170
-
171
- template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const
172
- {
173
- return unwrapper<F const>::unwrap(f, 0)();
174
- }
175
-
176
- template<class F, class A> void operator()(type<void>, F & f, A &, int)
177
- {
178
- unwrapper<F>::unwrap(f, 0)();
179
- }
180
-
181
- template<class F, class A> void operator()(type<void>, F const & f, A &, int) const
182
- {
183
- unwrapper<F const>::unwrap(f, 0)();
184
- }
139
+ V& v_;
185
140
 
186
- template<class V> void accept(V &) const
187
- {
188
- }
141
+ explicit accept_lambda( V& v ): v_( v ) {}
189
142
 
190
- bool operator==(list0 const &) const
143
+ template<class A> void operator()( A& a ) const
191
144
  {
192
- return true;
145
+ visit_each( v_, a, 0 );
193
146
  }
194
147
  };
195
148
 
196
- #ifdef BOOST_MSVC
197
- // MSVC is bright enough to realise that the parameter rhs
198
- // in operator==may be unused for some template argument types:
199
- #pragma warning(push)
200
- #pragma warning(disable:4100)
201
- #endif
202
-
203
- template< class A1 > class list1: private storage1< A1 >
149
+ struct equal_lambda
204
150
  {
205
- private:
206
-
207
- typedef storage1< A1 > base_type;
208
-
209
- public:
210
-
211
- explicit list1( A1 a1 ): base_type( a1 ) {}
212
-
213
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
214
-
215
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
216
-
217
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
218
-
219
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
220
-
221
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
222
-
223
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
224
-
225
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
226
-
227
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
228
- {
229
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
230
- }
231
-
232
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
233
- {
234
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
235
- }
236
-
237
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
238
- {
239
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
240
- }
241
-
242
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
243
- {
244
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
245
- }
151
+ bool result;
246
152
 
247
- template<class V> void accept(V & v) const
248
- {
249
- base_type::accept(v);
250
- }
153
+ equal_lambda(): result( true ) {}
251
154
 
252
- bool operator==(list1 const & rhs) const
155
+ template<class A1, class A2> void operator()( A1& a1, A2& a2 )
253
156
  {
254
- return ref_compare(base_type::a1_, rhs.a1_, 0);
157
+ result = result && ref_compare( a1, a2 );
255
158
  }
256
159
  };
257
160
 
258
161
  struct logical_and;
259
162
  struct logical_or;
260
163
 
261
- template< class A1, class A2 > class list2: private storage2< A1, A2 >
262
- {
263
- private:
264
-
265
- typedef storage2< A1, A2 > base_type;
266
-
267
- public:
268
-
269
- list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
270
-
271
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
272
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
273
-
274
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
275
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
276
-
277
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
278
-
279
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
280
-
281
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
282
-
283
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
284
-
285
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
286
-
287
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
288
- {
289
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
290
- }
291
-
292
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
293
- {
294
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
295
- }
296
-
297
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
298
- {
299
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
300
- }
301
-
302
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
303
- {
304
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
305
- }
306
-
307
- template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
308
- {
309
- return a[ base_type::a1_ ] && a[ base_type::a2_ ];
310
- }
311
-
312
- template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
313
- {
314
- return a[ base_type::a1_ ] && a[ base_type::a2_ ];
315
- }
316
-
317
- template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
318
- {
319
- return a[ base_type::a1_ ] || a[ base_type::a2_ ];
320
- }
321
-
322
- template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
323
- {
324
- return a[ base_type::a1_ ] || a[ base_type::a2_ ];
325
- }
326
-
327
- template<class V> void accept(V & v) const
328
- {
329
- base_type::accept(v);
330
- }
331
-
332
- bool operator==(list2 const & rhs) const
333
- {
334
- return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);
335
- }
336
- };
337
-
338
- template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >
339
- {
340
- private:
341
-
342
- typedef storage3< A1, A2, A3 > base_type;
343
-
344
- public:
345
-
346
- list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
347
-
348
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
349
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
350
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
351
-
352
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
353
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
354
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
355
-
356
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
357
-
358
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
359
-
360
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
361
-
362
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
363
-
364
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
365
-
366
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
367
- {
368
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
369
- }
370
-
371
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
372
- {
373
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
374
- }
375
-
376
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
377
- {
378
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
379
- }
380
-
381
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
382
- {
383
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
384
- }
385
-
386
- template<class V> void accept(V & v) const
387
- {
388
- base_type::accept(v);
389
- }
390
-
391
- bool operator==(list3 const & rhs) const
392
- {
393
- return
394
-
395
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
396
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
397
- ref_compare( base_type::a3_, rhs.a3_, 0 );
398
- }
399
- };
400
-
401
- template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >
402
- {
403
- private:
404
-
405
- typedef storage4< A1, A2, A3, A4 > base_type;
406
-
407
- public:
408
-
409
- list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
410
-
411
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
412
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
413
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
414
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
415
-
416
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
417
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
418
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
419
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
420
-
421
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
422
-
423
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
424
-
425
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
426
-
427
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
428
-
429
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
430
-
431
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
432
- {
433
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
434
- }
435
-
436
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
437
- {
438
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
439
- }
440
-
441
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
442
- {
443
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
444
- }
445
-
446
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
447
- {
448
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
449
- }
450
-
451
- template<class V> void accept(V & v) const
452
- {
453
- base_type::accept(v);
454
- }
455
-
456
- bool operator==(list4 const & rhs) const
457
- {
458
- return
459
-
460
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
461
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
462
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
463
- ref_compare( base_type::a4_, rhs.a4_, 0 );
464
- }
465
- };
466
-
467
- template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >
468
- {
469
- private:
470
-
471
- typedef storage5< A1, A2, A3, A4, A5 > base_type;
472
-
473
- public:
474
-
475
- list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
476
-
477
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
478
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
479
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
480
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
481
- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
482
-
483
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
484
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
485
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
486
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
487
- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
488
-
489
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
490
-
491
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
492
-
493
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
494
-
495
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
496
-
497
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
498
-
499
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
500
- {
501
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
502
- }
503
-
504
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
505
- {
506
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
507
- }
508
-
509
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
510
- {
511
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
512
- }
513
-
514
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
515
- {
516
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
517
- }
518
-
519
- template<class V> void accept(V & v) const
520
- {
521
- base_type::accept(v);
522
- }
523
-
524
- bool operator==(list5 const & rhs) const
525
- {
526
- return
527
-
528
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
529
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
530
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
531
- ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
532
- ref_compare( base_type::a5_, rhs.a5_, 0 );
533
- }
534
- };
535
-
536
- template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >
164
+ template<class... A> class list
537
165
  {
538
166
  private:
539
167
 
540
- typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;
168
+ typedef std::tuple<A...> data_type;
169
+ data_type data_;
541
170
 
542
171
  public:
543
172
 
544
- list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
545
-
546
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
547
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
548
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
549
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
550
- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
551
- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
552
-
553
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
554
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
555
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
556
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
557
- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
558
- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
559
-
560
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
561
-
562
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
563
-
564
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
565
-
566
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
567
-
568
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
569
-
570
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
571
- {
572
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
573
- }
574
-
575
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
576
- {
577
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
578
- }
173
+ list( A... a ): data_( a... ) {}
579
174
 
580
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
581
- {
582
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
583
- }
175
+ #if defined(BOOST_MSVC)
176
+ # pragma warning( push )
177
+ # pragma warning( disable: 4100 ) // unreferenced formal parameter 'a2'
178
+ #endif
584
179
 
585
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
180
+ template<class R, class F, class A2, std::size_t... I> R call_impl( type<R>, F & f, A2 & a2, _bi::index_sequence<I...> )
586
181
  {
587
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
182
+ return unwrapper<F>::unwrap( f, 0 )( a2[ std::get<I>( data_ ) ]... );
588
183
  }
589
184
 
590
- template<class V> void accept(V & v) const
185
+ template<class R, class F, class A2, std::size_t... I> R call_impl( type<R>, F & f, A2 & a2, _bi::index_sequence<I...> ) const
591
186
  {
592
- base_type::accept(v);
187
+ return unwrapper<F>::unwrap( f, 0 )( a2[ std::get<I>( data_ ) ]... );
593
188
  }
594
189
 
595
- bool operator==(list6 const & rhs) const
190
+ template<class F, class A2, std::size_t... I> void call_impl( type<void>, F & f, A2 & a2, _bi::index_sequence<I...> )
596
191
  {
597
- return
598
-
599
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
600
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
601
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
602
- ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
603
- ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
604
- ref_compare( base_type::a6_, rhs.a6_, 0 );
192
+ unwrapper<F>::unwrap( f, 0 )( a2[ std::get<I>( data_ ) ]... );
605
193
  }
606
- };
607
-
608
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >
609
- {
610
- private:
611
-
612
- typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;
613
-
614
- public:
615
-
616
- list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
617
194
 
618
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
619
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
620
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
621
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
622
- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
623
- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
624
- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
625
-
626
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
627
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
628
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
629
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
630
- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
631
- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
632
- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
633
-
634
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
635
-
636
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
637
-
638
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
639
-
640
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
641
-
642
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
643
-
644
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
195
+ template<class F, class A2, std::size_t... I> void call_impl( type<void>, F & f, A2 & a2, _bi::index_sequence<I...> ) const
645
196
  {
646
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
197
+ unwrapper<F>::unwrap( f, 0 )( a2[ std::get<I>( data_ ) ]... );
647
198
  }
648
199
 
649
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
650
- {
651
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
652
- }
200
+ #if defined(BOOST_MSVC)
201
+ # pragma warning( pop )
202
+ #endif
653
203
 
654
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
655
- {
656
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
657
- }
204
+ //
658
205
 
659
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
206
+ template<class R, class F, class A2> R operator()( type<R>, F & f, A2 & a2 )
660
207
  {
661
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
208
+ return call_impl( type<R>(), f, a2, _bi::index_sequence_for<A...>() );
662
209
  }
663
210
 
664
- template<class V> void accept(V & v) const
211
+ template<class R, class F, class A2> R operator()( type<R>, F & f, A2 & a2 ) const
665
212
  {
666
- base_type::accept(v);
213
+ return call_impl( type<R>(), f, a2, _bi::index_sequence_for<A...>() );
667
214
  }
668
215
 
669
- bool operator==(list7 const & rhs) const
670
- {
671
- return
672
-
673
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
674
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
675
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
676
- ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
677
- ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
678
- ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
679
- ref_compare( base_type::a7_, rhs.a7_, 0 );
680
- }
681
- };
682
-
683
- template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
684
- {
685
- private:
686
-
687
- typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;
688
-
689
- public:
690
-
691
- list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
692
-
693
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
694
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
695
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
696
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
697
- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
698
- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
699
- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
700
- A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
701
-
702
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
703
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
704
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
705
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
706
- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
707
- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
708
- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
709
- A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
710
-
711
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
712
-
713
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
714
-
715
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
716
-
717
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
718
-
719
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
720
-
721
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
722
- {
723
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
724
- }
725
-
726
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
727
- {
728
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
729
- }
730
-
731
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
732
- {
733
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
734
- }
735
-
736
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
737
- {
738
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
739
- }
740
-
741
- template<class V> void accept(V & v) const
742
- {
743
- base_type::accept(v);
744
- }
745
-
746
- bool operator==(list8 const & rhs) const
747
- {
748
- return
749
-
750
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
751
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
752
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
753
- ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
754
- ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
755
- ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
756
- ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
757
- ref_compare( base_type::a8_, rhs.a8_, 0 );
758
- }
759
- };
760
-
761
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >
762
- {
763
- private:
764
-
765
- typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;
766
-
767
- public:
768
-
769
- list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
770
-
771
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
772
- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
773
- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
774
- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
775
- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
776
- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
777
- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
778
- A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
779
- A9 operator[] (boost::arg<9>) const { return base_type::a9_; }
780
-
781
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
782
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
783
- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
784
- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
785
- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
786
- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
787
- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
788
- A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
789
- A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }
790
-
791
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
792
-
793
- template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
794
-
795
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
796
-
797
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
798
-
799
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
800
-
801
- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
802
- {
803
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
804
- }
805
-
806
- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
807
- {
808
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
809
- }
810
-
811
- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
812
- {
813
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
814
- }
815
-
816
- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
817
- {
818
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
819
- }
820
-
821
- template<class V> void accept(V & v) const
822
- {
823
- base_type::accept(v);
824
- }
825
-
826
- bool operator==(list9 const & rhs) const
827
- {
828
- return
829
-
830
- ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
831
- ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
832
- ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
833
- ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
834
- ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
835
- ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
836
- ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
837
- ref_compare( base_type::a8_, rhs.a8_, 0 ) &&
838
- ref_compare( base_type::a9_, rhs.a9_, 0 );
839
- }
840
- };
841
-
842
- #ifdef BOOST_MSVC
843
- #pragma warning(pop)
844
- #endif
845
-
846
- // bind_t
847
-
848
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !(defined(BOOST_GCC) && BOOST_GCC < 40600)
849
-
850
- template< class A1 > class rrlist1
851
- {
852
- private:
853
-
854
- A1 & a1_; // not A1&& because of msvc-10.0
855
-
856
- public:
857
-
858
- explicit rrlist1( A1 & a1 ): a1_( a1 ) {}
859
-
860
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); } // not static_cast because of g++ 4.9
861
-
862
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
863
-
864
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
865
-
866
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
867
-
868
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
869
-
870
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
871
- {
872
- rrlist1<A1&> a( a1_ );
873
- return b.eval( a );
874
- }
875
-
876
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
877
- {
878
- rrlist1<A1&> a( a1_ );
879
- return b.eval( a );
880
- }
881
- };
882
-
883
- template< class A1, class A2 > class rrlist2
884
- {
885
- private:
886
-
887
- A1 & a1_;
888
- A2 & a2_;
889
-
890
- public:
891
-
892
- rrlist2( A1 & a1, A2 & a2 ): a1_( a1 ), a2_( a2 ) {}
893
-
894
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
895
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
896
-
897
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
898
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
899
-
900
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
901
-
902
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
903
-
904
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
905
-
906
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
907
- {
908
- rrlist2<A1&, A2&> a( a1_, a2_ );
909
- return b.eval( a );
910
- }
911
-
912
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
913
- {
914
- rrlist2<A1&, A2&> a( a1_, a2_ );
915
- return b.eval( a );
916
- }
917
- };
918
-
919
- template< class A1, class A2, class A3 > class rrlist3
920
- {
921
- private:
922
-
923
- A1 & a1_;
924
- A2 & a2_;
925
- A3 & a3_;
926
-
927
- public:
928
-
929
- rrlist3( A1 & a1, A2 & a2, A3 & a3 ): a1_( a1 ), a2_( a2 ), a3_( a3 ) {}
930
-
931
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
932
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
933
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
934
-
935
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
936
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
937
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
938
-
939
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
940
-
941
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
942
-
943
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
944
-
945
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
946
- {
947
- rrlist3<A1&, A2&, A3&> a( a1_, a2_, a3_ );
948
- return b.eval( a );
949
- }
950
-
951
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
952
- {
953
- rrlist3<A1&, A2&, A3&> a( a1_, a2_, a3_ );
954
- return b.eval( a );
955
- }
956
- };
957
-
958
- template< class A1, class A2, class A3, class A4 > class rrlist4
959
- {
960
- private:
961
-
962
- A1 & a1_;
963
- A2 & a2_;
964
- A3 & a3_;
965
- A4 & a4_;
966
-
967
- public:
968
-
969
- rrlist4( A1 & a1, A2 & a2, A3 & a3, A4 & a4 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ) {}
970
-
971
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
972
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
973
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
974
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
975
-
976
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
977
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
978
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
979
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
980
-
981
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
982
-
983
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
984
-
985
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
986
-
987
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
988
- {
989
- rrlist4<A1&, A2&, A3&, A4&> a( a1_, a2_, a3_, a4_ );
990
- return b.eval( a );
991
- }
992
-
993
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
994
- {
995
- rrlist4<A1&, A2&, A3&, A4&> a( a1_, a2_, a3_, a4_ );
996
- return b.eval( a );
997
- }
998
- };
999
-
1000
- template< class A1, class A2, class A3, class A4, class A5 > class rrlist5
1001
- {
1002
- private:
1003
-
1004
- A1 & a1_;
1005
- A2 & a2_;
1006
- A3 & a3_;
1007
- A4 & a4_;
1008
- A5 & a5_;
1009
-
1010
- public:
1011
-
1012
- rrlist5( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ) {}
1013
-
1014
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
1015
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
1016
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
1017
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
1018
- A5 && operator[] (boost::arg<5>) const { return std::forward<A5>( a5_ ); }
1019
-
1020
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
1021
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
1022
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
1023
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
1024
- A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward<A5>( a5_ ); }
1025
-
1026
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1027
-
1028
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1029
-
1030
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
1031
-
1032
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
1033
- {
1034
- rrlist5<A1&, A2&, A3&, A4&, A5&> a( a1_, a2_, a3_, a4_, a5_ );
1035
- return b.eval( a );
1036
- }
1037
-
1038
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
1039
- {
1040
- rrlist5<A1&, A2&, A3&, A4&, A5&> a( a1_, a2_, a3_, a4_, a5_ );
1041
- return b.eval( a );
1042
- }
1043
- };
1044
-
1045
- template< class A1, class A2, class A3, class A4, class A5, class A6 > class rrlist6
1046
- {
1047
- private:
1048
-
1049
- A1 & a1_;
1050
- A2 & a2_;
1051
- A3 & a3_;
1052
- A4 & a4_;
1053
- A5 & a5_;
1054
- A6 & a6_;
1055
-
1056
- public:
1057
-
1058
- rrlist6( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ) {}
1059
-
1060
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
1061
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
1062
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
1063
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
1064
- A5 && operator[] (boost::arg<5>) const { return std::forward<A5>( a5_ ); }
1065
- A6 && operator[] (boost::arg<6>) const { return std::forward<A6>( a6_ ); }
1066
-
1067
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
1068
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
1069
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
1070
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
1071
- A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward<A5>( a5_ ); }
1072
- A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward<A6>( a6_ ); }
1073
-
1074
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1075
-
1076
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1077
-
1078
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
1079
-
1080
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
1081
- {
1082
- rrlist6<A1&, A2&, A3&, A4&, A5&, A6&> a( a1_, a2_, a3_, a4_, a5_, a6_ );
1083
- return b.eval( a );
1084
- }
1085
-
1086
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
1087
- {
1088
- rrlist6<A1&, A2&, A3&, A4&, A5&, A6&> a( a1_, a2_, a3_, a4_, a5_, a6_ );
1089
- return b.eval( a );
1090
- }
1091
- };
1092
-
1093
- template< class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class rrlist7
1094
- {
1095
- private:
1096
-
1097
- A1 & a1_;
1098
- A2 & a2_;
1099
- A3 & a3_;
1100
- A4 & a4_;
1101
- A5 & a5_;
1102
- A6 & a6_;
1103
- A7 & a7_;
1104
-
1105
- public:
1106
-
1107
- rrlist7( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ) {}
1108
-
1109
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
1110
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
1111
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
1112
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
1113
- A5 && operator[] (boost::arg<5>) const { return std::forward<A5>( a5_ ); }
1114
- A6 && operator[] (boost::arg<6>) const { return std::forward<A6>( a6_ ); }
1115
- A7 && operator[] (boost::arg<7>) const { return std::forward<A7>( a7_ ); }
1116
-
1117
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
1118
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
1119
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
1120
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
1121
- A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward<A5>( a5_ ); }
1122
- A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward<A6>( a6_ ); }
1123
- A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward<A7>( a7_ ); }
1124
-
1125
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1126
-
1127
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1128
-
1129
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
1130
-
1131
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
1132
- {
1133
- rrlist7<A1&, A2&, A3&, A4&, A5&, A6&, A7&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ );
1134
- return b.eval( a );
1135
- }
1136
-
1137
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
1138
- {
1139
- rrlist7<A1&, A2&, A3&, A4&, A5&, A6&, A7&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ );
1140
- return b.eval( a );
1141
- }
1142
- };
1143
-
1144
- template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class rrlist8
1145
- {
1146
- private:
1147
-
1148
- A1 & a1_;
1149
- A2 & a2_;
1150
- A3 & a3_;
1151
- A4 & a4_;
1152
- A5 & a5_;
1153
- A6 & a6_;
1154
- A7 & a7_;
1155
- A8 & a8_;
1156
-
1157
- public:
1158
-
1159
- rrlist8( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ) {}
1160
-
1161
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
1162
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
1163
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
1164
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
1165
- A5 && operator[] (boost::arg<5>) const { return std::forward<A5>( a5_ ); }
1166
- A6 && operator[] (boost::arg<6>) const { return std::forward<A6>( a6_ ); }
1167
- A7 && operator[] (boost::arg<7>) const { return std::forward<A7>( a7_ ); }
1168
- A8 && operator[] (boost::arg<8>) const { return std::forward<A8>( a8_ ); }
1169
-
1170
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
1171
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
1172
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
1173
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
1174
- A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward<A5>( a5_ ); }
1175
- A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward<A6>( a6_ ); }
1176
- A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward<A7>( a7_ ); }
1177
- A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward<A8>( a8_ ); }
1178
-
1179
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1180
-
1181
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1182
-
1183
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
1184
-
1185
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
1186
- {
1187
- rrlist8<A1&, A2&, A3&, A4&, A5&, A6&, A7&, A8&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ );
1188
- return b.eval( a );
1189
- }
1190
-
1191
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
1192
- {
1193
- rrlist8<A1&, A2&, A3&, A4&, A5&, A6&, A7&, A8&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ );
1194
- return b.eval( a );
1195
- }
1196
- };
1197
-
1198
- template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > class rrlist9
1199
- {
1200
- private:
1201
-
1202
- A1 & a1_;
1203
- A2 & a2_;
1204
- A3 & a3_;
1205
- A4 & a4_;
1206
- A5 & a5_;
1207
- A6 & a6_;
1208
- A7 & a7_;
1209
- A8 & a8_;
1210
- A9 & a9_;
1211
-
1212
- public:
1213
-
1214
- rrlist9( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ), a9_( a9 ) {}
1215
-
1216
- A1 && operator[] (boost::arg<1>) const { return std::forward<A1>( a1_ ); }
1217
- A2 && operator[] (boost::arg<2>) const { return std::forward<A2>( a2_ ); }
1218
- A3 && operator[] (boost::arg<3>) const { return std::forward<A3>( a3_ ); }
1219
- A4 && operator[] (boost::arg<4>) const { return std::forward<A4>( a4_ ); }
1220
- A5 && operator[] (boost::arg<5>) const { return std::forward<A5>( a5_ ); }
1221
- A6 && operator[] (boost::arg<6>) const { return std::forward<A6>( a6_ ); }
1222
- A7 && operator[] (boost::arg<7>) const { return std::forward<A7>( a7_ ); }
1223
- A8 && operator[] (boost::arg<8>) const { return std::forward<A8>( a8_ ); }
1224
- A9 && operator[] (boost::arg<9>) const { return std::forward<A9>( a9_ ); }
1225
-
1226
- A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward<A1>( a1_ ); }
1227
- A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward<A2>( a2_ ); }
1228
- A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward<A3>( a3_ ); }
1229
- A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward<A4>( a4_ ); }
1230
- A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward<A5>( a5_ ); }
1231
- A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward<A6>( a6_ ); }
1232
- A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward<A7>( a7_ ); }
1233
- A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward<A8>( a8_ ); }
1234
- A9 && operator[] (boost::arg<9> (*) ()) const { return std::forward<A9>( a9_ ); }
1235
-
1236
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1237
-
1238
- template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1239
-
1240
- template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
1241
-
1242
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const
1243
- {
1244
- rrlist9<A1&, A2&, A3&, A4&, A5&, A6&, A7&, A8&, A9&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ );
1245
- return b.eval( a );
1246
- }
1247
-
1248
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const
1249
- {
1250
- rrlist9<A1&, A2&, A3&, A4&, A5&, A6&, A7&, A8&, A9&> a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ );
1251
- return b.eval( a );
1252
- }
1253
- };
1254
-
1255
- template<class R, class F, class L> class bind_t
1256
- {
1257
- private:
1258
-
1259
- F f_;
1260
- L l_;
1261
-
1262
- public:
1263
-
1264
- typedef typename result_traits<R, F>::type result_type;
1265
- typedef bind_t this_type;
1266
-
1267
- bind_t( F f, L const & l ): f_( f ), l_( l ) {}
1268
-
1269
216
  //
1270
217
 
1271
- result_type operator()()
1272
- {
1273
- list0 a;
1274
- return l_( type<result_type>(), f_, a, 0 );
1275
- }
1276
-
1277
- result_type operator()() const
1278
- {
1279
- list0 a;
1280
- return l_( type<result_type>(), f_, a, 0 );
1281
- }
1282
-
1283
- template<class A1> result_type operator()( A1 && a1 )
1284
- {
1285
- rrlist1< A1 > a( a1 );
1286
- return l_( type<result_type>(), f_, a, 0 );
1287
- }
1288
-
1289
- template<class A1> result_type operator()( A1 && a1 ) const
1290
- {
1291
- rrlist1< A1 > a( a1 );
1292
- return l_(type<result_type>(), f_, a, 0);
1293
- }
1294
-
1295
- template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 )
1296
- {
1297
- rrlist2< A1, A2 > a( a1, a2 );
1298
- return l_( type<result_type>(), f_, a, 0 );
1299
- }
1300
-
1301
- template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 ) const
1302
- {
1303
- rrlist2< A1, A2 > a( a1, a2 );
1304
- return l_( type<result_type>(), f_, a, 0 );
1305
- }
1306
-
1307
- template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 )
1308
- {
1309
- rrlist3< A1, A2, A3 > a( a1, a2, a3 );
1310
- return l_( type<result_type>(), f_, a, 0 );
1311
- }
1312
-
1313
- template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const
1314
- {
1315
- rrlist3< A1, A2, A3 > a( a1, a2, a3 );
1316
- return l_( type<result_type>(), f_, a, 0 );
1317
- }
1318
-
1319
- template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
1320
- {
1321
- rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
1322
- return l_( type<result_type>(), f_, a, 0 );
1323
- }
1324
-
1325
- template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const
1326
- {
1327
- rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
1328
- return l_( type<result_type>(), f_, a, 0 );
1329
- }
1330
-
1331
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
1332
- {
1333
- rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
1334
- return l_( type<result_type>(), f_, a, 0 );
1335
- }
1336
-
1337
- template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const
1338
- {
1339
- rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
1340
- return l_( type<result_type>(), f_, a, 0 );
1341
- }
1342
-
1343
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
1344
- {
1345
- rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
1346
- return l_( type<result_type>(), f_, a, 0 );
1347
- }
1348
-
1349
- template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const
1350
- {
1351
- rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
1352
- return l_( type<result_type>(), f_, a, 0 );
1353
- }
1354
-
1355
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
1356
- {
1357
- rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
1358
- return l_( type<result_type>(), f_, a, 0 );
1359
- }
1360
-
1361
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) const
1362
- {
1363
- rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
1364
- return l_( type<result_type>(), f_, a, 0 );
1365
- }
1366
-
1367
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
1368
- {
1369
- rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
1370
- return l_( type<result_type>(), f_, a, 0 );
1371
- }
1372
-
1373
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) const
1374
- {
1375
- rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
1376
- return l_( type<result_type>(), f_, a, 0 );
1377
- }
1378
-
1379
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
218
+ template<class A2> bool operator()( type<bool>, logical_and & /*f*/, A2 & a2 )
1380
219
  {
1381
- rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
1382
- return l_( type<result_type>(), f_, a, 0 );
220
+ static_assert( sizeof...(A) == 2, "operator&& must have two arguments" );
221
+ return a2[ std::get<0>( data_ ) ] && a2[ std::get<1>( data_ ) ];
1383
222
  }
1384
223
 
1385
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) const
224
+ template<class A2> bool operator()( type<bool>, logical_and const & /*f*/, A2 & a2 ) const
1386
225
  {
1387
- rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
1388
- return l_( type<result_type>(), f_, a, 0 );
226
+ static_assert( sizeof...(A) == 2, "operator&& must have two arguments" );
227
+ return a2[ std::get<0>( data_ ) ] && a2[ std::get<1>( data_ ) ];
1389
228
  }
1390
229
 
1391
- //
1392
-
1393
- template<class A> result_type eval( A & a )
230
+ template<class A2> bool operator()( type<bool>, logical_or & /*f*/, A2 & a2 )
1394
231
  {
1395
- return l_( type<result_type>(), f_, a, 0 );
232
+ static_assert( sizeof...(A) == 2, "operator|| must have two arguments" );
233
+ return a2[ std::get<0>( data_ ) ] || a2[ std::get<1>( data_ ) ];
1396
234
  }
1397
235
 
1398
- template<class A> result_type eval( A & a ) const
236
+ template<class A2> bool operator()( type<bool>, logical_or const & /*f*/, A2 & a2 ) const
1399
237
  {
1400
- return l_( type<result_type>(), f_, a, 0 );
238
+ static_assert( sizeof...(A) == 2, "operator|| must have two arguments" );
239
+ return a2[ std::get<0>( data_ ) ] || a2[ std::get<1>( data_ ) ];
1401
240
  }
1402
241
 
242
+ //
243
+
1403
244
  template<class V> void accept( V & v ) const
1404
245
  {
1405
- #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC )
1406
- using boost::visit_each;
1407
- #endif
1408
-
1409
- BOOST_BIND_VISIT_EACH( v, f_, 0 );
1410
- l_.accept( v );
246
+ _bi::tuple_for_each( accept_lambda<V>( v ), data_ );
1411
247
  }
1412
248
 
1413
- bool compare( this_type const & rhs ) const
249
+ bool operator==( list const & rhs ) const
1414
250
  {
1415
- return ref_compare( f_, rhs.f_, 0 ) && l_ == rhs.l_;
251
+ return _bi::tuple_for_each( equal_lambda(), data_, rhs.data_ ).result;
1416
252
  }
1417
253
  };
1418
254
 
1419
- #elif !defined( BOOST_NO_VOID_RETURNS )
255
+ // bind_t
1420
256
 
1421
- template<class R, class F, class L> class bind_t
257
+ template<class... A> class rrlist
1422
258
  {
1423
- public:
259
+ private:
1424
260
 
1425
- typedef bind_t this_type;
261
+ using args_type = std::tuple<A...>;
1426
262
 
1427
- bind_t(F f, L const & l): f_(f), l_(l) {}
263
+ using data_type = std::tuple<A&...>;
264
+ data_type data_;
1428
265
 
1429
- #define BOOST_BIND_RETURN return
1430
- #include <boost/bind/bind_template.hpp>
1431
- #undef BOOST_BIND_RETURN
266
+ template<class...> friend class rrlist;
1432
267
 
1433
- };
268
+ public:
1434
269
 
1435
- #else // no void returns
270
+ explicit rrlist( A&... a ): data_( a... ) {}
271
+ template<class... B> explicit rrlist( rrlist<B...> const& r ): data_( r.data_ ) {}
1436
272
 
1437
- template<class R> struct bind_t_generator
1438
- {
273
+ template<int I> typename std::tuple_element<I-1, args_type>::type&& operator[] ( boost::arg<I> ) const
274
+ {
275
+ return std::forward<typename std::tuple_element<I-1, args_type>::type>( std::get<I-1>( data_ ) );
276
+ }
1439
277
 
1440
- template<class F, class L> class implementation
1441
- {
1442
- public:
278
+ template<int I> typename std::tuple_element<I-1, args_type>::type&& operator[] ( boost::arg<I>(*)() ) const
279
+ {
280
+ return std::forward<typename std::tuple_element<I-1, args_type>::type>( std::get<I-1>( data_ ) );
281
+ }
1443
282
 
1444
- typedef implementation this_type;
283
+ template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
1445
284
 
1446
- implementation(F f, L const & l): f_(f), l_(l) {}
285
+ template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
1447
286
 
1448
- #define BOOST_BIND_RETURN return
1449
- #include <boost/bind/bind_template.hpp>
1450
- #undef BOOST_BIND_RETURN
287
+ template<class T> T & operator[] ( reference_wrapper<T> const & v ) const { return v.get(); }
1451
288
 
1452
- };
289
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] ( bind_t<R, F, L> & b ) const
290
+ {
291
+ rrlist<A&...> a2( *this );
292
+ return b.eval( a2 );
293
+ }
1453
294
 
295
+ template<class R, class F, class L> typename result_traits<R, F>::type operator[] ( bind_t<R, F, L> const & b ) const
296
+ {
297
+ rrlist<A&...> a2( *this );
298
+ return b.eval( a2 );
299
+ }
1454
300
  };
1455
301
 
1456
- template<> struct bind_t_generator<void>
1457
- {
1458
-
1459
- template<class F, class L> class implementation
302
+ template<class R, class F, class L> class bind_t
1460
303
  {
1461
304
  private:
1462
305
 
1463
- typedef void R;
306
+ F f_;
307
+ L l_;
1464
308
 
1465
309
  public:
1466
310
 
1467
- typedef implementation this_type;
1468
-
1469
- implementation(F f, L const & l): f_(f), l_(l) {}
1470
-
1471
- #define BOOST_BIND_RETURN
1472
- #include <boost/bind/bind_template.hpp>
1473
- #undef BOOST_BIND_RETURN
311
+ typedef typename result_traits<R, F>::type result_type;
312
+ typedef bind_t this_type;
1474
313
 
1475
- };
314
+ bind_t( F f, L const & l ): f_( std::move(f) ), l_( l ) {}
1476
315
 
1477
- };
316
+ //
1478
317
 
1479
- template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>
1480
- {
1481
- public:
318
+ template<class... A> result_type operator()( A&&... a )
319
+ {
320
+ rrlist<A...> a2( a... );
321
+ return l_( type<result_type>(), f_, a2 );
322
+ }
1482
323
 
1483
- bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
324
+ template<class... A> result_type operator()( A&&... a ) const
325
+ {
326
+ rrlist<A...> a2( a... );
327
+ return l_( type<result_type>(), f_, a2 );
328
+ }
1484
329
 
1485
- };
330
+ //
1486
331
 
1487
- #endif
332
+ template<class A> result_type eval( A & a )
333
+ {
334
+ return l_( type<result_type>(), f_, a );
335
+ }
1488
336
 
1489
- // function_equal
337
+ template<class A> result_type eval( A & a ) const
338
+ {
339
+ return l_( type<result_type>(), f_, a );
340
+ }
1490
341
 
1491
- #ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
342
+ template<class V> void accept( V & v ) const
343
+ {
344
+ using boost::visit_each;
345
+ visit_each( v, f_, 0 );
346
+ l_.accept( v );
347
+ }
1492
348
 
1493
- // put overloads in _bi, rely on ADL
349
+ bool compare( this_type const & rhs ) const
350
+ {
351
+ return ref_compare( f_, rhs.f_ ) && l_ == rhs.l_;
352
+ }
353
+ };
1494
354
 
1495
- # ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
355
+ // function_equal
1496
356
 
1497
357
  template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
1498
358
  {
1499
359
  return a.compare(b);
1500
360
  }
1501
361
 
1502
- # else
1503
-
1504
- template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
1505
- {
1506
- return a.compare(b);
1507
- }
1508
-
1509
- # endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
1510
-
1511
- #else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
1512
-
1513
- // put overloads in boost
1514
-
1515
- } // namespace _bi
1516
-
1517
- # ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
1518
-
1519
- template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )
1520
- {
1521
- return a.compare(b);
1522
- }
1523
-
1524
- # else
1525
-
1526
- template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )
1527
- {
1528
- return a.compare(b);
1529
- }
1530
-
1531
- # endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
1532
-
1533
- namespace _bi
1534
- {
1535
-
1536
- #endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
1537
-
1538
362
  // add_value
1539
363
 
1540
- #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
1541
-
1542
- #if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x582) )
1543
-
1544
- template<class T> struct add_value
1545
- {
1546
- typedef _bi::value<T> type;
1547
- };
1548
-
1549
- #else
1550
-
1551
364
  template< class T, int I > struct add_value_2
1552
365
  {
1553
366
  typedef boost::arg<I> type;
@@ -1563,8 +376,6 @@ template<class T> struct add_value
1563
376
  typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
1564
377
  };
1565
378
 
1566
- #endif
1567
-
1568
379
  template<class T> struct add_value< value<T> >
1569
380
  {
1570
381
  typedef _bi::value<T> type;
@@ -1590,135 +401,11 @@ template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
1590
401
  typedef bind_t<R, F, L> type;
1591
402
  };
1592
403
 
1593
- #else
1594
-
1595
- template<int I> struct _avt_0;
1596
-
1597
- template<> struct _avt_0<1>
1598
- {
1599
- template<class T> struct inner
1600
- {
1601
- typedef T type;
1602
- };
1603
- };
1604
-
1605
- template<> struct _avt_0<2>
1606
- {
1607
- template<class T> struct inner
1608
- {
1609
- typedef value<T> type;
1610
- };
1611
- };
1612
-
1613
- typedef char (&_avt_r1) [1];
1614
- typedef char (&_avt_r2) [2];
1615
-
1616
- template<class T> _avt_r1 _avt_f(value<T>);
1617
- template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
1618
- template<int I> _avt_r1 _avt_f(arg<I>);
1619
- template<int I> _avt_r1 _avt_f(arg<I> (*) ());
1620
- template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
1621
-
1622
- _avt_r2 _avt_f(...);
1623
-
1624
- template<class T> struct add_value
1625
- {
1626
- static T t();
1627
- typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
1628
- };
1629
-
1630
- #endif
1631
-
1632
- // list_av_N
1633
-
1634
- template<class A1> struct list_av_1
1635
- {
1636
- typedef typename add_value<A1>::type B1;
1637
- typedef list1<B1> type;
1638
- };
1639
-
1640
- template<class A1, class A2> struct list_av_2
1641
- {
1642
- typedef typename add_value<A1>::type B1;
1643
- typedef typename add_value<A2>::type B2;
1644
- typedef list2<B1, B2> type;
1645
- };
1646
-
1647
- template<class A1, class A2, class A3> struct list_av_3
1648
- {
1649
- typedef typename add_value<A1>::type B1;
1650
- typedef typename add_value<A2>::type B2;
1651
- typedef typename add_value<A3>::type B3;
1652
- typedef list3<B1, B2, B3> type;
1653
- };
1654
-
1655
- template<class A1, class A2, class A3, class A4> struct list_av_4
1656
- {
1657
- typedef typename add_value<A1>::type B1;
1658
- typedef typename add_value<A2>::type B2;
1659
- typedef typename add_value<A3>::type B3;
1660
- typedef typename add_value<A4>::type B4;
1661
- typedef list4<B1, B2, B3, B4> type;
1662
- };
1663
-
1664
- template<class A1, class A2, class A3, class A4, class A5> struct list_av_5
1665
- {
1666
- typedef typename add_value<A1>::type B1;
1667
- typedef typename add_value<A2>::type B2;
1668
- typedef typename add_value<A3>::type B3;
1669
- typedef typename add_value<A4>::type B4;
1670
- typedef typename add_value<A5>::type B5;
1671
- typedef list5<B1, B2, B3, B4, B5> type;
1672
- };
1673
-
1674
- template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6
1675
- {
1676
- typedef typename add_value<A1>::type B1;
1677
- typedef typename add_value<A2>::type B2;
1678
- typedef typename add_value<A3>::type B3;
1679
- typedef typename add_value<A4>::type B4;
1680
- typedef typename add_value<A5>::type B5;
1681
- typedef typename add_value<A6>::type B6;
1682
- typedef list6<B1, B2, B3, B4, B5, B6> type;
1683
- };
1684
-
1685
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7
1686
- {
1687
- typedef typename add_value<A1>::type B1;
1688
- typedef typename add_value<A2>::type B2;
1689
- typedef typename add_value<A3>::type B3;
1690
- typedef typename add_value<A4>::type B4;
1691
- typedef typename add_value<A5>::type B5;
1692
- typedef typename add_value<A6>::type B6;
1693
- typedef typename add_value<A7>::type B7;
1694
- typedef list7<B1, B2, B3, B4, B5, B6, B7> type;
1695
- };
1696
-
1697
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8
1698
- {
1699
- typedef typename add_value<A1>::type B1;
1700
- typedef typename add_value<A2>::type B2;
1701
- typedef typename add_value<A3>::type B3;
1702
- typedef typename add_value<A4>::type B4;
1703
- typedef typename add_value<A5>::type B5;
1704
- typedef typename add_value<A6>::type B6;
1705
- typedef typename add_value<A7>::type B7;
1706
- typedef typename add_value<A8>::type B8;
1707
- typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;
1708
- };
404
+ // list_av
1709
405
 
1710
- template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9
406
+ template<class... A> struct list_av
1711
407
  {
1712
- typedef typename add_value<A1>::type B1;
1713
- typedef typename add_value<A2>::type B2;
1714
- typedef typename add_value<A3>::type B3;
1715
- typedef typename add_value<A4>::type B4;
1716
- typedef typename add_value<A5>::type B5;
1717
- typedef typename add_value<A6>::type B6;
1718
- typedef typename add_value<A7>::type B7;
1719
- typedef typename add_value<A8>::type B8;
1720
- typedef typename add_value<A9>::type B9;
1721
- typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;
408
+ typedef list< typename add_value<A>::type... > type;
1722
409
  };
1723
410
 
1724
411
  // operator!
@@ -1729,10 +416,10 @@ struct logical_not
1729
416
  };
1730
417
 
1731
418
  template<class R, class F, class L>
1732
- bind_t< bool, logical_not, list1< bind_t<R, F, L> > >
419
+ bind_t< bool, logical_not, list< bind_t<R, F, L> > >
1733
420
  operator! (bind_t<R, F, L> const & f)
1734
421
  {
1735
- typedef list1< bind_t<R, F, L> > list_type;
422
+ typedef list< bind_t<R, F, L> > list_type;
1736
423
  return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );
1737
424
  }
1738
425
 
@@ -1746,11 +433,11 @@ struct name \
1746
433
  }; \
1747
434
  \
1748
435
  template<class R, class F, class L, class A2> \
1749
- bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \
436
+ bind_t< bool, name, list< bind_t<R, F, L>, typename add_value<A2>::type > > \
1750
437
  operator op (bind_t<R, F, L> const & f, A2 a2) \
1751
438
  { \
1752
439
  typedef typename add_value<A2>::type B2; \
1753
- typedef list2< bind_t<R, F, L>, B2> list_type; \
440
+ typedef list< bind_t<R, F, L>, B2> list_type; \
1754
441
  return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \
1755
442
  }
1756
443
 
@@ -1768,36 +455,12 @@ BOOST_BIND_OPERATOR( ||, logical_or )
1768
455
 
1769
456
  #undef BOOST_BIND_OPERATOR
1770
457
 
1771
- #if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)
1772
-
1773
- // resolve ambiguity with rel_ops
1774
-
1775
- #define BOOST_BIND_OPERATOR( op, name ) \
1776
- \
1777
- template<class R, class F, class L> \
1778
- bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \
1779
- operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \
1780
- { \
1781
- typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \
1782
- return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
1783
- }
1784
-
1785
- BOOST_BIND_OPERATOR( !=, not_equal )
1786
- BOOST_BIND_OPERATOR( <=, less_equal )
1787
- BOOST_BIND_OPERATOR( >, greater )
1788
- BOOST_BIND_OPERATOR( >=, greater_equal )
1789
-
1790
- #endif
1791
-
1792
- // visit_each, ADL
1793
-
1794
- #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) \
1795
- && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
458
+ // visit_each
1796
459
 
1797
460
  template<class V, class T> void visit_each( V & v, value<T> const & t, int )
1798
461
  {
1799
462
  using boost::visit_each;
1800
- BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
463
+ visit_each( v, t.get(), 0 );
1801
464
  }
1802
465
 
1803
466
  template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
@@ -1805,27 +468,8 @@ template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F
1805
468
  t.accept( v );
1806
469
  }
1807
470
 
1808
- #endif
1809
-
1810
471
  } // namespace _bi
1811
472
 
1812
- // visit_each, no ADL
1813
-
1814
- #if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( BOOST_BORLANDC ) \
1815
- || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
1816
-
1817
- template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
1818
- {
1819
- BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
1820
- }
1821
-
1822
- template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )
1823
- {
1824
- t.accept( v );
1825
- }
1826
-
1827
- #endif
1828
-
1829
473
  // is_bind_expression
1830
474
 
1831
475
  template< class T > struct is_bind_expression
@@ -1833,15 +477,11 @@ template< class T > struct is_bind_expression
1833
477
  enum _vt { value = 0 };
1834
478
  };
1835
479
 
1836
- #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
1837
-
1838
480
  template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
1839
481
  {
1840
482
  enum _vt { value = 1 };
1841
483
  };
1842
484
 
1843
- #endif
1844
-
1845
485
  // bind
1846
486
 
1847
487
  #ifndef BOOST_BIND
@@ -1850,266 +490,135 @@ template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R,
1850
490
 
1851
491
  // generic function objects
1852
492
 
1853
- template<class R, class F>
1854
- _bi::bind_t<R, F, _bi::list0>
1855
- BOOST_BIND(F f)
1856
- {
1857
- typedef _bi::list0 list_type;
1858
- return _bi::bind_t<R, F, list_type> (f, list_type());
1859
- }
1860
-
1861
- template<class R, class F, class A1>
1862
- _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
1863
- BOOST_BIND(F f, A1 a1)
1864
- {
1865
- typedef typename _bi::list_av_1<A1>::type list_type;
1866
- return _bi::bind_t<R, F, list_type> (f, list_type(a1));
1867
- }
1868
-
1869
- template<class R, class F, class A1, class A2>
1870
- _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
1871
- BOOST_BIND(F f, A1 a1, A2 a2)
1872
- {
1873
- typedef typename _bi::list_av_2<A1, A2>::type list_type;
1874
- return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
1875
- }
1876
-
1877
- template<class R, class F, class A1, class A2, class A3>
1878
- _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
1879
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
1880
- {
1881
- typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1882
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
1883
- }
1884
-
1885
- template<class R, class F, class A1, class A2, class A3, class A4>
1886
- _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
1887
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
1888
- {
1889
- typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1890
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
1891
- }
1892
-
1893
- template<class R, class F, class A1, class A2, class A3, class A4, class A5>
1894
- _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
1895
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
1896
- {
1897
- typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1898
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
1899
- }
1900
-
1901
- template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
1902
- _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
1903
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
1904
- {
1905
- typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1906
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
1907
- }
1908
-
1909
- template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1910
- _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
1911
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
1912
- {
1913
- typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1914
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
1915
- }
493
+ #if !BOOST_WORKAROUND(__GNUC__, < 6)
1916
494
 
1917
- template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
1918
- _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
1919
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
495
+ template<class R, class F, class... A>
496
+ _bi::bind_t<R, F, typename _bi::list_av<A...>::type>
497
+ BOOST_BIND( F f, A... a )
1920
498
  {
1921
- typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
1922
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
499
+ typedef typename _bi::list_av<A...>::type list_type;
500
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a... ) );
1923
501
  }
1924
502
 
1925
- template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
1926
- _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
1927
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
1928
- {
1929
- typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
1930
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
1931
- }
503
+ #else
1932
504
 
1933
- // generic function objects, alternative syntax
505
+ // g++ 4.x (and some 5.x) consider boost::bind<void>( &X::f )
506
+ // ambiguous if the variadic form above is used
1934
507
 
1935
508
  template<class R, class F>
1936
- _bi::bind_t<R, F, _bi::list0>
1937
- BOOST_BIND(boost::type<R>, F f)
509
+ _bi::bind_t<R, F, typename _bi::list_av<>::type>
510
+ BOOST_BIND( F f )
1938
511
  {
1939
- typedef _bi::list0 list_type;
1940
- return _bi::bind_t<R, F, list_type> (f, list_type());
512
+ typedef typename _bi::list_av<>::type list_type;
513
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type() );
1941
514
  }
1942
515
 
1943
516
  template<class R, class F, class A1>
1944
- _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
1945
- BOOST_BIND(boost::type<R>, F f, A1 a1)
517
+ _bi::bind_t<R, F, typename _bi::list_av<A1>::type>
518
+ BOOST_BIND( F f, A1 a1 )
1946
519
  {
1947
- typedef typename _bi::list_av_1<A1>::type list_type;
1948
- return _bi::bind_t<R, F, list_type> (f, list_type(a1));
520
+ typedef typename _bi::list_av<A1>::type list_type;
521
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1 ) );
1949
522
  }
1950
523
 
1951
524
  template<class R, class F, class A1, class A2>
1952
- _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
1953
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2)
525
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2>::type>
526
+ BOOST_BIND( F f, A1 a1, A2 a2 )
1954
527
  {
1955
- typedef typename _bi::list_av_2<A1, A2>::type list_type;
1956
- return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));
528
+ typedef typename _bi::list_av<A1, A2>::type list_type;
529
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2 ) );
1957
530
  }
1958
531
 
1959
532
  template<class R, class F, class A1, class A2, class A3>
1960
- _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>
1961
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3)
533
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3>::type>
534
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3 )
1962
535
  {
1963
- typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
1964
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));
536
+ typedef typename _bi::list_av<A1, A2, A3>::type list_type;
537
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3 ) );
1965
538
  }
1966
539
 
1967
540
  template<class R, class F, class A1, class A2, class A3, class A4>
1968
- _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
1969
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)
541
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4>::type>
542
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4 )
1970
543
  {
1971
- typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
1972
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));
544
+ typedef typename _bi::list_av<A1, A2, A3, A4>::type list_type;
545
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4 ) );
1973
546
  }
1974
547
 
1975
548
  template<class R, class F, class A1, class A2, class A3, class A4, class A5>
1976
- _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
1977
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
549
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4, A5>::type>
550
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 )
1978
551
  {
1979
- typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
1980
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
552
+ typedef typename _bi::list_av<A1, A2, A3, A4, A5>::type list_type;
553
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5 ) );
1981
554
  }
1982
555
 
1983
556
  template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>
1984
- _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
1985
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
557
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4, A5, A6>::type>
558
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 )
1986
559
  {
1987
- typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
1988
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
560
+ typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6>::type list_type;
561
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6 ) );
1989
562
  }
1990
563
 
1991
564
  template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
1992
- _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
1993
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
565
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7>::type>
566
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 )
1994
567
  {
1995
- typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
1996
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
568
+ typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7>::type list_type;
569
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7 ) );
1997
570
  }
1998
571
 
1999
572
  template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
2000
- _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
2001
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
573
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8>::type>
574
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 )
2002
575
  {
2003
- typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
2004
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
576
+ typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
577
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8 ) );
2005
578
  }
2006
579
 
2007
580
  template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
2008
- _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
2009
- BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
2010
- {
2011
- typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
2012
- return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
2013
- }
2014
-
2015
- #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
2016
-
2017
- // adaptable function objects
2018
-
2019
- template<class F>
2020
- _bi::bind_t<_bi::unspecified, F, _bi::list0>
2021
- BOOST_BIND(F f)
581
+ _bi::bind_t<R, F, typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
582
+ BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 )
2022
583
  {
2023
- typedef _bi::list0 list_type;
2024
- return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());
584
+ typedef typename _bi::list_av<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
585
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) );
2025
586
  }
2026
587
 
2027
- template<class F, class A1>
2028
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>
2029
- BOOST_BIND(F f, A1 a1)
2030
- {
2031
- typedef typename _bi::list_av_1<A1>::type list_type;
2032
- return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));
2033
- }
2034
-
2035
- template<class F, class A1, class A2>
2036
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>
2037
- BOOST_BIND(F f, A1 a1, A2 a2)
2038
- {
2039
- typedef typename _bi::list_av_2<A1, A2>::type list_type;
2040
- return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));
2041
- }
2042
-
2043
- template<class F, class A1, class A2, class A3>
2044
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>
2045
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)
2046
- {
2047
- typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
2048
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));
2049
- }
2050
-
2051
- template<class F, class A1, class A2, class A3, class A4>
2052
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>
2053
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)
2054
- {
2055
- typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;
2056
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));
2057
- }
2058
-
2059
- template<class F, class A1, class A2, class A3, class A4, class A5>
2060
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>
2061
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
2062
- {
2063
- typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;
2064
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));
2065
- }
588
+ #endif
2066
589
 
2067
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6>
2068
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>
2069
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
2070
- {
2071
- typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;
2072
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));
2073
- }
590
+ // generic function objects, alternative syntax
2074
591
 
2075
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
2076
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>
2077
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
592
+ template<class R, class F, class... A>
593
+ _bi::bind_t<R, F, typename _bi::list_av<A...>::type>
594
+ BOOST_BIND( boost::type<R>, F f, A... a )
2078
595
  {
2079
- typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;
2080
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));
596
+ typedef typename _bi::list_av<A...>::type list_type;
597
+ return _bi::bind_t<R, F, list_type>( std::move(f), list_type( a... ) );
2081
598
  }
2082
599
 
2083
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
2084
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>
2085
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
2086
- {
2087
- typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;
2088
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));
2089
- }
600
+ // adaptable function objects
2090
601
 
2091
- template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
2092
- _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>
2093
- BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
602
+ template<class F, class... A>
603
+ _bi::bind_t<_bi::unspecified, F, typename _bi::list_av<A...>::type>
604
+ BOOST_BIND( F f, A... a )
2094
605
  {
2095
- typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;
2096
- return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
606
+ typedef typename _bi::list_av<A...>::type list_type;
607
+ return _bi::bind_t<_bi::unspecified, F, list_type>( std::move(f), list_type( a... ) );
2097
608
  }
2098
609
 
2099
- #endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
2100
-
2101
610
  // function pointers
2102
611
 
2103
612
  #define BOOST_BIND_CC
2104
613
  #define BOOST_BIND_ST
2105
614
  #define BOOST_BIND_NOEXCEPT
2106
615
 
2107
- #include <boost/bind/bind_cc.hpp>
616
+ #include <boost/bind/detail/bind_cc.hpp>
2108
617
 
2109
618
  # if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED )
2110
619
  # undef BOOST_BIND_NOEXCEPT
2111
620
  # define BOOST_BIND_NOEXCEPT noexcept
2112
- # include <boost/bind/bind_cc.hpp>
621
+ # include <boost/bind/detail/bind_cc.hpp>
2113
622
  # endif
2114
623
 
2115
624
  #undef BOOST_BIND_CC
@@ -2122,7 +631,7 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2122
631
  #define BOOST_BIND_ST
2123
632
  #define BOOST_BIND_NOEXCEPT
2124
633
 
2125
- #include <boost/bind/bind_cc.hpp>
634
+ #include <boost/bind/detail/bind_cc.hpp>
2126
635
 
2127
636
  #undef BOOST_BIND_CC
2128
637
  #undef BOOST_BIND_ST
@@ -2136,7 +645,7 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2136
645
  #define BOOST_BIND_ST
2137
646
  #define BOOST_BIND_NOEXCEPT
2138
647
 
2139
- #include <boost/bind/bind_cc.hpp>
648
+ #include <boost/bind/detail/bind_cc.hpp>
2140
649
 
2141
650
  #undef BOOST_BIND_CC
2142
651
  #undef BOOST_BIND_ST
@@ -2150,7 +659,7 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2150
659
  #define BOOST_BIND_CC
2151
660
  #define BOOST_BIND_NOEXCEPT
2152
661
 
2153
- #include <boost/bind/bind_cc.hpp>
662
+ #include <boost/bind/detail/bind_cc.hpp>
2154
663
 
2155
664
  #undef BOOST_BIND_ST
2156
665
  #undef BOOST_BIND_CC
@@ -2164,14 +673,14 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2164
673
  #define BOOST_BIND_MF_CC
2165
674
  #define BOOST_BIND_MF_NOEXCEPT
2166
675
 
2167
- #include <boost/bind/bind_mf_cc.hpp>
2168
- #include <boost/bind/bind_mf2_cc.hpp>
676
+ #include <boost/bind/detail/bind_mf_cc.hpp>
677
+ #include <boost/bind/detail/bind_mf2_cc.hpp>
2169
678
 
2170
679
  # if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED )
2171
680
  # undef BOOST_BIND_MF_NOEXCEPT
2172
681
  # define BOOST_BIND_MF_NOEXCEPT noexcept
2173
- # include <boost/bind/bind_mf_cc.hpp>
2174
- # include <boost/bind/bind_mf2_cc.hpp>
682
+ # include <boost/bind/detail/bind_mf_cc.hpp>
683
+ # include <boost/bind/detail/bind_mf2_cc.hpp>
2175
684
  # endif
2176
685
 
2177
686
  #undef BOOST_BIND_MF_NAME
@@ -2184,8 +693,8 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2184
693
  #define BOOST_BIND_MF_CC __cdecl
2185
694
  #define BOOST_BIND_MF_NOEXCEPT
2186
695
 
2187
- #include <boost/bind/bind_mf_cc.hpp>
2188
- #include <boost/bind/bind_mf2_cc.hpp>
696
+ #include <boost/bind/detail/bind_mf_cc.hpp>
697
+ #include <boost/bind/detail/bind_mf2_cc.hpp>
2189
698
 
2190
699
  #undef BOOST_BIND_MF_NAME
2191
700
  #undef BOOST_BIND_MF_CC
@@ -2199,8 +708,8 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2199
708
  #define BOOST_BIND_MF_CC __stdcall
2200
709
  #define BOOST_BIND_MF_NOEXCEPT
2201
710
 
2202
- #include <boost/bind/bind_mf_cc.hpp>
2203
- #include <boost/bind/bind_mf2_cc.hpp>
711
+ #include <boost/bind/detail/bind_mf_cc.hpp>
712
+ #include <boost/bind/detail/bind_mf2_cc.hpp>
2204
713
 
2205
714
  #undef BOOST_BIND_MF_NAME
2206
715
  #undef BOOST_BIND_MF_CC
@@ -2214,8 +723,8 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2214
723
  #define BOOST_BIND_MF_CC __fastcall
2215
724
  #define BOOST_BIND_MF_NOEXCEPT
2216
725
 
2217
- #include <boost/bind/bind_mf_cc.hpp>
2218
- #include <boost/bind/bind_mf2_cc.hpp>
726
+ #include <boost/bind/detail/bind_mf_cc.hpp>
727
+ #include <boost/bind/detail/bind_mf2_cc.hpp>
2219
728
 
2220
729
  #undef BOOST_BIND_MF_NAME
2221
730
  #undef BOOST_BIND_MF_CC
@@ -2225,20 +734,6 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
2225
734
 
2226
735
  // data member pointers
2227
736
 
2228
- #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
2229
- || ( defined(BOOST_BORLANDC) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) )
2230
-
2231
- template<class R, class T, class A1>
2232
- _bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
2233
- BOOST_BIND(R T::*f, A1 a1)
2234
- {
2235
- typedef _mfi::dm<R, T> F;
2236
- typedef typename _bi::list_av_1<A1>::type list_type;
2237
- return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );
2238
- }
2239
-
2240
- #else
2241
-
2242
737
  namespace _bi
2243
738
  {
2244
739
 
@@ -2266,8 +761,6 @@ template< class R, class T > struct add_cref< R (T::*) (), 1 >
2266
761
  typedef void type;
2267
762
  };
2268
763
 
2269
- #if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION
2270
-
2271
764
  template< class R, class T > struct add_cref< R (T::*) () const, 1 >
2272
765
  {
2273
766
  typedef void type;
@@ -2282,8 +775,6 @@ template< class R, class T > struct add_cref< R (T::*) () const noexcept, 1 >
2282
775
 
2283
776
  #endif // __cpp_noexcept_function_type
2284
777
 
2285
- #endif // __IBMCPP__
2286
-
2287
778
  template<class R> struct isref
2288
779
  {
2289
780
  enum value_type { value = 0 };
@@ -2317,19 +808,17 @@ template< class A1, class M, class T >
2317
808
  _bi::bind_t<
2318
809
  typename _bi::dm_result< M T::*, A1 >::type,
2319
810
  _mfi::dm<M, T>,
2320
- typename _bi::list_av_1<A1>::type
811
+ typename _bi::list_av<A1>::type
2321
812
  >
2322
813
 
2323
814
  BOOST_BIND( M T::*f, A1 a1 )
2324
815
  {
2325
816
  typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
2326
817
  typedef _mfi::dm<M, T> F;
2327
- typedef typename _bi::list_av_1<A1>::type list_type;
818
+ typedef typename _bi::list_av<A1>::type list_type;
2328
819
  return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
2329
820
  }
2330
821
 
2331
- #endif
2332
-
2333
822
  } // namespace boost
2334
823
 
2335
824
  #ifndef BOOST_BIND_NO_PLACEHOLDERS