passenger 6.0.20 → 6.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +41 -1
- data/CONTRIBUTORS +2 -0
- data/README.md +2 -2
- data/bin/passenger-install-nginx-module +4 -4
- data/build/support/cxx_dependency_map.rb +155 -54
- data/dev/copy_boost_headers +21 -7
- data/dev/nginx_version_sha256 +72 -0
- 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 +96 -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 +61 -62
- 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 +28 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +42 -59
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +154 -883
- 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 +19 -22
- 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 +106 -153
- 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 +75 -294
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +75 -283
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +89 -288
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +73 -275
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +170 -328
- 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 +26 -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 +32 -48
- 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 +26 -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 +53 -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 +22 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +188 -275
- 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 +2 -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 +91 -975
- 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 +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
- 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 +5 -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 +73 -127
- 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 +32 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
- 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 +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +1 -1
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +2 -2
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
- 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 +1 -1
- 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 +56 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +56 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +56 -101
- 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 +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +3 -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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +7 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +3 -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 +3 -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 +1 -1
- 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 +12 -44
- 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 +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +11 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +11 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +4 -5
- 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 +3 -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 +3 -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 +1 -1
- 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 +2 -2
- 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 +1 -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 +21 -26
- 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 +229 -1019
- 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 +55 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +55 -33
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +3 -3
- 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 +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +130 -53
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_payload.hpp +92 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +73 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +48 -48
- 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 +39 -30
- 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 +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +14 -14
- 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 +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +2 -2
- 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/use_coro.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +11 -11
- 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 +62 -137
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +22 -21
- 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 +44 -36
- 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 +32 -41
- 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 +1 -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 +36 -420
- 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 +205 -421
- 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 +1 -1
- 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 +77 -423
- 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 +25 -34
- 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 +4 -4
- 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 +4 -4
- 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 +21 -26
- 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 +10 -21
- 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 +1 -1
- 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 +1 -27
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +2 -3
- 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 +1 -1
- 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/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 -61
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +229 -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/tuple_for_each.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +138 -289
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
- data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -280
- data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -7
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1 -0
- 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 +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +4 -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 +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +3 -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 +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -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 +40 -0
- 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/deque.hpp +112 -112
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +40 -40
- 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 +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +30 -25
- 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 +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +129 -129
- 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/next_capacity.hpp +6 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +32 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +18 -19
- 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 +77 -77
- 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 +44 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +78 -78
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +231 -231
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +107 -109
- 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 +18 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +2 -2
- 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 -80
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +81 -81
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +115 -109
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +32 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +150 -190
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +165 -165
- 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 +84 -86
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +5 -99
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +25 -126
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +27 -21
- 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 -41
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +20 -6
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +19 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1 -1
- 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/invoke_swap.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +17 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -55
- 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 +2 -2
- 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/{ratio → exception}/detail/requires_cxx11.hpp +7 -5
- 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 +1 -1
- 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 +1 -1
- 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 +21 -166
- data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +267 -418
- data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -63
- 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 +2 -2
- 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/common_slist_algorithms.hpp +5 -5
- 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 -21
- 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 -21
- 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 +32 -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 +56 -57
- 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 +60 -61
- 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/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 +611 -633
- 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 -30
- 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/thread/src/pthread/thread.cpp +24 -14
- 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 +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +5 -19
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +3 -3
- 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/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 +67 -17
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +48 -48
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- 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 +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- 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 -87
- 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/smart_ptr/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +1 -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 +13 -57
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -29
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +51 -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 +8 -1
- 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 +5 -9
- 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/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/is_floating_point.hpp +22 -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 +2 -54
- 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 +2 -12
- 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 -203
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +145 -103
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +1 -4
- 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 +531 -91
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +346 -194
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +10 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +22 -15
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +10 -13
- 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/table.hpp +150 -55
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +346 -1039
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +8 -8
- 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 +95 -144
- 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 +123 -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 +65 -46
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +41 -23
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +324 -997
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +7 -12
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +57 -46
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +35 -24
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +229 -629
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +8 -13
- 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/native_support.rb +10 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -7
- 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 +50 -149
- data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2575
- data/src/cxx_supportlib/ServerKit/http_parser.h +0 -452
- 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 -91
- 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/handler_alloc_hook.ipp +0 -64
- 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/detail/is_same.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/requires_cxx11.hpp +0 -22
- 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 -476
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/requires_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_win32_sleep.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/epilogue.hpp +0 -39
- 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 -27
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/requires_cxx11.hpp +0 -22
- 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/swap.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/requires_cxx11.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/typeof/detail/requires_cxx11.hpp +0 -18
- 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/fwd.hpp +0 -150
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/requires_cxx11.hpp +0 -21
- /data/dev/{webpacketpp.patch → websocketpp.patch} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
|
|
2
2
|
// Copyright (C) 2005-2016 Daniel James
|
|
3
|
-
// Copyright (C) 2022 Joaquin M Lopez Munoz.
|
|
4
|
-
// Copyright (C) 2022 Christian Mazakas
|
|
3
|
+
// Copyright (C) 2022-2024 Joaquin M Lopez Munoz.
|
|
4
|
+
// Copyright (C) 2022-2023 Christian Mazakas
|
|
5
|
+
// Copyright (C) 2024 Braden Ganetsky
|
|
5
6
|
//
|
|
6
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
7
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -14,56 +15,38 @@
|
|
|
14
15
|
#pragma once
|
|
15
16
|
#endif
|
|
16
17
|
|
|
18
|
+
#include <boost/unordered/detail/allocator_constructed.hpp>
|
|
19
|
+
#include <boost/unordered/detail/fca.hpp>
|
|
20
|
+
#include <boost/unordered/detail/opt_storage.hpp>
|
|
21
|
+
#include <boost/unordered/detail/serialize_tracked_address.hpp>
|
|
22
|
+
#include <boost/unordered/detail/static_assert.hpp>
|
|
23
|
+
#include <boost/unordered/detail/type_traits.hpp>
|
|
24
|
+
|
|
17
25
|
#include <boost/assert.hpp>
|
|
18
26
|
#include <boost/core/allocator_traits.hpp>
|
|
19
27
|
#include <boost/core/bit.hpp>
|
|
28
|
+
#include <boost/core/invoke_swap.hpp>
|
|
20
29
|
#include <boost/core/no_exceptions_support.hpp>
|
|
21
30
|
#include <boost/core/pointer_traits.hpp>
|
|
22
|
-
#include <boost/
|
|
23
|
-
#include <boost/
|
|
24
|
-
#include <boost/
|
|
25
|
-
#include <boost/preprocessor/cat.hpp>
|
|
26
|
-
#include <boost/preprocessor/repetition/enum.hpp>
|
|
27
|
-
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
28
|
-
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
29
|
-
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
|
30
|
-
#include <boost/preprocessor/seq/enum.hpp>
|
|
31
|
-
#include <boost/preprocessor/seq/size.hpp>
|
|
32
|
-
#include <boost/swap.hpp>
|
|
31
|
+
#include <boost/core/serialization.hpp>
|
|
32
|
+
#include <boost/mp11/algorithm.hpp>
|
|
33
|
+
#include <boost/mp11/list.hpp>
|
|
33
34
|
#include <boost/throw_exception.hpp>
|
|
34
|
-
|
|
35
|
-
#include <
|
|
36
|
-
#include <boost/type_traits/aligned_storage.hpp>
|
|
37
|
-
#include <boost/type_traits/alignment_of.hpp>
|
|
38
|
-
#include <boost/type_traits/integral_constant.hpp>
|
|
39
|
-
#include <boost/type_traits/is_base_of.hpp>
|
|
40
|
-
#include <boost/type_traits/is_class.hpp>
|
|
41
|
-
#include <boost/type_traits/is_convertible.hpp>
|
|
42
|
-
#include <boost/type_traits/is_empty.hpp>
|
|
43
|
-
#include <boost/type_traits/is_nothrow_move_assignable.hpp>
|
|
44
|
-
#include <boost/type_traits/is_nothrow_move_constructible.hpp>
|
|
45
|
-
#include <boost/type_traits/is_nothrow_swappable.hpp>
|
|
46
|
-
#include <boost/type_traits/is_same.hpp>
|
|
47
|
-
#include <boost/type_traits/make_void.hpp>
|
|
48
|
-
#include <boost/type_traits/remove_const.hpp>
|
|
49
|
-
#include <boost/unordered/detail/fca.hpp>
|
|
50
|
-
#include <boost/unordered/detail/type_traits.hpp>
|
|
51
|
-
#include <boost/unordered/detail/fwd.hpp>
|
|
52
|
-
#include <boost/utility/addressof.hpp>
|
|
53
|
-
#include <boost/utility/enable_if.hpp>
|
|
35
|
+
|
|
36
|
+
#include <algorithm>
|
|
54
37
|
#include <cmath>
|
|
55
38
|
#include <iterator>
|
|
39
|
+
#include <limits>
|
|
56
40
|
#include <stdexcept>
|
|
57
|
-
#include <utility>
|
|
58
|
-
|
|
59
|
-
#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
|
|
60
41
|
#include <type_traits>
|
|
61
|
-
#
|
|
42
|
+
#include <utility>
|
|
43
|
+
#include <tuple> // std::forward_as_tuple
|
|
62
44
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
namespace boost {
|
|
46
|
+
namespace tuples {
|
|
47
|
+
struct null_type;
|
|
48
|
+
}
|
|
49
|
+
} // namespace boost
|
|
67
50
|
|
|
68
51
|
// BOOST_UNORDERED_SUPPRESS_DEPRECATED
|
|
69
52
|
//
|
|
@@ -98,6 +81,10 @@
|
|
|
98
81
|
|
|
99
82
|
namespace boost {
|
|
100
83
|
namespace unordered {
|
|
84
|
+
|
|
85
|
+
using std::piecewise_construct;
|
|
86
|
+
using std::piecewise_construct_t;
|
|
87
|
+
|
|
101
88
|
namespace detail {
|
|
102
89
|
|
|
103
90
|
template <typename Types> struct table;
|
|
@@ -119,37 +106,41 @@ namespace boost {
|
|
|
119
106
|
template <class T> no_key(T const&) {}
|
|
120
107
|
};
|
|
121
108
|
|
|
109
|
+
struct converting_key
|
|
110
|
+
{
|
|
111
|
+
};
|
|
112
|
+
|
|
122
113
|
namespace func {
|
|
123
114
|
template <class T> inline void ignore_unused_variable_warning(T const&)
|
|
124
115
|
{
|
|
125
116
|
}
|
|
126
|
-
}
|
|
117
|
+
} // namespace func
|
|
127
118
|
|
|
128
119
|
//////////////////////////////////////////////////////////////////////////
|
|
129
120
|
// iterator SFINAE
|
|
130
121
|
|
|
131
122
|
template <typename I>
|
|
132
|
-
struct is_forward :
|
|
123
|
+
struct is_forward : std::is_base_of<std::forward_iterator_tag,
|
|
133
124
|
typename std::iterator_traits<I>::iterator_category>
|
|
134
125
|
{
|
|
135
126
|
};
|
|
136
127
|
|
|
137
128
|
template <typename I, typename ReturnType>
|
|
138
129
|
struct enable_if_forward
|
|
139
|
-
|
|
140
|
-
|
|
130
|
+
: std::enable_if<boost::unordered::detail::is_forward<I>::value,
|
|
131
|
+
ReturnType>
|
|
141
132
|
{
|
|
142
133
|
};
|
|
143
134
|
|
|
144
135
|
template <typename I, typename ReturnType>
|
|
145
136
|
struct disable_if_forward
|
|
146
|
-
|
|
147
|
-
|
|
137
|
+
: std::enable_if<!boost::unordered::detail::is_forward<I>::value,
|
|
138
|
+
ReturnType>
|
|
148
139
|
{
|
|
149
140
|
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
141
|
+
} // namespace detail
|
|
142
|
+
} // namespace unordered
|
|
143
|
+
} // namespace boost
|
|
153
144
|
|
|
154
145
|
namespace boost {
|
|
155
146
|
namespace unordered {
|
|
@@ -167,7 +158,8 @@ namespace boost {
|
|
|
167
158
|
|
|
168
159
|
template <class I>
|
|
169
160
|
inline typename boost::unordered::detail::disable_if_forward<I,
|
|
170
|
-
std::size_t>::type
|
|
161
|
+
std::size_t>::type
|
|
162
|
+
insert_size(I, I)
|
|
171
163
|
{
|
|
172
164
|
return 1;
|
|
173
165
|
}
|
|
@@ -191,7 +183,7 @@ namespace boost {
|
|
|
191
183
|
{
|
|
192
184
|
}
|
|
193
185
|
compressed_base(T& x, move_tag)
|
|
194
|
-
: empty_value<T>(boost::empty_init_t(),
|
|
186
|
+
: empty_value<T>(boost::empty_init_t(), std::move(x))
|
|
195
187
|
{
|
|
196
188
|
}
|
|
197
189
|
|
|
@@ -209,8 +201,8 @@ namespace boost {
|
|
|
209
201
|
|
|
210
202
|
template <typename T1, typename T2>
|
|
211
203
|
struct compressed
|
|
212
|
-
|
|
213
|
-
|
|
204
|
+
: private boost::unordered::detail::generate_base<T1, 1>::type,
|
|
205
|
+
private boost::unordered::detail::generate_base<T2, 2>::type
|
|
214
206
|
{
|
|
215
207
|
typedef typename generate_base<T1, 1>::type base1;
|
|
216
208
|
typedef typename generate_base<T2, 2>::type base2;
|
|
@@ -252,14 +244,14 @@ namespace boost {
|
|
|
252
244
|
|
|
253
245
|
void move_assign(compressed& x)
|
|
254
246
|
{
|
|
255
|
-
first() =
|
|
256
|
-
second() =
|
|
247
|
+
first() = std::move(x.first());
|
|
248
|
+
second() = std::move(x.second());
|
|
257
249
|
}
|
|
258
250
|
|
|
259
251
|
void swap(compressed& x)
|
|
260
252
|
{
|
|
261
|
-
boost::
|
|
262
|
-
boost::
|
|
253
|
+
boost::core::invoke_swap(first(), x.first());
|
|
254
|
+
boost::core::invoke_swap(second(), x.second());
|
|
263
255
|
}
|
|
264
256
|
|
|
265
257
|
private:
|
|
@@ -296,37 +288,8 @@ namespace boost {
|
|
|
296
288
|
//////////////////////////////////////////////////////////////////////////
|
|
297
289
|
// Bits and pieces for implementing traits
|
|
298
290
|
|
|
299
|
-
template <typename T>
|
|
300
|
-
|
|
301
|
-
struct choice9
|
|
302
|
-
{
|
|
303
|
-
typedef char (&type)[9];
|
|
304
|
-
};
|
|
305
|
-
struct choice8 : choice9
|
|
306
|
-
{
|
|
307
|
-
typedef char (&type)[8];
|
|
308
|
-
};
|
|
309
|
-
struct choice7 : choice8
|
|
310
|
-
{
|
|
311
|
-
typedef char (&type)[7];
|
|
312
|
-
};
|
|
313
|
-
struct choice6 : choice7
|
|
314
|
-
{
|
|
315
|
-
typedef char (&type)[6];
|
|
316
|
-
};
|
|
317
|
-
struct choice5 : choice6
|
|
318
|
-
{
|
|
319
|
-
typedef char (&type)[5];
|
|
320
|
-
};
|
|
321
|
-
struct choice4 : choice5
|
|
322
|
-
{
|
|
323
|
-
typedef char (&type)[4];
|
|
324
|
-
};
|
|
325
|
-
struct choice3 : choice4
|
|
326
|
-
{
|
|
327
|
-
typedef char (&type)[3];
|
|
328
|
-
};
|
|
329
|
-
struct choice2 : choice3
|
|
291
|
+
template <typename T> typename std::add_lvalue_reference<T>::type make();
|
|
292
|
+
struct choice2
|
|
330
293
|
{
|
|
331
294
|
typedef char (&type)[2];
|
|
332
295
|
};
|
|
@@ -351,139 +314,9 @@ namespace boost {
|
|
|
351
314
|
{
|
|
352
315
|
template <typename T> convert_from_anything(T const&);
|
|
353
316
|
};
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
////////////////////////////////////////////////////////////////////////////
|
|
359
|
-
// emplace_args
|
|
360
|
-
//
|
|
361
|
-
// Either forwarding variadic arguments, or storing the arguments in
|
|
362
|
-
// emplace_args##n
|
|
363
|
-
|
|
364
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
365
|
-
|
|
366
|
-
#define BOOST_UNORDERED_EMPLACE_TEMPLATE typename... Args
|
|
367
|
-
#define BOOST_UNORDERED_EMPLACE_ARGS BOOST_FWD_REF(Args)... args
|
|
368
|
-
#define BOOST_UNORDERED_EMPLACE_FORWARD boost::forward<Args>(args)...
|
|
369
|
-
|
|
370
|
-
#else
|
|
371
|
-
|
|
372
|
-
#define BOOST_UNORDERED_EMPLACE_TEMPLATE typename Args
|
|
373
|
-
#define BOOST_UNORDERED_EMPLACE_ARGS Args const& args
|
|
374
|
-
#define BOOST_UNORDERED_EMPLACE_FORWARD args
|
|
375
|
-
|
|
376
|
-
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
377
|
-
|
|
378
|
-
#define BOOST_UNORDERED_EARGS_MEMBER(z, n, _) \
|
|
379
|
-
typedef BOOST_FWD_REF(BOOST_PP_CAT(A, n)) BOOST_PP_CAT(Arg, n); \
|
|
380
|
-
BOOST_PP_CAT(Arg, n) BOOST_PP_CAT(a, n);
|
|
381
|
-
|
|
382
|
-
#else
|
|
383
|
-
|
|
384
|
-
#define BOOST_UNORDERED_EARGS_MEMBER(z, n, _) \
|
|
385
|
-
typedef typename boost::add_lvalue_reference<BOOST_PP_CAT(A, n)>::type \
|
|
386
|
-
BOOST_PP_CAT(Arg, n); \
|
|
387
|
-
BOOST_PP_CAT(Arg, n) BOOST_PP_CAT(a, n);
|
|
388
|
-
|
|
389
|
-
#endif
|
|
390
|
-
|
|
391
|
-
#define BOOST_UNORDERED_FWD_PARAM(z, n, a) \
|
|
392
|
-
BOOST_FWD_REF(BOOST_PP_CAT(A, n)) BOOST_PP_CAT(a, n)
|
|
393
|
-
|
|
394
|
-
#define BOOST_UNORDERED_CALL_FORWARD(z, i, a) \
|
|
395
|
-
boost::forward<BOOST_PP_CAT(A, i)>(BOOST_PP_CAT(a, i))
|
|
396
|
-
|
|
397
|
-
#define BOOST_UNORDERED_EARGS_INIT(z, n, _) \
|
|
398
|
-
BOOST_PP_CAT(a, n)(BOOST_PP_CAT(b, n))
|
|
399
|
-
|
|
400
|
-
#define BOOST_UNORDERED_EARGS(z, n, _) \
|
|
401
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
402
|
-
struct BOOST_PP_CAT(emplace_args, n) \
|
|
403
|
-
{ \
|
|
404
|
-
BOOST_PP_REPEAT_##z(n, BOOST_UNORDERED_EARGS_MEMBER, _) BOOST_PP_CAT( \
|
|
405
|
-
emplace_args, n)(BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, Arg, b)) \
|
|
406
|
-
: BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_EARGS_INIT, _) \
|
|
407
|
-
{ \
|
|
408
|
-
} \
|
|
409
|
-
}; \
|
|
410
|
-
\
|
|
411
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
412
|
-
inline BOOST_PP_CAT(emplace_args, n)<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> \
|
|
413
|
-
create_emplace_args(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, b)) \
|
|
414
|
-
{ \
|
|
415
|
-
BOOST_PP_CAT(emplace_args, n)<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> e( \
|
|
416
|
-
BOOST_PP_ENUM_PARAMS_Z(z, n, b)); \
|
|
417
|
-
return e; \
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
namespace boost {
|
|
421
|
-
namespace unordered {
|
|
422
|
-
namespace detail {
|
|
423
|
-
template <typename A0> struct emplace_args1
|
|
424
|
-
{
|
|
425
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 0, _)
|
|
426
|
-
|
|
427
|
-
explicit emplace_args1(Arg0 b0) : a0(b0) {}
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
template <typename A0>
|
|
431
|
-
inline emplace_args1<A0> create_emplace_args(BOOST_FWD_REF(A0) b0)
|
|
432
|
-
{
|
|
433
|
-
emplace_args1<A0> e(b0);
|
|
434
|
-
return e;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
template <typename A0, typename A1> struct emplace_args2
|
|
438
|
-
{
|
|
439
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 0, _)
|
|
440
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 1, _)
|
|
441
|
-
|
|
442
|
-
emplace_args2(Arg0 b0, Arg1 b1) : a0(b0), a1(b1) {}
|
|
443
|
-
};
|
|
444
|
-
|
|
445
|
-
template <typename A0, typename A1>
|
|
446
|
-
inline emplace_args2<A0, A1> create_emplace_args(
|
|
447
|
-
BOOST_FWD_REF(A0) b0, BOOST_FWD_REF(A1) b1)
|
|
448
|
-
{
|
|
449
|
-
emplace_args2<A0, A1> e(b0, b1);
|
|
450
|
-
return e;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
template <typename A0, typename A1, typename A2> struct emplace_args3
|
|
454
|
-
{
|
|
455
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 0, _)
|
|
456
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 1, _)
|
|
457
|
-
BOOST_UNORDERED_EARGS_MEMBER(1, 2, _)
|
|
458
|
-
|
|
459
|
-
emplace_args3(Arg0 b0, Arg1 b1, Arg2 b2) : a0(b0), a1(b1), a2(b2) {}
|
|
460
|
-
};
|
|
461
|
-
|
|
462
|
-
template <typename A0, typename A1, typename A2>
|
|
463
|
-
inline emplace_args3<A0, A1, A2> create_emplace_args(
|
|
464
|
-
BOOST_FWD_REF(A0) b0, BOOST_FWD_REF(A1) b1, BOOST_FWD_REF(A2) b2)
|
|
465
|
-
{
|
|
466
|
-
emplace_args3<A0, A1, A2> e(b0, b1, b2);
|
|
467
|
-
return e;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
BOOST_UNORDERED_EARGS(1, 4, _)
|
|
471
|
-
BOOST_UNORDERED_EARGS(1, 5, _)
|
|
472
|
-
BOOST_UNORDERED_EARGS(1, 6, _)
|
|
473
|
-
BOOST_UNORDERED_EARGS(1, 7, _)
|
|
474
|
-
BOOST_UNORDERED_EARGS(1, 8, _)
|
|
475
|
-
BOOST_UNORDERED_EARGS(1, 9, _)
|
|
476
|
-
BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
|
|
477
|
-
BOOST_UNORDERED_EARGS, _)
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
#undef BOOST_UNORDERED_DEFINE_EMPLACE_ARGS
|
|
483
|
-
#undef BOOST_UNORDERED_EARGS_MEMBER
|
|
484
|
-
#undef BOOST_UNORDERED_EARGS_INIT
|
|
485
|
-
|
|
486
|
-
#endif
|
|
317
|
+
} // namespace detail
|
|
318
|
+
} // namespace unordered
|
|
319
|
+
} // namespace boost
|
|
487
320
|
|
|
488
321
|
////////////////////////////////////////////////////////////////////////////////
|
|
489
322
|
//
|
|
@@ -494,35 +327,8 @@ namespace boost {
|
|
|
494
327
|
namespace unordered {
|
|
495
328
|
namespace detail {
|
|
496
329
|
|
|
497
|
-
////////////////////////////////////////////////////////////////////////////
|
|
498
|
-
//
|
|
499
|
-
//
|
|
500
|
-
// Uses the standard versions if available.
|
|
501
|
-
|
|
502
|
-
#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
|
|
503
|
-
|
|
504
|
-
using std::integral_constant;
|
|
505
|
-
using std::true_type;
|
|
506
|
-
using std::false_type;
|
|
507
|
-
|
|
508
|
-
#else
|
|
509
|
-
|
|
510
|
-
template <typename T, T Value> struct integral_constant
|
|
511
|
-
{
|
|
512
|
-
enum
|
|
513
|
-
{
|
|
514
|
-
value = Value
|
|
515
|
-
};
|
|
516
|
-
};
|
|
517
|
-
|
|
518
|
-
typedef boost::unordered::detail::integral_constant<bool, true> true_type;
|
|
519
|
-
typedef boost::unordered::detail::integral_constant<bool, false>
|
|
520
|
-
false_type;
|
|
521
|
-
|
|
522
|
-
#endif
|
|
523
|
-
|
|
524
|
-
////////////////////////////////////////////////////////////////////////////
|
|
525
|
-
// Explicitly call a destructor
|
|
330
|
+
////////////////////////////////////////////////////////////////////////////
|
|
331
|
+
// Explicitly call a destructor
|
|
526
332
|
|
|
527
333
|
#if defined(BOOST_MSVC)
|
|
528
334
|
#pragma warning(push)
|
|
@@ -531,7 +337,7 @@ namespace boost {
|
|
|
531
337
|
|
|
532
338
|
namespace func {
|
|
533
339
|
template <class T> inline void destroy(T* x) { x->~T(); }
|
|
534
|
-
}
|
|
340
|
+
} // namespace func
|
|
535
341
|
|
|
536
342
|
#if defined(BOOST_MSVC)
|
|
537
343
|
#pragma warning(pop)
|
|
@@ -546,8 +352,7 @@ namespace boost {
|
|
|
546
352
|
{
|
|
547
353
|
typedef ValueType value_type;
|
|
548
354
|
|
|
549
|
-
|
|
550
|
-
boost::alignment_of<value_type>::value>::type data_;
|
|
355
|
+
opt_storage<value_type> data_;
|
|
551
356
|
|
|
552
357
|
value_base() : data_() {}
|
|
553
358
|
|
|
@@ -571,8 +376,6 @@ namespace boost {
|
|
|
571
376
|
|
|
572
377
|
template <typename T> class optional
|
|
573
378
|
{
|
|
574
|
-
BOOST_MOVABLE_BUT_NOT_COPYABLE(optional)
|
|
575
|
-
|
|
576
379
|
boost::unordered::detail::value_base<T> value_;
|
|
577
380
|
bool has_value_;
|
|
578
381
|
|
|
@@ -587,16 +390,19 @@ namespace boost {
|
|
|
587
390
|
void move(optional<T>& x)
|
|
588
391
|
{
|
|
589
392
|
BOOST_ASSERT(!has_value_ && x.has_value_);
|
|
590
|
-
new (value_.value_ptr()) T(
|
|
393
|
+
new (value_.value_ptr()) T(std::move(x.value_.value()));
|
|
591
394
|
boost::unordered::detail::func::destroy(x.value_.value_ptr());
|
|
592
395
|
has_value_ = true;
|
|
593
396
|
x.has_value_ = false;
|
|
594
397
|
}
|
|
595
398
|
|
|
596
399
|
public:
|
|
597
|
-
optional()
|
|
400
|
+
optional() noexcept : has_value_(false) {}
|
|
598
401
|
|
|
599
|
-
optional(
|
|
402
|
+
optional(optional const&) = delete;
|
|
403
|
+
optional& operator=(optional const&) = delete;
|
|
404
|
+
|
|
405
|
+
optional(optional<T>&& x) : has_value_(false)
|
|
600
406
|
{
|
|
601
407
|
if (x.has_value_) {
|
|
602
408
|
move(x);
|
|
@@ -608,7 +414,7 @@ namespace boost {
|
|
|
608
414
|
new (value_.value_ptr()) T(x);
|
|
609
415
|
}
|
|
610
416
|
|
|
611
|
-
optional& operator=(
|
|
417
|
+
optional& operator=(optional<T>&& x)
|
|
612
418
|
{
|
|
613
419
|
destroy();
|
|
614
420
|
if (x.has_value_) {
|
|
@@ -642,15 +448,15 @@ namespace boost {
|
|
|
642
448
|
move(x);
|
|
643
449
|
}
|
|
644
450
|
} else if (has_value_) {
|
|
645
|
-
boost::
|
|
451
|
+
boost::core::invoke_swap(value_.value(), x.value_.value());
|
|
646
452
|
}
|
|
647
453
|
}
|
|
648
454
|
|
|
649
455
|
friend void swap(optional<T>& x, optional<T>& y) { x.swap(y); }
|
|
650
456
|
};
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
}
|
|
457
|
+
} // namespace detail
|
|
458
|
+
} // namespace unordered
|
|
459
|
+
} // namespace boost
|
|
654
460
|
|
|
655
461
|
////////////////////////////////////////////////////////////////////////////////
|
|
656
462
|
//
|
|
@@ -670,209 +476,9 @@ namespace boost {
|
|
|
670
476
|
struct rebind_wrap : boost::allocator_rebind<Alloc, T>
|
|
671
477
|
{
|
|
672
478
|
};
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
////////////////////////////////////////////////////////////////////////////
|
|
678
|
-
// Functions used to construct nodes. Emulates variadic construction,
|
|
679
|
-
// piecewise construction etc.
|
|
680
|
-
|
|
681
|
-
////////////////////////////////////////////////////////////////////////////
|
|
682
|
-
// construct_value
|
|
683
|
-
//
|
|
684
|
-
// Only use allocator_traits::construct, allocator_traits::destroy when full
|
|
685
|
-
// C++11 support is available.
|
|
686
|
-
|
|
687
|
-
#if BOOST_UNORDERED_CXX11_CONSTRUCTION
|
|
688
|
-
|
|
689
|
-
#elif !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
690
|
-
|
|
691
|
-
namespace boost {
|
|
692
|
-
namespace unordered {
|
|
693
|
-
namespace detail {
|
|
694
|
-
namespace func {
|
|
695
|
-
template <typename T, typename... Args>
|
|
696
|
-
inline void construct_value(T* address, BOOST_FWD_REF(Args)... args)
|
|
697
|
-
{
|
|
698
|
-
new ((void*)address) T(boost::forward<Args>(args)...);
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
#else
|
|
706
|
-
|
|
707
|
-
namespace boost {
|
|
708
|
-
namespace unordered {
|
|
709
|
-
namespace detail {
|
|
710
|
-
namespace func {
|
|
711
|
-
template <typename T> inline void construct_value(T* address)
|
|
712
|
-
{
|
|
713
|
-
new ((void*)address) T();
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
template <typename T, typename A0>
|
|
717
|
-
inline void construct_value(T* address, BOOST_FWD_REF(A0) a0)
|
|
718
|
-
{
|
|
719
|
-
new ((void*)address) T(boost::forward<A0>(a0));
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
#endif
|
|
727
|
-
|
|
728
|
-
////////////////////////////////////////////////////////////////////////////
|
|
729
|
-
// Construct from tuple
|
|
730
|
-
//
|
|
731
|
-
// Used to emulate piecewise construction.
|
|
732
|
-
|
|
733
|
-
#define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(z, n, namespace_) \
|
|
734
|
-
template <typename Alloc, typename T, \
|
|
735
|
-
BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
736
|
-
void construct_from_tuple(Alloc&, T* ptr, \
|
|
737
|
-
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
|
|
738
|
-
{ \
|
|
739
|
-
new ((void*)ptr) \
|
|
740
|
-
T(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_GET_TUPLE_ARG, namespace_)); \
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
#define BOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_) namespace_::get<n>(x)
|
|
744
|
-
|
|
745
|
-
// construct_from_tuple for boost::tuple
|
|
746
|
-
// The workaround for old Sun compilers comes later in the file.
|
|
747
|
-
|
|
748
|
-
#if !BOOST_UNORDERED_SUN_WORKAROUNDS1
|
|
749
|
-
|
|
750
|
-
namespace boost {
|
|
751
|
-
namespace unordered {
|
|
752
|
-
namespace detail {
|
|
753
|
-
namespace func {
|
|
754
|
-
template <typename Alloc, typename T>
|
|
755
|
-
void construct_from_tuple(Alloc&, T* ptr, boost::tuple<>)
|
|
756
|
-
{
|
|
757
|
-
new ((void*)ptr) T();
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
|
|
761
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
|
|
762
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
|
|
763
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
|
|
764
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
|
|
765
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
|
|
766
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
|
|
767
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
|
|
768
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
|
|
769
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
|
|
770
|
-
}
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
#endif
|
|
776
|
-
|
|
777
|
-
// construct_from_tuple for std::tuple
|
|
778
|
-
|
|
779
|
-
#if !BOOST_UNORDERED_CXX11_CONSTRUCTION && BOOST_UNORDERED_TUPLE_ARGS
|
|
780
|
-
|
|
781
|
-
namespace boost {
|
|
782
|
-
namespace unordered {
|
|
783
|
-
namespace detail {
|
|
784
|
-
namespace func {
|
|
785
|
-
template <typename Alloc, typename T>
|
|
786
|
-
void construct_from_tuple(Alloc&, T* ptr, std::tuple<>)
|
|
787
|
-
{
|
|
788
|
-
new ((void*)ptr) T();
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, std)
|
|
792
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, std)
|
|
793
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, std)
|
|
794
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, std)
|
|
795
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, std)
|
|
796
|
-
|
|
797
|
-
#if BOOST_UNORDERED_TUPLE_ARGS >= 6
|
|
798
|
-
BOOST_PP_REPEAT_FROM_TO(6, BOOST_PP_INC(BOOST_UNORDERED_TUPLE_ARGS),
|
|
799
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE, std)
|
|
800
|
-
#endif
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
#endif
|
|
807
|
-
|
|
808
|
-
#undef BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
|
|
809
|
-
#undef BOOST_UNORDERED_GET_TUPLE_ARG
|
|
810
|
-
|
|
811
|
-
// construct_from_tuple for boost::tuple on old versions of sunpro.
|
|
812
|
-
//
|
|
813
|
-
// Old versions of Sun C++ had problems with template overloads of
|
|
814
|
-
// boost::tuple, so to fix it I added a distinct type for each length to
|
|
815
|
-
// the overloads. That means there's no possible ambiguity between the
|
|
816
|
-
// different overloads, so that the compiler doesn't get confused
|
|
817
|
-
|
|
818
|
-
#if BOOST_UNORDERED_SUN_WORKAROUNDS1
|
|
819
|
-
|
|
820
|
-
#define BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(z, n, namespace_) \
|
|
821
|
-
template <typename Alloc, typename T, \
|
|
822
|
-
BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
823
|
-
void construct_from_tuple_impl(boost::unordered::detail::func::length<n>, \
|
|
824
|
-
Alloc&, T* ptr, \
|
|
825
|
-
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
|
|
826
|
-
{ \
|
|
827
|
-
new ((void*)ptr) \
|
|
828
|
-
T(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_GET_TUPLE_ARG, namespace_)); \
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
#define BOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_) namespace_::get<n>(x)
|
|
832
|
-
|
|
833
|
-
namespace boost {
|
|
834
|
-
namespace unordered {
|
|
835
|
-
namespace detail {
|
|
836
|
-
namespace func {
|
|
837
|
-
template <int N> struct length
|
|
838
|
-
{
|
|
839
|
-
};
|
|
840
|
-
|
|
841
|
-
template <typename Alloc, typename T>
|
|
842
|
-
void construct_from_tuple_impl(
|
|
843
|
-
boost::unordered::detail::func::length<0>, Alloc&, T* ptr,
|
|
844
|
-
boost::tuple<>)
|
|
845
|
-
{
|
|
846
|
-
new ((void*)ptr) T();
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
|
|
850
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
|
|
851
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
|
|
852
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
|
|
853
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
|
|
854
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
|
|
855
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
|
|
856
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
|
|
857
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
|
|
858
|
-
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
|
|
859
|
-
|
|
860
|
-
template <typename Alloc, typename T, typename Tuple>
|
|
861
|
-
void construct_from_tuple(Alloc& alloc, T* ptr, Tuple const& x)
|
|
862
|
-
{
|
|
863
|
-
construct_from_tuple_impl(boost::unordered::detail::func::length<
|
|
864
|
-
boost::tuples::length<Tuple>::value>(),
|
|
865
|
-
alloc, ptr, x);
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
#undef BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
|
|
873
|
-
#undef BOOST_UNORDERED_GET_TUPLE_ARG
|
|
874
|
-
|
|
875
|
-
#endif
|
|
479
|
+
} // namespace detail
|
|
480
|
+
} // namespace unordered
|
|
481
|
+
} // namespace boost
|
|
876
482
|
|
|
877
483
|
namespace boost {
|
|
878
484
|
namespace unordered {
|
|
@@ -883,8 +489,7 @@ namespace boost {
|
|
|
883
489
|
|
|
884
490
|
template <typename A0> struct use_piecewise
|
|
885
491
|
{
|
|
886
|
-
static choice1::type test(
|
|
887
|
-
choice1, boost::unordered::piecewise_construct_t);
|
|
492
|
+
static choice1::type test(choice1, std::piecewise_construct_t);
|
|
888
493
|
|
|
889
494
|
static choice2::type test(choice2, ...);
|
|
890
495
|
|
|
@@ -895,29 +500,24 @@ namespace boost {
|
|
|
895
500
|
};
|
|
896
501
|
};
|
|
897
502
|
|
|
898
|
-
#if BOOST_UNORDERED_CXX11_CONSTRUCTION
|
|
899
|
-
|
|
900
503
|
////////////////////////////////////////////////////////////////////////
|
|
901
504
|
// Construct from variadic parameters
|
|
902
505
|
|
|
903
506
|
template <typename Alloc, typename T, typename... Args>
|
|
904
507
|
inline void construct_from_args(
|
|
905
|
-
Alloc& alloc, T* address,
|
|
508
|
+
Alloc& alloc, T* address, Args&&... args)
|
|
906
509
|
{
|
|
907
510
|
boost::allocator_construct(
|
|
908
|
-
alloc, address,
|
|
511
|
+
alloc, address, std::forward<Args>(args)...);
|
|
909
512
|
}
|
|
910
513
|
|
|
911
514
|
// For backwards compatibility, implement a special case for
|
|
912
515
|
// piecewise_construct with boost::tuple
|
|
913
516
|
|
|
914
|
-
template <typename A0> struct
|
|
517
|
+
template <typename A0> struct detect_std_tuple
|
|
915
518
|
{
|
|
916
|
-
template <
|
|
917
|
-
|
|
918
|
-
typename T9>
|
|
919
|
-
static choice1::type test(choice1,
|
|
920
|
-
boost::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> const&);
|
|
519
|
+
template <class... Args>
|
|
520
|
+
static choice1::type test(choice1, std::tuple<Args...> const&);
|
|
921
521
|
|
|
922
522
|
static choice2::type test(choice2, ...);
|
|
923
523
|
|
|
@@ -930,25 +530,27 @@ namespace boost {
|
|
|
930
530
|
|
|
931
531
|
// Special case for piecewise_construct
|
|
932
532
|
|
|
933
|
-
template <class
|
|
533
|
+
template <template <class...> class Tuple, class... Args,
|
|
534
|
+
std::size_t... Is, class... TupleArgs>
|
|
934
535
|
std::tuple<typename std::add_lvalue_reference<Args>::type...>
|
|
935
536
|
to_std_tuple_impl(boost::mp11::mp_list<Args...>,
|
|
936
|
-
|
|
537
|
+
Tuple<TupleArgs...>& tuple, boost::mp11::index_sequence<Is...>)
|
|
937
538
|
{
|
|
938
|
-
(void)
|
|
539
|
+
(void)tuple;
|
|
540
|
+
using std::get;
|
|
939
541
|
return std::tuple<typename std::add_lvalue_reference<Args>::type...>(
|
|
940
|
-
|
|
542
|
+
get<Is>(tuple)...);
|
|
941
543
|
}
|
|
942
544
|
|
|
943
545
|
template <class T>
|
|
944
546
|
using add_lvalue_reference_t =
|
|
945
547
|
typename std::add_lvalue_reference<T>::type;
|
|
946
548
|
|
|
947
|
-
template <class... Args>
|
|
549
|
+
template <template <class...> class Tuple, class... Args>
|
|
948
550
|
boost::mp11::mp_transform<add_lvalue_reference_t,
|
|
949
551
|
boost::mp11::mp_remove<std::tuple<Args...>,
|
|
950
552
|
boost::tuples::null_type> >
|
|
951
|
-
to_std_tuple(
|
|
553
|
+
to_std_tuple(Tuple<Args...>& tuple)
|
|
952
554
|
{
|
|
953
555
|
using list = boost::mp11::mp_remove<boost::mp11::mp_list<Args...>,
|
|
954
556
|
boost::tuples::null_type>;
|
|
@@ -960,138 +562,20 @@ namespace boost {
|
|
|
960
562
|
|
|
961
563
|
template <typename Alloc, typename A, typename B, typename A0,
|
|
962
564
|
typename A1, typename A2>
|
|
963
|
-
inline typename
|
|
964
|
-
|
|
965
|
-
|
|
565
|
+
inline typename std::enable_if<use_piecewise<A0>::value &&
|
|
566
|
+
!detect_std_tuple<A1>::value &&
|
|
567
|
+
!detect_std_tuple<A2>::value,
|
|
966
568
|
void>::type
|
|
967
|
-
construct_from_args(
|
|
968
|
-
|
|
569
|
+
construct_from_args(
|
|
570
|
+
Alloc& alloc, std::pair<A, B>* address, A0&&, A1&& a1, A2&& a2)
|
|
969
571
|
{
|
|
970
572
|
boost::allocator_construct(alloc, address, std::piecewise_construct,
|
|
971
573
|
to_std_tuple(a1), to_std_tuple(a2));
|
|
972
574
|
}
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
// Construct from variadic parameters
|
|
978
|
-
|
|
979
|
-
template <typename Alloc, typename T, typename... Args>
|
|
980
|
-
inline void construct_from_args(
|
|
981
|
-
Alloc&, T* address, BOOST_FWD_REF(Args)... args)
|
|
982
|
-
{
|
|
983
|
-
new ((void*)address) T(boost::forward<Args>(args)...);
|
|
984
|
-
}
|
|
985
|
-
|
|
986
|
-
// Special case for piecewise_construct
|
|
987
|
-
|
|
988
|
-
template <typename Alloc, typename A, typename B, typename A0,
|
|
989
|
-
typename A1, typename A2>
|
|
990
|
-
inline typename enable_if<use_piecewise<A0>, void>::type
|
|
991
|
-
construct_from_args(Alloc& alloc, std::pair<A, B>* address,
|
|
992
|
-
BOOST_FWD_REF(A0), BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
993
|
-
{
|
|
994
|
-
boost::unordered::detail::func::construct_from_tuple(
|
|
995
|
-
alloc, boost::addressof(address->first), boost::forward<A1>(a1));
|
|
996
|
-
BOOST_TRY
|
|
997
|
-
{
|
|
998
|
-
boost::unordered::detail::func::construct_from_tuple(
|
|
999
|
-
alloc, boost::addressof(address->second), boost::forward<A2>(a2));
|
|
1000
|
-
}
|
|
1001
|
-
BOOST_CATCH(...)
|
|
1002
|
-
{
|
|
1003
|
-
boost::unordered::detail::func::destroy(
|
|
1004
|
-
boost::addressof(address->first));
|
|
1005
|
-
BOOST_RETHROW
|
|
1006
|
-
}
|
|
1007
|
-
BOOST_CATCH_END
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
#else // BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
|
1011
|
-
|
|
1012
|
-
////////////////////////////////////////////////////////////////////////
|
|
1013
|
-
// Construct from emplace_args
|
|
1014
|
-
|
|
1015
|
-
// Explicitly write out first three overloads for the sake of sane
|
|
1016
|
-
// error messages.
|
|
1017
|
-
|
|
1018
|
-
template <typename Alloc, typename T, typename A0>
|
|
1019
|
-
inline void construct_from_args(
|
|
1020
|
-
Alloc&, T* address, emplace_args1<A0> const& args)
|
|
1021
|
-
{
|
|
1022
|
-
new ((void*)address) T(boost::forward<A0>(args.a0));
|
|
1023
|
-
}
|
|
1024
|
-
|
|
1025
|
-
template <typename Alloc, typename T, typename A0, typename A1>
|
|
1026
|
-
inline void construct_from_args(
|
|
1027
|
-
Alloc&, T* address, emplace_args2<A0, A1> const& args)
|
|
1028
|
-
{
|
|
1029
|
-
new ((void*)address)
|
|
1030
|
-
T(boost::forward<A0>(args.a0), boost::forward<A1>(args.a1));
|
|
1031
|
-
}
|
|
1032
|
-
|
|
1033
|
-
template <typename Alloc, typename T, typename A0, typename A1,
|
|
1034
|
-
typename A2>
|
|
1035
|
-
inline void construct_from_args(
|
|
1036
|
-
Alloc&, T* address, emplace_args3<A0, A1, A2> const& args)
|
|
1037
|
-
{
|
|
1038
|
-
new ((void*)address) T(boost::forward<A0>(args.a0),
|
|
1039
|
-
boost::forward<A1>(args.a1), boost::forward<A2>(args.a2));
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
// Use a macro for the rest.
|
|
1043
|
-
|
|
1044
|
-
#define BOOST_UNORDERED_CONSTRUCT_IMPL(z, num_params, _) \
|
|
1045
|
-
template <typename Alloc, typename T, \
|
|
1046
|
-
BOOST_PP_ENUM_PARAMS_Z(z, num_params, typename A)> \
|
|
1047
|
-
inline void construct_from_args(Alloc&, T* address, \
|
|
1048
|
-
boost::unordered::detail::BOOST_PP_CAT(emplace_args, num_params) < \
|
|
1049
|
-
BOOST_PP_ENUM_PARAMS_Z(z, num_params, A) > const& args) \
|
|
1050
|
-
{ \
|
|
1051
|
-
new ((void*)address) \
|
|
1052
|
-
T(BOOST_PP_ENUM_##z(num_params, BOOST_UNORDERED_CALL_FORWARD, args.a)); \
|
|
1053
|
-
}
|
|
1054
|
-
|
|
1055
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 4, _)
|
|
1056
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 5, _)
|
|
1057
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 6, _)
|
|
1058
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 7, _)
|
|
1059
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 8, _)
|
|
1060
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL(1, 9, _)
|
|
1061
|
-
BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
|
|
1062
|
-
BOOST_UNORDERED_CONSTRUCT_IMPL, _)
|
|
1063
|
-
|
|
1064
|
-
#undef BOOST_UNORDERED_CONSTRUCT_IMPL
|
|
1065
|
-
|
|
1066
|
-
// Construct with piecewise_construct
|
|
1067
|
-
|
|
1068
|
-
template <typename Alloc, typename A, typename B, typename A0,
|
|
1069
|
-
typename A1, typename A2>
|
|
1070
|
-
inline typename enable_if<use_piecewise<A0>, void>::type
|
|
1071
|
-
construct_from_args(Alloc& alloc, std::pair<A, B>* address,
|
|
1072
|
-
boost::unordered::detail::emplace_args3<A0, A1, A2> const& args)
|
|
1073
|
-
{
|
|
1074
|
-
boost::unordered::detail::func::construct_from_tuple(
|
|
1075
|
-
alloc, boost::addressof(address->first), args.a1);
|
|
1076
|
-
BOOST_TRY
|
|
1077
|
-
{
|
|
1078
|
-
boost::unordered::detail::func::construct_from_tuple(
|
|
1079
|
-
alloc, boost::addressof(address->second), args.a2);
|
|
1080
|
-
}
|
|
1081
|
-
BOOST_CATCH(...)
|
|
1082
|
-
{
|
|
1083
|
-
boost::unordered::detail::func::destroy(
|
|
1084
|
-
boost::addressof(address->first));
|
|
1085
|
-
BOOST_RETHROW
|
|
1086
|
-
}
|
|
1087
|
-
BOOST_CATCH_END
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
#endif // BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
}
|
|
1094
|
-
}
|
|
575
|
+
} // namespace func
|
|
576
|
+
} // namespace detail
|
|
577
|
+
} // namespace unordered
|
|
578
|
+
} // namespace boost
|
|
1095
579
|
|
|
1096
580
|
namespace boost {
|
|
1097
581
|
namespace unordered {
|
|
@@ -1180,9 +664,9 @@ namespace boost {
|
|
|
1180
664
|
boost::allocator_deallocate(alloc_, node_, 1);
|
|
1181
665
|
}
|
|
1182
666
|
}
|
|
1183
|
-
}
|
|
1184
|
-
}
|
|
1185
|
-
}
|
|
667
|
+
} // namespace detail
|
|
668
|
+
} // namespace unordered
|
|
669
|
+
} // namespace boost
|
|
1186
670
|
|
|
1187
671
|
namespace boost {
|
|
1188
672
|
namespace unordered {
|
|
@@ -1192,9 +676,9 @@ namespace boost {
|
|
|
1192
676
|
// Some nicer construct_node functions, might try to
|
|
1193
677
|
// improve implementation later.
|
|
1194
678
|
|
|
1195
|
-
template <typename Alloc,
|
|
679
|
+
template <typename Alloc, typename... Args>
|
|
1196
680
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1197
|
-
construct_node_from_args(Alloc& alloc,
|
|
681
|
+
construct_node_from_args(Alloc& alloc, Args&&... args)
|
|
1198
682
|
{
|
|
1199
683
|
typedef typename boost::allocator_value_type<Alloc>::type node;
|
|
1200
684
|
typedef typename node::value_type value_type;
|
|
@@ -1206,13 +690,13 @@ namespace boost {
|
|
|
1206
690
|
node_constructor<Alloc> a(alloc);
|
|
1207
691
|
a.create_node();
|
|
1208
692
|
construct_from_args(
|
|
1209
|
-
val_alloc, a.node_->value_ptr(),
|
|
693
|
+
val_alloc, a.node_->value_ptr(), std::forward<Args>(args)...);
|
|
1210
694
|
return a.release();
|
|
1211
695
|
}
|
|
1212
696
|
|
|
1213
697
|
template <typename Alloc, typename U>
|
|
1214
698
|
inline typename boost::allocator_pointer<Alloc>::type construct_node(
|
|
1215
|
-
Alloc& alloc,
|
|
699
|
+
Alloc& alloc, U&& x)
|
|
1216
700
|
{
|
|
1217
701
|
node_constructor<Alloc> a(alloc);
|
|
1218
702
|
a.create_node();
|
|
@@ -1225,15 +709,13 @@ namespace boost {
|
|
|
1225
709
|
value_allocator val_alloc(alloc);
|
|
1226
710
|
|
|
1227
711
|
boost::allocator_construct(
|
|
1228
|
-
val_alloc, a.node_->value_ptr(),
|
|
712
|
+
val_alloc, a.node_->value_ptr(), std::forward<U>(x));
|
|
1229
713
|
return a.release();
|
|
1230
714
|
}
|
|
1231
715
|
|
|
1232
|
-
#if BOOST_UNORDERED_CXX11_CONSTRUCTION
|
|
1233
|
-
|
|
1234
716
|
template <typename Alloc, typename Key>
|
|
1235
717
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1236
|
-
construct_node_pair(Alloc& alloc,
|
|
718
|
+
construct_node_pair(Alloc& alloc, Key&& k)
|
|
1237
719
|
{
|
|
1238
720
|
node_constructor<Alloc> a(alloc);
|
|
1239
721
|
a.create_node();
|
|
@@ -1245,17 +727,16 @@ namespace boost {
|
|
|
1245
727
|
|
|
1246
728
|
value_allocator val_alloc(alloc);
|
|
1247
729
|
|
|
1248
|
-
boost::allocator_construct(
|
|
1249
|
-
|
|
1250
|
-
std::forward_as_tuple(
|
|
730
|
+
boost::allocator_construct(val_alloc, a.node_->value_ptr(),
|
|
731
|
+
std::piecewise_construct,
|
|
732
|
+
std::forward_as_tuple(std::forward<Key>(k)),
|
|
1251
733
|
std::forward_as_tuple());
|
|
1252
734
|
return a.release();
|
|
1253
735
|
}
|
|
1254
736
|
|
|
1255
737
|
template <typename Alloc, typename Key, typename Mapped>
|
|
1256
738
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1257
|
-
construct_node_pair(
|
|
1258
|
-
Alloc& alloc, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(Mapped) m)
|
|
739
|
+
construct_node_pair(Alloc& alloc, Key&& k, Mapped&& m)
|
|
1259
740
|
{
|
|
1260
741
|
node_constructor<Alloc> a(alloc);
|
|
1261
742
|
a.create_node();
|
|
@@ -1269,15 +750,14 @@ namespace boost {
|
|
|
1269
750
|
|
|
1270
751
|
boost::allocator_construct(val_alloc, a.node_->value_ptr(),
|
|
1271
752
|
std::piecewise_construct,
|
|
1272
|
-
std::forward_as_tuple(
|
|
1273
|
-
std::forward_as_tuple(
|
|
753
|
+
std::forward_as_tuple(std::forward<Key>(k)),
|
|
754
|
+
std::forward_as_tuple(std::forward<Mapped>(m)));
|
|
1274
755
|
return a.release();
|
|
1275
756
|
}
|
|
1276
757
|
|
|
1277
758
|
template <typename Alloc, typename Key, typename... Args>
|
|
1278
759
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1279
|
-
construct_node_pair_from_args(
|
|
1280
|
-
Alloc& alloc, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(Args)... args)
|
|
760
|
+
construct_node_pair_from_args(Alloc& alloc, Key&& k, Args&&... args)
|
|
1281
761
|
{
|
|
1282
762
|
node_constructor<Alloc> a(alloc);
|
|
1283
763
|
a.create_node();
|
|
@@ -1289,127 +769,31 @@ namespace boost {
|
|
|
1289
769
|
|
|
1290
770
|
value_allocator val_alloc(alloc);
|
|
1291
771
|
|
|
1292
|
-
#if !(BOOST_COMP_CLANG && BOOST_COMP_CLANG < BOOST_VERSION_NUMBER(3, 8, 0) && \
|
|
1293
|
-
defined(BOOST_LIBSTDCXX11))
|
|
1294
|
-
boost::allocator_construct(val_alloc, a.node_->value_ptr(),
|
|
1295
|
-
std::piecewise_construct,
|
|
1296
|
-
std::forward_as_tuple(boost::forward<Key>(k)),
|
|
1297
|
-
std::forward_as_tuple(boost::forward<Args>(args)...));
|
|
1298
|
-
#else
|
|
1299
|
-
// It doesn't seem to be possible to construct a tuple with 3 variadic
|
|
1300
|
-
// rvalue reference members when using older versions of clang with
|
|
1301
|
-
// libstdc++, so just use std::make_tuple instead of
|
|
1302
|
-
// std::forward_as_tuple.
|
|
1303
772
|
boost::allocator_construct(val_alloc, a.node_->value_ptr(),
|
|
1304
773
|
std::piecewise_construct,
|
|
1305
|
-
std::forward_as_tuple(
|
|
1306
|
-
std::
|
|
1307
|
-
#endif
|
|
1308
|
-
return a.release();
|
|
1309
|
-
}
|
|
1310
|
-
|
|
1311
|
-
#else
|
|
774
|
+
std::forward_as_tuple(std::forward<Key>(k)),
|
|
775
|
+
std::forward_as_tuple(std::forward<Args>(args)...));
|
|
1312
776
|
|
|
1313
|
-
template <typename Alloc, typename Key>
|
|
1314
|
-
inline
|
|
1315
|
-
typename boost::unordered::detail::allocator_traits<Alloc>::pointer
|
|
1316
|
-
construct_node_pair(Alloc& alloc, BOOST_FWD_REF(Key) k)
|
|
1317
|
-
{
|
|
1318
|
-
node_constructor<Alloc> a(alloc);
|
|
1319
|
-
a.create_node();
|
|
1320
|
-
boost::unordered::detail::func::construct_value(
|
|
1321
|
-
boost::addressof(a.node_->value_ptr()->first),
|
|
1322
|
-
boost::forward<Key>(k));
|
|
1323
|
-
BOOST_TRY
|
|
1324
|
-
{
|
|
1325
|
-
boost::unordered::detail::func::construct_value(
|
|
1326
|
-
boost::addressof(a.node_->value_ptr()->second));
|
|
1327
|
-
}
|
|
1328
|
-
BOOST_CATCH(...)
|
|
1329
|
-
{
|
|
1330
|
-
boost::unordered::detail::func::destroy(
|
|
1331
|
-
boost::addressof(a.node_->value_ptr()->first));
|
|
1332
|
-
BOOST_RETHROW
|
|
1333
|
-
}
|
|
1334
|
-
BOOST_CATCH_END
|
|
1335
777
|
return a.release();
|
|
1336
778
|
}
|
|
1337
779
|
|
|
1338
|
-
template <typename Alloc, typename Key, typename Mapped>
|
|
1339
|
-
inline
|
|
1340
|
-
typename boost::unordered::detail::allocator_traits<Alloc>::pointer
|
|
1341
|
-
construct_node_pair(
|
|
1342
|
-
Alloc& alloc, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(Mapped) m)
|
|
1343
|
-
{
|
|
1344
|
-
node_constructor<Alloc> a(alloc);
|
|
1345
|
-
a.create_node();
|
|
1346
|
-
boost::unordered::detail::func::construct_value(
|
|
1347
|
-
boost::addressof(a.node_->value_ptr()->first),
|
|
1348
|
-
boost::forward<Key>(k));
|
|
1349
|
-
BOOST_TRY
|
|
1350
|
-
{
|
|
1351
|
-
boost::unordered::detail::func::construct_value(
|
|
1352
|
-
boost::addressof(a.node_->value_ptr()->second),
|
|
1353
|
-
boost::forward<Mapped>(m));
|
|
1354
|
-
}
|
|
1355
|
-
BOOST_CATCH(...)
|
|
1356
|
-
{
|
|
1357
|
-
boost::unordered::detail::func::destroy(
|
|
1358
|
-
boost::addressof(a.node_->value_ptr()->first));
|
|
1359
|
-
BOOST_RETHROW
|
|
1360
|
-
}
|
|
1361
|
-
BOOST_CATCH_END
|
|
1362
|
-
return a.release();
|
|
1363
|
-
}
|
|
1364
|
-
|
|
1365
|
-
template <typename Alloc, typename Key,
|
|
1366
|
-
BOOST_UNORDERED_EMPLACE_TEMPLATE>
|
|
1367
|
-
inline
|
|
1368
|
-
typename boost::unordered::detail::allocator_traits<Alloc>::pointer
|
|
1369
|
-
construct_node_pair_from_args(
|
|
1370
|
-
Alloc& alloc, BOOST_FWD_REF(Key) k, BOOST_UNORDERED_EMPLACE_ARGS)
|
|
1371
|
-
{
|
|
1372
|
-
node_constructor<Alloc> a(alloc);
|
|
1373
|
-
a.create_node();
|
|
1374
|
-
boost::unordered::detail::func::construct_value(
|
|
1375
|
-
boost::addressof(a.node_->value_ptr()->first),
|
|
1376
|
-
boost::forward<Key>(k));
|
|
1377
|
-
BOOST_TRY
|
|
1378
|
-
{
|
|
1379
|
-
boost::unordered::detail::func::construct_from_args(alloc,
|
|
1380
|
-
boost::addressof(a.node_->value_ptr()->second),
|
|
1381
|
-
BOOST_UNORDERED_EMPLACE_FORWARD);
|
|
1382
|
-
}
|
|
1383
|
-
BOOST_CATCH(...)
|
|
1384
|
-
{
|
|
1385
|
-
boost::unordered::detail::func::destroy(
|
|
1386
|
-
boost::addressof(a.node_->value_ptr()->first));
|
|
1387
|
-
BOOST_RETHROW
|
|
1388
|
-
}
|
|
1389
|
-
BOOST_CATCH_END
|
|
1390
|
-
return a.release();
|
|
1391
|
-
}
|
|
1392
|
-
|
|
1393
|
-
#endif
|
|
1394
|
-
|
|
1395
780
|
template <typename T, typename Alloc, typename Key>
|
|
1396
781
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1397
|
-
construct_node_from_key(T*, Alloc& alloc,
|
|
782
|
+
construct_node_from_key(T*, Alloc& alloc, Key&& k)
|
|
1398
783
|
{
|
|
1399
|
-
return construct_node(alloc,
|
|
784
|
+
return construct_node(alloc, std::forward<Key>(k));
|
|
1400
785
|
}
|
|
1401
786
|
|
|
1402
787
|
template <typename T, typename V, typename Alloc, typename Key>
|
|
1403
788
|
inline typename boost::allocator_pointer<Alloc>::type
|
|
1404
|
-
construct_node_from_key(
|
|
1405
|
-
std::pair<T const, V>*, Alloc& alloc, BOOST_FWD_REF(Key) k)
|
|
789
|
+
construct_node_from_key(std::pair<T const, V>*, Alloc& alloc, Key&& k)
|
|
1406
790
|
{
|
|
1407
|
-
return construct_node_pair(alloc,
|
|
791
|
+
return construct_node_pair(alloc, std::forward<Key>(k));
|
|
1408
792
|
}
|
|
1409
793
|
} // namespace func
|
|
1410
|
-
}
|
|
1411
|
-
}
|
|
1412
|
-
}
|
|
794
|
+
} // namespace detail
|
|
795
|
+
} // namespace unordered
|
|
796
|
+
} // namespace boost
|
|
1413
797
|
|
|
1414
798
|
#if defined(BOOST_MSVC)
|
|
1415
799
|
#pragma warning(pop)
|
|
@@ -1435,38 +819,35 @@ namespace boost {
|
|
|
1435
819
|
// in that region of storage. This warning is also generated in C++03
|
|
1436
820
|
// which does not have `std::launder`. The compiler builtin is always
|
|
1437
821
|
// available, regardless of the C++ standard used when compiling.
|
|
1438
|
-
template <class T> T* launder(T* p)
|
|
822
|
+
template <class T> T* launder(T* p) noexcept
|
|
1439
823
|
{
|
|
1440
824
|
return __builtin_launder(p);
|
|
1441
825
|
}
|
|
1442
826
|
#else
|
|
1443
|
-
template <class T> T* launder(T* p)
|
|
827
|
+
template <class T> T* launder(T* p) noexcept { return p; }
|
|
1444
828
|
#endif
|
|
1445
829
|
|
|
1446
830
|
template <class H, class P> class functions
|
|
1447
831
|
{
|
|
1448
832
|
public:
|
|
1449
833
|
static const bool nothrow_move_assignable =
|
|
1450
|
-
|
|
1451
|
-
|
|
834
|
+
std::is_nothrow_move_assignable<H>::value &&
|
|
835
|
+
std::is_nothrow_move_assignable<P>::value;
|
|
1452
836
|
static const bool nothrow_move_constructible =
|
|
1453
|
-
|
|
1454
|
-
|
|
837
|
+
std::is_nothrow_move_constructible<H>::value &&
|
|
838
|
+
std::is_nothrow_move_constructible<P>::value;
|
|
1455
839
|
static const bool nothrow_swappable =
|
|
1456
|
-
boost::is_nothrow_swappable<H>::value &&
|
|
1457
|
-
boost::is_nothrow_swappable<P>::value;
|
|
840
|
+
boost::unordered::detail::is_nothrow_swappable<H>::value &&
|
|
841
|
+
boost::unordered::detail::is_nothrow_swappable<P>::value;
|
|
1458
842
|
|
|
1459
843
|
private:
|
|
1460
844
|
functions& operator=(functions const&);
|
|
1461
845
|
|
|
1462
846
|
typedef compressed<H, P> function_pair;
|
|
1463
847
|
|
|
1464
|
-
typedef typename boost::aligned_storage<sizeof(function_pair),
|
|
1465
|
-
boost::alignment_of<function_pair>::value>::type aligned_function;
|
|
1466
|
-
|
|
1467
848
|
unsigned char current_; // 0/1 - Currently active functions
|
|
1468
849
|
// +2 - Both constructed
|
|
1469
|
-
|
|
850
|
+
opt_storage<function_pair> funcs_[2];
|
|
1470
851
|
|
|
1471
852
|
public:
|
|
1472
853
|
functions(H const& hf, P const& eq) : current_(0)
|
|
@@ -1483,8 +864,7 @@ namespace boost {
|
|
|
1483
864
|
: current_(0)
|
|
1484
865
|
{
|
|
1485
866
|
construct_functions(current_, bf.current_functions(),
|
|
1486
|
-
|
|
1487
|
-
nothrow_move_constructible>());
|
|
867
|
+
std::integral_constant<bool, nothrow_move_constructible>());
|
|
1488
868
|
}
|
|
1489
869
|
|
|
1490
870
|
~functions()
|
|
@@ -1540,16 +920,15 @@ namespace boost {
|
|
|
1540
920
|
new ((void*)&funcs_[which]) function_pair(hf, eq);
|
|
1541
921
|
}
|
|
1542
922
|
|
|
1543
|
-
void construct_functions(
|
|
1544
|
-
|
|
1545
|
-
boost::unordered::detail::false_type())
|
|
923
|
+
void construct_functions(
|
|
924
|
+
unsigned char which, function_pair const& f, std::false_type = {})
|
|
1546
925
|
{
|
|
1547
926
|
BOOST_ASSERT(!(which & 2));
|
|
1548
927
|
new ((void*)&funcs_[which]) function_pair(f);
|
|
1549
928
|
}
|
|
1550
929
|
|
|
1551
|
-
void construct_functions(
|
|
1552
|
-
|
|
930
|
+
void construct_functions(
|
|
931
|
+
unsigned char which, function_pair& f, std::true_type)
|
|
1553
932
|
{
|
|
1554
933
|
BOOST_ASSERT(!(which & 2));
|
|
1555
934
|
new ((void*)&funcs_[which])
|
|
@@ -1564,34 +943,6 @@ namespace boost {
|
|
|
1564
943
|
}
|
|
1565
944
|
};
|
|
1566
945
|
|
|
1567
|
-
////////////////////////////////////////////////////////////////////////////
|
|
1568
|
-
// rvalue parameters when type can't be a BOOST_RV_REF(T) parameter
|
|
1569
|
-
// e.g. for int
|
|
1570
|
-
|
|
1571
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
1572
|
-
#define BOOST_UNORDERED_RV_REF(T) BOOST_RV_REF(T)
|
|
1573
|
-
#else
|
|
1574
|
-
struct please_ignore_this_overload
|
|
1575
|
-
{
|
|
1576
|
-
typedef please_ignore_this_overload type;
|
|
1577
|
-
};
|
|
1578
|
-
|
|
1579
|
-
template <typename T> struct rv_ref_impl
|
|
1580
|
-
{
|
|
1581
|
-
typedef BOOST_RV_REF(T) type;
|
|
1582
|
-
};
|
|
1583
|
-
|
|
1584
|
-
template <typename T>
|
|
1585
|
-
struct rv_ref : boost::conditional<boost::is_class<T>::value,
|
|
1586
|
-
boost::unordered::detail::rv_ref_impl<T>,
|
|
1587
|
-
please_ignore_this_overload>::type
|
|
1588
|
-
{
|
|
1589
|
-
};
|
|
1590
|
-
|
|
1591
|
-
#define BOOST_UNORDERED_RV_REF(T) \
|
|
1592
|
-
typename boost::unordered::detail::rv_ref<T>::type
|
|
1593
|
-
#endif
|
|
1594
|
-
|
|
1595
946
|
#if defined(BOOST_MSVC)
|
|
1596
947
|
#pragma warning(push)
|
|
1597
948
|
#pragma warning(disable : 4127) // conditional expression is constant
|
|
@@ -1624,48 +975,48 @@ namespace boost {
|
|
|
1624
975
|
typedef std::ptrdiff_t difference_type;
|
|
1625
976
|
typedef std::forward_iterator_tag iterator_category;
|
|
1626
977
|
|
|
1627
|
-
iterator() : p(), itb(){}
|
|
978
|
+
iterator() : p(), itb() {}
|
|
1628
979
|
|
|
1629
|
-
reference operator*() const
|
|
1630
|
-
pointer operator->() const
|
|
980
|
+
reference operator*() const noexcept { return dereference(); }
|
|
981
|
+
pointer operator->() const noexcept
|
|
1631
982
|
{
|
|
1632
|
-
pointer x =
|
|
983
|
+
pointer x = std::addressof(p->value());
|
|
1633
984
|
return x;
|
|
1634
985
|
}
|
|
1635
986
|
|
|
1636
|
-
iterator& operator++()
|
|
987
|
+
iterator& operator++() noexcept
|
|
1637
988
|
{
|
|
1638
989
|
increment();
|
|
1639
990
|
return *this;
|
|
1640
991
|
}
|
|
1641
992
|
|
|
1642
|
-
iterator operator++(int)
|
|
993
|
+
iterator operator++(int) noexcept
|
|
1643
994
|
{
|
|
1644
995
|
iterator old = *this;
|
|
1645
996
|
increment();
|
|
1646
997
|
return old;
|
|
1647
998
|
}
|
|
1648
999
|
|
|
1649
|
-
bool operator==(iterator const& other) const
|
|
1000
|
+
bool operator==(iterator const& other) const noexcept
|
|
1650
1001
|
{
|
|
1651
1002
|
return equal(other);
|
|
1652
1003
|
}
|
|
1653
1004
|
|
|
1654
|
-
bool operator!=(iterator const& other) const
|
|
1005
|
+
bool operator!=(iterator const& other) const noexcept
|
|
1655
1006
|
{
|
|
1656
1007
|
return !equal(other);
|
|
1657
1008
|
}
|
|
1658
1009
|
|
|
1659
1010
|
bool operator==(
|
|
1660
1011
|
boost::unordered::detail::iterator_detail::c_iterator<Node,
|
|
1661
|
-
Bucket> const& other) const
|
|
1012
|
+
Bucket> const& other) const noexcept
|
|
1662
1013
|
{
|
|
1663
1014
|
return equal(other);
|
|
1664
1015
|
}
|
|
1665
1016
|
|
|
1666
1017
|
bool operator!=(
|
|
1667
1018
|
boost::unordered::detail::iterator_detail::c_iterator<Node,
|
|
1668
|
-
Bucket> const& other) const
|
|
1019
|
+
Bucket> const& other) const noexcept
|
|
1669
1020
|
{
|
|
1670
1021
|
return !equal(other);
|
|
1671
1022
|
}
|
|
@@ -1682,27 +1033,43 @@ namespace boost {
|
|
|
1682
1033
|
|
|
1683
1034
|
iterator(node_pointer p_, bucket_iterator itb_) : p(p_), itb(itb_) {}
|
|
1684
1035
|
|
|
1685
|
-
value_type& dereference() const
|
|
1036
|
+
value_type& dereference() const noexcept { return p->value(); }
|
|
1686
1037
|
|
|
1687
|
-
bool equal(const iterator& x) const
|
|
1688
|
-
{
|
|
1689
|
-
return (p == x.p);
|
|
1690
|
-
}
|
|
1038
|
+
bool equal(const iterator& x) const noexcept { return (p == x.p); }
|
|
1691
1039
|
|
|
1692
1040
|
bool equal(
|
|
1693
1041
|
const boost::unordered::detail::iterator_detail::c_iterator<Node,
|
|
1694
|
-
Bucket>& x) const
|
|
1042
|
+
Bucket>& x) const noexcept
|
|
1695
1043
|
{
|
|
1696
1044
|
return (p == x.p);
|
|
1697
1045
|
}
|
|
1698
1046
|
|
|
1699
|
-
void increment()
|
|
1047
|
+
void increment() noexcept
|
|
1700
1048
|
{
|
|
1701
1049
|
p = p->next;
|
|
1702
1050
|
if (!p) {
|
|
1703
1051
|
p = (++itb)->next;
|
|
1704
1052
|
}
|
|
1705
1053
|
}
|
|
1054
|
+
|
|
1055
|
+
template <typename Archive>
|
|
1056
|
+
friend void serialization_track(Archive& ar, const iterator& x)
|
|
1057
|
+
{
|
|
1058
|
+
if (x.p) {
|
|
1059
|
+
track_address(ar, x.p);
|
|
1060
|
+
serialization_track(ar, x.itb);
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
friend class boost::serialization::access;
|
|
1065
|
+
|
|
1066
|
+
template <typename Archive> void serialize(Archive& ar, unsigned int)
|
|
1067
|
+
{
|
|
1068
|
+
if (!p)
|
|
1069
|
+
itb = bucket_iterator();
|
|
1070
|
+
serialize_tracked_address(ar, p);
|
|
1071
|
+
ar& core::make_nvp("bucket_iterator", itb);
|
|
1072
|
+
}
|
|
1706
1073
|
};
|
|
1707
1074
|
|
|
1708
1075
|
template <class Node, class Bucket> class c_iterator
|
|
@@ -1715,49 +1082,49 @@ namespace boost {
|
|
|
1715
1082
|
typedef std::ptrdiff_t difference_type;
|
|
1716
1083
|
typedef std::forward_iterator_tag iterator_category;
|
|
1717
1084
|
|
|
1718
|
-
c_iterator() : p(), itb(){}
|
|
1085
|
+
c_iterator() : p(), itb() {}
|
|
1719
1086
|
c_iterator(iterator<Node, Bucket> it) : p(it.p), itb(it.itb) {}
|
|
1720
1087
|
|
|
1721
|
-
reference operator*() const
|
|
1722
|
-
pointer operator->() const
|
|
1088
|
+
reference operator*() const noexcept { return dereference(); }
|
|
1089
|
+
pointer operator->() const noexcept
|
|
1723
1090
|
{
|
|
1724
|
-
pointer x =
|
|
1091
|
+
pointer x = std::addressof(p->value());
|
|
1725
1092
|
return x;
|
|
1726
1093
|
}
|
|
1727
1094
|
|
|
1728
|
-
c_iterator& operator++()
|
|
1095
|
+
c_iterator& operator++() noexcept
|
|
1729
1096
|
{
|
|
1730
1097
|
increment();
|
|
1731
1098
|
return *this;
|
|
1732
1099
|
}
|
|
1733
1100
|
|
|
1734
|
-
c_iterator operator++(int)
|
|
1101
|
+
c_iterator operator++(int) noexcept
|
|
1735
1102
|
{
|
|
1736
1103
|
c_iterator old = *this;
|
|
1737
1104
|
increment();
|
|
1738
1105
|
return old;
|
|
1739
1106
|
}
|
|
1740
1107
|
|
|
1741
|
-
bool operator==(c_iterator const& other) const
|
|
1108
|
+
bool operator==(c_iterator const& other) const noexcept
|
|
1742
1109
|
{
|
|
1743
1110
|
return equal(other);
|
|
1744
1111
|
}
|
|
1745
1112
|
|
|
1746
|
-
bool operator!=(c_iterator const& other) const
|
|
1113
|
+
bool operator!=(c_iterator const& other) const noexcept
|
|
1747
1114
|
{
|
|
1748
1115
|
return !equal(other);
|
|
1749
1116
|
}
|
|
1750
1117
|
|
|
1751
1118
|
bool operator==(
|
|
1752
1119
|
boost::unordered::detail::iterator_detail::iterator<Node,
|
|
1753
|
-
Bucket> const& other) const
|
|
1120
|
+
Bucket> const& other) const noexcept
|
|
1754
1121
|
{
|
|
1755
1122
|
return equal(other);
|
|
1756
1123
|
}
|
|
1757
1124
|
|
|
1758
1125
|
bool operator!=(
|
|
1759
1126
|
boost::unordered::detail::iterator_detail::iterator<Node,
|
|
1760
|
-
Bucket> const& other) const
|
|
1127
|
+
Bucket> const& other) const noexcept
|
|
1761
1128
|
{
|
|
1762
1129
|
return !equal(other);
|
|
1763
1130
|
}
|
|
@@ -1776,23 +1143,36 @@ namespace boost {
|
|
|
1776
1143
|
{
|
|
1777
1144
|
}
|
|
1778
1145
|
|
|
1779
|
-
value_type const& dereference() const
|
|
1780
|
-
{
|
|
1781
|
-
return p->value();
|
|
1782
|
-
}
|
|
1146
|
+
value_type const& dereference() const noexcept { return p->value(); }
|
|
1783
1147
|
|
|
1784
|
-
bool equal(const c_iterator& x) const
|
|
1785
|
-
{
|
|
1786
|
-
return (p == x.p);
|
|
1787
|
-
}
|
|
1148
|
+
bool equal(const c_iterator& x) const noexcept { return (p == x.p); }
|
|
1788
1149
|
|
|
1789
|
-
void increment()
|
|
1150
|
+
void increment() noexcept
|
|
1790
1151
|
{
|
|
1791
1152
|
p = p->next;
|
|
1792
1153
|
if (!p) {
|
|
1793
1154
|
p = (++itb)->next;
|
|
1794
1155
|
}
|
|
1795
1156
|
}
|
|
1157
|
+
|
|
1158
|
+
template <typename Archive>
|
|
1159
|
+
friend void serialization_track(Archive& ar, const c_iterator& x)
|
|
1160
|
+
{
|
|
1161
|
+
if (x.p) {
|
|
1162
|
+
track_address(ar, x.p);
|
|
1163
|
+
serialization_track(ar, x.itb);
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
friend class boost::serialization::access;
|
|
1168
|
+
|
|
1169
|
+
template <typename Archive> void serialize(Archive& ar, unsigned int)
|
|
1170
|
+
{
|
|
1171
|
+
if (!p)
|
|
1172
|
+
itb = bucket_iterator();
|
|
1173
|
+
serialize_tracked_address(ar, p);
|
|
1174
|
+
ar& core::make_nvp("bucket_iterator", itb);
|
|
1175
|
+
}
|
|
1796
1176
|
};
|
|
1797
1177
|
} // namespace iterator_detail
|
|
1798
1178
|
|
|
@@ -1819,20 +1199,23 @@ namespace boost {
|
|
|
1819
1199
|
functions;
|
|
1820
1200
|
|
|
1821
1201
|
typedef typename Types::value_allocator value_allocator;
|
|
1822
|
-
typedef typename boost::allocator_void_pointer<value_allocator>::type
|
|
1202
|
+
typedef typename boost::allocator_void_pointer<value_allocator>::type
|
|
1203
|
+
void_pointer;
|
|
1823
1204
|
typedef node<value_type, void_pointer> node_type;
|
|
1824
1205
|
|
|
1825
1206
|
typedef boost::unordered::detail::grouped_bucket_array<
|
|
1826
1207
|
bucket<node_type, void_pointer>, value_allocator, prime_fmod_size<> >
|
|
1827
1208
|
bucket_array_type;
|
|
1828
1209
|
|
|
1829
|
-
typedef
|
|
1830
|
-
node_allocator_type;
|
|
1831
|
-
typedef typename boost::allocator_pointer<node_allocator_type>::type
|
|
1210
|
+
typedef
|
|
1211
|
+
typename bucket_array_type::node_allocator_type node_allocator_type;
|
|
1212
|
+
typedef typename boost::allocator_pointer<node_allocator_type>::type
|
|
1213
|
+
node_pointer;
|
|
1832
1214
|
|
|
1833
1215
|
typedef boost::unordered::detail::node_constructor<node_allocator_type>
|
|
1834
1216
|
node_constructor;
|
|
1835
|
-
typedef boost::unordered::detail::node_tmp<node_allocator_type>
|
|
1217
|
+
typedef boost::unordered::detail::node_tmp<node_allocator_type>
|
|
1218
|
+
node_tmp;
|
|
1836
1219
|
|
|
1837
1220
|
typedef typename bucket_array_type::bucket_type bucket_type;
|
|
1838
1221
|
|
|
@@ -1879,8 +1262,7 @@ namespace boost {
|
|
|
1879
1262
|
}
|
|
1880
1263
|
std::size_t c = 0;
|
|
1881
1264
|
std::size_t const key_hash = this->hash(k);
|
|
1882
|
-
bucket_iterator itb =
|
|
1883
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1265
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
1884
1266
|
|
|
1885
1267
|
bool found = false;
|
|
1886
1268
|
|
|
@@ -1922,10 +1304,7 @@ namespace boost {
|
|
|
1922
1304
|
return iterator(itb->next, itb);
|
|
1923
1305
|
}
|
|
1924
1306
|
|
|
1925
|
-
iterator end() const
|
|
1926
|
-
{
|
|
1927
|
-
return iterator();
|
|
1928
|
-
}
|
|
1307
|
+
iterator end() const { return iterator(); }
|
|
1929
1308
|
|
|
1930
1309
|
l_iterator begin(std::size_t bucket_index) const
|
|
1931
1310
|
{
|
|
@@ -1987,14 +1366,14 @@ namespace boost {
|
|
|
1987
1366
|
}
|
|
1988
1367
|
|
|
1989
1368
|
table(std::size_t num_buckets, hasher const& hf, key_equal const& eq,
|
|
1990
|
-
|
|
1369
|
+
value_allocator const& a)
|
|
1991
1370
|
: functions(hf, eq), size_(0), mlf_(1.0f), max_load_(0),
|
|
1992
1371
|
buckets_(num_buckets, a)
|
|
1993
1372
|
{
|
|
1994
1373
|
recalculate_max_load();
|
|
1995
1374
|
}
|
|
1996
1375
|
|
|
1997
|
-
table(table const& x,
|
|
1376
|
+
table(table const& x, value_allocator const& a)
|
|
1998
1377
|
: functions(x), size_(0), mlf_(x.mlf_), max_load_(0),
|
|
1999
1378
|
buckets_(x.size_, a)
|
|
2000
1379
|
{
|
|
@@ -2003,13 +1382,13 @@ namespace boost {
|
|
|
2003
1382
|
|
|
2004
1383
|
table(table& x, boost::unordered::detail::move_tag m)
|
|
2005
1384
|
: functions(x, m), size_(x.size_), mlf_(x.mlf_),
|
|
2006
|
-
max_load_(x.max_load_), buckets_(
|
|
1385
|
+
max_load_(x.max_load_), buckets_(std::move(x.buckets_))
|
|
2007
1386
|
{
|
|
2008
1387
|
x.size_ = 0;
|
|
2009
1388
|
x.max_load_ = 0;
|
|
2010
1389
|
}
|
|
2011
1390
|
|
|
2012
|
-
table(table& x,
|
|
1391
|
+
table(table& x, value_allocator const& a,
|
|
2013
1392
|
boost::unordered::detail::move_tag m)
|
|
2014
1393
|
: functions(x, m), size_(0), mlf_(x.mlf_), max_load_(0),
|
|
2015
1394
|
buckets_(x.bucket_count(), a)
|
|
@@ -2020,7 +1399,7 @@ namespace boost {
|
|
|
2020
1399
|
////////////////////////////////////////////////////////////////////////
|
|
2021
1400
|
// Swap and Move
|
|
2022
1401
|
|
|
2023
|
-
void swap_allocators(table& other, false_type)
|
|
1402
|
+
void swap_allocators(table& other, std::false_type)
|
|
2024
1403
|
{
|
|
2025
1404
|
boost::unordered::detail::func::ignore_unused_variable_warning(other);
|
|
2026
1405
|
|
|
@@ -2031,7 +1410,7 @@ namespace boost {
|
|
|
2031
1410
|
}
|
|
2032
1411
|
|
|
2033
1412
|
// Not nothrow swappable
|
|
2034
|
-
void swap(table& x, false_type)
|
|
1413
|
+
void swap(table& x, std::false_type)
|
|
2035
1414
|
{
|
|
2036
1415
|
if (this == &x) {
|
|
2037
1416
|
return;
|
|
@@ -2049,16 +1428,16 @@ namespace boost {
|
|
|
2049
1428
|
x.switch_functions();
|
|
2050
1429
|
|
|
2051
1430
|
buckets_.swap(x.buckets_);
|
|
2052
|
-
boost::
|
|
1431
|
+
boost::core::invoke_swap(size_, x.size_);
|
|
2053
1432
|
std::swap(mlf_, x.mlf_);
|
|
2054
1433
|
std::swap(max_load_, x.max_load_);
|
|
2055
1434
|
}
|
|
2056
1435
|
|
|
2057
1436
|
// Nothrow swappable
|
|
2058
|
-
void swap(table& x, true_type)
|
|
1437
|
+
void swap(table& x, std::true_type)
|
|
2059
1438
|
{
|
|
2060
1439
|
buckets_.swap(x.buckets_);
|
|
2061
|
-
boost::
|
|
1440
|
+
boost::core::invoke_swap(size_, x.size_);
|
|
2062
1441
|
std::swap(mlf_, x.mlf_);
|
|
2063
1442
|
std::swap(max_load_, x.max_load_);
|
|
2064
1443
|
this->current_functions().swap(x.current_functions());
|
|
@@ -2072,8 +1451,7 @@ namespace boost {
|
|
|
2072
1451
|
BOOST_ASSERT(boost::allocator_propagate_on_container_swap<
|
|
2073
1452
|
node_allocator_type>::type::value ||
|
|
2074
1453
|
node_alloc() == x.node_alloc());
|
|
2075
|
-
swap(x,
|
|
2076
|
-
functions::nothrow_swappable>());
|
|
1454
|
+
swap(x, std::integral_constant<bool, functions::nothrow_swappable>());
|
|
2077
1455
|
}
|
|
2078
1456
|
|
|
2079
1457
|
// Only call with nodes allocated with the currect allocator, or
|
|
@@ -2081,7 +1459,7 @@ namespace boost {
|
|
|
2081
1459
|
// allocators might have already been moved).
|
|
2082
1460
|
void move_buckets_from(table& other)
|
|
2083
1461
|
{
|
|
2084
|
-
buckets_ =
|
|
1462
|
+
buckets_ = std::move(other.buckets_);
|
|
2085
1463
|
|
|
2086
1464
|
size_ = other.size_;
|
|
2087
1465
|
max_load_ = other.max_load_;
|
|
@@ -2102,20 +1480,18 @@ namespace boost {
|
|
|
2102
1480
|
return;
|
|
2103
1481
|
}
|
|
2104
1482
|
|
|
2105
|
-
BOOST_ASSERT(
|
|
2106
|
-
buckets_.bucket_count() == src.buckets_.bucket_count());
|
|
1483
|
+
BOOST_ASSERT(buckets_.bucket_count() == src.buckets_.bucket_count());
|
|
2107
1484
|
|
|
2108
1485
|
this->reserve(src.size_);
|
|
2109
1486
|
for (iterator pos = src.begin(); pos != src.end(); ++pos) {
|
|
2110
1487
|
node_tmp b(detail::func::construct_node(
|
|
2111
|
-
this->node_alloc(),
|
|
1488
|
+
this->node_alloc(), std::move(pos.p->value())),
|
|
2112
1489
|
this->node_alloc());
|
|
2113
1490
|
|
|
2114
1491
|
const_key_type& k = this->get_key(b.node_);
|
|
2115
1492
|
std::size_t key_hash = this->hash(k);
|
|
2116
1493
|
|
|
2117
|
-
bucket_iterator itb =
|
|
2118
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1494
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2119
1495
|
buckets_.insert_node(itb, b.release());
|
|
2120
1496
|
++size_;
|
|
2121
1497
|
}
|
|
@@ -2132,6 +1508,7 @@ namespace boost {
|
|
|
2132
1508
|
|
|
2133
1509
|
value_allocator val_alloc(alloc);
|
|
2134
1510
|
boost::allocator_destroy(val_alloc, p->value_ptr());
|
|
1511
|
+
boost::unordered::detail::func::destroy(boost::to_address(p));
|
|
2135
1512
|
boost::allocator_deallocate(alloc, p, 1);
|
|
2136
1513
|
}
|
|
2137
1514
|
|
|
@@ -2161,17 +1538,17 @@ namespace boost {
|
|
|
2161
1538
|
template <typename UniqueType>
|
|
2162
1539
|
void assign(table const& x, UniqueType is_unique)
|
|
2163
1540
|
{
|
|
2164
|
-
typedef
|
|
1541
|
+
typedef
|
|
1542
|
+
typename boost::allocator_propagate_on_container_copy_assignment<
|
|
1543
|
+
node_allocator_type>::type pocca;
|
|
2165
1544
|
|
|
2166
1545
|
if (this != &x) {
|
|
2167
|
-
assign(x, is_unique,
|
|
2168
|
-
boost::unordered::detail::integral_constant<bool,
|
|
2169
|
-
pocca::value>());
|
|
1546
|
+
assign(x, is_unique, std::integral_constant<bool, pocca::value>());
|
|
2170
1547
|
}
|
|
2171
1548
|
}
|
|
2172
1549
|
|
|
2173
1550
|
template <typename UniqueType>
|
|
2174
|
-
void assign(table const
|
|
1551
|
+
void assign(table const& x, UniqueType is_unique, std::false_type)
|
|
2175
1552
|
{
|
|
2176
1553
|
// Strong exception safety.
|
|
2177
1554
|
this->construct_spare_functions(x.current_functions());
|
|
@@ -2194,15 +1571,12 @@ namespace boost {
|
|
|
2194
1571
|
}
|
|
2195
1572
|
|
|
2196
1573
|
template <typename UniqueType>
|
|
2197
|
-
void assign(table const
|
|
1574
|
+
void assign(table const& x, UniqueType is_unique, std::true_type)
|
|
2198
1575
|
{
|
|
2199
|
-
if (node_alloc() == x.node_alloc())
|
|
2200
|
-
{
|
|
1576
|
+
if (node_alloc() == x.node_alloc()) {
|
|
2201
1577
|
buckets_.reset_allocator(x.node_alloc());
|
|
2202
|
-
assign(x, is_unique, false_type());
|
|
2203
|
-
}
|
|
2204
|
-
else
|
|
2205
|
-
{
|
|
1578
|
+
assign(x, is_unique, std::false_type());
|
|
1579
|
+
} else {
|
|
2206
1580
|
bucket_array_type new_buckets(x.size_, x.node_alloc());
|
|
2207
1581
|
this->construct_spare_functions(x.current_functions());
|
|
2208
1582
|
this->switch_functions();
|
|
@@ -2211,15 +1585,14 @@ namespace boost {
|
|
|
2211
1585
|
// the new ones.
|
|
2212
1586
|
delete_buckets();
|
|
2213
1587
|
buckets_.reset_allocator(x.node_alloc());
|
|
2214
|
-
buckets_ =
|
|
1588
|
+
buckets_ = std::move(new_buckets);
|
|
2215
1589
|
|
|
2216
1590
|
// Copy over other data, all no throw.
|
|
2217
1591
|
mlf_ = x.mlf_;
|
|
2218
1592
|
reserve(x.size_);
|
|
2219
1593
|
|
|
2220
1594
|
// Finally copy the elements.
|
|
2221
|
-
if (x.size_)
|
|
2222
|
-
{
|
|
1595
|
+
if (x.size_) {
|
|
2223
1596
|
copy_buckets(x, is_unique);
|
|
2224
1597
|
}
|
|
2225
1598
|
}
|
|
@@ -2230,7 +1603,7 @@ namespace boost {
|
|
|
2230
1603
|
{
|
|
2231
1604
|
if (this != &x) {
|
|
2232
1605
|
move_assign(x, is_unique,
|
|
2233
|
-
|
|
1606
|
+
std::integral_constant<bool,
|
|
2234
1607
|
boost::allocator_propagate_on_container_move_assignment<
|
|
2235
1608
|
node_allocator_type>::type::value>());
|
|
2236
1609
|
}
|
|
@@ -2238,7 +1611,7 @@ namespace boost {
|
|
|
2238
1611
|
|
|
2239
1612
|
// Propagate allocator
|
|
2240
1613
|
template <typename UniqueType>
|
|
2241
|
-
void move_assign(table& x, UniqueType, true_type)
|
|
1614
|
+
void move_assign(table& x, UniqueType, std::true_type)
|
|
2242
1615
|
{
|
|
2243
1616
|
if (!functions::nothrow_move_assignable) {
|
|
2244
1617
|
this->construct_spare_functions(x.current_functions());
|
|
@@ -2255,7 +1628,7 @@ namespace boost {
|
|
|
2255
1628
|
|
|
2256
1629
|
// Don't propagate allocator
|
|
2257
1630
|
template <typename UniqueType>
|
|
2258
|
-
void move_assign(table& x, UniqueType is_unique, false_type)
|
|
1631
|
+
void move_assign(table& x, UniqueType is_unique, std::false_type)
|
|
2259
1632
|
{
|
|
2260
1633
|
if (node_alloc() == x.node_alloc()) {
|
|
2261
1634
|
move_assign_equal_alloc(x);
|
|
@@ -2307,8 +1680,7 @@ namespace boost {
|
|
|
2307
1680
|
return extractor::extract(n->value());
|
|
2308
1681
|
}
|
|
2309
1682
|
|
|
2310
|
-
template <class Key>
|
|
2311
|
-
std::size_t hash(Key const& k) const
|
|
1683
|
+
template <class Key> std::size_t hash(Key const& k) const
|
|
2312
1684
|
{
|
|
2313
1685
|
return this->hash_function()(k);
|
|
2314
1686
|
}
|
|
@@ -2316,8 +1688,7 @@ namespace boost {
|
|
|
2316
1688
|
// Find Node
|
|
2317
1689
|
|
|
2318
1690
|
template <class Key>
|
|
2319
|
-
node_pointer find_node_impl(
|
|
2320
|
-
Key const& x, bucket_iterator itb) const
|
|
1691
|
+
node_pointer find_node_impl(Key const& x, bucket_iterator itb) const
|
|
2321
1692
|
{
|
|
2322
1693
|
node_pointer p = node_pointer();
|
|
2323
1694
|
if (itb != buckets_.end()) {
|
|
@@ -2335,12 +1706,10 @@ namespace boost {
|
|
|
2335
1706
|
template <class Key> node_pointer find_node(Key const& k) const
|
|
2336
1707
|
{
|
|
2337
1708
|
std::size_t const key_hash = this->hash(k);
|
|
2338
|
-
return find_node_impl(
|
|
2339
|
-
k, buckets_.at(buckets_.position(key_hash)));
|
|
1709
|
+
return find_node_impl(k, buckets_.at(buckets_.position(key_hash)));
|
|
2340
1710
|
}
|
|
2341
1711
|
|
|
2342
|
-
node_pointer find_node(
|
|
2343
|
-
const_key_type& k, bucket_iterator itb) const
|
|
1712
|
+
node_pointer find_node(const_key_type& k, bucket_iterator itb) const
|
|
2344
1713
|
{
|
|
2345
1714
|
return find_node_impl(k, itb);
|
|
2346
1715
|
}
|
|
@@ -2373,8 +1742,8 @@ namespace boost {
|
|
|
2373
1742
|
{
|
|
2374
1743
|
if (size_ > 0) {
|
|
2375
1744
|
key_equal pred = this->key_eq();
|
|
2376
|
-
for (node_pointer* pp =
|
|
2377
|
-
|
|
1745
|
+
for (node_pointer* pp = std::addressof(itb->next); *pp;
|
|
1746
|
+
pp = std::addressof((*pp)->next)) {
|
|
2378
1747
|
if (pred(key, extractor::extract((*pp)->value()))) {
|
|
2379
1748
|
return pp;
|
|
2380
1749
|
}
|
|
@@ -2452,31 +1821,29 @@ namespace boost {
|
|
|
2452
1821
|
|
|
2453
1822
|
// Emplace/Insert
|
|
2454
1823
|
|
|
2455
|
-
template <
|
|
1824
|
+
template <typename... Args>
|
|
2456
1825
|
iterator emplace_hint_unique(
|
|
2457
|
-
c_iterator hint, const_key_type& k,
|
|
1826
|
+
c_iterator hint, const_key_type& k, Args&&... args)
|
|
2458
1827
|
{
|
|
2459
1828
|
if (hint.p && this->key_eq()(k, this->get_key(hint.p))) {
|
|
2460
1829
|
return iterator(hint.p, hint.itb);
|
|
2461
1830
|
} else {
|
|
2462
|
-
return emplace_unique(k,
|
|
1831
|
+
return emplace_unique(k, std::forward<Args>(args)...).first;
|
|
2463
1832
|
}
|
|
2464
1833
|
}
|
|
2465
1834
|
|
|
2466
|
-
template <
|
|
2467
|
-
emplace_return emplace_unique(
|
|
2468
|
-
const_key_type& k, BOOST_UNORDERED_EMPLACE_ARGS)
|
|
1835
|
+
template <typename... Args>
|
|
1836
|
+
emplace_return emplace_unique(const_key_type& k, Args&&... args)
|
|
2469
1837
|
{
|
|
2470
1838
|
std::size_t key_hash = this->hash(k);
|
|
2471
|
-
bucket_iterator itb =
|
|
2472
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1839
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2473
1840
|
node_pointer pos = this->find_node_impl(k, itb);
|
|
2474
1841
|
|
|
2475
1842
|
if (pos) {
|
|
2476
1843
|
return emplace_return(iterator(pos, itb), false);
|
|
2477
1844
|
} else {
|
|
2478
1845
|
node_tmp b(boost::unordered::detail::func::construct_node_from_args(
|
|
2479
|
-
this->node_alloc(),
|
|
1846
|
+
this->node_alloc(), std::forward<Args>(args)...),
|
|
2480
1847
|
this->node_alloc());
|
|
2481
1848
|
|
|
2482
1849
|
if (size_ + 1 > max_load_) {
|
|
@@ -2492,12 +1859,11 @@ namespace boost {
|
|
|
2492
1859
|
}
|
|
2493
1860
|
}
|
|
2494
1861
|
|
|
2495
|
-
template <
|
|
2496
|
-
iterator emplace_hint_unique(
|
|
2497
|
-
c_iterator hint, no_key, BOOST_UNORDERED_EMPLACE_ARGS)
|
|
1862
|
+
template <typename... Args>
|
|
1863
|
+
iterator emplace_hint_unique(c_iterator hint, no_key, Args&&... args)
|
|
2498
1864
|
{
|
|
2499
1865
|
node_tmp b(boost::unordered::detail::func::construct_node_from_args(
|
|
2500
|
-
this->node_alloc(),
|
|
1866
|
+
this->node_alloc(), std::forward<Args>(args)...),
|
|
2501
1867
|
this->node_alloc());
|
|
2502
1868
|
|
|
2503
1869
|
const_key_type& k = this->get_key(b.node_);
|
|
@@ -2506,8 +1872,7 @@ namespace boost {
|
|
|
2506
1872
|
}
|
|
2507
1873
|
|
|
2508
1874
|
std::size_t const key_hash = this->hash(k);
|
|
2509
|
-
bucket_iterator itb =
|
|
2510
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1875
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2511
1876
|
|
|
2512
1877
|
node_pointer p = this->find_node_impl(k, itb);
|
|
2513
1878
|
if (p) {
|
|
@@ -2525,18 +1890,17 @@ namespace boost {
|
|
|
2525
1890
|
return iterator(p, itb);
|
|
2526
1891
|
}
|
|
2527
1892
|
|
|
2528
|
-
template <
|
|
2529
|
-
emplace_return emplace_unique(no_key,
|
|
1893
|
+
template <typename... Args>
|
|
1894
|
+
emplace_return emplace_unique(no_key, Args&&... args)
|
|
2530
1895
|
{
|
|
2531
1896
|
node_tmp b(boost::unordered::detail::func::construct_node_from_args(
|
|
2532
|
-
this->node_alloc(),
|
|
1897
|
+
this->node_alloc(), std::forward<Args>(args)...),
|
|
2533
1898
|
this->node_alloc());
|
|
2534
1899
|
|
|
2535
1900
|
const_key_type& k = this->get_key(b.node_);
|
|
2536
1901
|
std::size_t key_hash = this->hash(k);
|
|
2537
1902
|
|
|
2538
|
-
bucket_iterator itb =
|
|
2539
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1903
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2540
1904
|
node_pointer pos = this->find_node_impl(k, itb);
|
|
2541
1905
|
|
|
2542
1906
|
if (pos) {
|
|
@@ -2555,12 +1919,20 @@ namespace boost {
|
|
|
2555
1919
|
}
|
|
2556
1920
|
}
|
|
2557
1921
|
|
|
2558
|
-
template <typename
|
|
2559
|
-
emplace_return
|
|
1922
|
+
template <typename K, typename V>
|
|
1923
|
+
emplace_return emplace_unique(converting_key, K&& k, V&& v)
|
|
1924
|
+
{
|
|
1925
|
+
using alloc_cted = allocator_constructed<node_allocator_type,
|
|
1926
|
+
typename Types::key_type>;
|
|
1927
|
+
alloc_cted key(this->node_alloc(), std::forward<K>(k));
|
|
1928
|
+
return emplace_unique(
|
|
1929
|
+
key.value(), std::move(key.value()), std::forward<V>(v));
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
template <typename Key> emplace_return try_emplace_unique(Key&& k)
|
|
2560
1933
|
{
|
|
2561
1934
|
std::size_t key_hash = this->hash(k);
|
|
2562
|
-
bucket_iterator itb =
|
|
2563
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1935
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2564
1936
|
|
|
2565
1937
|
node_pointer pos = this->find_node_impl(k, itb);
|
|
2566
1938
|
|
|
@@ -2572,7 +1944,7 @@ namespace boost {
|
|
|
2572
1944
|
value_type* dispatch = BOOST_NULLPTR;
|
|
2573
1945
|
|
|
2574
1946
|
node_tmp tmp(detail::func::construct_node_from_key(
|
|
2575
|
-
dispatch, alloc,
|
|
1947
|
+
dispatch, alloc, std::forward<Key>(k)),
|
|
2576
1948
|
alloc);
|
|
2577
1949
|
|
|
2578
1950
|
if (size_ + 1 > max_load_) {
|
|
@@ -2589,7 +1961,7 @@ namespace boost {
|
|
|
2589
1961
|
}
|
|
2590
1962
|
|
|
2591
1963
|
template <typename Key>
|
|
2592
|
-
iterator try_emplace_hint_unique(c_iterator hint,
|
|
1964
|
+
iterator try_emplace_hint_unique(c_iterator hint, Key&& k)
|
|
2593
1965
|
{
|
|
2594
1966
|
if (hint.p && this->key_eq()(extractor::extract(*hint), k)) {
|
|
2595
1967
|
return iterator(hint.p, hint.itb);
|
|
@@ -2598,13 +1970,11 @@ namespace boost {
|
|
|
2598
1970
|
}
|
|
2599
1971
|
}
|
|
2600
1972
|
|
|
2601
|
-
template <typename Key,
|
|
2602
|
-
emplace_return try_emplace_unique(
|
|
2603
|
-
BOOST_FWD_REF(Key) k, BOOST_UNORDERED_EMPLACE_ARGS)
|
|
1973
|
+
template <typename Key, typename... Args>
|
|
1974
|
+
emplace_return try_emplace_unique(Key&& k, Args&&... args)
|
|
2604
1975
|
{
|
|
2605
1976
|
std::size_t key_hash = this->hash(k);
|
|
2606
|
-
bucket_iterator itb =
|
|
2607
|
-
buckets_.at(buckets_.position(key_hash));
|
|
1977
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2608
1978
|
|
|
2609
1979
|
node_pointer pos = this->find_node_impl(k, itb);
|
|
2610
1980
|
|
|
@@ -2614,7 +1984,7 @@ namespace boost {
|
|
|
2614
1984
|
|
|
2615
1985
|
node_tmp b(
|
|
2616
1986
|
boost::unordered::detail::func::construct_node_pair_from_args(
|
|
2617
|
-
this->node_alloc(), k,
|
|
1987
|
+
this->node_alloc(), k, std::forward<Args>(args)...),
|
|
2618
1988
|
this->node_alloc());
|
|
2619
1989
|
|
|
2620
1990
|
if (size_ + 1 > max_load_) {
|
|
@@ -2629,34 +1999,32 @@ namespace boost {
|
|
|
2629
1999
|
return emplace_return(iterator(pos, itb), true);
|
|
2630
2000
|
}
|
|
2631
2001
|
|
|
2632
|
-
template <typename Key,
|
|
2002
|
+
template <typename Key, typename... Args>
|
|
2633
2003
|
iterator try_emplace_hint_unique(
|
|
2634
|
-
c_iterator hint,
|
|
2004
|
+
c_iterator hint, Key&& k, Args&&... args)
|
|
2635
2005
|
{
|
|
2636
2006
|
if (hint.p && this->key_eq()(hint->first, k)) {
|
|
2637
2007
|
return iterator(hint.p, hint.itb);
|
|
2638
2008
|
} else {
|
|
2639
|
-
return try_emplace_unique(k,
|
|
2009
|
+
return try_emplace_unique(k, std::forward<Args>(args)...).first;
|
|
2640
2010
|
}
|
|
2641
2011
|
}
|
|
2642
2012
|
|
|
2643
2013
|
template <typename Key, typename M>
|
|
2644
|
-
emplace_return insert_or_assign_unique(
|
|
2645
|
-
BOOST_FWD_REF(Key) k, BOOST_FWD_REF(M) obj)
|
|
2014
|
+
emplace_return insert_or_assign_unique(Key&& k, M&& obj)
|
|
2646
2015
|
{
|
|
2647
2016
|
std::size_t key_hash = this->hash(k);
|
|
2648
|
-
bucket_iterator itb =
|
|
2649
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2017
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2650
2018
|
|
|
2651
2019
|
node_pointer p = this->find_node_impl(k, itb);
|
|
2652
2020
|
if (p) {
|
|
2653
|
-
p->value().second =
|
|
2021
|
+
p->value().second = std::forward<M>(obj);
|
|
2654
2022
|
return emplace_return(iterator(p, itb), false);
|
|
2655
2023
|
}
|
|
2656
2024
|
|
|
2657
|
-
node_tmp b(
|
|
2658
|
-
|
|
2659
|
-
|
|
2025
|
+
node_tmp b(
|
|
2026
|
+
boost::unordered::detail::func::construct_node_pair(
|
|
2027
|
+
this->node_alloc(), std::forward<Key>(k), std::forward<M>(obj)),
|
|
2660
2028
|
node_alloc());
|
|
2661
2029
|
|
|
2662
2030
|
if (size_ + 1 > max_load_) {
|
|
@@ -2683,13 +2051,12 @@ namespace boost {
|
|
|
2683
2051
|
|
|
2684
2052
|
const_key_type& k = this->get_key(np.ptr_);
|
|
2685
2053
|
std::size_t const key_hash = this->hash(k);
|
|
2686
|
-
bucket_iterator itb =
|
|
2687
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2054
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2688
2055
|
node_pointer p = this->find_node_impl(k, itb);
|
|
2689
2056
|
|
|
2690
2057
|
if (p) {
|
|
2691
2058
|
iterator pos(p, itb);
|
|
2692
|
-
result.node =
|
|
2059
|
+
result.node = std::move(np);
|
|
2693
2060
|
result.position = pos;
|
|
2694
2061
|
result.inserted = false;
|
|
2695
2062
|
return;
|
|
@@ -2722,8 +2089,7 @@ namespace boost {
|
|
|
2722
2089
|
}
|
|
2723
2090
|
|
|
2724
2091
|
std::size_t const key_hash = this->hash(k);
|
|
2725
|
-
bucket_iterator itb =
|
|
2726
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2092
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2727
2093
|
node_pointer p = this->find_node_impl(k, itb);
|
|
2728
2094
|
if (p) {
|
|
2729
2095
|
return iterator(p, itb);
|
|
@@ -2746,8 +2112,8 @@ namespace boost {
|
|
|
2746
2112
|
void merge_unique(boost::unordered::detail::table<Types2>& other)
|
|
2747
2113
|
{
|
|
2748
2114
|
typedef boost::unordered::detail::table<Types2> other_table;
|
|
2749
|
-
|
|
2750
|
-
typename other_table::node_type>::value));
|
|
2115
|
+
BOOST_UNORDERED_STATIC_ASSERT(
|
|
2116
|
+
(std::is_same<node_type, typename other_table::node_type>::value));
|
|
2751
2117
|
BOOST_ASSERT(this->node_alloc() == other.node_alloc());
|
|
2752
2118
|
|
|
2753
2119
|
if (other.size_ == 0) {
|
|
@@ -2761,8 +2127,7 @@ namespace boost {
|
|
|
2761
2127
|
const_key_type& key = other.get_key(pos.p);
|
|
2762
2128
|
std::size_t const key_hash = this->hash(key);
|
|
2763
2129
|
|
|
2764
|
-
bucket_iterator itb =
|
|
2765
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2130
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2766
2131
|
|
|
2767
2132
|
if (this->find_node_impl(key, itb)) {
|
|
2768
2133
|
++pos;
|
|
@@ -2847,14 +2212,15 @@ namespace boost {
|
|
|
2847
2212
|
return 1;
|
|
2848
2213
|
}
|
|
2849
2214
|
|
|
2850
|
-
iterator erase_node(c_iterator pos)
|
|
2215
|
+
iterator erase_node(c_iterator pos)
|
|
2216
|
+
{
|
|
2851
2217
|
c_iterator next = pos;
|
|
2852
2218
|
++next;
|
|
2853
|
-
|
|
2219
|
+
|
|
2854
2220
|
bucket_iterator itb = pos.itb;
|
|
2855
|
-
node_pointer* pp =
|
|
2221
|
+
node_pointer* pp = std::addressof(itb->next);
|
|
2856
2222
|
while (*pp != pos.p) {
|
|
2857
|
-
pp =
|
|
2223
|
+
pp = std::addressof((*pp)->next);
|
|
2858
2224
|
}
|
|
2859
2225
|
|
|
2860
2226
|
buckets_.extract_node_after(itb, pp);
|
|
@@ -2875,9 +2241,9 @@ namespace boost {
|
|
|
2875
2241
|
// each bucket group so we have to retrieve it manually by iterating
|
|
2876
2242
|
//
|
|
2877
2243
|
bucket_iterator itb = first.itb;
|
|
2878
|
-
node_pointer* pp =
|
|
2244
|
+
node_pointer* pp = std::addressof(itb->next);
|
|
2879
2245
|
while (*pp != first.p) {
|
|
2880
|
-
pp =
|
|
2246
|
+
pp = std::addressof((*pp)->next);
|
|
2881
2247
|
}
|
|
2882
2248
|
|
|
2883
2249
|
while (*pp != last.p) {
|
|
@@ -2887,7 +2253,6 @@ namespace boost {
|
|
|
2887
2253
|
this->delete_node(p);
|
|
2888
2254
|
--size_;
|
|
2889
2255
|
|
|
2890
|
-
|
|
2891
2256
|
bool const at_end = !(*pp);
|
|
2892
2257
|
bool const is_empty_bucket = !itb->next;
|
|
2893
2258
|
|
|
@@ -2897,7 +2262,7 @@ namespace boost {
|
|
|
2897
2262
|
} else {
|
|
2898
2263
|
++itb;
|
|
2899
2264
|
}
|
|
2900
|
-
pp =
|
|
2265
|
+
pp = std::addressof(itb->next);
|
|
2901
2266
|
}
|
|
2902
2267
|
}
|
|
2903
2268
|
|
|
@@ -2907,7 +2272,7 @@ namespace boost {
|
|
|
2907
2272
|
////////////////////////////////////////////////////////////////////////
|
|
2908
2273
|
// fill_buckets_unique
|
|
2909
2274
|
|
|
2910
|
-
void copy_buckets(table const& src, true_type)
|
|
2275
|
+
void copy_buckets(table const& src, std::true_type)
|
|
2911
2276
|
{
|
|
2912
2277
|
BOOST_ASSERT(size_ == 0);
|
|
2913
2278
|
|
|
@@ -2928,7 +2293,7 @@ namespace boost {
|
|
|
2928
2293
|
}
|
|
2929
2294
|
}
|
|
2930
2295
|
|
|
2931
|
-
void move_assign_buckets(table& src, true_type)
|
|
2296
|
+
void move_assign_buckets(table& src, std::true_type)
|
|
2932
2297
|
{
|
|
2933
2298
|
BOOST_ASSERT(size_ == 0);
|
|
2934
2299
|
BOOST_ASSERT(max_load_ >= src.size_);
|
|
@@ -2937,14 +2302,14 @@ namespace boost {
|
|
|
2937
2302
|
node_allocator_type alloc = this->node_alloc();
|
|
2938
2303
|
|
|
2939
2304
|
for (iterator pos = src.begin(); pos != last; ++pos) {
|
|
2940
|
-
value_type value =
|
|
2305
|
+
value_type value = std::move(*pos);
|
|
2941
2306
|
const_key_type& key = extractor::extract(value);
|
|
2942
2307
|
std::size_t const key_hash = this->hash(key);
|
|
2943
2308
|
|
|
2944
2309
|
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
2945
2310
|
|
|
2946
2311
|
node_tmp tmp(
|
|
2947
|
-
detail::func::construct_node(alloc,
|
|
2312
|
+
detail::func::construct_node(alloc, std::move(value)), alloc);
|
|
2948
2313
|
|
|
2949
2314
|
buckets_.insert_node(itb, tmp.release());
|
|
2950
2315
|
++size_;
|
|
@@ -2982,8 +2347,8 @@ namespace boost {
|
|
|
2982
2347
|
return true;
|
|
2983
2348
|
}
|
|
2984
2349
|
|
|
2985
|
-
static bool group_equals_equiv(
|
|
2986
|
-
iterator n2, iterator end2)
|
|
2350
|
+
static bool group_equals_equiv(
|
|
2351
|
+
iterator n1, iterator end1, iterator n2, iterator end2)
|
|
2987
2352
|
{
|
|
2988
2353
|
for (;;) {
|
|
2989
2354
|
if (*n1 != *n2)
|
|
@@ -3031,8 +2396,7 @@ namespace boost {
|
|
|
3031
2396
|
return true;
|
|
3032
2397
|
}
|
|
3033
2398
|
|
|
3034
|
-
static bool find_equiv(
|
|
3035
|
-
iterator n, iterator last, value_type const& v)
|
|
2399
|
+
static bool find_equiv(iterator n, iterator last, value_type const& v)
|
|
3036
2400
|
{
|
|
3037
2401
|
for (; n != last; ++n)
|
|
3038
2402
|
if (*n == v)
|
|
@@ -3057,8 +2421,7 @@ namespace boost {
|
|
|
3057
2421
|
node_tmp a(n, this->node_alloc());
|
|
3058
2422
|
const_key_type& k = this->get_key(a.node_);
|
|
3059
2423
|
std::size_t key_hash = this->hash(k);
|
|
3060
|
-
bucket_iterator itb =
|
|
3061
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2424
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
3062
2425
|
node_pointer hint = this->find_node_impl(k, itb);
|
|
3063
2426
|
|
|
3064
2427
|
if (size_ + 1 > max_load_) {
|
|
@@ -3126,8 +2489,7 @@ namespace boost {
|
|
|
3126
2489
|
const_key_type& k = this->get_key(np.ptr_);
|
|
3127
2490
|
std::size_t key_hash = this->hash(k);
|
|
3128
2491
|
|
|
3129
|
-
bucket_iterator itb =
|
|
3130
|
-
buckets_.at(buckets_.position(key_hash));
|
|
2492
|
+
bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
|
|
3131
2493
|
|
|
3132
2494
|
node_pointer hint = this->find_node_impl(k, itb);
|
|
3133
2495
|
buckets_.insert_node_hint(itb, np.ptr_, hint);
|
|
@@ -3256,7 +2618,7 @@ namespace boost {
|
|
|
3256
2618
|
////////////////////////////////////////////////////////////////////////
|
|
3257
2619
|
// fill_buckets
|
|
3258
2620
|
|
|
3259
|
-
void copy_buckets(table const& src, false_type)
|
|
2621
|
+
void copy_buckets(table const& src, std::false_type)
|
|
3260
2622
|
{
|
|
3261
2623
|
BOOST_ASSERT(size_ == 0);
|
|
3262
2624
|
|
|
@@ -3277,7 +2639,7 @@ namespace boost {
|
|
|
3277
2639
|
}
|
|
3278
2640
|
}
|
|
3279
2641
|
|
|
3280
|
-
void move_assign_buckets(table& src, false_type)
|
|
2642
|
+
void move_assign_buckets(table& src, std::false_type)
|
|
3281
2643
|
{
|
|
3282
2644
|
BOOST_ASSERT(size_ == 0);
|
|
3283
2645
|
BOOST_ASSERT(max_load_ >= src.size_);
|
|
@@ -3286,7 +2648,7 @@ namespace boost {
|
|
|
3286
2648
|
node_allocator_type alloc = this->node_alloc();
|
|
3287
2649
|
|
|
3288
2650
|
for (iterator pos = src.begin(); pos != last; ++pos) {
|
|
3289
|
-
value_type value =
|
|
2651
|
+
value_type value = std::move(*pos);
|
|
3290
2652
|
const_key_type& key = extractor::extract(value);
|
|
3291
2653
|
std::size_t const key_hash = this->hash(key);
|
|
3292
2654
|
|
|
@@ -3294,7 +2656,7 @@ namespace boost {
|
|
|
3294
2656
|
|
|
3295
2657
|
node_pointer hint = this->find_node_impl(key, itb);
|
|
3296
2658
|
node_tmp tmp(
|
|
3297
|
-
detail::func::construct_node(alloc,
|
|
2659
|
+
detail::func::construct_node(alloc, std::move(value)), alloc);
|
|
3298
2660
|
|
|
3299
2661
|
buckets_.insert_node_hint(itb, tmp.release(), hint);
|
|
3300
2662
|
++size_;
|
|
@@ -3311,7 +2673,7 @@ namespace boost {
|
|
|
3311
2673
|
for (; itb != last;) {
|
|
3312
2674
|
bucket_iterator next_itb = itb;
|
|
3313
2675
|
++next_itb;
|
|
3314
|
-
node_pointer* pp =
|
|
2676
|
+
node_pointer* pp = std::addressof(itb->next);
|
|
3315
2677
|
while (*pp) {
|
|
3316
2678
|
node_pointer p = *pp;
|
|
3317
2679
|
buckets_.extract_node_after(itb, pp);
|
|
@@ -3360,7 +2722,7 @@ namespace boost {
|
|
|
3360
2722
|
inline void table<Types>::rehash_impl(std::size_t num_buckets)
|
|
3361
2723
|
{
|
|
3362
2724
|
bucket_array_type new_buckets(
|
|
3363
|
-
num_buckets, buckets_.
|
|
2725
|
+
num_buckets, buckets_.get_allocator());
|
|
3364
2726
|
|
|
3365
2727
|
BOOST_TRY
|
|
3366
2728
|
{
|
|
@@ -3397,7 +2759,7 @@ namespace boost {
|
|
|
3397
2759
|
}
|
|
3398
2760
|
BOOST_CATCH_END
|
|
3399
2761
|
|
|
3400
|
-
buckets_ =
|
|
2762
|
+
buckets_ = std::move(new_buckets);
|
|
3401
2763
|
recalculate_max_load();
|
|
3402
2764
|
}
|
|
3403
2765
|
|
|
@@ -3428,8 +2790,7 @@ namespace boost {
|
|
|
3428
2790
|
sizeof(choice2::type)
|
|
3429
2791
|
};
|
|
3430
2792
|
|
|
3431
|
-
typedef
|
|
3432
|
-
typename boost::conditional<value, Key const&, no_key>::type type;
|
|
2793
|
+
typedef typename std::conditional<value, Key const&, no_key>::type type;
|
|
3433
2794
|
};
|
|
3434
2795
|
|
|
3435
2796
|
template <class ValueType> struct set_extractor
|
|
@@ -3439,10 +2800,7 @@ namespace boost {
|
|
|
3439
2800
|
|
|
3440
2801
|
static key_type const& extract(value_type const& v) { return v; }
|
|
3441
2802
|
|
|
3442
|
-
static key_type const& extract(
|
|
3443
|
-
{
|
|
3444
|
-
return v;
|
|
3445
|
-
}
|
|
2803
|
+
static key_type const& extract(value_type&& v) { return v; }
|
|
3446
2804
|
|
|
3447
2805
|
static no_key extract() { return no_key(); }
|
|
3448
2806
|
|
|
@@ -3451,25 +2809,17 @@ namespace boost {
|
|
|
3451
2809
|
return no_key();
|
|
3452
2810
|
}
|
|
3453
2811
|
|
|
3454
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
3455
2812
|
template <class Arg1, class Arg2, class... Args>
|
|
3456
2813
|
static no_key extract(Arg1 const&, Arg2 const&, Args const&...)
|
|
3457
2814
|
{
|
|
3458
2815
|
return no_key();
|
|
3459
2816
|
}
|
|
3460
|
-
#else
|
|
3461
|
-
template <class Arg1, class Arg2>
|
|
3462
|
-
static no_key extract(Arg1 const&, Arg2 const&)
|
|
3463
|
-
{
|
|
3464
|
-
return no_key();
|
|
3465
|
-
}
|
|
3466
|
-
#endif
|
|
3467
2817
|
};
|
|
3468
2818
|
|
|
3469
2819
|
template <class ValueType> struct map_extractor
|
|
3470
2820
|
{
|
|
3471
2821
|
typedef ValueType value_type;
|
|
3472
|
-
typedef typename
|
|
2822
|
+
typedef typename std::remove_const<typename boost::unordered::detail::
|
|
3473
2823
|
pair_traits<ValueType>::first_type>::type key_type;
|
|
3474
2824
|
|
|
3475
2825
|
static key_type const& extract(value_type const& v) { return v.first; }
|
|
@@ -3487,22 +2837,6 @@ namespace boost {
|
|
|
3487
2837
|
return v.first;
|
|
3488
2838
|
}
|
|
3489
2839
|
|
|
3490
|
-
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
3491
|
-
template <class Second>
|
|
3492
|
-
static key_type const& extract(
|
|
3493
|
-
boost::rv<std::pair<key_type, Second> > const& v)
|
|
3494
|
-
{
|
|
3495
|
-
return v.first;
|
|
3496
|
-
}
|
|
3497
|
-
|
|
3498
|
-
template <class Second>
|
|
3499
|
-
static key_type const& extract(
|
|
3500
|
-
boost::rv<std::pair<key_type const, Second> > const& v)
|
|
3501
|
-
{
|
|
3502
|
-
return v.first;
|
|
3503
|
-
}
|
|
3504
|
-
#endif
|
|
3505
|
-
|
|
3506
2840
|
template <class Arg1>
|
|
3507
2841
|
static key_type const& extract(key_type const& k, Arg1 const&)
|
|
3508
2842
|
{
|
|
@@ -3517,63 +2851,40 @@ namespace boost {
|
|
|
3517
2851
|
}
|
|
3518
2852
|
|
|
3519
2853
|
template <class Arg1, class Arg2>
|
|
3520
|
-
static
|
|
2854
|
+
static typename std::conditional<
|
|
2855
|
+
(is_similar<Arg1, key_type>::value ||
|
|
2856
|
+
is_complete_and_move_constructible<key_type>::value),
|
|
2857
|
+
converting_key, no_key>::type
|
|
2858
|
+
extract(Arg1 const&, Arg2 const&)
|
|
3521
2859
|
{
|
|
3522
|
-
return
|
|
2860
|
+
return {};
|
|
3523
2861
|
}
|
|
3524
2862
|
|
|
3525
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
3526
2863
|
template <class Arg1, class Arg2, class Arg3, class... Args>
|
|
3527
2864
|
static no_key extract(
|
|
3528
2865
|
Arg1 const&, Arg2 const&, Arg3 const&, Args const&...)
|
|
3529
2866
|
{
|
|
3530
2867
|
return no_key();
|
|
3531
2868
|
}
|
|
3532
|
-
#endif
|
|
3533
|
-
|
|
3534
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
3535
|
-
|
|
3536
|
-
#define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_) \
|
|
3537
|
-
template <typename T2> \
|
|
3538
|
-
static no_key extract(boost::unordered::piecewise_construct_t, \
|
|
3539
|
-
namespace_ tuple<> const&, T2 const&) \
|
|
3540
|
-
{ \
|
|
3541
|
-
return no_key(); \
|
|
3542
|
-
} \
|
|
3543
|
-
\
|
|
3544
|
-
template <typename T, typename T2> \
|
|
3545
|
-
static typename is_key<key_type, T>::type extract( \
|
|
3546
|
-
boost::unordered::piecewise_construct_t, namespace_ tuple<T> const& k, \
|
|
3547
|
-
T2 const&) \
|
|
3548
|
-
{ \
|
|
3549
|
-
return typename is_key<key_type, T>::type(namespace_ get<0>(k)); \
|
|
3550
|
-
}
|
|
3551
|
-
|
|
3552
|
-
#else
|
|
3553
|
-
|
|
3554
|
-
#define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_) \
|
|
3555
|
-
static no_key extract( \
|
|
3556
|
-
boost::unordered::piecewise_construct_t, namespace_ tuple<> const&) \
|
|
3557
|
-
{ \
|
|
3558
|
-
return no_key(); \
|
|
3559
|
-
} \
|
|
3560
|
-
\
|
|
3561
|
-
template <typename T> \
|
|
3562
|
-
static typename is_key<key_type, T>::type extract( \
|
|
3563
|
-
boost::unordered::piecewise_construct_t, namespace_ tuple<T> const& k) \
|
|
3564
|
-
{ \
|
|
3565
|
-
return typename is_key<key_type, T>::type(namespace_ get<0>(k)); \
|
|
3566
|
-
}
|
|
3567
|
-
|
|
3568
|
-
#endif
|
|
3569
|
-
|
|
3570
|
-
BOOST_UNORDERED_KEY_FROM_TUPLE(boost::)
|
|
3571
2869
|
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
|
|
2870
|
+
template <template <class...> class Tuple, typename T2>
|
|
2871
|
+
static no_key extract(
|
|
2872
|
+
std::piecewise_construct_t, Tuple<> const&, T2 const&)
|
|
2873
|
+
{
|
|
2874
|
+
return no_key();
|
|
2875
|
+
}
|
|
3575
2876
|
|
|
3576
|
-
|
|
2877
|
+
template <template <typename...> class Tuple, typename T, typename T2,
|
|
2878
|
+
typename... Args>
|
|
2879
|
+
static auto extract(
|
|
2880
|
+
std::piecewise_construct_t, Tuple<T, Args...> const& k, T2 const&) ->
|
|
2881
|
+
typename std::enable_if<
|
|
2882
|
+
!std::is_same<T, boost::tuples::null_type>::value,
|
|
2883
|
+
typename is_key<key_type, T>::type>::type
|
|
2884
|
+
{
|
|
2885
|
+
using std::get;
|
|
2886
|
+
return typename is_key<key_type, T>::type(get<0>(k));
|
|
2887
|
+
}
|
|
3577
2888
|
};
|
|
3578
2889
|
|
|
3579
2890
|
template <class Container, class Predicate>
|
|
@@ -3594,12 +2905,8 @@ namespace boost {
|
|
|
3594
2905
|
|
|
3595
2906
|
return (size - c.size());
|
|
3596
2907
|
}
|
|
3597
|
-
}
|
|
3598
|
-
}
|
|
3599
|
-
}
|
|
3600
|
-
|
|
3601
|
-
#undef BOOST_UNORDERED_EMPLACE_TEMPLATE
|
|
3602
|
-
#undef BOOST_UNORDERED_EMPLACE_ARGS
|
|
3603
|
-
#undef BOOST_UNORDERED_EMPLACE_FORWARD
|
|
2908
|
+
} // namespace detail
|
|
2909
|
+
} // namespace unordered
|
|
2910
|
+
} // namespace boost
|
|
3604
2911
|
|
|
3605
2912
|
#endif
|