passenger 6.0.19 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG +65 -3
- data/CONTRIBUTORS +2 -0
- data/README.md +2 -2
- data/bin/passenger-install-nginx-module +4 -4
- data/build/integration_tests.rb +2 -1
- data/build/support/cxx_dependency_map.rb +155 -54
- data/dev/copy_boost_headers +21 -7
- data/dev/nginx_version_sha256 +72 -0
- data/package.json +15 -15
- data/src/agent/AgentMain.cpp +2 -8
- data/src/agent/Core/AdminPanelConnector.h +2 -3
- data/src/agent/Core/ApiServer.h +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +8 -1
- data/src/agent/Core/Config.h +6 -3
- data/src/agent/Core/Controller/AppResponse.h +0 -1
- data/src/agent/Core/Controller/Config.h +2 -2
- data/src/agent/Core/Controller/SendRequest.cpp +2 -2
- data/src/agent/Core/CoreMain.cpp +1 -0
- data/src/agent/Core/ResponseCache.h +3 -2
- data/src/agent/Core/SecurityUpdateChecker.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +4 -4
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
- data/src/agent/ExecHelper/ExecHelperMain.cpp +10 -12
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +7 -10
- data/src/agent/MainFunctions.h +38 -0
- data/src/agent/Shared/ApiServerUtils.h +3 -2
- data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +2 -3
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -0
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +6 -4
- data/src/agent/Watchdog/ApiServer.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +5 -12
- data/src/apache2_module/Hooks.cpp +26 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +10 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -6
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +3 -3
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +0 -2
- data/src/cxx_supportlib/JsonTools/JsonUtils.h +4 -4
- data/src/cxx_supportlib/LoggingKit/Context.h +16 -21
- data/src/cxx_supportlib/LoggingKit/Forward.h +0 -2
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +36 -72
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +12 -4
- data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
- data/src/cxx_supportlib/ResourceLocator.h +1 -1
- data/src/cxx_supportlib/SecurityKit/Crypto.cpp +3 -94
- data/src/cxx_supportlib/SecurityKit/Crypto.h +0 -8
- data/src/cxx_supportlib/ServerKit/Context.h +6 -0
- data/src/cxx_supportlib/ServerKit/Errors.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +99 -64
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +4 -1
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +3 -2
- data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
- data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
- data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
- data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
- data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
- data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
- data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
- data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
- data/src/cxx_supportlib/StaticString.h +3 -1
- data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +12 -3
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +5 -0
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +14 -14
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +6 -10
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +11 -9
- data/src/cxx_supportlib/Utils.cpp +1 -1
- data/src/cxx_supportlib/oxt/implementation.cpp +1 -2
- data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +194 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +34 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +10 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +21 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +26 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +26 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +30 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +282 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +178 -863
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +64 -98
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +17 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +18 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +30 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +65 -96
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +20 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +36 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +31 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +73 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +34 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +108 -151
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +6 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +6 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +30 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +50 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +23 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +20 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +97 -299
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +97 -288
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +90 -288
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +551 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +365 -290
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +29 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +33 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +25 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +8 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +60 -272
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +52 -79
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +11 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +37 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +302 -262
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +12 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +5 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +129 -563
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +21 -97
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +155 -963
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +2 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +41 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +40 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +20 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +20 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +2 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +8 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +41 -104
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +9 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +101 -123
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +13 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +69 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +15 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +26 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +57 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +63 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +47 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +195 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +6 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +17 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +11 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +7 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +20 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +13 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +4 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +61 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +37 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +89 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +41 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +40 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +41 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +41 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +41 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +40 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +135 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +37 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +20 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +12 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +104 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +20 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +7 -117
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +36 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +34 -112
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +268 -991
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +296 -536
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +232 -409
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +20 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +30 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +24 -170
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +2 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +240 -398
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +20 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +149 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +56 -59
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +149 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +59 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +56 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +20 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +56 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +56 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +25 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +10 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_message.hpp +27 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +193 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +143 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +24 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +77 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +20 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +50 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +46 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +33 -96
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +62 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +48 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +56 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +18 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +27 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +15 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +10 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +10 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +37 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +99 -107
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +66 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +55 -178
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +55 -178
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +123 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +84 -234
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +32 -97
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +73 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +5 -58
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +3 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +60 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +39 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +36 -98
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +206 -429
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +60 -206
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +456 -970
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +43 -411
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +207 -423
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +19 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +32 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +79 -425
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +213 -427
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +58 -194
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +91 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +33 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +26 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +28 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +33 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +26 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +46 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +9 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +18 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +9 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +24 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +29 -105
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +21 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +24 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +36 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +176 -333
- data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +11 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +57 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +136 -168
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +35 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +256 -298
- data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +35 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +108 -246
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +70 -79
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +127 -161
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +16 -75
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +15 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +51 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +91 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +62 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +35 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +91 -273
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +15 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +16 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +20 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +22 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +22 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +6 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +15 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +8 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +122 -146
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +34 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +230 -1740
- data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
- data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
- data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +27 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +144 -145
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +48 -49
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +71 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +48 -48
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +165 -153
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +162 -163
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +6 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +44 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +83 -84
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +77 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +81 -85
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -233
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +86 -86
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -110
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +9 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +29 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -82
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +147 -122
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +109 -110
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +165 -194
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +263 -199
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +296 -61
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +38 -124
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +8 -40
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +22 -8
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +362 -31
- data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
- data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +33 -36
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
- data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
- data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +29 -5
- data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -6
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
- data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +22 -10
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +49 -198
- data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +277 -420
- data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
- data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +65 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +41 -41
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +58 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +268 -239
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +57 -58
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +14 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +61 -62
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +36 -37
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -34
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +612 -645
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +85 -79
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +25 -32
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +21 -16
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
- data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +20 -19
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +41 -56
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +32 -34
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +65 -24
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +72 -23
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +81 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +97 -17
- data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +140 -4
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +108 -4
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +18 -5
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +180 -3
- data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +2 -96
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
- data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +2 -11
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -11
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +14 -50
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +16 -55
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +62 -124
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +29 -52
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -46
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +860 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +716 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +120 -85
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1764 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2271 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +204 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +651 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +356 -1118
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +96 -150
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +136 -19
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +171 -103
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +70 -46
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +406 -899
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +699 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +253 -618
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -14
- data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +14 -20
- data/src/helper-scripts/wsgi-loader.py +2 -2
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +16 -5
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +3 -1
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +10 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +8 -10
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +14 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +11 -12
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +109 -150
- data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
- data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -406
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1254
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -498
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -287
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -259
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -259
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -492
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -256
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -459
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -300
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -275
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -300
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -495
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -462
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -581
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -563
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -1278
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
- data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +0 -1921
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -64
- /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
|
@@ -1,1278 +0,0 @@
|
|
|
1
|
-
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
//
|
|
3
|
-
// (C) Copyright Ion Gaztanaga 2018-2022. Distributed under the Boost
|
|
4
|
-
// Software License, Version 1.0. (See accompanying file
|
|
5
|
-
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
6
|
-
//
|
|
7
|
-
// See http://www.boost.org/libs/container for documentation.
|
|
8
|
-
//
|
|
9
|
-
//////////////////////////////////////////////////////////////////////////////
|
|
10
|
-
|
|
11
|
-
#ifndef BOOST_CONTAINER_HASH_TABLE_HPP
|
|
12
|
-
#define BOOST_CONTAINER_HASH_TABLE_HPP
|
|
13
|
-
|
|
14
|
-
#ifndef BOOST_CONFIG_HPP
|
|
15
|
-
# include <boost/config.hpp>
|
|
16
|
-
#endif
|
|
17
|
-
|
|
18
|
-
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
|
19
|
-
# pragma once
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
#include <boost/container/detail/config_begin.hpp>
|
|
23
|
-
#include <boost/container/detail/workaround.hpp>
|
|
24
|
-
// container
|
|
25
|
-
#include <boost/container/allocator_traits.hpp>
|
|
26
|
-
#include <boost/container/container_fwd.hpp>
|
|
27
|
-
#include <boost/container/options.hpp>
|
|
28
|
-
#include <boost/container/node_handle.hpp>
|
|
29
|
-
#include <boost/container/vector.hpp>
|
|
30
|
-
|
|
31
|
-
// container/detail
|
|
32
|
-
#include <boost/container/detail/algorithm.hpp> //algo_equal(), algo_lexicographical_compare
|
|
33
|
-
#include <boost/container/detail/compare_functors.hpp>
|
|
34
|
-
#include <boost/container/detail/destroyers.hpp>
|
|
35
|
-
#include <boost/container/detail/iterator.hpp>
|
|
36
|
-
#include <boost/container/detail/iterators.hpp>
|
|
37
|
-
#include <boost/container/detail/node_alloc_holder.hpp>
|
|
38
|
-
#include <boost/container/detail/pair.hpp>
|
|
39
|
-
#include <boost/container/detail/type_traits.hpp>
|
|
40
|
-
|
|
41
|
-
// intrusive
|
|
42
|
-
#include <boost/intrusive/pointer_traits.hpp>
|
|
43
|
-
#include <boost/intrusive/hashtable.hpp>
|
|
44
|
-
// intrusive/detail
|
|
45
|
-
#include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
|
|
46
|
-
#include <boost/intrusive/detail/tree_value_compare.hpp> //tree_value_compare
|
|
47
|
-
// move
|
|
48
|
-
#include <boost/move/utility_core.hpp>
|
|
49
|
-
// move/detail
|
|
50
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
51
|
-
#include <boost/move/detail/fwd_macros.hpp>
|
|
52
|
-
#endif
|
|
53
|
-
#include <boost/move/detail/move_helpers.hpp>
|
|
54
|
-
#include <boost/move/detail/force_ptr.hpp>
|
|
55
|
-
// other
|
|
56
|
-
#include <boost/core/no_exceptions_support.hpp>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
#include <boost/container/detail/std_fwd.hpp>
|
|
61
|
-
|
|
62
|
-
namespace boost {
|
|
63
|
-
namespace container {
|
|
64
|
-
namespace dtl {
|
|
65
|
-
|
|
66
|
-
static const unsigned hash_default_bucket = 11;
|
|
67
|
-
|
|
68
|
-
using boost::intrusive::tree_value_compare;
|
|
69
|
-
|
|
70
|
-
template<class VoidPointer, bool StoreHash>
|
|
71
|
-
struct intrusive_hash_table_hook
|
|
72
|
-
{
|
|
73
|
-
typedef typename dtl::bi::make_unordered_set_base_hook
|
|
74
|
-
< dtl::bi::void_pointer<VoidPointer>
|
|
75
|
-
, dtl::bi::link_mode<dtl::bi::normal_link>
|
|
76
|
-
, dtl::bi::store_hash<StoreHash>
|
|
77
|
-
>::type type;
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
//This trait is used to type-pun std::pair because in C++03
|
|
82
|
-
//compilers std::pair is useless for C++11 features
|
|
83
|
-
template<class T>
|
|
84
|
-
struct hash_table_internal_data_type
|
|
85
|
-
{
|
|
86
|
-
typedef T type;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
template<class T1, class T2>
|
|
90
|
-
struct hash_table_internal_data_type< std::pair<T1, T2> >
|
|
91
|
-
{
|
|
92
|
-
typedef pair<typename boost::move_detail::remove_const<T1>::type, T2> type;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
template <class T, class VoidPointer, bool StoreHash>
|
|
96
|
-
struct iiterator_node_value_type< base_node<T, intrusive_hash_table_hook<VoidPointer, StoreHash>, true > >
|
|
97
|
-
{
|
|
98
|
-
typedef T type;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
template<class Options>
|
|
102
|
-
struct get_hash_opt
|
|
103
|
-
{
|
|
104
|
-
typedef Options type;
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
template<>
|
|
108
|
-
struct get_hash_opt<void>
|
|
109
|
-
{
|
|
110
|
-
typedef hash_assoc_defaults type;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
template<class, class KeyOfValue>
|
|
115
|
-
struct hash_key_of_value
|
|
116
|
-
{
|
|
117
|
-
typedef KeyOfValue type;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
template<class T>
|
|
121
|
-
struct hash_key_of_value<T, void>
|
|
122
|
-
{
|
|
123
|
-
typedef dtl::identity<T> type;
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
template<class T1, class T2>
|
|
127
|
-
struct hash_key_of_value<std::pair<T1, T2>, int>
|
|
128
|
-
{
|
|
129
|
-
typedef dtl::select1st<T1> type;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
template<class T1, class T2>
|
|
133
|
-
struct hash_key_of_value<boost::container::dtl::pair<T1, T2>, int>
|
|
134
|
-
{
|
|
135
|
-
typedef dtl::select1st<T1> type;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
template<class Node, class Icont>
|
|
139
|
-
class hash_insert_equal_end_hint_functor
|
|
140
|
-
{
|
|
141
|
-
Icont &icont_;
|
|
142
|
-
|
|
143
|
-
public:
|
|
144
|
-
BOOST_CONTAINER_FORCEINLINE hash_insert_equal_end_hint_functor(Icont &icont)
|
|
145
|
-
: icont_(icont)
|
|
146
|
-
{}
|
|
147
|
-
|
|
148
|
-
BOOST_CONTAINER_FORCEINLINE void operator()(Node &n)
|
|
149
|
-
{ this->icont_.insert_equal(n); }
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
}//namespace dtl {
|
|
153
|
-
|
|
154
|
-
namespace dtl {
|
|
155
|
-
|
|
156
|
-
template< class NodeType, class KeyOfNode, class NodeHashType, class NodeCompareType
|
|
157
|
-
, class SizeType, class HookType, bool CompareHash
|
|
158
|
-
, bool CacheBegin, bool LinearBuckets, bool FastmodBuckets>
|
|
159
|
-
struct intrusive_hash_table_dispatch
|
|
160
|
-
{
|
|
161
|
-
typedef typename dtl::bi::make_hashtable
|
|
162
|
-
<NodeType
|
|
163
|
-
,dtl::bi::key_of_value<KeyOfNode>
|
|
164
|
-
,dtl::bi::hash<NodeHashType>
|
|
165
|
-
,dtl::bi::equal<NodeCompareType>
|
|
166
|
-
,dtl::bi::base_hook<HookType>
|
|
167
|
-
,dtl::bi::constant_time_size<true>
|
|
168
|
-
,dtl::bi::size_type<SizeType>
|
|
169
|
-
,dtl::bi::cache_begin<CacheBegin>
|
|
170
|
-
,dtl::bi::compare_hash<CompareHash>
|
|
171
|
-
,dtl::bi::linear_buckets<LinearBuckets>
|
|
172
|
-
,dtl::bi::fastmod_buckets<FastmodBuckets>
|
|
173
|
-
>::type type;
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
template<class Allocator, class KeyOfValue, class KeyHash, class KeyCompare
|
|
177
|
-
,bool StoreHash, bool CacheBegin, bool LinearBuckets, bool FastmodBuckets>
|
|
178
|
-
struct intrusive_hash_table_type
|
|
179
|
-
{
|
|
180
|
-
private:
|
|
181
|
-
typedef typename boost::container::
|
|
182
|
-
allocator_traits<Allocator>::value_type value_type;
|
|
183
|
-
typedef typename boost::container::
|
|
184
|
-
allocator_traits<Allocator>::void_pointer void_pointer;
|
|
185
|
-
typedef typename boost::container::
|
|
186
|
-
allocator_traits<Allocator>::size_type size_type;
|
|
187
|
-
typedef base_node<value_type, intrusive_hash_table_hook
|
|
188
|
-
<void_pointer, StoreHash>, true > node_t;
|
|
189
|
-
//Deducing the hook type from node_t (e.g. node_t::hook_type) would
|
|
190
|
-
//provoke an early instantiation of node_t that could ruin recursive
|
|
191
|
-
//hash_table definitions, so retype the complete type to avoid any problem.
|
|
192
|
-
typedef typename intrusive_hash_table_hook
|
|
193
|
-
<void_pointer, StoreHash>::type hook_type;
|
|
194
|
-
|
|
195
|
-
typedef key_of_node
|
|
196
|
-
<node_t, KeyOfValue> key_of_node_t;
|
|
197
|
-
|
|
198
|
-
public:
|
|
199
|
-
typedef typename intrusive_hash_table_dispatch
|
|
200
|
-
< node_t, key_of_node_t, KeyHash, KeyCompare
|
|
201
|
-
, size_type, hook_type, StoreHash
|
|
202
|
-
, CacheBegin, LinearBuckets, FastmodBuckets>::type type;
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
} //namespace dtl {
|
|
206
|
-
|
|
207
|
-
namespace dtl {
|
|
208
|
-
|
|
209
|
-
//This functor will be used with Intrusive clone functions to obtain
|
|
210
|
-
//already allocated nodes from a intrusive container instead of
|
|
211
|
-
//allocating new ones. When the intrusive container runs out of nodes
|
|
212
|
-
//the node holder is used instead.
|
|
213
|
-
template<class AllocHolder, bool DoMove>
|
|
214
|
-
class HashRecyclingCloner
|
|
215
|
-
{
|
|
216
|
-
typedef typename AllocHolder::intrusive_container intrusive_container;
|
|
217
|
-
typedef typename AllocHolder::Node node_t;
|
|
218
|
-
typedef typename AllocHolder::NodePtr node_ptr_type;
|
|
219
|
-
typedef dtl::allocator_node_destroyer
|
|
220
|
-
<typename AllocHolder::NodeAlloc> Destroyer;
|
|
221
|
-
typedef typename AllocHolder::alloc_version alloc_version;
|
|
222
|
-
|
|
223
|
-
public:
|
|
224
|
-
HashRecyclingCloner(AllocHolder &holder, intrusive_container &itree)
|
|
225
|
-
: m_holder(holder), m_icont(itree)
|
|
226
|
-
{}
|
|
227
|
-
|
|
228
|
-
BOOST_CONTAINER_FORCEINLINE static void do_assign(node_ptr_type &p, const node_t &other, bool_<true>)
|
|
229
|
-
{ p->do_move_assign(const_cast<node_t &>(other).m_data); }
|
|
230
|
-
|
|
231
|
-
BOOST_CONTAINER_FORCEINLINE static void do_assign(node_ptr_type &p, const node_t &other, bool_<false>)
|
|
232
|
-
{ p->do_assign(other.m_data); }
|
|
233
|
-
|
|
234
|
-
node_ptr_type operator()(const node_t &other) const
|
|
235
|
-
{
|
|
236
|
-
if(!m_icont.empty())
|
|
237
|
-
{
|
|
238
|
-
typename intrusive_container::const_iterator iit
|
|
239
|
-
= m_icont.iterator_to(other);
|
|
240
|
-
node_ptr_type p = iit.unconst().operator->();
|
|
241
|
-
m_icont.erase(iit);
|
|
242
|
-
//First recycle a node (this can't throw)
|
|
243
|
-
BOOST_TRY{
|
|
244
|
-
//This can throw
|
|
245
|
-
this->do_assign(p, other, bool_<DoMove>());
|
|
246
|
-
return p;
|
|
247
|
-
}
|
|
248
|
-
BOOST_CATCH(...){
|
|
249
|
-
//If there is an exception destroy the whole source
|
|
250
|
-
m_holder.destroy_node(p);
|
|
251
|
-
m_holder.clear(alloc_version());
|
|
252
|
-
BOOST_RETHROW
|
|
253
|
-
}
|
|
254
|
-
BOOST_CATCH_END
|
|
255
|
-
}
|
|
256
|
-
else{
|
|
257
|
-
return m_holder.create_node(other.m_data);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
AllocHolder &m_holder;
|
|
262
|
-
intrusive_container &m_icont;
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
template <class KeyOfValue, class KeyHash, class KeyEqual, class Allocator, class Options>
|
|
266
|
-
struct hash_table_types
|
|
267
|
-
{
|
|
268
|
-
typedef typename hash_key_of_value
|
|
269
|
-
< typename allocator_traits<Allocator>::value_type
|
|
270
|
-
, KeyOfValue>::type key_of_value_t;
|
|
271
|
-
typedef tree_value_compare
|
|
272
|
-
< typename allocator_traits<Allocator>::pointer
|
|
273
|
-
, KeyHash, key_of_value_t, std::size_t> ValHash;
|
|
274
|
-
typedef tree_value_compare
|
|
275
|
-
< typename allocator_traits<Allocator>::pointer
|
|
276
|
-
, KeyEqual, key_of_value_t, bool> ValEqual;
|
|
277
|
-
typedef typename get_hash_opt<Options>::type options_type;
|
|
278
|
-
typedef typename dtl::intrusive_hash_table_type
|
|
279
|
-
< Allocator, key_of_value_t, KeyHash, ValEqual
|
|
280
|
-
, options_type::store_hash
|
|
281
|
-
, options_type::cache_begin
|
|
282
|
-
, options_type::linear_buckets
|
|
283
|
-
, options_type::fastmod_buckets
|
|
284
|
-
>::type Icont;
|
|
285
|
-
typedef typename Icont::bucket_type bucket_type;
|
|
286
|
-
typedef typename Icont::bucket_traits bucket_traits;
|
|
287
|
-
|
|
288
|
-
typedef typename boost::container::
|
|
289
|
-
allocator_traits<Allocator>::template
|
|
290
|
-
portable_rebind_alloc<bucket_type>::type bucket_allocator;
|
|
291
|
-
typedef boost::container::vector
|
|
292
|
-
<bucket_type, bucket_allocator> bucket_holder_t;
|
|
293
|
-
typedef dtl::node_alloc_holder
|
|
294
|
-
<Allocator, Icont> AllocHolder;
|
|
295
|
-
};
|
|
296
|
-
|
|
297
|
-
template<class Bucket, std::size_t N>
|
|
298
|
-
struct static_buckets
|
|
299
|
-
{
|
|
300
|
-
static const std::size_t size = N;
|
|
301
|
-
Bucket buckets_[N];
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
const std::size_t SmallestBucketSize = 3u;
|
|
305
|
-
|
|
306
|
-
template <class T, class KeyOfValue, class KeyHash, class KeyEqual, class Allocator, class Options>
|
|
307
|
-
class hash_table
|
|
308
|
-
: public static_buckets< typename hash_table_types<KeyOfValue, KeyHash, KeyEqual, Allocator, Options>::bucket_type
|
|
309
|
-
, hash_table_types<KeyOfValue, KeyHash, KeyEqual, Allocator, Options>::Icont::bucket_overhead+SmallestBucketSize>
|
|
310
|
-
, public hash_table_types<KeyOfValue, KeyHash, KeyEqual, Allocator, Options>::bucket_holder_t
|
|
311
|
-
, public hash_table_types<KeyOfValue, KeyHash, KeyEqual, Allocator, Options>::AllocHolder
|
|
312
|
-
{
|
|
313
|
-
typedef hash_table_types<KeyOfValue, KeyHash, KeyEqual, Allocator, Options> hash_table_types_t;
|
|
314
|
-
typedef typename hash_table_types_t::ValHash ValHash;
|
|
315
|
-
typedef typename hash_table_types_t::ValEqual ValEqual;
|
|
316
|
-
typedef typename hash_table_types_t::options_type options_type;
|
|
317
|
-
typedef typename hash_table_types_t::Icont Icont;
|
|
318
|
-
typedef typename hash_table_types_t::AllocHolder AllocHolder;
|
|
319
|
-
typedef typename AllocHolder::NodePtr NodePtr;
|
|
320
|
-
typedef hash_table< T, KeyOfValue, KeyHash
|
|
321
|
-
, KeyEqual, Allocator, Options> ThisType;
|
|
322
|
-
typedef typename AllocHolder::NodeAlloc NodeAlloc;
|
|
323
|
-
typedef boost::container::
|
|
324
|
-
allocator_traits<NodeAlloc> allocator_traits_type;
|
|
325
|
-
typedef typename AllocHolder::ValAlloc ValAlloc;
|
|
326
|
-
typedef typename AllocHolder::Node Node;
|
|
327
|
-
typedef typename Icont::iterator iiterator;
|
|
328
|
-
typedef typename Icont::const_iterator iconst_iterator;
|
|
329
|
-
typedef typename Icont::local_iterator ilocal_iterator;
|
|
330
|
-
typedef typename Icont::const_local_iterator iconst_local_iterator;
|
|
331
|
-
typedef dtl::allocator_node_destroyer<NodeAlloc> Destroyer;
|
|
332
|
-
typedef typename AllocHolder::alloc_version alloc_version;
|
|
333
|
-
|
|
334
|
-
typedef typename Icont::bucket_type bucket_type;
|
|
335
|
-
typedef typename Icont::bucket_traits bucket_traits;
|
|
336
|
-
typedef typename hash_table_types
|
|
337
|
-
<KeyOfValue, KeyHash, KeyEqual, Allocator, Options>
|
|
338
|
-
::bucket_holder_t bucket_holder_t;
|
|
339
|
-
typedef static_buckets< typename Icont::bucket_type
|
|
340
|
-
, Icont::bucket_overhead + SmallestBucketSize > static_buckets_t;
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
BOOST_COPYABLE_AND_MOVABLE(hash_table)
|
|
344
|
-
|
|
345
|
-
public:
|
|
346
|
-
|
|
347
|
-
typedef typename hash_table_types_t::
|
|
348
|
-
key_of_value_t key_of_value_type;
|
|
349
|
-
typedef typename hash_table_types_t::
|
|
350
|
-
key_of_value_t::type key_type;
|
|
351
|
-
typedef T value_type;
|
|
352
|
-
typedef Allocator allocator_type;
|
|
353
|
-
typedef KeyHash hasher;
|
|
354
|
-
typedef ValHash value_hasher;
|
|
355
|
-
typedef KeyEqual key_equal;
|
|
356
|
-
typedef ValEqual value_equal;
|
|
357
|
-
typedef typename boost::container::
|
|
358
|
-
allocator_traits<Allocator>::pointer pointer;
|
|
359
|
-
typedef typename boost::container::
|
|
360
|
-
allocator_traits<Allocator>::const_pointer const_pointer;
|
|
361
|
-
typedef typename boost::container::
|
|
362
|
-
allocator_traits<Allocator>::reference reference;
|
|
363
|
-
typedef typename boost::container::
|
|
364
|
-
allocator_traits<Allocator>::const_reference const_reference;
|
|
365
|
-
typedef typename boost::container::
|
|
366
|
-
allocator_traits<Allocator>::size_type size_type;
|
|
367
|
-
typedef typename boost::container::
|
|
368
|
-
allocator_traits<Allocator>::difference_type difference_type;
|
|
369
|
-
typedef dtl::iterator_from_iiterator
|
|
370
|
-
<iiterator, false> iterator;
|
|
371
|
-
typedef dtl::iterator_from_iiterator
|
|
372
|
-
<iiterator, true > const_iterator;
|
|
373
|
-
typedef dtl::iterator_from_iiterator
|
|
374
|
-
<ilocal_iterator, false> local_iterator;
|
|
375
|
-
typedef dtl::iterator_from_iiterator
|
|
376
|
-
<ilocal_iterator, true > const_local_iterator;
|
|
377
|
-
typedef node_handle
|
|
378
|
-
< NodeAlloc, void> node_type;
|
|
379
|
-
typedef insert_return_type_base
|
|
380
|
-
<iterator, node_type> insert_return_type;
|
|
381
|
-
typedef NodeAlloc stored_allocator_type;
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
private:
|
|
385
|
-
|
|
386
|
-
typedef key_node_pred<key_equal, key_of_value_type, Node> KeyNodeEqual;
|
|
387
|
-
typedef key_node_pred<hasher, key_of_value_type, Node, std::size_t> KeyNodeHash;
|
|
388
|
-
|
|
389
|
-
public:
|
|
390
|
-
|
|
391
|
-
BOOST_CONTAINER_FORCEINLINE hash_table()
|
|
392
|
-
: AllocHolder(bucket_traits( ((static_buckets_t&)*this).buckets_, static_buckets_t::size))
|
|
393
|
-
{ this->reserve(0); }
|
|
394
|
-
|
|
395
|
-
BOOST_CONTAINER_FORCEINLINE explicit hash_table(const allocator_type& a)
|
|
396
|
-
: bucket_holder_t(a), AllocHolder(a)
|
|
397
|
-
{ this->reserve(0); }
|
|
398
|
-
|
|
399
|
-
BOOST_CONTAINER_FORCEINLINE explicit hash_table(size_type n)
|
|
400
|
-
: AllocHolder()
|
|
401
|
-
{ this->reserve(n); }
|
|
402
|
-
|
|
403
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(size_type n, const hasher& hf)
|
|
404
|
-
: AllocHolder(value_hasher(hf))
|
|
405
|
-
{ this->reserve(n); }
|
|
406
|
-
|
|
407
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(size_type n, const hasher& hf, const key_equal& eql)
|
|
408
|
-
: AllocHolder(value_hasher(hf), value_equal(eql))
|
|
409
|
-
{ this->reserve(n); }
|
|
410
|
-
|
|
411
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(size_type n, const hasher& hf, const key_equal& eql, const allocator_type& a)
|
|
412
|
-
: bucket_holder_t(a), AllocHolder(value_hasher(hf), value_equal(eql), a)
|
|
413
|
-
{ this->reserve(n); }
|
|
414
|
-
|
|
415
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(size_type n, const allocator_type& a)
|
|
416
|
-
: bucket_holder_t(a), AllocHolder(a)
|
|
417
|
-
{ this->reserve(n); }
|
|
418
|
-
|
|
419
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(size_type n, const hasher& hf, const allocator_type& a)
|
|
420
|
-
: bucket_holder_t(a), AllocHolder(value_hasher(hf), value_equal(), a)
|
|
421
|
-
{ this->reserve(n); }
|
|
422
|
-
|
|
423
|
-
template <class InputIterator>
|
|
424
|
-
hash_table(bool unique_insertion, InputIterator first, InputIterator last)
|
|
425
|
-
: AllocHolder()
|
|
426
|
-
{
|
|
427
|
-
this->reserve(0);
|
|
428
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
429
|
-
//AllocHolder clears in case of exception
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
template <class InputIterator>
|
|
433
|
-
hash_table(bool unique_insertion, InputIterator first, InputIterator last, size_type n)
|
|
434
|
-
: AllocHolder()
|
|
435
|
-
{
|
|
436
|
-
this->reserve(n);
|
|
437
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
438
|
-
//AllocHolder clears in case of exception
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
template <class InputIterator>
|
|
442
|
-
hash_table(bool unique_insertion, InputIterator first, InputIterator last, size_type n, const hasher& hf)
|
|
443
|
-
: AllocHolder(value_hasher(hf))
|
|
444
|
-
{
|
|
445
|
-
this->reserve(n);
|
|
446
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
447
|
-
//AllocHolder clears in case of exception
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
template <class InputIterator>
|
|
451
|
-
hash_table(bool unique_insertion, InputIterator first, InputIterator last, size_type n, const hasher& hf, const key_equal& eql)
|
|
452
|
-
: AllocHolder(value_hasher(hf), value_equal(eql))
|
|
453
|
-
{
|
|
454
|
-
this->reserve(n);
|
|
455
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
456
|
-
//AllocHolder clears in case of exception
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
template <class InputIterator>
|
|
460
|
-
hash_table
|
|
461
|
-
(bool unique_insertion, InputIterator first, InputIterator last
|
|
462
|
-
,size_type n, const hasher& hf, const key_equal& eql, const allocator_type& a)
|
|
463
|
-
: bucket_holder_t(a), AllocHolder(value_hasher(hf), value_equal(eql), a)
|
|
464
|
-
{
|
|
465
|
-
this->reserve(n);
|
|
466
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
467
|
-
//AllocHolder clears in case of exception
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
template <class InputIterator>
|
|
471
|
-
hash_table
|
|
472
|
-
(bool unique_insertion, InputIterator first, InputIterator last, size_type n, const allocator_type& a)
|
|
473
|
-
: bucket_holder_t(a), AllocHolder(a)
|
|
474
|
-
{
|
|
475
|
-
this->reserve(n);
|
|
476
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
477
|
-
//AllocHolder clears in case of exception
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
//! <b>Effects</b>: Constructs an empty hash_table using at least n buckets
|
|
481
|
-
//! and specified allocator and hash function.
|
|
482
|
-
//! Then, inserts elements from the range [first ,last ).
|
|
483
|
-
//!
|
|
484
|
-
//! <b>Complexity</b>: Average case linear, worst case quadratic.
|
|
485
|
-
template <class InputIterator>
|
|
486
|
-
hash_table
|
|
487
|
-
(bool unique_insertion, InputIterator first, InputIterator last, size_type n, const hasher& hf, const allocator_type& a)
|
|
488
|
-
: bucket_holder_t(a), AllocHolder(value_hasher(hf), a)
|
|
489
|
-
{
|
|
490
|
-
this->reserve(n);
|
|
491
|
-
this->hash_table_construct(unique_insertion, first, last);
|
|
492
|
-
//AllocHolder clears in case of exception
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
private:
|
|
496
|
-
|
|
497
|
-
template <class InputIterator>
|
|
498
|
-
void hash_table_construct(bool unique_insertion, InputIterator first, InputIterator last)
|
|
499
|
-
{
|
|
500
|
-
//Use cend() as hint to achieve linear time for
|
|
501
|
-
//ordered ranges as required by the standard
|
|
502
|
-
//for the constructor
|
|
503
|
-
if(unique_insertion){
|
|
504
|
-
const const_iterator end_it(this->cend());
|
|
505
|
-
for ( ; first != last; ++first){
|
|
506
|
-
this->insert_unique_convertible(end_it, *first);
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
else{
|
|
510
|
-
this->hash_table_construct_non_unique(first, last);
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
template <class InputIterator>
|
|
515
|
-
void hash_table_construct_non_unique(InputIterator first, InputIterator last
|
|
516
|
-
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
517
|
-
, typename dtl::enable_if_or
|
|
518
|
-
< void
|
|
519
|
-
, dtl::is_same<alloc_version, version_1>
|
|
520
|
-
, dtl::is_input_iterator<InputIterator>
|
|
521
|
-
>::type * = 0
|
|
522
|
-
#endif
|
|
523
|
-
)
|
|
524
|
-
{
|
|
525
|
-
//Use cend() as hint to achieve linear time for
|
|
526
|
-
//ordered ranges as required by the standard
|
|
527
|
-
//for the constructor
|
|
528
|
-
const const_iterator end_it(this->cend());
|
|
529
|
-
for ( ; first != last; ++first){
|
|
530
|
-
this->insert_equal_convertible(end_it, *first);
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
template <class InputIterator>
|
|
535
|
-
void hash_table_construct_non_unique(InputIterator first, InputIterator last
|
|
536
|
-
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
537
|
-
, typename dtl::disable_if_or
|
|
538
|
-
< void
|
|
539
|
-
, dtl::is_same<alloc_version, version_1>
|
|
540
|
-
, dtl::is_input_iterator<InputIterator>
|
|
541
|
-
>::type * = 0
|
|
542
|
-
#endif
|
|
543
|
-
)
|
|
544
|
-
{
|
|
545
|
-
//Optimized allocation and construction
|
|
546
|
-
this->allocate_many_and_construct
|
|
547
|
-
( first, boost::container::iterator_udistance(first, last)
|
|
548
|
-
, hash_insert_equal_end_hint_functor<Node, Icont>(this->m_icont));
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
public:
|
|
552
|
-
|
|
553
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(const hash_table& x)
|
|
554
|
-
: AllocHolder(x, x.value_hash_function(), x.value_eq())
|
|
555
|
-
{
|
|
556
|
-
this->m_icont.clone_from
|
|
557
|
-
(x.icont(), typename AllocHolder::cloner(*this), Destroyer(this->node_alloc()));
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(BOOST_RV_REF(hash_table) x)
|
|
561
|
-
BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<KeyEqual>::value &&
|
|
562
|
-
boost::container::dtl::is_nothrow_move_constructible<KeyHash>::value)
|
|
563
|
-
: AllocHolder(BOOST_MOVE_BASE(AllocHolder, x), x.value_hash_function(), x.value_eq())
|
|
564
|
-
{}
|
|
565
|
-
|
|
566
|
-
BOOST_CONTAINER_FORCEINLINE hash_table(const hash_table& x, const allocator_type &a)
|
|
567
|
-
: AllocHolder(x.value_hash_function(), x.value_eq(), a)
|
|
568
|
-
{
|
|
569
|
-
this->m_icont.clone_from
|
|
570
|
-
(x.icont(), typename AllocHolder::cloner(*this), Destroyer(this->node_alloc()));
|
|
571
|
-
//AllocHolder clears in case of exception
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
hash_table(BOOST_RV_REF(hash_table) x, const allocator_type &a)
|
|
575
|
-
: AllocHolder(x.hash_function(), x.key_eq(), a)
|
|
576
|
-
{
|
|
577
|
-
if(this->node_alloc() == x.node_alloc()){
|
|
578
|
-
this->m_icont.swap(x.icont());
|
|
579
|
-
}
|
|
580
|
-
else{
|
|
581
|
-
this->m_icont.clone_from
|
|
582
|
-
(boost::move(x.icont()), typename AllocHolder::move_cloner(*this), Destroyer(this->node_alloc()));
|
|
583
|
-
}
|
|
584
|
-
//AllocHolder clears in case of exception
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
BOOST_CONTAINER_FORCEINLINE ~hash_table()
|
|
588
|
-
{
|
|
589
|
-
} //AllocHolder clears the hash_table
|
|
590
|
-
|
|
591
|
-
hash_table& operator=(BOOST_COPY_ASSIGN_REF(hash_table) x)
|
|
592
|
-
{
|
|
593
|
-
if (&x != this){
|
|
594
|
-
NodeAlloc &this_alloc = this->get_stored_allocator();
|
|
595
|
-
const NodeAlloc &x_alloc = x.get_stored_allocator();
|
|
596
|
-
dtl::bool_<allocator_traits<NodeAlloc>::
|
|
597
|
-
propagate_on_container_copy_assignment::value> flag;
|
|
598
|
-
if(flag && this_alloc != x_alloc){
|
|
599
|
-
this->clear();
|
|
600
|
-
}
|
|
601
|
-
this->AllocHolder::copy_assign_alloc(x);
|
|
602
|
-
//Transfer all the nodes to a temporary hash_table
|
|
603
|
-
//If anything goes wrong, all the nodes will be destroyed
|
|
604
|
-
//automatically
|
|
605
|
-
Icont other_hash_table(::boost::move(this->m_icont));
|
|
606
|
-
|
|
607
|
-
//Now recreate the source hash_table reusing nodes stored by other_hash_table
|
|
608
|
-
this->m_icont.clone_from
|
|
609
|
-
(x.icont()
|
|
610
|
-
, HashRecyclingCloner<AllocHolder, false>(*this, other_hash_table)
|
|
611
|
-
, Destroyer(this->node_alloc()));
|
|
612
|
-
|
|
613
|
-
//If there are remaining nodes, destroy them
|
|
614
|
-
other_hash_table.clear_and_dispose(Destroyer(this->node_alloc()));
|
|
615
|
-
}
|
|
616
|
-
return *this;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
hash_table& operator=(BOOST_RV_REF(hash_table) x)
|
|
620
|
-
BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
|
|
621
|
-
allocator_traits_type::is_always_equal::value) &&
|
|
622
|
-
boost::container::dtl::is_nothrow_move_assignable<KeyEqual>::value &&
|
|
623
|
-
boost::container::dtl::is_nothrow_move_assignable<KeyHash>::value)
|
|
624
|
-
{
|
|
625
|
-
BOOST_ASSERT(this != &x);
|
|
626
|
-
NodeAlloc &this_alloc = this->node_alloc();
|
|
627
|
-
NodeAlloc &x_alloc = x.node_alloc();
|
|
628
|
-
const bool propagate_alloc = allocator_traits<NodeAlloc>::
|
|
629
|
-
propagate_on_container_move_assignment::value;
|
|
630
|
-
const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal;
|
|
631
|
-
//Resources can be transferred if both allocators are
|
|
632
|
-
//going to be equal after this function (either propagated or already equal)
|
|
633
|
-
if(propagate_alloc || allocators_equal){
|
|
634
|
-
//Destroy
|
|
635
|
-
this->clear();
|
|
636
|
-
//Move allocator if needed
|
|
637
|
-
this->AllocHolder::move_assign_alloc(x);
|
|
638
|
-
//Obtain resources
|
|
639
|
-
this->m_icont = boost::move(x.icont());
|
|
640
|
-
}
|
|
641
|
-
//Else do a one by one move
|
|
642
|
-
else{
|
|
643
|
-
//Transfer all the nodes to a temporary hash_table
|
|
644
|
-
//If anything goes wrong, all the nodes will be destroyed
|
|
645
|
-
//automatically
|
|
646
|
-
Icont other_hash_table(::boost::move(this->m_icont));
|
|
647
|
-
|
|
648
|
-
//Now recreate the source hash_table reusing nodes stored by other_hash_table
|
|
649
|
-
this->m_icont.clone_from
|
|
650
|
-
(::boost::move(x.icont())
|
|
651
|
-
, HashRecyclingCloner<AllocHolder, true>(*this, other_hash_table)
|
|
652
|
-
, Destroyer(this->node_alloc()));
|
|
653
|
-
|
|
654
|
-
//If there are remaining nodes, destroy them
|
|
655
|
-
other_hash_table.clear_and_dispose(Destroyer(this->node_alloc()));
|
|
656
|
-
}
|
|
657
|
-
return *this;
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
public:
|
|
661
|
-
// accessors:
|
|
662
|
-
BOOST_CONTAINER_FORCEINLINE key_equal key_eq() const
|
|
663
|
-
{ return this->m_icont.key_eq(); }
|
|
664
|
-
|
|
665
|
-
BOOST_CONTAINER_FORCEINLINE value_equal value_eq() const
|
|
666
|
-
{ return value_equal(this->key_eq()); }
|
|
667
|
-
|
|
668
|
-
BOOST_CONTAINER_FORCEINLINE hasher hash_function() const
|
|
669
|
-
{ return this->m_icont.hash_function(); }
|
|
670
|
-
|
|
671
|
-
BOOST_CONTAINER_FORCEINLINE value_hasher value_hash_function() const
|
|
672
|
-
{ return value_hasher(this->hash_function()); }
|
|
673
|
-
|
|
674
|
-
BOOST_CONTAINER_FORCEINLINE allocator_type get_allocator() const
|
|
675
|
-
{ return allocator_type(this->node_alloc()); }
|
|
676
|
-
|
|
677
|
-
BOOST_CONTAINER_FORCEINLINE const stored_allocator_type &get_stored_allocator() const
|
|
678
|
-
{ return this->node_alloc(); }
|
|
679
|
-
|
|
680
|
-
BOOST_CONTAINER_FORCEINLINE stored_allocator_type &get_stored_allocator()
|
|
681
|
-
{ return this->node_alloc(); }
|
|
682
|
-
|
|
683
|
-
BOOST_CONTAINER_FORCEINLINE iterator begin()
|
|
684
|
-
{ return iterator(this->m_icont.begin()); }
|
|
685
|
-
|
|
686
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator begin() const
|
|
687
|
-
{ return this->cbegin(); }
|
|
688
|
-
|
|
689
|
-
BOOST_CONTAINER_FORCEINLINE iterator end()
|
|
690
|
-
{ return iterator(this->m_icont.end()); }
|
|
691
|
-
|
|
692
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator end() const
|
|
693
|
-
{ return this->cend(); }
|
|
694
|
-
|
|
695
|
-
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
|
|
696
|
-
//!
|
|
697
|
-
//! <b>Throws</b>: Nothing.
|
|
698
|
-
//!
|
|
699
|
-
//! <b>Complexity</b>: Constant.
|
|
700
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator cbegin() const
|
|
701
|
-
{ return const_iterator(this->non_const_icont().begin()); }
|
|
702
|
-
|
|
703
|
-
//! <b>Effects</b>: Returns a const_iterator to the end of the container.
|
|
704
|
-
//!
|
|
705
|
-
//! <b>Throws</b>: Nothing.
|
|
706
|
-
//!
|
|
707
|
-
//! <b>Complexity</b>: Constant.
|
|
708
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator cend() const
|
|
709
|
-
{ return const_iterator(this->non_const_icont().end()); }
|
|
710
|
-
|
|
711
|
-
BOOST_CONTAINER_FORCEINLINE bool empty() const
|
|
712
|
-
{ return !this->size(); }
|
|
713
|
-
|
|
714
|
-
BOOST_CONTAINER_FORCEINLINE size_type size() const
|
|
715
|
-
{ return this->m_icont.size(); }
|
|
716
|
-
|
|
717
|
-
BOOST_CONTAINER_FORCEINLINE size_type max_size() const
|
|
718
|
-
{ return AllocHolder::max_size(); }
|
|
719
|
-
|
|
720
|
-
BOOST_CONTAINER_FORCEINLINE void swap(ThisType& x)
|
|
721
|
-
BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
|
|
722
|
-
&& boost::container::dtl::is_nothrow_swappable<KeyEqual>::value
|
|
723
|
-
&& boost::container::dtl::is_nothrow_swappable<KeyHash>::value )
|
|
724
|
-
{ AllocHolder::swap(x); }
|
|
725
|
-
|
|
726
|
-
public:
|
|
727
|
-
|
|
728
|
-
typedef typename Icont::insert_commit_data insert_commit_data;
|
|
729
|
-
|
|
730
|
-
// insert/erase
|
|
731
|
-
std::pair<iterator,bool> insert_unique_check
|
|
732
|
-
(const key_type& key, insert_commit_data &data)
|
|
733
|
-
{
|
|
734
|
-
std::pair<iiterator, bool> ret =
|
|
735
|
-
this->m_icont.insert_unique_check
|
|
736
|
-
(key, data);
|
|
737
|
-
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
std::pair<iterator,bool> insert_unique_check
|
|
741
|
-
(const_iterator hint, const key_type& key, insert_commit_data &data)
|
|
742
|
-
{
|
|
743
|
-
//to-do: take advantage of hint: just check for equality and insert after if equal
|
|
744
|
-
(void)hint;
|
|
745
|
-
BOOST_ASSERT((priv_is_linked)(hint));
|
|
746
|
-
std::pair<iiterator, bool> ret =
|
|
747
|
-
this->m_icont.insert_unique_check
|
|
748
|
-
(key, data);
|
|
749
|
-
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
|
750
|
-
}
|
|
751
|
-
|
|
752
|
-
template<class MovableConvertible>
|
|
753
|
-
iterator insert_unique_commit
|
|
754
|
-
(BOOST_FWD_REF(MovableConvertible) v, insert_commit_data &data)
|
|
755
|
-
{
|
|
756
|
-
NodePtr tmp = AllocHolder::create_node(boost::forward<MovableConvertible>(v));
|
|
757
|
-
return iterator(this->m_icont.insert_unique_commit(*tmp, data));
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
template<class MovableConvertible>
|
|
761
|
-
std::pair<iterator,bool> insert_unique(BOOST_FWD_REF(MovableConvertible) v)
|
|
762
|
-
{
|
|
763
|
-
insert_commit_data data;
|
|
764
|
-
std::pair<iterator,bool> ret =
|
|
765
|
-
this->insert_unique_check(key_of_value_type()(v), data);
|
|
766
|
-
if(ret.second){
|
|
767
|
-
ret.first = this->insert_unique_commit(boost::forward<MovableConvertible>(v), data);
|
|
768
|
-
}
|
|
769
|
-
return ret;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
private:
|
|
773
|
-
|
|
774
|
-
template<class KeyConvertible, class M>
|
|
775
|
-
iiterator priv_insert_or_assign_commit
|
|
776
|
-
(BOOST_FWD_REF(KeyConvertible) key, BOOST_FWD_REF(M) obj, insert_commit_data &data)
|
|
777
|
-
{
|
|
778
|
-
NodePtr tmp = AllocHolder::create_node(boost::forward<KeyConvertible>(key), boost::forward<M>(obj));
|
|
779
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
780
|
-
iiterator ret(this->m_icont.insert_unique_commit(*tmp, data));
|
|
781
|
-
destroy_deallocator.release();
|
|
782
|
-
return ret;
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
bool priv_is_linked(const_iterator const position) const
|
|
786
|
-
{
|
|
787
|
-
iiterator const cur(position.get());
|
|
788
|
-
return cur == this->m_icont.end() ||
|
|
789
|
-
(++iiterator(cur) != cur &&
|
|
790
|
-
++iiterator(cur) != iiterator());
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
template<class MovableConvertible>
|
|
794
|
-
void push_back_impl(BOOST_FWD_REF(MovableConvertible) v)
|
|
795
|
-
{
|
|
796
|
-
NodePtr tmp(AllocHolder::create_node(boost::forward<MovableConvertible>(v)));
|
|
797
|
-
//push_back has no-throw guarantee so avoid any deallocator/destroyer
|
|
798
|
-
this->m_icont.push_back(*tmp);
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
std::pair<iterator, bool> emplace_unique_impl(NodePtr p)
|
|
802
|
-
{
|
|
803
|
-
value_type &v = p->get_data();
|
|
804
|
-
insert_commit_data data;
|
|
805
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(p, this->node_alloc());
|
|
806
|
-
std::pair<iterator,bool> ret =
|
|
807
|
-
this->insert_unique_check(key_of_value_type()(v), data);
|
|
808
|
-
if(!ret.second){
|
|
809
|
-
return ret;
|
|
810
|
-
}
|
|
811
|
-
//No throw insertion part, release rollback
|
|
812
|
-
destroy_deallocator.release();
|
|
813
|
-
return std::pair<iterator,bool>
|
|
814
|
-
( iterator(this->m_icont.insert_unique_commit(*p, data))
|
|
815
|
-
, true );
|
|
816
|
-
}
|
|
817
|
-
|
|
818
|
-
iterator emplace_unique_hint_impl(const_iterator hint, NodePtr p)
|
|
819
|
-
{
|
|
820
|
-
BOOST_ASSERT((priv_is_linked)(hint));
|
|
821
|
-
value_type &v = p->get_data();
|
|
822
|
-
insert_commit_data data;
|
|
823
|
-
std::pair<iterator,bool> ret =
|
|
824
|
-
this->insert_unique_check(hint, key_of_value_type()(v), data);
|
|
825
|
-
if(!ret.second){
|
|
826
|
-
Destroyer(this->node_alloc())(p);
|
|
827
|
-
return ret.first;
|
|
828
|
-
}
|
|
829
|
-
return iterator(this->m_icont.insert_unique_commit(*p, data));
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
public:
|
|
833
|
-
|
|
834
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
835
|
-
|
|
836
|
-
template <class... Args>
|
|
837
|
-
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> emplace_unique(BOOST_FWD_REF(Args)... args)
|
|
838
|
-
{ return this->emplace_unique_impl(AllocHolder::create_node(boost::forward<Args>(args)...)); }
|
|
839
|
-
|
|
840
|
-
template <class... Args>
|
|
841
|
-
BOOST_CONTAINER_FORCEINLINE iterator emplace_hint_unique(const_iterator hint, BOOST_FWD_REF(Args)... args)
|
|
842
|
-
{ return this->emplace_unique_hint_impl(hint, AllocHolder::create_node(boost::forward<Args>(args)...)); }
|
|
843
|
-
|
|
844
|
-
template <class... Args>
|
|
845
|
-
iterator emplace_equal(BOOST_FWD_REF(Args)... args)
|
|
846
|
-
{
|
|
847
|
-
NodePtr tmp(AllocHolder::create_node(boost::forward<Args>(args)...));
|
|
848
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
849
|
-
iterator ret(this->m_icont.insert_equal(*tmp));
|
|
850
|
-
destroy_deallocator.release();
|
|
851
|
-
return ret;
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
template <class... Args>
|
|
855
|
-
iterator emplace_hint_equal(const_iterator hint, BOOST_FWD_REF(Args)... args)
|
|
856
|
-
{
|
|
857
|
-
BOOST_ASSERT((priv_is_linked)(hint));
|
|
858
|
-
NodePtr tmp(AllocHolder::create_node(boost::forward<Args>(args)...));
|
|
859
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
860
|
-
//to-do: take advantage of hint: just check for equality and insert after if equal
|
|
861
|
-
iterator ret(this->m_icont.insert_equal(*tmp));
|
|
862
|
-
destroy_deallocator.release();
|
|
863
|
-
return ret;
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
template <class KeyType, class... Args>
|
|
867
|
-
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace
|
|
868
|
-
(const_iterator hint, BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(Args)... args)
|
|
869
|
-
{
|
|
870
|
-
insert_commit_data data;
|
|
871
|
-
const key_type & k = key; //Support emulated rvalue references
|
|
872
|
-
std::pair<iiterator, bool> ret =
|
|
873
|
-
hint == const_iterator() ? this->m_icont.insert_unique_check\
|
|
874
|
-
(k, data)
|
|
875
|
-
: this->m_icont.insert_unique_check\
|
|
876
|
-
(hint.get(), k, data);
|
|
877
|
-
if(ret.second){
|
|
878
|
-
ret.first = this->m_icont.insert_unique_commit
|
|
879
|
-
(*AllocHolder::create_node(try_emplace_t(), boost::forward<KeyType>(key), boost::forward<Args>(args)...), data);
|
|
880
|
-
}
|
|
881
|
-
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
885
|
-
|
|
886
|
-
#define BOOST_CONTAINER_TREE_EMPLACE_CODE(N) \
|
|
887
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
888
|
-
std::pair<iterator, bool> emplace_unique(BOOST_MOVE_UREF##N)\
|
|
889
|
-
{ return this->emplace_unique_impl(AllocHolder::create_node(BOOST_MOVE_FWD##N)); }\
|
|
890
|
-
\
|
|
891
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
892
|
-
iterator emplace_hint_unique(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
893
|
-
{ return this->emplace_unique_hint_impl(hint, AllocHolder::create_node(BOOST_MOVE_FWD##N)); }\
|
|
894
|
-
\
|
|
895
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
896
|
-
iterator emplace_equal(BOOST_MOVE_UREF##N)\
|
|
897
|
-
{\
|
|
898
|
-
NodePtr tmp(AllocHolder::create_node(BOOST_MOVE_FWD##N));\
|
|
899
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());\
|
|
900
|
-
iterator ret(this->m_icont.insert_equal(this->m_icont.end(), *tmp));\
|
|
901
|
-
destroy_deallocator.release();\
|
|
902
|
-
return ret;\
|
|
903
|
-
}\
|
|
904
|
-
\
|
|
905
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
906
|
-
iterator emplace_hint_equal(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
907
|
-
{\
|
|
908
|
-
BOOST_ASSERT((priv_is_linked)(hint));\
|
|
909
|
-
NodePtr tmp(AllocHolder::create_node(BOOST_MOVE_FWD##N));\
|
|
910
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());\
|
|
911
|
-
iterator ret(this->m_icont.insert_equal(hint.get(), *tmp));\
|
|
912
|
-
destroy_deallocator.release();\
|
|
913
|
-
return ret;\
|
|
914
|
-
}\
|
|
915
|
-
\
|
|
916
|
-
template <class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
|
917
|
-
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool>\
|
|
918
|
-
try_emplace(const_iterator hint, BOOST_FWD_REF(KeyType) key BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
919
|
-
{\
|
|
920
|
-
insert_commit_data data;\
|
|
921
|
-
const key_type & k = key;\
|
|
922
|
-
std::pair<iiterator, bool> ret =\
|
|
923
|
-
hint == const_iterator() ? this->m_icont.insert_unique_check\
|
|
924
|
-
( k, data)\
|
|
925
|
-
: this->m_icont.insert_unique_check\
|
|
926
|
-
(hint.get(), k, data);\
|
|
927
|
-
if(ret.second){\
|
|
928
|
-
ret.first = this->m_icont.insert_unique_commit\
|
|
929
|
-
(*AllocHolder::create_node(try_emplace_t(), boost::forward<KeyType>(key) BOOST_MOVE_I##N BOOST_MOVE_FWD##N), data);\
|
|
930
|
-
}\
|
|
931
|
-
return std::pair<iterator, bool>(iterator(ret.first), ret.second);\
|
|
932
|
-
}\
|
|
933
|
-
//
|
|
934
|
-
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_TREE_EMPLACE_CODE)
|
|
935
|
-
#undef BOOST_CONTAINER_TREE_EMPLACE_CODE
|
|
936
|
-
|
|
937
|
-
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
938
|
-
|
|
939
|
-
template<class MovableConvertible>
|
|
940
|
-
iterator insert_unique_convertible(const_iterator hint, BOOST_FWD_REF(MovableConvertible) v)
|
|
941
|
-
{
|
|
942
|
-
BOOST_ASSERT((priv_is_linked)(hint));
|
|
943
|
-
insert_commit_data data;
|
|
944
|
-
std::pair<iterator,bool> ret =
|
|
945
|
-
this->insert_unique_check(hint, key_of_value_type()(v), data);
|
|
946
|
-
if(!ret.second)
|
|
947
|
-
return ret.first;
|
|
948
|
-
return this->insert_unique_commit(boost::forward<MovableConvertible>(v), data);
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert_unique, value_type, iterator, this->insert_unique_convertible, const_iterator, const_iterator)
|
|
952
|
-
|
|
953
|
-
template <class InputIterator>
|
|
954
|
-
void insert_unique(InputIterator first, InputIterator last)
|
|
955
|
-
{
|
|
956
|
-
for( ; first != last; ++first)
|
|
957
|
-
this->insert_unique(*first);
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
iterator insert_equal(const value_type& v)
|
|
961
|
-
{
|
|
962
|
-
NodePtr tmp(AllocHolder::create_node(v));
|
|
963
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
964
|
-
//to-do: take advantage of hint: just check for equality and insert after if equal
|
|
965
|
-
iterator ret(this->m_icont.insert_equal(*tmp)); //
|
|
966
|
-
destroy_deallocator.release();
|
|
967
|
-
return ret;
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
//IOG temp
|
|
971
|
-
BOOST_CONTAINER_FORCEINLINE iterator insert(const value_type& v)
|
|
972
|
-
{
|
|
973
|
-
if(BOOST_UNLIKELY(this->size() == this->bucket_count()))
|
|
974
|
-
this->reserve(this->size() + 1u);
|
|
975
|
-
return this->insert_unique(v).first;
|
|
976
|
-
}
|
|
977
|
-
|
|
978
|
-
template<class MovableConvertible>
|
|
979
|
-
iterator insert_equal(BOOST_FWD_REF(MovableConvertible) v)
|
|
980
|
-
{
|
|
981
|
-
NodePtr tmp(AllocHolder::create_node(boost::forward<MovableConvertible>(v)));
|
|
982
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
983
|
-
iterator ret(this->m_icont.insert_equal(*tmp));
|
|
984
|
-
destroy_deallocator.release();
|
|
985
|
-
return ret;
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
template<class MovableConvertible>
|
|
989
|
-
iterator insert_equal_convertible(const_iterator hint, BOOST_FWD_REF(MovableConvertible) v)
|
|
990
|
-
{
|
|
991
|
-
BOOST_ASSERT((priv_is_linked)(hint));
|
|
992
|
-
NodePtr tmp(AllocHolder::create_node(boost::forward<MovableConvertible>(v)));
|
|
993
|
-
scoped_node_destroy_deallocator<NodeAlloc> destroy_deallocator(tmp, this->node_alloc());
|
|
994
|
-
//to-do: take advantage of hint: just check for equality and insert after if equal
|
|
995
|
-
(void)hint;
|
|
996
|
-
iterator ret(this->m_icont.insert_equal(*tmp));
|
|
997
|
-
destroy_deallocator.release();
|
|
998
|
-
return ret;
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert_equal, value_type, iterator, this->insert_equal_convertible, const_iterator, const_iterator)
|
|
1002
|
-
|
|
1003
|
-
template <class InputIterator>
|
|
1004
|
-
void insert_equal(InputIterator first, InputIterator last)
|
|
1005
|
-
{
|
|
1006
|
-
for( ; first != last; ++first)
|
|
1007
|
-
this->insert_equal(*first);
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
template<class KeyType, class M>
|
|
1011
|
-
std::pair<iterator, bool> insert_or_assign(const_iterator hint, BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(M) obj)
|
|
1012
|
-
{
|
|
1013
|
-
insert_commit_data data;
|
|
1014
|
-
const key_type & k = key; //Support emulated rvalue references
|
|
1015
|
-
std::pair<iiterator, bool> ret =
|
|
1016
|
-
hint == const_iterator() ? this->m_icont.insert_unique_check\
|
|
1017
|
-
(k, data)
|
|
1018
|
-
: this->m_icont.insert_unique_check\
|
|
1019
|
-
(hint.get(), k, data);
|
|
1020
|
-
if(ret.second){
|
|
1021
|
-
ret.first = this->priv_insert_or_assign_commit(boost::forward<KeyType>(key), boost::forward<M>(obj), data);
|
|
1022
|
-
}
|
|
1023
|
-
else{
|
|
1024
|
-
ret.first->get_data().second = boost::forward<M>(obj);
|
|
1025
|
-
}
|
|
1026
|
-
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
|
1027
|
-
}
|
|
1028
|
-
|
|
1029
|
-
BOOST_CONTAINER_FORCEINLINE void erase(const_iterator position)
|
|
1030
|
-
{
|
|
1031
|
-
BOOST_ASSERT(position != this->cend() && (priv_is_linked)(position));
|
|
1032
|
-
return this->m_icont.erase_and_dispose(position.get(), Destroyer(this->node_alloc()));
|
|
1033
|
-
}
|
|
1034
|
-
|
|
1035
|
-
BOOST_CONTAINER_FORCEINLINE size_type erase(const key_type& k)
|
|
1036
|
-
{ return AllocHolder::erase_key(k, alloc_version()); }
|
|
1037
|
-
|
|
1038
|
-
iterator erase(const_iterator first, const_iterator last)
|
|
1039
|
-
{
|
|
1040
|
-
BOOST_ASSERT(first == last || (first != this->cend() && (priv_is_linked)(first)));
|
|
1041
|
-
BOOST_ASSERT(first == last || (priv_is_linked)(last));
|
|
1042
|
-
return iterator(AllocHolder::erase_range(first.get(), last.get(), alloc_version()));
|
|
1043
|
-
}
|
|
1044
|
-
|
|
1045
|
-
node_type extract(const key_type& k)
|
|
1046
|
-
{
|
|
1047
|
-
iterator const it = this->find(k);
|
|
1048
|
-
if(this->end() != it){
|
|
1049
|
-
return this->extract(it);
|
|
1050
|
-
}
|
|
1051
|
-
return node_type();
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
node_type extract(const_iterator position)
|
|
1055
|
-
{
|
|
1056
|
-
BOOST_ASSERT(position != this->cend() && (priv_is_linked)(position));
|
|
1057
|
-
iiterator const iit(position.get());
|
|
1058
|
-
this->m_icont.erase(iit);
|
|
1059
|
-
return node_type(iit.operator->(), this->node_alloc());
|
|
1060
|
-
}
|
|
1061
|
-
|
|
1062
|
-
insert_return_type insert_unique_node(BOOST_RV_REF_BEG_IF_CXX11 node_type BOOST_RV_REF_END_IF_CXX11 nh)
|
|
1063
|
-
{
|
|
1064
|
-
return this->insert_unique_node(this->end(), boost::move(nh));
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
|
-
insert_return_type insert_unique_node(const_iterator hint, BOOST_RV_REF_BEG_IF_CXX11 node_type BOOST_RV_REF_END_IF_CXX11 nh)
|
|
1068
|
-
{
|
|
1069
|
-
insert_return_type irt; //inserted == false, node.empty()
|
|
1070
|
-
if(!nh.empty()){
|
|
1071
|
-
insert_commit_data data;
|
|
1072
|
-
std::pair<iterator,bool> ret =
|
|
1073
|
-
this->insert_unique_check(hint, key_of_value_type()(nh.value()), data);
|
|
1074
|
-
if(ret.second){
|
|
1075
|
-
irt.inserted = true;
|
|
1076
|
-
irt.position = iterator(this->m_icont.insert_unique_commit(*nh.get(), data));
|
|
1077
|
-
nh.release();
|
|
1078
|
-
}
|
|
1079
|
-
else{
|
|
1080
|
-
irt.position = ret.first;
|
|
1081
|
-
irt.node = boost::move(nh);
|
|
1082
|
-
}
|
|
1083
|
-
}
|
|
1084
|
-
else{
|
|
1085
|
-
irt.position = this->end();
|
|
1086
|
-
}
|
|
1087
|
-
return BOOST_MOVE_RET(insert_return_type, irt);
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
iterator insert_equal_node(BOOST_RV_REF_BEG_IF_CXX11 node_type BOOST_RV_REF_END_IF_CXX11 nh)
|
|
1091
|
-
{
|
|
1092
|
-
if(nh.empty()){
|
|
1093
|
-
return this->end();
|
|
1094
|
-
}
|
|
1095
|
-
else{
|
|
1096
|
-
NodePtr const p(nh.release());
|
|
1097
|
-
return iterator(this->m_icont.insert_equal(*p));
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
iterator insert_equal_node(const_iterator hint, BOOST_RV_REF_BEG_IF_CXX11 node_type BOOST_RV_REF_END_IF_CXX11 nh)
|
|
1102
|
-
{
|
|
1103
|
-
if(nh.empty()){
|
|
1104
|
-
return this->end();
|
|
1105
|
-
}
|
|
1106
|
-
else{
|
|
1107
|
-
NodePtr const p(nh.release());
|
|
1108
|
-
//to-do: take advantage of hint: just check for equality and insert after if equal
|
|
1109
|
-
return iterator(this->m_icont.insert_equal(*p)); (void)hint;
|
|
1110
|
-
}
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
template<class H2, class C2>
|
|
1114
|
-
BOOST_CONTAINER_FORCEINLINE void merge_unique(hash_table<T, key_of_value_type, H2, C2, Allocator, Options>& )
|
|
1115
|
-
{ assert(0); } //TODO
|
|
1116
|
-
|
|
1117
|
-
template<class H2, class C2>
|
|
1118
|
-
BOOST_CONTAINER_FORCEINLINE void merge_equal(hash_table<T, key_of_value_type, H2, C2, Allocator, Options>& )
|
|
1119
|
-
{ assert(0); } //TODO
|
|
1120
|
-
|
|
1121
|
-
BOOST_CONTAINER_FORCEINLINE void clear()
|
|
1122
|
-
{ this->AllocHolder::clear(alloc_version()); }
|
|
1123
|
-
|
|
1124
|
-
// search operations. Const and non-const overloads even if no iterator is returned
|
|
1125
|
-
// so splay implementations can to their rebalancing when searching in non-const versions
|
|
1126
|
-
BOOST_CONTAINER_FORCEINLINE iterator find(const key_type& k)
|
|
1127
|
-
{ return iterator(this->m_icont.find(k)); }
|
|
1128
|
-
|
|
1129
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& k) const
|
|
1130
|
-
{ return const_iterator(this->non_const_icont().find(k)); }
|
|
1131
|
-
|
|
1132
|
-
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& k) const
|
|
1133
|
-
{ return size_type(this->m_icont.count(k)); }
|
|
1134
|
-
|
|
1135
|
-
BOOST_CONTAINER_FORCEINLINE bool contains(const key_type& x) const
|
|
1136
|
-
{ return this->find(x) != this->cend(); }
|
|
1137
|
-
|
|
1138
|
-
std::pair<iterator,iterator> equal_range(const key_type& k)
|
|
1139
|
-
{
|
|
1140
|
-
std::pair<iiterator, iiterator> ret =
|
|
1141
|
-
this->m_icont.equal_range(k);
|
|
1142
|
-
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
|
|
1146
|
-
{
|
|
1147
|
-
std::pair<iiterator, iiterator> ret =
|
|
1148
|
-
this->non_const_icont().equal_range(k);
|
|
1149
|
-
return std::pair<const_iterator,const_iterator>
|
|
1150
|
-
(const_iterator(ret.first), const_iterator(ret.second));
|
|
1151
|
-
}
|
|
1152
|
-
|
|
1153
|
-
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, iterator> equal_range_unique(const key_type& k)
|
|
1154
|
-
{ return priv_equal_range_unique<iterator>(*this, k); }
|
|
1155
|
-
|
|
1156
|
-
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range_unique(const key_type& k) const
|
|
1157
|
-
{ return priv_equal_range_unique<const_iterator>(*this, k); }
|
|
1158
|
-
|
|
1159
|
-
BOOST_CONTAINER_FORCEINLINE size_type bucket_count() const BOOST_NOEXCEPT
|
|
1160
|
-
{ return this->m_icont.bucket_count(); }
|
|
1161
|
-
|
|
1162
|
-
BOOST_CONTAINER_FORCEINLINE size_type max_bucket_count() const BOOST_NOEXCEPT
|
|
1163
|
-
{ return this->max_size(); }
|
|
1164
|
-
|
|
1165
|
-
BOOST_CONTAINER_FORCEINLINE size_type bucket_size(size_type n) const
|
|
1166
|
-
{ return this->m_icont.bucket_size(n); }
|
|
1167
|
-
|
|
1168
|
-
BOOST_CONTAINER_FORCEINLINE size_type bucket(const key_type& k) const
|
|
1169
|
-
{ return this->m_icont.bucket(k, KeyNodeHash()); }
|
|
1170
|
-
/*
|
|
1171
|
-
BOOST_CONTAINER_FORCEINLINE local_iterator begin(size_type n)
|
|
1172
|
-
{ return local_iterator(this->m_icont.begin(n)); }
|
|
1173
|
-
|
|
1174
|
-
BOOST_CONTAINER_FORCEINLINE const_local_iterator begin(size_type n) const
|
|
1175
|
-
{ return this->cbegin(n); }
|
|
1176
|
-
|
|
1177
|
-
BOOST_CONTAINER_FORCEINLINE const_local_iterator cbegin(size_type n) const
|
|
1178
|
-
{ return const_local_iterator(this->non_const_icont().begin(n)); }
|
|
1179
|
-
|
|
1180
|
-
BOOST_CONTAINER_FORCEINLINE local_iterator end(size_type n)
|
|
1181
|
-
{ return local_iterator(this->m_icont.end(n)); }
|
|
1182
|
-
|
|
1183
|
-
BOOST_CONTAINER_FORCEINLINE const_local_iterator end(size_type n) const
|
|
1184
|
-
{ return this->cend(n); }
|
|
1185
|
-
|
|
1186
|
-
BOOST_CONTAINER_FORCEINLINE const_local_iterator cend(size_type n) const
|
|
1187
|
-
{ return const_local_iterator(this->non_const_icont().end(n)); }
|
|
1188
|
-
*/
|
|
1189
|
-
float load_factor() const BOOST_NOEXCEPT
|
|
1190
|
-
{
|
|
1191
|
-
assert(0);
|
|
1192
|
-
return 0.0f;
|
|
1193
|
-
}
|
|
1194
|
-
|
|
1195
|
-
float max_load_factor() const BOOST_NOEXCEPT
|
|
1196
|
-
{
|
|
1197
|
-
assert(0);
|
|
1198
|
-
return 0.0f;
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
void max_load_factor(float)
|
|
1202
|
-
{
|
|
1203
|
-
assert(0);
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
void rehash(size_type n)
|
|
1207
|
-
{
|
|
1208
|
-
(void)n;
|
|
1209
|
-
//! <b>Effects</b>: bucket_count() >= size() / max_load_factor() and bucket_count() >= n.
|
|
1210
|
-
assert(0);
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
void reserve(size_type n)
|
|
1214
|
-
{
|
|
1215
|
-
if (this->bucket_count() < n) {
|
|
1216
|
-
std::size_t sc = Icont::suggested_lower_bucket_count(n);
|
|
1217
|
-
bucket_holder_t& this_buckets = *this;
|
|
1218
|
-
bucket_holder_t new_buckets(sc + Icont::bucket_overhead, this_buckets.get_allocator());
|
|
1219
|
-
this->m_icont.rehash(bucket_traits(new_buckets.data(), new_buckets.size()));
|
|
1220
|
-
this_buckets.swap(new_buckets);
|
|
1221
|
-
}
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator==(const hash_table& x, const hash_table& y)
|
|
1225
|
-
{ return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
|
|
1226
|
-
|
|
1227
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const hash_table& x, const hash_table& y)
|
|
1228
|
-
{ return !(x == y); }
|
|
1229
|
-
|
|
1230
|
-
BOOST_CONTAINER_FORCEINLINE friend void swap(hash_table& x, hash_table& y)
|
|
1231
|
-
BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
|
|
1232
|
-
&& boost::container::dtl::is_nothrow_swappable<KeyEqual>::value
|
|
1233
|
-
&& boost::container::dtl::is_nothrow_swappable<KeyHash>::value )
|
|
1234
|
-
{ x.swap(y); }
|
|
1235
|
-
|
|
1236
|
-
BOOST_CONTAINER_FORCEINLINE friend std::size_t hash_value(const hash_table& x)
|
|
1237
|
-
{ return boost::hash_range(x.cbegin(), x.end()); }
|
|
1238
|
-
|
|
1239
|
-
private:
|
|
1240
|
-
template <class I, class C, class K>
|
|
1241
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
1242
|
-
static std::pair<I, I> priv_equal_range_unique(C &c, const K& k)
|
|
1243
|
-
{
|
|
1244
|
-
I i = c.find(k);
|
|
1245
|
-
I j = i;
|
|
1246
|
-
if (i != c.end())
|
|
1247
|
-
++j;
|
|
1248
|
-
return std::pair<I, I>(i, j);
|
|
1249
|
-
}
|
|
1250
|
-
};
|
|
1251
|
-
|
|
1252
|
-
} //namespace dtl {
|
|
1253
|
-
} //namespace container {
|
|
1254
|
-
|
|
1255
|
-
template <class T>
|
|
1256
|
-
struct has_trivial_destructor_after_move;
|
|
1257
|
-
|
|
1258
|
-
//!has_trivial_destructor_after_move<> == true_type
|
|
1259
|
-
//!specialization for optimizations
|
|
1260
|
-
template <class T, class KeyOfValue, class KeyHash, class KeyEqual, class Allocator, class Options>
|
|
1261
|
-
struct has_trivial_destructor_after_move
|
|
1262
|
-
<
|
|
1263
|
-
::boost::container::dtl::hash_table
|
|
1264
|
-
<T, KeyOfValue, KeyHash, KeyEqual, Allocator, Options>
|
|
1265
|
-
>
|
|
1266
|
-
{
|
|
1267
|
-
typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
|
|
1268
|
-
static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
|
|
1269
|
-
::boost::has_trivial_destructor_after_move<pointer>::value &&
|
|
1270
|
-
::boost::has_trivial_destructor_after_move<KeyHash>::value &&
|
|
1271
|
-
::boost::has_trivial_destructor_after_move<KeyEqual>::value;
|
|
1272
|
-
};
|
|
1273
|
-
|
|
1274
|
-
} //namespace boost {
|
|
1275
|
-
|
|
1276
|
-
#include <boost/container/detail/config_end.hpp>
|
|
1277
|
-
|
|
1278
|
-
#endif //BOOST_CONTAINER_HASH_TABLE_HPP
|