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,7 @@
|
|
|
1
|
-
|
|
2
1
|
// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
|
|
3
2
|
// Copyright (C) 2005-2011 Daniel James.
|
|
4
|
-
// Copyright (C) 2022 Christian Mazakas
|
|
3
|
+
// Copyright (C) 2022-2023 Christian Mazakas
|
|
4
|
+
// Copyright (C) 2024 Joaquin M Lopez Munoz.
|
|
5
5
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
6
6
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7
7
|
|
|
@@ -15,17 +15,14 @@
|
|
|
15
15
|
#pragma once
|
|
16
16
|
#endif
|
|
17
17
|
|
|
18
|
-
#include <boost/unordered/detail/requires_cxx11.hpp>
|
|
19
|
-
#include <boost/core/explicit_operator_bool.hpp>
|
|
20
|
-
#include <boost/functional/hash.hpp>
|
|
21
|
-
#include <boost/move/move.hpp>
|
|
22
|
-
#include <boost/type_traits/is_constructible.hpp>
|
|
23
18
|
#include <boost/unordered/detail/map.hpp>
|
|
19
|
+
#include <boost/unordered/detail/serialize_fca_container.hpp>
|
|
20
|
+
#include <boost/unordered/detail/throw_exception.hpp>
|
|
24
21
|
#include <boost/unordered/detail/type_traits.hpp>
|
|
25
22
|
|
|
26
|
-
#
|
|
23
|
+
#include <boost/container_hash/hash.hpp>
|
|
24
|
+
|
|
27
25
|
#include <initializer_list>
|
|
28
|
-
#endif
|
|
29
26
|
|
|
30
27
|
#if defined(BOOST_MSVC)
|
|
31
28
|
#pragma warning(push)
|
|
@@ -42,9 +39,6 @@ namespace boost {
|
|
|
42
39
|
namespace unordered {
|
|
43
40
|
template <class K, class T, class H, class P, class A> class unordered_map
|
|
44
41
|
{
|
|
45
|
-
#if defined(BOOST_UNORDERED_USE_MOVE)
|
|
46
|
-
BOOST_COPYABLE_AND_MOVABLE(unordered_map)
|
|
47
|
-
#endif
|
|
48
42
|
template <typename, typename, typename, typename, typename>
|
|
49
43
|
friend class unordered_multimap;
|
|
50
44
|
|
|
@@ -52,9 +46,11 @@ namespace boost {
|
|
|
52
46
|
typedef K key_type;
|
|
53
47
|
typedef T mapped_type;
|
|
54
48
|
typedef std::pair<const K, T> value_type;
|
|
55
|
-
typedef typename boost::type_identity<H>::type hasher;
|
|
56
|
-
typedef
|
|
57
|
-
|
|
49
|
+
typedef typename boost::unordered::detail::type_identity<H>::type hasher;
|
|
50
|
+
typedef
|
|
51
|
+
typename boost::unordered::detail::type_identity<P>::type key_equal;
|
|
52
|
+
typedef typename boost::unordered::detail::type_identity<A>::type
|
|
53
|
+
allocator_type;
|
|
58
54
|
|
|
59
55
|
private:
|
|
60
56
|
typedef boost::unordered::detail::map<A, K, T, H, P> types;
|
|
@@ -98,28 +94,23 @@ namespace boost {
|
|
|
98
94
|
|
|
99
95
|
unordered_map(unordered_map const&);
|
|
100
96
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
unordered_map(BOOST_RV_REF(unordered_map) other)
|
|
104
|
-
BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
|
|
97
|
+
unordered_map(unordered_map&& other)
|
|
98
|
+
noexcept(table::nothrow_move_constructible)
|
|
105
99
|
: table_(other.table_, boost::unordered::detail::move_tag())
|
|
106
100
|
{
|
|
107
101
|
// The move is done in table_
|
|
108
102
|
}
|
|
109
|
-
#endif
|
|
110
103
|
|
|
111
104
|
explicit unordered_map(allocator_type const&);
|
|
112
105
|
|
|
113
106
|
unordered_map(unordered_map const&, allocator_type const&);
|
|
114
107
|
|
|
115
|
-
unordered_map(
|
|
108
|
+
unordered_map(unordered_map&&, allocator_type const&);
|
|
116
109
|
|
|
117
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
118
110
|
unordered_map(std::initializer_list<value_type>,
|
|
119
111
|
size_type = boost::unordered::detail::default_bucket_count,
|
|
120
112
|
const hasher& = hasher(), const key_equal& l = key_equal(),
|
|
121
113
|
const allocator_type& = allocator_type());
|
|
122
|
-
#endif
|
|
123
114
|
|
|
124
115
|
explicit unordered_map(size_type, const allocator_type&);
|
|
125
116
|
|
|
@@ -135,7 +126,6 @@ namespace boost {
|
|
|
135
126
|
unordered_map(
|
|
136
127
|
InputIt, InputIt, size_type, const hasher&, const allocator_type&);
|
|
137
128
|
|
|
138
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
139
129
|
unordered_map(std::initializer_list<value_type>, const allocator_type&);
|
|
140
130
|
|
|
141
131
|
unordered_map(
|
|
@@ -143,262 +133,99 @@ namespace boost {
|
|
|
143
133
|
|
|
144
134
|
unordered_map(std::initializer_list<value_type>, size_type, const hasher&,
|
|
145
135
|
const allocator_type&);
|
|
146
|
-
#endif
|
|
147
136
|
|
|
148
137
|
// Destructor
|
|
149
138
|
|
|
150
|
-
~unordered_map()
|
|
139
|
+
~unordered_map() noexcept;
|
|
151
140
|
|
|
152
|
-
// Assign
|
|
153
|
-
|
|
154
|
-
#if defined(BOOST_UNORDERED_USE_MOVE)
|
|
155
|
-
unordered_map& operator=(BOOST_COPY_ASSIGN_REF(unordered_map) x)
|
|
156
|
-
{
|
|
157
|
-
table_.assign(x.table_, boost::unordered::detail::true_type());
|
|
158
|
-
return *this;
|
|
159
|
-
}
|
|
141
|
+
// Assign
|
|
160
142
|
|
|
161
|
-
unordered_map& operator=(BOOST_RV_REF(unordered_map) x)
|
|
162
|
-
BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
|
|
163
|
-
boost::is_nothrow_move_assignable<H>::value&&
|
|
164
|
-
boost::is_nothrow_move_assignable<P>::value)
|
|
165
|
-
{
|
|
166
|
-
table_.move_assign(x.table_, boost::unordered::detail::true_type());
|
|
167
|
-
return *this;
|
|
168
|
-
}
|
|
169
|
-
#else
|
|
170
143
|
unordered_map& operator=(unordered_map const& x)
|
|
171
144
|
{
|
|
172
|
-
table_.assign(x.table_,
|
|
145
|
+
table_.assign(x.table_, std::true_type());
|
|
173
146
|
return *this;
|
|
174
147
|
}
|
|
175
148
|
|
|
176
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
177
149
|
unordered_map& operator=(unordered_map&& x)
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
150
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
151
|
+
std::is_nothrow_move_assignable<H>::value&&
|
|
152
|
+
std::is_nothrow_move_assignable<P>::value)
|
|
181
153
|
{
|
|
182
|
-
table_.move_assign(x.table_,
|
|
154
|
+
table_.move_assign(x.table_, std::true_type());
|
|
183
155
|
return *this;
|
|
184
156
|
}
|
|
185
|
-
#endif
|
|
186
|
-
#endif
|
|
187
157
|
|
|
188
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
189
158
|
unordered_map& operator=(std::initializer_list<value_type>);
|
|
190
|
-
#endif
|
|
191
159
|
|
|
192
|
-
allocator_type get_allocator() const
|
|
160
|
+
allocator_type get_allocator() const noexcept
|
|
193
161
|
{
|
|
194
|
-
return table_.node_alloc();
|
|
162
|
+
return allocator_type(table_.node_alloc());
|
|
195
163
|
}
|
|
196
164
|
|
|
197
|
-
// // iterators
|
|
165
|
+
// // iterators
|
|
198
166
|
|
|
199
|
-
iterator begin()
|
|
167
|
+
iterator begin() noexcept { return table_.begin(); }
|
|
200
168
|
|
|
201
|
-
const_iterator begin() const
|
|
169
|
+
const_iterator begin() const noexcept
|
|
202
170
|
{
|
|
203
171
|
return const_iterator(table_.begin());
|
|
204
172
|
}
|
|
205
173
|
|
|
206
|
-
iterator end()
|
|
174
|
+
iterator end() noexcept { return iterator(); }
|
|
207
175
|
|
|
208
|
-
const_iterator end() const
|
|
176
|
+
const_iterator end() const noexcept { return const_iterator(); }
|
|
209
177
|
|
|
210
|
-
const_iterator cbegin() const
|
|
178
|
+
const_iterator cbegin() const noexcept
|
|
211
179
|
{
|
|
212
180
|
return const_iterator(table_.begin());
|
|
213
181
|
}
|
|
214
182
|
|
|
215
|
-
const_iterator cend() const
|
|
183
|
+
const_iterator cend() const noexcept { return const_iterator(); }
|
|
216
184
|
|
|
217
185
|
// size and capacity
|
|
218
186
|
|
|
219
|
-
BOOST_ATTRIBUTE_NODISCARD bool empty() const
|
|
187
|
+
BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
|
|
220
188
|
{
|
|
221
189
|
return table_.size_ == 0;
|
|
222
190
|
}
|
|
223
191
|
|
|
224
|
-
size_type size() const
|
|
225
|
-
|
|
226
|
-
size_type max_size() const BOOST_NOEXCEPT;
|
|
227
|
-
|
|
228
|
-
// emplace
|
|
229
|
-
|
|
230
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
231
|
-
|
|
232
|
-
template <class... Args>
|
|
233
|
-
std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
|
|
234
|
-
{
|
|
235
|
-
return table_.emplace_unique(
|
|
236
|
-
table::extractor::extract(boost::forward<Args>(args)...),
|
|
237
|
-
boost::forward<Args>(args)...);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
#else
|
|
241
|
-
|
|
242
|
-
#if !BOOST_UNORDERED_SUN_WORKAROUNDS1
|
|
243
|
-
|
|
244
|
-
// 0 argument emplace requires special treatment in case
|
|
245
|
-
// the container is instantiated with a value type that
|
|
246
|
-
// doesn't have a default constructor.
|
|
247
|
-
|
|
248
|
-
std::pair<iterator, bool> emplace(
|
|
249
|
-
boost::unordered::detail::empty_emplace =
|
|
250
|
-
boost::unordered::detail::empty_emplace(),
|
|
251
|
-
value_type v = value_type())
|
|
252
|
-
{
|
|
253
|
-
return this->emplace(boost::move(v));
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
#endif
|
|
192
|
+
size_type size() const noexcept { return table_.size_; }
|
|
257
193
|
|
|
258
|
-
|
|
259
|
-
std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
|
|
260
|
-
{
|
|
261
|
-
return table_.emplace_unique(
|
|
262
|
-
table::extractor::extract(boost::forward<A0>(a0)),
|
|
263
|
-
boost::unordered::detail::create_emplace_args(
|
|
264
|
-
boost::forward<A0>(a0)));
|
|
265
|
-
}
|
|
194
|
+
size_type max_size() const noexcept;
|
|
266
195
|
|
|
267
|
-
|
|
268
|
-
std::pair<iterator, bool> emplace(
|
|
269
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
270
|
-
{
|
|
271
|
-
return table_.emplace_unique(
|
|
272
|
-
table::extractor::extract(
|
|
273
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)),
|
|
274
|
-
boost::unordered::detail::create_emplace_args(
|
|
275
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
276
|
-
}
|
|
196
|
+
// emplace
|
|
277
197
|
|
|
278
|
-
template <
|
|
279
|
-
std::pair<iterator, bool> emplace(
|
|
280
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
198
|
+
template <class... Args> std::pair<iterator, bool> emplace(Args&&... args)
|
|
281
199
|
{
|
|
282
200
|
return table_.emplace_unique(
|
|
283
|
-
table::extractor::extract(
|
|
284
|
-
|
|
285
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
286
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
201
|
+
table::extractor::extract(std::forward<Args>(args)...),
|
|
202
|
+
std::forward<Args>(args)...);
|
|
287
203
|
}
|
|
288
204
|
|
|
289
|
-
#endif
|
|
290
|
-
|
|
291
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
292
|
-
|
|
293
205
|
template <class... Args>
|
|
294
|
-
iterator emplace_hint(const_iterator hint,
|
|
295
|
-
{
|
|
296
|
-
return table_.emplace_hint_unique(hint,
|
|
297
|
-
table::extractor::extract(boost::forward<Args>(args)...),
|
|
298
|
-
boost::forward<Args>(args)...);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
#else
|
|
302
|
-
|
|
303
|
-
#if !BOOST_UNORDERED_SUN_WORKAROUNDS1
|
|
304
|
-
|
|
305
|
-
iterator emplace_hint(const_iterator hint,
|
|
306
|
-
boost::unordered::detail::empty_emplace =
|
|
307
|
-
boost::unordered::detail::empty_emplace(),
|
|
308
|
-
value_type v = value_type())
|
|
309
|
-
{
|
|
310
|
-
return this->emplace_hint(hint, boost::move(v));
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
#endif
|
|
314
|
-
|
|
315
|
-
template <typename A0>
|
|
316
|
-
iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
|
|
317
|
-
{
|
|
318
|
-
return table_.emplace_hint_unique(hint,
|
|
319
|
-
table::extractor::extract(boost::forward<A0>(a0)),
|
|
320
|
-
boost::unordered::detail::create_emplace_args(
|
|
321
|
-
boost::forward<A0>(a0)));
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
template <typename A0, typename A1>
|
|
325
|
-
iterator emplace_hint(
|
|
326
|
-
const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
206
|
+
iterator emplace_hint(const_iterator hint, Args&&... args)
|
|
327
207
|
{
|
|
328
208
|
return table_.emplace_hint_unique(hint,
|
|
329
|
-
table::extractor::extract(
|
|
330
|
-
|
|
331
|
-
boost::unordered::detail::create_emplace_args(
|
|
332
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
209
|
+
table::extractor::extract(std::forward<Args>(args)...),
|
|
210
|
+
std::forward<Args>(args)...);
|
|
333
211
|
}
|
|
334
212
|
|
|
335
|
-
template <typename A0, typename A1, typename A2>
|
|
336
|
-
iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
|
|
337
|
-
BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
338
|
-
{
|
|
339
|
-
return table_.emplace_hint_unique(hint,
|
|
340
|
-
table::extractor::extract(
|
|
341
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)),
|
|
342
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
343
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
#endif
|
|
347
|
-
|
|
348
|
-
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
349
|
-
|
|
350
|
-
#define BOOST_UNORDERED_EMPLACE(z, n, _) \
|
|
351
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
352
|
-
std::pair<iterator, bool> emplace( \
|
|
353
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
354
|
-
{ \
|
|
355
|
-
return table_.emplace_unique( \
|
|
356
|
-
table::extractor::extract( \
|
|
357
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)), \
|
|
358
|
-
boost::unordered::detail::create_emplace_args( \
|
|
359
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
360
|
-
} \
|
|
361
|
-
\
|
|
362
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
363
|
-
iterator emplace_hint( \
|
|
364
|
-
const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
365
|
-
{ \
|
|
366
|
-
return table_.emplace_hint_unique(hint, \
|
|
367
|
-
table::extractor::extract( \
|
|
368
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)), \
|
|
369
|
-
boost::unordered::detail::create_emplace_args( \
|
|
370
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
BOOST_UNORDERED_EMPLACE(1, 4, _)
|
|
374
|
-
BOOST_UNORDERED_EMPLACE(1, 5, _)
|
|
375
|
-
BOOST_UNORDERED_EMPLACE(1, 6, _)
|
|
376
|
-
BOOST_UNORDERED_EMPLACE(1, 7, _)
|
|
377
|
-
BOOST_UNORDERED_EMPLACE(1, 8, _)
|
|
378
|
-
BOOST_UNORDERED_EMPLACE(1, 9, _)
|
|
379
|
-
BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
|
|
380
|
-
BOOST_UNORDERED_EMPLACE, _)
|
|
381
|
-
|
|
382
|
-
#undef BOOST_UNORDERED_EMPLACE
|
|
383
|
-
|
|
384
|
-
#endif
|
|
385
|
-
|
|
386
213
|
std::pair<iterator, bool> insert(value_type const& x)
|
|
387
214
|
{
|
|
388
215
|
return this->emplace(x);
|
|
389
216
|
}
|
|
390
217
|
|
|
391
|
-
std::pair<iterator, bool> insert(
|
|
218
|
+
std::pair<iterator, bool> insert(value_type&& x)
|
|
392
219
|
{
|
|
393
|
-
return this->emplace(
|
|
220
|
+
return this->emplace(std::move(x));
|
|
394
221
|
}
|
|
395
222
|
|
|
396
223
|
template <class P2>
|
|
397
|
-
typename boost::enable_if<
|
|
398
|
-
|
|
399
|
-
|
|
224
|
+
typename boost::enable_if<std::is_constructible<value_type, P2&&>,
|
|
225
|
+
std::pair<iterator, bool> >::type
|
|
226
|
+
insert(P2&& obj)
|
|
400
227
|
{
|
|
401
|
-
return this->emplace(
|
|
228
|
+
return this->emplace(std::forward<P2>(obj));
|
|
402
229
|
}
|
|
403
230
|
|
|
404
231
|
iterator insert(const_iterator hint, value_type const& x)
|
|
@@ -406,85 +233,73 @@ namespace boost {
|
|
|
406
233
|
return this->emplace_hint(hint, x);
|
|
407
234
|
}
|
|
408
235
|
|
|
409
|
-
iterator insert(const_iterator hint,
|
|
236
|
+
iterator insert(const_iterator hint, value_type&& x)
|
|
410
237
|
{
|
|
411
|
-
return this->emplace_hint(hint,
|
|
238
|
+
return this->emplace_hint(hint, std::move(x));
|
|
412
239
|
}
|
|
413
240
|
|
|
414
241
|
template <class P2>
|
|
415
|
-
typename boost::enable_if<
|
|
416
|
-
|
|
417
|
-
insert(const_iterator hint,
|
|
242
|
+
typename boost::enable_if<std::is_constructible<value_type, P2&&>,
|
|
243
|
+
iterator>::type
|
|
244
|
+
insert(const_iterator hint, P2&& obj)
|
|
418
245
|
{
|
|
419
|
-
return this->emplace_hint(hint,
|
|
246
|
+
return this->emplace_hint(hint, std::forward<P2>(obj));
|
|
420
247
|
}
|
|
421
248
|
|
|
422
249
|
template <class InputIt> void insert(InputIt, InputIt);
|
|
423
250
|
|
|
424
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
425
251
|
void insert(std::initializer_list<value_type>);
|
|
426
|
-
#endif
|
|
427
252
|
|
|
428
253
|
// extract
|
|
429
254
|
|
|
430
255
|
node_type extract(const_iterator position)
|
|
431
256
|
{
|
|
432
257
|
return node_type(
|
|
433
|
-
table_.extract_by_iterator_unique(position),
|
|
258
|
+
table_.extract_by_iterator_unique(position),
|
|
259
|
+
allocator_type(table_.node_alloc()));
|
|
434
260
|
}
|
|
435
261
|
|
|
436
262
|
node_type extract(const key_type& k)
|
|
437
263
|
{
|
|
438
|
-
return node_type(
|
|
264
|
+
return node_type(
|
|
265
|
+
table_.extract_by_key_impl(k),
|
|
266
|
+
allocator_type(table_.node_alloc()));
|
|
439
267
|
}
|
|
440
268
|
|
|
441
269
|
template <class Key>
|
|
442
270
|
typename boost::enable_if_c<
|
|
443
271
|
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
444
272
|
node_type>::type
|
|
445
|
-
extract(
|
|
273
|
+
extract(Key&& k)
|
|
446
274
|
{
|
|
447
|
-
return node_type(
|
|
448
|
-
table_.
|
|
275
|
+
return node_type(
|
|
276
|
+
table_.extract_by_key_impl(std::forward<Key>(k)),
|
|
277
|
+
allocator_type(table_.node_alloc()));
|
|
449
278
|
}
|
|
450
279
|
|
|
451
|
-
insert_return_type insert(
|
|
280
|
+
insert_return_type insert(node_type&& np)
|
|
452
281
|
{
|
|
453
282
|
insert_return_type result;
|
|
454
283
|
table_.move_insert_node_type_unique((node_type&)np, result);
|
|
455
|
-
return
|
|
284
|
+
return result;
|
|
456
285
|
}
|
|
457
286
|
|
|
458
|
-
iterator insert(const_iterator hint,
|
|
287
|
+
iterator insert(const_iterator hint, node_type&& np)
|
|
459
288
|
{
|
|
460
289
|
return table_.move_insert_node_type_with_hint_unique(hint, np);
|
|
461
290
|
}
|
|
462
291
|
|
|
463
|
-
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
|
|
464
|
-
(BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
|
|
465
|
-
private:
|
|
466
|
-
// Note: Use r-value node_type to insert.
|
|
467
|
-
insert_return_type insert(node_type&);
|
|
468
|
-
iterator insert(const_iterator, node_type& np);
|
|
469
|
-
|
|
470
|
-
public:
|
|
471
|
-
#endif
|
|
472
|
-
|
|
473
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
474
|
-
|
|
475
292
|
template <class... Args>
|
|
476
|
-
std::pair<iterator, bool> try_emplace(
|
|
477
|
-
key_type const& k, BOOST_FWD_REF(Args)... args)
|
|
293
|
+
std::pair<iterator, bool> try_emplace(key_type const& k, Args&&... args)
|
|
478
294
|
{
|
|
479
|
-
return table_.try_emplace_unique(k,
|
|
295
|
+
return table_.try_emplace_unique(k, std::forward<Args>(args)...);
|
|
480
296
|
}
|
|
481
297
|
|
|
482
298
|
template <class... Args>
|
|
483
|
-
std::pair<iterator, bool> try_emplace(
|
|
484
|
-
BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
|
|
299
|
+
std::pair<iterator, bool> try_emplace(key_type&& k, Args&&... args)
|
|
485
300
|
{
|
|
486
301
|
return table_.try_emplace_unique(
|
|
487
|
-
|
|
302
|
+
std::move(k), std::forward<Args>(args)...);
|
|
488
303
|
}
|
|
489
304
|
|
|
490
305
|
template <class Key, class... Args>
|
|
@@ -494,23 +309,22 @@ namespace boost {
|
|
|
494
309
|
try_emplace(Key&& k, Args&&... args)
|
|
495
310
|
{
|
|
496
311
|
return table_.try_emplace_unique(
|
|
497
|
-
|
|
312
|
+
std::forward<Key>(k), std::forward<Args>(args)...);
|
|
498
313
|
}
|
|
499
314
|
|
|
500
315
|
template <class... Args>
|
|
501
316
|
iterator try_emplace(
|
|
502
|
-
const_iterator hint, key_type const& k,
|
|
317
|
+
const_iterator hint, key_type const& k, Args&&... args)
|
|
503
318
|
{
|
|
504
319
|
return table_.try_emplace_hint_unique(
|
|
505
|
-
hint, k,
|
|
320
|
+
hint, k, std::forward<Args>(args)...);
|
|
506
321
|
}
|
|
507
322
|
|
|
508
323
|
template <class... Args>
|
|
509
|
-
iterator try_emplace(const_iterator hint,
|
|
510
|
-
BOOST_FWD_REF(Args)... args)
|
|
324
|
+
iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args)
|
|
511
325
|
{
|
|
512
326
|
return table_.try_emplace_hint_unique(
|
|
513
|
-
hint,
|
|
327
|
+
hint, std::move(k), std::forward<Args>(args)...);
|
|
514
328
|
}
|
|
515
329
|
|
|
516
330
|
template <class Key, class... Args>
|
|
@@ -520,322 +334,52 @@ namespace boost {
|
|
|
520
334
|
try_emplace(const_iterator hint, Key&& k, Args&&... args)
|
|
521
335
|
{
|
|
522
336
|
return table_.try_emplace_hint_unique(
|
|
523
|
-
hint,
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
#else
|
|
527
|
-
|
|
528
|
-
// In order to make this a template, this handles both:
|
|
529
|
-
// try_emplace(key const&)
|
|
530
|
-
// try_emplace(key&&)
|
|
531
|
-
|
|
532
|
-
template <typename Key>
|
|
533
|
-
std::pair<iterator, bool> try_emplace(BOOST_FWD_REF(Key) k)
|
|
534
|
-
{
|
|
535
|
-
return table_.try_emplace_unique(boost::forward<Key>(k));
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
// In order to make this a template, this handles both:
|
|
539
|
-
// try_emplace(const_iterator hint, key const&)
|
|
540
|
-
// try_emplace(const_iterator hint, key&&)
|
|
541
|
-
|
|
542
|
-
template <typename Key>
|
|
543
|
-
iterator try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k)
|
|
544
|
-
{
|
|
545
|
-
return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k));
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
// try_emplace(key const&, Args&&...)
|
|
549
|
-
|
|
550
|
-
template <typename A0>
|
|
551
|
-
std::pair<iterator, bool> try_emplace(
|
|
552
|
-
key_type const& k, BOOST_FWD_REF(A0) a0)
|
|
553
|
-
{
|
|
554
|
-
return table_.try_emplace_unique(
|
|
555
|
-
k, boost::unordered::detail::create_emplace_args(
|
|
556
|
-
boost::forward<A0>(a0)));
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
template <typename A0, typename A1>
|
|
560
|
-
std::pair<iterator, bool> try_emplace(
|
|
561
|
-
key_type const& k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
562
|
-
{
|
|
563
|
-
return table_.try_emplace_unique(
|
|
564
|
-
k, boost::unordered::detail::create_emplace_args(
|
|
565
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
template <typename A0, typename A1, typename A2>
|
|
569
|
-
std::pair<iterator, bool> try_emplace(key_type const& k,
|
|
570
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
571
|
-
{
|
|
572
|
-
return table_.try_emplace_unique(k,
|
|
573
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
574
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
// try_emplace(key&&, Args&&...)
|
|
578
|
-
|
|
579
|
-
template <typename A0>
|
|
580
|
-
std::pair<iterator, bool> try_emplace(
|
|
581
|
-
BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
|
|
582
|
-
{
|
|
583
|
-
return table_.try_emplace_unique(
|
|
584
|
-
boost::move(k), boost::unordered::detail::create_emplace_args(
|
|
585
|
-
boost::forward<A0>(a0)));
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
template <typename A0, typename A1>
|
|
589
|
-
std::pair<iterator, bool> try_emplace(
|
|
590
|
-
BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
591
|
-
{
|
|
592
|
-
return table_.try_emplace_unique(
|
|
593
|
-
boost::move(k), boost::unordered::detail::create_emplace_args(
|
|
594
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
template <typename A0, typename A1, typename A2>
|
|
598
|
-
std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k,
|
|
599
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
600
|
-
{
|
|
601
|
-
return table_.try_emplace_unique(boost::move(k),
|
|
602
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
603
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
// try_emplace(Key&&, Args&&...)
|
|
607
|
-
|
|
608
|
-
template <typename Key, typename A0>
|
|
609
|
-
typename boost::enable_if_c<
|
|
610
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
611
|
-
std::pair<iterator, bool> >::type
|
|
612
|
-
try_emplace(BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0)
|
|
613
|
-
{
|
|
614
|
-
return table_.try_emplace_unique(
|
|
615
|
-
boost::forward<Key>(k), boost::unordered::detail::create_emplace_args(
|
|
616
|
-
boost::forward<A0>(a0)));
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
template <typename Key, typename A0, typename A1>
|
|
620
|
-
typename boost::enable_if_c<
|
|
621
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
622
|
-
std::pair<iterator, bool> >::type
|
|
623
|
-
try_emplace(
|
|
624
|
-
BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
625
|
-
{
|
|
626
|
-
return table_.try_emplace_unique(boost::forward<Key>(k),
|
|
627
|
-
boost::unordered::detail::create_emplace_args(
|
|
628
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
template <typename Key, typename A0, typename A1, typename A2>
|
|
632
|
-
typename boost::enable_if_c<
|
|
633
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
634
|
-
std::pair<iterator, bool> >::type
|
|
635
|
-
try_emplace(BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0,
|
|
636
|
-
BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
637
|
-
{
|
|
638
|
-
return table_.try_emplace_unique(boost::forward<Key>(k),
|
|
639
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
640
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
// try_emplace(const_iterator hint, key const&, Args&&...)
|
|
644
|
-
|
|
645
|
-
template <typename A0>
|
|
646
|
-
iterator try_emplace(
|
|
647
|
-
const_iterator hint, key_type const& k, BOOST_FWD_REF(A0) a0)
|
|
648
|
-
{
|
|
649
|
-
return table_.try_emplace_hint_unique(
|
|
650
|
-
hint, k, boost::unordered::detail::create_emplace_args(
|
|
651
|
-
boost::forward<A0>(a0)));
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
template <typename A0, typename A1>
|
|
655
|
-
iterator try_emplace(const_iterator hint, key_type const& k,
|
|
656
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
657
|
-
{
|
|
658
|
-
return table_.try_emplace_hint_unique(
|
|
659
|
-
hint, k, boost::unordered::detail::create_emplace_args(
|
|
660
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
template <typename A0, typename A1, typename A2>
|
|
664
|
-
iterator try_emplace(const_iterator hint, key_type const& k,
|
|
665
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
666
|
-
{
|
|
667
|
-
return table_.try_emplace_hint_unique(hint, k,
|
|
668
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
669
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
// try_emplace(const_iterator hint, key&&, Args&&...)
|
|
673
|
-
|
|
674
|
-
template <typename A0>
|
|
675
|
-
iterator try_emplace(
|
|
676
|
-
const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
|
|
677
|
-
{
|
|
678
|
-
return table_.try_emplace_hint_unique(
|
|
679
|
-
hint, boost::move(k), boost::unordered::detail::create_emplace_args(
|
|
680
|
-
boost::forward<A0>(a0)));
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
template <typename A0, typename A1>
|
|
684
|
-
iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
|
|
685
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
686
|
-
{
|
|
687
|
-
return table_.try_emplace_hint_unique(hint, boost::move(k),
|
|
688
|
-
boost::unordered::detail::create_emplace_args(
|
|
689
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
template <typename A0, typename A1, typename A2>
|
|
693
|
-
iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
|
|
694
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
695
|
-
{
|
|
696
|
-
return table_.try_emplace_hint_unique(hint, boost::move(k),
|
|
697
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
698
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
337
|
+
hint, std::forward<Key>(k), std::forward<Args>(args)...);
|
|
699
338
|
}
|
|
700
339
|
|
|
701
|
-
// try_emplace(const_iterator hint, Key&&, Args&&...)
|
|
702
|
-
|
|
703
|
-
template <typename Key, typename A0>
|
|
704
|
-
typename boost::enable_if_c<
|
|
705
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
706
|
-
iterator>::type
|
|
707
|
-
try_emplace(
|
|
708
|
-
const_iterator hint, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(A0) a0)
|
|
709
|
-
{
|
|
710
|
-
return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
|
|
711
|
-
boost::unordered::detail::create_emplace_args(
|
|
712
|
-
boost::forward<A0>(a0)));
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
template <typename Key, typename A0, typename A1>
|
|
716
|
-
typename boost::enable_if_c<
|
|
717
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
718
|
-
iterator>::type
|
|
719
|
-
try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k,
|
|
720
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
721
|
-
{
|
|
722
|
-
return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
|
|
723
|
-
boost::unordered::detail::create_emplace_args(
|
|
724
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)));
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
template <typename Key, typename A0, typename A1, typename A2>
|
|
728
|
-
typename boost::enable_if_c<
|
|
729
|
-
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
730
|
-
iterator>::type
|
|
731
|
-
try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k,
|
|
732
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
733
|
-
{
|
|
734
|
-
return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k),
|
|
735
|
-
boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
|
|
736
|
-
boost::forward<A1>(a1), boost::forward<A2>(a2)));
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
#define BOOST_UNORDERED_TRY_EMPLACE(z, n, _) \
|
|
740
|
-
\
|
|
741
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
742
|
-
std::pair<iterator, bool> try_emplace( \
|
|
743
|
-
key_type const& k, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
744
|
-
{ \
|
|
745
|
-
return table_.try_emplace_unique( \
|
|
746
|
-
k, boost::unordered::detail::create_emplace_args( \
|
|
747
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
748
|
-
} \
|
|
749
|
-
\
|
|
750
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
751
|
-
std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, \
|
|
752
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
753
|
-
{ \
|
|
754
|
-
return table_.try_emplace_unique(boost::move(k), \
|
|
755
|
-
boost::unordered::detail::create_emplace_args( \
|
|
756
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
757
|
-
} \
|
|
758
|
-
\
|
|
759
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
760
|
-
iterator try_emplace(const_iterator hint, key_type const& k, \
|
|
761
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
762
|
-
{ \
|
|
763
|
-
return table_.try_emplace_hint_unique( \
|
|
764
|
-
hint, k, boost::unordered::detail::create_emplace_args( \
|
|
765
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
766
|
-
} \
|
|
767
|
-
\
|
|
768
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
769
|
-
iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, \
|
|
770
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
771
|
-
{ \
|
|
772
|
-
return table_.try_emplace_hint_unique(hint, boost::move(k), \
|
|
773
|
-
boost::unordered::detail::create_emplace_args( \
|
|
774
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 4, _)
|
|
778
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 5, _)
|
|
779
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 6, _)
|
|
780
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 7, _)
|
|
781
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 8, _)
|
|
782
|
-
BOOST_UNORDERED_TRY_EMPLACE(1, 9, _)
|
|
783
|
-
BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
|
|
784
|
-
BOOST_UNORDERED_TRY_EMPLACE, _)
|
|
785
|
-
|
|
786
|
-
#undef BOOST_UNORDERED_TRY_EMPLACE
|
|
787
|
-
|
|
788
|
-
#endif
|
|
789
|
-
|
|
790
340
|
template <class M>
|
|
791
|
-
std::pair<iterator, bool> insert_or_assign(
|
|
792
|
-
key_type const& k, BOOST_FWD_REF(M) obj)
|
|
341
|
+
std::pair<iterator, bool> insert_or_assign(key_type const& k, M&& obj)
|
|
793
342
|
{
|
|
794
|
-
return table_.insert_or_assign_unique(k,
|
|
343
|
+
return table_.insert_or_assign_unique(k, std::forward<M>(obj));
|
|
795
344
|
}
|
|
796
345
|
|
|
797
346
|
template <class M>
|
|
798
|
-
std::pair<iterator, bool> insert_or_assign(
|
|
799
|
-
BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
|
|
347
|
+
std::pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj)
|
|
800
348
|
{
|
|
801
349
|
return table_.insert_or_assign_unique(
|
|
802
|
-
|
|
350
|
+
std::move(k), std::forward<M>(obj));
|
|
803
351
|
}
|
|
804
352
|
|
|
805
353
|
template <class Key, class M>
|
|
806
354
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
807
355
|
std::pair<iterator, bool> >::type
|
|
808
|
-
insert_or_assign(
|
|
356
|
+
insert_or_assign(Key&& k, M&& obj)
|
|
809
357
|
{
|
|
810
358
|
return table_.insert_or_assign_unique(
|
|
811
|
-
|
|
359
|
+
std::forward<Key>(k), std::forward<M>(obj));
|
|
812
360
|
}
|
|
813
361
|
|
|
814
362
|
template <class M>
|
|
815
|
-
iterator insert_or_assign(
|
|
816
|
-
const_iterator, key_type const& k, BOOST_FWD_REF(M) obj)
|
|
363
|
+
iterator insert_or_assign(const_iterator, key_type const& k, M&& obj)
|
|
817
364
|
{
|
|
818
|
-
return table_.insert_or_assign_unique(k,
|
|
365
|
+
return table_.insert_or_assign_unique(k, std::forward<M>(obj)).first;
|
|
819
366
|
}
|
|
820
367
|
|
|
821
368
|
template <class M>
|
|
822
|
-
iterator insert_or_assign(
|
|
823
|
-
const_iterator, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
|
|
369
|
+
iterator insert_or_assign(const_iterator, key_type&& k, M&& obj)
|
|
824
370
|
{
|
|
825
371
|
return table_
|
|
826
|
-
.insert_or_assign_unique(
|
|
372
|
+
.insert_or_assign_unique(std::move(k), std::forward<M>(obj))
|
|
827
373
|
.first;
|
|
828
374
|
}
|
|
829
375
|
|
|
830
376
|
template <class Key, class M>
|
|
831
377
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
832
378
|
iterator>::type
|
|
833
|
-
insert_or_assign(
|
|
834
|
-
const_iterator, BOOST_FWD_REF(Key) k, BOOST_FWD_REF(M) obj)
|
|
379
|
+
insert_or_assign(const_iterator, Key&& k, M&& obj)
|
|
835
380
|
{
|
|
836
381
|
return table_
|
|
837
|
-
.insert_or_assign_unique(
|
|
838
|
-
boost::forward<Key>(k), boost::forward<M>(obj))
|
|
382
|
+
.insert_or_assign_unique(std::forward<Key>(k), std::forward<M>(obj))
|
|
839
383
|
.first;
|
|
840
384
|
}
|
|
841
385
|
|
|
@@ -848,9 +392,9 @@ namespace boost {
|
|
|
848
392
|
typename boost::enable_if_c<
|
|
849
393
|
detail::transparent_non_iterable<Key, unordered_map>::value,
|
|
850
394
|
size_type>::type
|
|
851
|
-
erase(
|
|
395
|
+
erase(Key&& k)
|
|
852
396
|
{
|
|
853
|
-
return table_.erase_key_unique_impl(
|
|
397
|
+
return table_.erase_key_unique_impl(std::forward<Key>(k));
|
|
854
398
|
}
|
|
855
399
|
|
|
856
400
|
BOOST_UNORDERED_DEPRECATED("Use erase instead")
|
|
@@ -859,26 +403,22 @@ namespace boost {
|
|
|
859
403
|
void erase_return_void(const_iterator it) { erase(it); }
|
|
860
404
|
|
|
861
405
|
void swap(unordered_map&)
|
|
862
|
-
|
|
863
|
-
boost::is_nothrow_swappable<H>::value&&
|
|
864
|
-
boost::is_nothrow_swappable<P>::value);
|
|
865
|
-
void clear()
|
|
406
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
407
|
+
boost::unordered::detail::is_nothrow_swappable<H>::value&&
|
|
408
|
+
boost::unordered::detail::is_nothrow_swappable<P>::value);
|
|
409
|
+
void clear() noexcept { table_.clear_impl(); }
|
|
866
410
|
|
|
867
411
|
template <typename H2, typename P2>
|
|
868
412
|
void merge(boost::unordered_map<K, T, H2, P2, A>& source);
|
|
869
413
|
|
|
870
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
871
414
|
template <typename H2, typename P2>
|
|
872
415
|
void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
|
|
873
|
-
#endif
|
|
874
416
|
|
|
875
417
|
template <typename H2, typename P2>
|
|
876
418
|
void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
|
|
877
419
|
|
|
878
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
879
420
|
template <typename H2, typename P2>
|
|
880
421
|
void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
|
|
881
|
-
#endif
|
|
882
422
|
|
|
883
423
|
// observers
|
|
884
424
|
|
|
@@ -972,32 +512,31 @@ namespace boost {
|
|
|
972
512
|
}
|
|
973
513
|
|
|
974
514
|
mapped_type& operator[](const key_type&);
|
|
975
|
-
mapped_type& operator[](
|
|
515
|
+
mapped_type& operator[](key_type&&);
|
|
976
516
|
|
|
977
517
|
template <class Key>
|
|
978
518
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
979
519
|
mapped_type&>::type
|
|
980
|
-
operator[](
|
|
520
|
+
operator[](Key&& k);
|
|
981
521
|
|
|
982
522
|
mapped_type& at(const key_type&);
|
|
983
523
|
mapped_type const& at(const key_type&) const;
|
|
984
524
|
|
|
985
525
|
template <class Key>
|
|
986
526
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
987
|
-
mapped_type&>::type
|
|
527
|
+
mapped_type&>::type
|
|
528
|
+
at(Key&& k);
|
|
988
529
|
|
|
989
530
|
template <class Key>
|
|
990
531
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
991
|
-
mapped_type const&>::type
|
|
532
|
+
mapped_type const&>::type
|
|
533
|
+
at(Key&& k) const;
|
|
992
534
|
|
|
993
535
|
// bucket interface
|
|
994
536
|
|
|
995
|
-
size_type bucket_count() const
|
|
996
|
-
{
|
|
997
|
-
return table_.bucket_count();
|
|
998
|
-
}
|
|
537
|
+
size_type bucket_count() const noexcept { return table_.bucket_count(); }
|
|
999
538
|
|
|
1000
|
-
size_type max_bucket_count() const
|
|
539
|
+
size_type max_bucket_count() const noexcept
|
|
1001
540
|
{
|
|
1002
541
|
return table_.max_bucket_count();
|
|
1003
542
|
}
|
|
@@ -1012,15 +551,12 @@ namespace boost {
|
|
|
1012
551
|
template <class Key>
|
|
1013
552
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
1014
553
|
size_type>::type
|
|
1015
|
-
bucket(
|
|
554
|
+
bucket(Key&& k) const
|
|
1016
555
|
{
|
|
1017
|
-
return table_.hash_to_bucket(table_.hash(
|
|
556
|
+
return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
|
|
1018
557
|
}
|
|
1019
558
|
|
|
1020
|
-
local_iterator begin(size_type n)
|
|
1021
|
-
{
|
|
1022
|
-
return table_.begin(n);
|
|
1023
|
-
}
|
|
559
|
+
local_iterator begin(size_type n) { return table_.begin(n); }
|
|
1024
560
|
|
|
1025
561
|
const_local_iterator begin(size_type n) const
|
|
1026
562
|
{
|
|
@@ -1045,9 +581,9 @@ namespace boost {
|
|
|
1045
581
|
|
|
1046
582
|
// hash policy
|
|
1047
583
|
|
|
1048
|
-
float load_factor() const
|
|
1049
|
-
float max_load_factor() const
|
|
1050
|
-
void max_load_factor(float)
|
|
584
|
+
float load_factor() const noexcept;
|
|
585
|
+
float max_load_factor() const noexcept { return table_.mlf_; }
|
|
586
|
+
void max_load_factor(float) noexcept;
|
|
1051
587
|
void rehash(size_type);
|
|
1052
588
|
void reserve(size_type);
|
|
1053
589
|
|
|
@@ -1059,6 +595,13 @@ namespace boost {
|
|
|
1059
595
|
#endif
|
|
1060
596
|
}; // class template unordered_map
|
|
1061
597
|
|
|
598
|
+
template <class Archive, class K, class T, class H, class P, class A>
|
|
599
|
+
void serialize(
|
|
600
|
+
Archive& ar, unordered_map<K, T, H, P, A>& m, unsigned int version)
|
|
601
|
+
{
|
|
602
|
+
detail::serialize_fca_container(ar, m, version);
|
|
603
|
+
}
|
|
604
|
+
|
|
1062
605
|
#if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
|
|
1063
606
|
|
|
1064
607
|
template <class InputIterator,
|
|
@@ -1068,10 +611,10 @@ namespace boost {
|
|
|
1068
611
|
std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
|
|
1069
612
|
class Allocator = std::allocator<
|
|
1070
613
|
boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
|
|
1071
|
-
class =
|
|
1072
|
-
class =
|
|
1073
|
-
class =
|
|
1074
|
-
class =
|
|
614
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
615
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
616
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
617
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1075
618
|
unordered_map(InputIterator, InputIterator,
|
|
1076
619
|
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
1077
620
|
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
@@ -1080,20 +623,20 @@ namespace boost {
|
|
|
1080
623
|
Allocator>;
|
|
1081
624
|
|
|
1082
625
|
template <class Key, class T,
|
|
1083
|
-
class Hash = boost::hash<
|
|
1084
|
-
class Pred = std::equal_to<
|
|
626
|
+
class Hash = boost::hash<std::remove_const_t<Key> >,
|
|
627
|
+
class Pred = std::equal_to<std::remove_const_t<Key> >,
|
|
1085
628
|
class Allocator = std::allocator<std::pair<const Key, T> >,
|
|
1086
|
-
class =
|
|
1087
|
-
class =
|
|
1088
|
-
class =
|
|
629
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
630
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
631
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1089
632
|
unordered_map(std::initializer_list<std::pair<Key, T> >,
|
|
1090
633
|
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
1091
634
|
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
1092
|
-
-> unordered_map<
|
|
635
|
+
-> unordered_map<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
|
|
1093
636
|
|
|
1094
637
|
template <class InputIterator, class Allocator,
|
|
1095
|
-
class =
|
|
1096
|
-
class =
|
|
638
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
639
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1097
640
|
unordered_map(InputIterator, InputIterator, std::size_t, Allocator)
|
|
1098
641
|
-> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
1099
642
|
boost::unordered::detail::iter_val_t<InputIterator>,
|
|
@@ -1102,8 +645,8 @@ namespace boost {
|
|
|
1102
645
|
Allocator>;
|
|
1103
646
|
|
|
1104
647
|
template <class InputIterator, class Allocator,
|
|
1105
|
-
class =
|
|
1106
|
-
class =
|
|
648
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
649
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1107
650
|
unordered_map(InputIterator, InputIterator, Allocator)
|
|
1108
651
|
-> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
1109
652
|
boost::unordered::detail::iter_val_t<InputIterator>,
|
|
@@ -1112,9 +655,9 @@ namespace boost {
|
|
|
1112
655
|
Allocator>;
|
|
1113
656
|
|
|
1114
657
|
template <class InputIterator, class Hash, class Allocator,
|
|
1115
|
-
class =
|
|
1116
|
-
class =
|
|
1117
|
-
class =
|
|
658
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
659
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
660
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1118
661
|
unordered_map(InputIterator, InputIterator, std::size_t, Hash, Allocator)
|
|
1119
662
|
-> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
1120
663
|
boost::unordered::detail::iter_val_t<InputIterator>, Hash,
|
|
@@ -1122,34 +665,31 @@ namespace boost {
|
|
|
1122
665
|
Allocator>;
|
|
1123
666
|
|
|
1124
667
|
template <class Key, class T, class Allocator,
|
|
1125
|
-
class =
|
|
668
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1126
669
|
unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t,
|
|
1127
|
-
Allocator) -> unordered_map<
|
|
1128
|
-
boost::hash<
|
|
1129
|
-
std::equal_to<
|
|
670
|
+
Allocator) -> unordered_map<std::remove_const_t<Key>, T,
|
|
671
|
+
boost::hash<std::remove_const_t<Key> >,
|
|
672
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1130
673
|
|
|
1131
674
|
template <class Key, class T, class Allocator,
|
|
1132
|
-
class =
|
|
675
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1133
676
|
unordered_map(std::initializer_list<std::pair<Key, T> >, Allocator)
|
|
1134
|
-
-> unordered_map<
|
|
1135
|
-
boost::hash<
|
|
1136
|
-
std::equal_to<
|
|
677
|
+
-> unordered_map<std::remove_const_t<Key>, T,
|
|
678
|
+
boost::hash<std::remove_const_t<Key> >,
|
|
679
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1137
680
|
|
|
1138
681
|
template <class Key, class T, class Hash, class Allocator,
|
|
1139
|
-
class =
|
|
1140
|
-
class =
|
|
682
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
683
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1141
684
|
unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t, Hash,
|
|
1142
|
-
Allocator) -> unordered_map<
|
|
1143
|
-
std::equal_to<
|
|
685
|
+
Allocator) -> unordered_map<std::remove_const_t<Key>, T, Hash,
|
|
686
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1144
687
|
|
|
1145
688
|
#endif
|
|
1146
689
|
|
|
1147
690
|
template <class K, class T, class H, class P, class A>
|
|
1148
691
|
class unordered_multimap
|
|
1149
692
|
{
|
|
1150
|
-
#if defined(BOOST_UNORDERED_USE_MOVE)
|
|
1151
|
-
BOOST_COPYABLE_AND_MOVABLE(unordered_multimap)
|
|
1152
|
-
#endif
|
|
1153
693
|
template <typename, typename, typename, typename, typename>
|
|
1154
694
|
friend class unordered_map;
|
|
1155
695
|
|
|
@@ -1157,9 +697,11 @@ namespace boost {
|
|
|
1157
697
|
typedef K key_type;
|
|
1158
698
|
typedef T mapped_type;
|
|
1159
699
|
typedef std::pair<const K, T> value_type;
|
|
1160
|
-
typedef typename boost::type_identity<H>::type hasher;
|
|
1161
|
-
typedef
|
|
1162
|
-
|
|
700
|
+
typedef typename boost::unordered::detail::type_identity<H>::type hasher;
|
|
701
|
+
typedef
|
|
702
|
+
typename boost::unordered::detail::type_identity<P>::type key_equal;
|
|
703
|
+
typedef typename boost::unordered::detail::type_identity<A>::type
|
|
704
|
+
allocator_type;
|
|
1163
705
|
|
|
1164
706
|
private:
|
|
1165
707
|
typedef boost::unordered::detail::map<A, K, T, H, P> types;
|
|
@@ -1202,29 +744,23 @@ namespace boost {
|
|
|
1202
744
|
|
|
1203
745
|
unordered_multimap(unordered_multimap const&);
|
|
1204
746
|
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
|
|
1208
|
-
BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
|
|
747
|
+
unordered_multimap(unordered_multimap&& other)
|
|
748
|
+
noexcept(table::nothrow_move_constructible)
|
|
1209
749
|
: table_(other.table_, boost::unordered::detail::move_tag())
|
|
1210
750
|
{
|
|
1211
751
|
// The move is done in table_
|
|
1212
752
|
}
|
|
1213
|
-
#endif
|
|
1214
753
|
|
|
1215
754
|
explicit unordered_multimap(allocator_type const&);
|
|
1216
755
|
|
|
1217
756
|
unordered_multimap(unordered_multimap const&, allocator_type const&);
|
|
1218
757
|
|
|
1219
|
-
unordered_multimap(
|
|
1220
|
-
BOOST_RV_REF(unordered_multimap), allocator_type const&);
|
|
758
|
+
unordered_multimap(unordered_multimap&&, allocator_type const&);
|
|
1221
759
|
|
|
1222
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1223
760
|
unordered_multimap(std::initializer_list<value_type>,
|
|
1224
761
|
size_type = boost::unordered::detail::default_bucket_count,
|
|
1225
762
|
const hasher& = hasher(), const key_equal& l = key_equal(),
|
|
1226
763
|
const allocator_type& = allocator_type());
|
|
1227
|
-
#endif
|
|
1228
764
|
|
|
1229
765
|
explicit unordered_multimap(size_type, const allocator_type&);
|
|
1230
766
|
|
|
@@ -1241,7 +777,6 @@ namespace boost {
|
|
|
1241
777
|
unordered_multimap(
|
|
1242
778
|
InputIt, InputIt, size_type, const hasher&, const allocator_type&);
|
|
1243
779
|
|
|
1244
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1245
780
|
unordered_multimap(
|
|
1246
781
|
std::initializer_list<value_type>, const allocator_type&);
|
|
1247
782
|
|
|
@@ -1250,256 +785,93 @@ namespace boost {
|
|
|
1250
785
|
|
|
1251
786
|
unordered_multimap(std::initializer_list<value_type>, size_type,
|
|
1252
787
|
const hasher&, const allocator_type&);
|
|
1253
|
-
#endif
|
|
1254
788
|
|
|
1255
789
|
// Destructor
|
|
1256
790
|
|
|
1257
|
-
~unordered_multimap()
|
|
1258
|
-
|
|
1259
|
-
// Assign
|
|
791
|
+
~unordered_multimap() noexcept;
|
|
1260
792
|
|
|
1261
|
-
|
|
1262
|
-
unordered_multimap& operator=(BOOST_COPY_ASSIGN_REF(unordered_multimap) x)
|
|
1263
|
-
{
|
|
1264
|
-
table_.assign(x.table_, boost::unordered::detail::false_type());
|
|
1265
|
-
return *this;
|
|
1266
|
-
}
|
|
793
|
+
// Assign
|
|
1267
794
|
|
|
1268
|
-
unordered_multimap& operator=(BOOST_RV_REF(unordered_multimap) x)
|
|
1269
|
-
BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
|
|
1270
|
-
boost::is_nothrow_move_assignable<H>::value&&
|
|
1271
|
-
boost::is_nothrow_move_assignable<P>::value)
|
|
1272
|
-
{
|
|
1273
|
-
table_.move_assign(x.table_, boost::unordered::detail::false_type());
|
|
1274
|
-
return *this;
|
|
1275
|
-
}
|
|
1276
|
-
#else
|
|
1277
795
|
unordered_multimap& operator=(unordered_multimap const& x)
|
|
1278
796
|
{
|
|
1279
|
-
table_.assign(x.table_,
|
|
797
|
+
table_.assign(x.table_, std::false_type());
|
|
1280
798
|
return *this;
|
|
1281
799
|
}
|
|
1282
800
|
|
|
1283
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
1284
801
|
unordered_multimap& operator=(unordered_multimap&& x)
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
802
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
803
|
+
std::is_nothrow_move_assignable<H>::value&&
|
|
804
|
+
std::is_nothrow_move_assignable<P>::value)
|
|
1288
805
|
{
|
|
1289
|
-
table_.move_assign(x.table_,
|
|
806
|
+
table_.move_assign(x.table_, std::false_type());
|
|
1290
807
|
return *this;
|
|
1291
808
|
}
|
|
1292
|
-
#endif
|
|
1293
|
-
#endif
|
|
1294
809
|
|
|
1295
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1296
810
|
unordered_multimap& operator=(std::initializer_list<value_type>);
|
|
1297
|
-
#endif
|
|
1298
811
|
|
|
1299
|
-
allocator_type get_allocator() const
|
|
812
|
+
allocator_type get_allocator() const noexcept
|
|
1300
813
|
{
|
|
1301
|
-
return table_.node_alloc();
|
|
814
|
+
return allocator_type(table_.node_alloc());
|
|
1302
815
|
}
|
|
1303
816
|
|
|
1304
817
|
// iterators
|
|
1305
818
|
|
|
1306
|
-
iterator begin()
|
|
819
|
+
iterator begin() noexcept { return iterator(table_.begin()); }
|
|
1307
820
|
|
|
1308
|
-
const_iterator begin() const
|
|
821
|
+
const_iterator begin() const noexcept
|
|
1309
822
|
{
|
|
1310
823
|
return const_iterator(table_.begin());
|
|
1311
824
|
}
|
|
1312
825
|
|
|
1313
|
-
iterator end()
|
|
826
|
+
iterator end() noexcept { return iterator(); }
|
|
1314
827
|
|
|
1315
|
-
const_iterator end() const
|
|
828
|
+
const_iterator end() const noexcept { return const_iterator(); }
|
|
1316
829
|
|
|
1317
|
-
const_iterator cbegin() const
|
|
830
|
+
const_iterator cbegin() const noexcept
|
|
1318
831
|
{
|
|
1319
832
|
return const_iterator(table_.begin());
|
|
1320
833
|
}
|
|
1321
834
|
|
|
1322
|
-
const_iterator cend() const
|
|
835
|
+
const_iterator cend() const noexcept { return const_iterator(); }
|
|
1323
836
|
|
|
1324
837
|
// size and capacity
|
|
1325
838
|
|
|
1326
|
-
BOOST_ATTRIBUTE_NODISCARD bool empty() const
|
|
839
|
+
BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
|
|
1327
840
|
{
|
|
1328
841
|
return table_.size_ == 0;
|
|
1329
842
|
}
|
|
1330
843
|
|
|
1331
|
-
size_type size() const
|
|
1332
|
-
|
|
1333
|
-
size_type max_size() const BOOST_NOEXCEPT;
|
|
1334
|
-
|
|
1335
|
-
// emplace
|
|
1336
|
-
|
|
1337
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
1338
|
-
|
|
1339
|
-
template <class... Args> iterator emplace(BOOST_FWD_REF(Args)... args)
|
|
1340
|
-
{
|
|
1341
|
-
return iterator(table_.emplace_equiv(
|
|
1342
|
-
boost::unordered::detail::func::construct_node_from_args(
|
|
1343
|
-
table_.node_alloc(), boost::forward<Args>(args)...)));
|
|
1344
|
-
}
|
|
1345
|
-
|
|
1346
|
-
#else
|
|
844
|
+
size_type size() const noexcept { return table_.size_; }
|
|
1347
845
|
|
|
1348
|
-
|
|
846
|
+
size_type max_size() const noexcept;
|
|
1349
847
|
|
|
1350
|
-
//
|
|
1351
|
-
// the container is instantiated with a value type that
|
|
1352
|
-
// doesn't have a default constructor.
|
|
1353
|
-
|
|
1354
|
-
iterator emplace(boost::unordered::detail::empty_emplace =
|
|
1355
|
-
boost::unordered::detail::empty_emplace(),
|
|
1356
|
-
value_type v = value_type())
|
|
1357
|
-
{
|
|
1358
|
-
return this->emplace(boost::move(v));
|
|
1359
|
-
}
|
|
1360
|
-
|
|
1361
|
-
#endif
|
|
848
|
+
// emplace
|
|
1362
849
|
|
|
1363
|
-
template <
|
|
850
|
+
template <class... Args> iterator emplace(Args&&... args)
|
|
1364
851
|
{
|
|
1365
852
|
return iterator(table_.emplace_equiv(
|
|
1366
853
|
boost::unordered::detail::func::construct_node_from_args(
|
|
1367
|
-
table_.node_alloc(),
|
|
1368
|
-
boost::forward<A0>(a0)))));
|
|
854
|
+
table_.node_alloc(), std::forward<Args>(args)...)));
|
|
1369
855
|
}
|
|
1370
856
|
|
|
1371
|
-
template <typename A0, typename A1>
|
|
1372
|
-
iterator emplace(BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
1373
|
-
{
|
|
1374
|
-
return iterator(table_.emplace_equiv(
|
|
1375
|
-
boost::unordered::detail::func::construct_node_from_args(
|
|
1376
|
-
table_.node_alloc(),
|
|
1377
|
-
boost::unordered::detail::create_emplace_args(
|
|
1378
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)))));
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
|
-
template <typename A0, typename A1, typename A2>
|
|
1382
|
-
iterator emplace(
|
|
1383
|
-
BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
1384
|
-
{
|
|
1385
|
-
return iterator(table_.emplace_equiv(
|
|
1386
|
-
boost::unordered::detail::func::construct_node_from_args(
|
|
1387
|
-
table_.node_alloc(),
|
|
1388
|
-
boost::unordered::detail::create_emplace_args(
|
|
1389
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1),
|
|
1390
|
-
boost::forward<A2>(a2)))));
|
|
1391
|
-
}
|
|
1392
|
-
|
|
1393
|
-
#endif
|
|
1394
|
-
|
|
1395
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
1396
|
-
|
|
1397
857
|
template <class... Args>
|
|
1398
|
-
iterator emplace_hint(const_iterator hint,
|
|
858
|
+
iterator emplace_hint(const_iterator hint, Args&&... args)
|
|
1399
859
|
{
|
|
1400
860
|
return iterator(table_.emplace_hint_equiv(
|
|
1401
861
|
hint, boost::unordered::detail::func::construct_node_from_args(
|
|
1402
|
-
table_.node_alloc(),
|
|
862
|
+
table_.node_alloc(), std::forward<Args>(args)...)));
|
|
1403
863
|
}
|
|
1404
864
|
|
|
1405
|
-
#else
|
|
1406
|
-
|
|
1407
|
-
#if !BOOST_UNORDERED_SUN_WORKAROUNDS1
|
|
1408
|
-
|
|
1409
|
-
iterator emplace_hint(const_iterator hint,
|
|
1410
|
-
boost::unordered::detail::empty_emplace =
|
|
1411
|
-
boost::unordered::detail::empty_emplace(),
|
|
1412
|
-
value_type v = value_type())
|
|
1413
|
-
{
|
|
1414
|
-
return this->emplace_hint(hint, boost::move(v));
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
#endif
|
|
1418
|
-
|
|
1419
|
-
template <typename A0>
|
|
1420
|
-
iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
|
|
1421
|
-
{
|
|
1422
|
-
return iterator(table_.emplace_hint_equiv(hint,
|
|
1423
|
-
boost::unordered::detail::func::construct_node_from_args(
|
|
1424
|
-
table_.node_alloc(), boost::unordered::detail::create_emplace_args(
|
|
1425
|
-
boost::forward<A0>(a0)))));
|
|
1426
|
-
}
|
|
1427
|
-
|
|
1428
|
-
template <typename A0, typename A1>
|
|
1429
|
-
iterator emplace_hint(
|
|
1430
|
-
const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
|
|
1431
|
-
{
|
|
1432
|
-
return iterator(table_.emplace_hint_equiv(
|
|
1433
|
-
hint, boost::unordered::detail::func::construct_node_from_args(
|
|
1434
|
-
table_.node_alloc(),
|
|
1435
|
-
boost::unordered::detail::create_emplace_args(
|
|
1436
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1)))));
|
|
1437
|
-
}
|
|
1438
|
-
|
|
1439
|
-
template <typename A0, typename A1, typename A2>
|
|
1440
|
-
iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
|
|
1441
|
-
BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
|
|
1442
|
-
{
|
|
1443
|
-
return iterator(table_.emplace_hint_equiv(
|
|
1444
|
-
hint, boost::unordered::detail::func::construct_node_from_args(
|
|
1445
|
-
table_.node_alloc(),
|
|
1446
|
-
boost::unordered::detail::create_emplace_args(
|
|
1447
|
-
boost::forward<A0>(a0), boost::forward<A1>(a1),
|
|
1448
|
-
boost::forward<A2>(a2)))));
|
|
1449
|
-
}
|
|
1450
|
-
|
|
1451
|
-
#endif
|
|
1452
|
-
|
|
1453
|
-
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
1454
|
-
|
|
1455
|
-
#define BOOST_UNORDERED_EMPLACE(z, n, _) \
|
|
1456
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
1457
|
-
iterator emplace(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
1458
|
-
{ \
|
|
1459
|
-
return iterator(table_.emplace_equiv( \
|
|
1460
|
-
boost::unordered::detail::func::construct_node_from_args( \
|
|
1461
|
-
table_.node_alloc(), \
|
|
1462
|
-
boost::unordered::detail::create_emplace_args( \
|
|
1463
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
|
|
1464
|
-
} \
|
|
1465
|
-
\
|
|
1466
|
-
template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
|
|
1467
|
-
iterator emplace_hint( \
|
|
1468
|
-
const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
|
|
1469
|
-
{ \
|
|
1470
|
-
return iterator(table_.emplace_hint_equiv( \
|
|
1471
|
-
hint, boost::unordered::detail::func::construct_node_from_args( \
|
|
1472
|
-
table_.node_alloc(), \
|
|
1473
|
-
boost::unordered::detail::create_emplace_args( \
|
|
1474
|
-
BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
|
|
1475
|
-
}
|
|
1476
|
-
|
|
1477
|
-
BOOST_UNORDERED_EMPLACE(1, 4, _)
|
|
1478
|
-
BOOST_UNORDERED_EMPLACE(1, 5, _)
|
|
1479
|
-
BOOST_UNORDERED_EMPLACE(1, 6, _)
|
|
1480
|
-
BOOST_UNORDERED_EMPLACE(1, 7, _)
|
|
1481
|
-
BOOST_UNORDERED_EMPLACE(1, 8, _)
|
|
1482
|
-
BOOST_UNORDERED_EMPLACE(1, 9, _)
|
|
1483
|
-
BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
|
|
1484
|
-
BOOST_UNORDERED_EMPLACE, _)
|
|
1485
|
-
|
|
1486
|
-
#undef BOOST_UNORDERED_EMPLACE
|
|
1487
|
-
|
|
1488
|
-
#endif
|
|
1489
|
-
|
|
1490
865
|
iterator insert(value_type const& x) { return this->emplace(x); }
|
|
1491
866
|
|
|
1492
|
-
iterator insert(
|
|
1493
|
-
{
|
|
1494
|
-
return this->emplace(boost::move(x));
|
|
1495
|
-
}
|
|
867
|
+
iterator insert(value_type&& x) { return this->emplace(std::move(x)); }
|
|
1496
868
|
|
|
1497
869
|
template <class P2>
|
|
1498
|
-
typename boost::enable_if<
|
|
1499
|
-
|
|
1500
|
-
|
|
870
|
+
typename boost::enable_if<std::is_constructible<value_type, P2&&>,
|
|
871
|
+
iterator>::type
|
|
872
|
+
insert(P2&& obj)
|
|
1501
873
|
{
|
|
1502
|
-
return this->emplace(
|
|
874
|
+
return this->emplace(std::forward<P2>(obj));
|
|
1503
875
|
}
|
|
1504
876
|
|
|
1505
877
|
iterator insert(const_iterator hint, value_type const& x)
|
|
@@ -1507,25 +879,22 @@ namespace boost {
|
|
|
1507
879
|
return this->emplace_hint(hint, x);
|
|
1508
880
|
}
|
|
1509
881
|
|
|
1510
|
-
iterator insert(const_iterator hint,
|
|
882
|
+
iterator insert(const_iterator hint, value_type&& x)
|
|
1511
883
|
{
|
|
1512
|
-
return this->emplace_hint(hint,
|
|
884
|
+
return this->emplace_hint(hint, std::move(x));
|
|
1513
885
|
}
|
|
1514
886
|
|
|
1515
887
|
template <class P2>
|
|
1516
|
-
typename boost::enable_if<
|
|
1517
|
-
boost::is_constructible<value_type, BOOST_RV_REF(P2)>,
|
|
888
|
+
typename boost::enable_if<std::is_constructible<value_type, P2&&>,
|
|
1518
889
|
iterator>::type
|
|
1519
|
-
insert(const_iterator hint,
|
|
890
|
+
insert(const_iterator hint, P2&& obj)
|
|
1520
891
|
{
|
|
1521
|
-
return this->emplace_hint(hint,
|
|
892
|
+
return this->emplace_hint(hint, std::forward<P2>(obj));
|
|
1522
893
|
}
|
|
1523
894
|
|
|
1524
895
|
template <class InputIt> void insert(InputIt, InputIt);
|
|
1525
896
|
|
|
1526
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1527
897
|
void insert(std::initializer_list<value_type>);
|
|
1528
|
-
#endif
|
|
1529
898
|
|
|
1530
899
|
// extract
|
|
1531
900
|
|
|
@@ -1549,26 +918,16 @@ namespace boost {
|
|
|
1549
918
|
return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
|
|
1550
919
|
}
|
|
1551
920
|
|
|
1552
|
-
iterator insert(
|
|
921
|
+
iterator insert(node_type&& np)
|
|
1553
922
|
{
|
|
1554
923
|
return table_.move_insert_node_type_equiv(np);
|
|
1555
924
|
}
|
|
1556
925
|
|
|
1557
|
-
iterator insert(const_iterator hint,
|
|
926
|
+
iterator insert(const_iterator hint, node_type&& np)
|
|
1558
927
|
{
|
|
1559
928
|
return table_.move_insert_node_type_with_hint_equiv(hint, np);
|
|
1560
929
|
}
|
|
1561
930
|
|
|
1562
|
-
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
|
|
1563
|
-
(BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
|
|
1564
|
-
private:
|
|
1565
|
-
// Note: Use r-value node_type to insert.
|
|
1566
|
-
iterator insert(node_type&);
|
|
1567
|
-
iterator insert(const_iterator, node_type& np);
|
|
1568
|
-
|
|
1569
|
-
public:
|
|
1570
|
-
#endif
|
|
1571
|
-
|
|
1572
931
|
iterator erase(iterator);
|
|
1573
932
|
iterator erase(const_iterator);
|
|
1574
933
|
size_type erase(const key_type&);
|
|
@@ -1578,9 +937,9 @@ namespace boost {
|
|
|
1578
937
|
typename boost::enable_if_c<
|
|
1579
938
|
detail::transparent_non_iterable<Key, unordered_multimap>::value,
|
|
1580
939
|
size_type>::type
|
|
1581
|
-
erase(
|
|
940
|
+
erase(Key&& k)
|
|
1582
941
|
{
|
|
1583
|
-
return table_.erase_key_equiv_impl(
|
|
942
|
+
return table_.erase_key_equiv_impl(std::forward<Key>(k));
|
|
1584
943
|
}
|
|
1585
944
|
|
|
1586
945
|
BOOST_UNORDERED_DEPRECATED("Use erase instead")
|
|
@@ -1589,26 +948,22 @@ namespace boost {
|
|
|
1589
948
|
void erase_return_void(const_iterator it) { erase(it); }
|
|
1590
949
|
|
|
1591
950
|
void swap(unordered_multimap&)
|
|
1592
|
-
|
|
1593
|
-
boost::is_nothrow_swappable<H>::value&&
|
|
1594
|
-
boost::is_nothrow_swappable<P>::value);
|
|
1595
|
-
void clear()
|
|
951
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
952
|
+
boost::unordered::detail::is_nothrow_swappable<H>::value&&
|
|
953
|
+
boost::unordered::detail::is_nothrow_swappable<P>::value);
|
|
954
|
+
void clear() noexcept { table_.clear_impl(); }
|
|
1596
955
|
|
|
1597
956
|
template <typename H2, typename P2>
|
|
1598
957
|
void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
|
|
1599
958
|
|
|
1600
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
1601
959
|
template <typename H2, typename P2>
|
|
1602
960
|
void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
|
|
1603
|
-
#endif
|
|
1604
961
|
|
|
1605
962
|
template <typename H2, typename P2>
|
|
1606
963
|
void merge(boost::unordered_map<K, T, H2, P2, A>& source);
|
|
1607
964
|
|
|
1608
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
1609
965
|
template <typename H2, typename P2>
|
|
1610
966
|
void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
|
|
1611
|
-
#endif
|
|
1612
967
|
|
|
1613
968
|
// observers
|
|
1614
969
|
|
|
@@ -1694,12 +1049,9 @@ namespace boost {
|
|
|
1694
1049
|
|
|
1695
1050
|
// bucket interface
|
|
1696
1051
|
|
|
1697
|
-
size_type bucket_count() const
|
|
1698
|
-
{
|
|
1699
|
-
return table_.bucket_count();
|
|
1700
|
-
}
|
|
1052
|
+
size_type bucket_count() const noexcept { return table_.bucket_count(); }
|
|
1701
1053
|
|
|
1702
|
-
size_type max_bucket_count() const
|
|
1054
|
+
size_type max_bucket_count() const noexcept
|
|
1703
1055
|
{
|
|
1704
1056
|
return table_.max_bucket_count();
|
|
1705
1057
|
}
|
|
@@ -1714,9 +1066,9 @@ namespace boost {
|
|
|
1714
1066
|
template <class Key>
|
|
1715
1067
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
1716
1068
|
size_type>::type
|
|
1717
|
-
bucket(
|
|
1069
|
+
bucket(Key&& k) const
|
|
1718
1070
|
{
|
|
1719
|
-
return table_.hash_to_bucket(table_.hash(
|
|
1071
|
+
return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
|
|
1720
1072
|
}
|
|
1721
1073
|
|
|
1722
1074
|
local_iterator begin(size_type n)
|
|
@@ -1748,9 +1100,9 @@ namespace boost {
|
|
|
1748
1100
|
|
|
1749
1101
|
// hash policy
|
|
1750
1102
|
|
|
1751
|
-
float load_factor() const
|
|
1752
|
-
float max_load_factor() const
|
|
1753
|
-
void max_load_factor(float)
|
|
1103
|
+
float load_factor() const noexcept;
|
|
1104
|
+
float max_load_factor() const noexcept { return table_.mlf_; }
|
|
1105
|
+
void max_load_factor(float) noexcept;
|
|
1754
1106
|
void rehash(size_type);
|
|
1755
1107
|
void reserve(size_type);
|
|
1756
1108
|
|
|
@@ -1762,6 +1114,13 @@ namespace boost {
|
|
|
1762
1114
|
#endif
|
|
1763
1115
|
}; // class template unordered_multimap
|
|
1764
1116
|
|
|
1117
|
+
template <class Archive, class K, class T, class H, class P, class A>
|
|
1118
|
+
void serialize(
|
|
1119
|
+
Archive& ar, unordered_multimap<K, T, H, P, A>& m, unsigned int version)
|
|
1120
|
+
{
|
|
1121
|
+
detail::serialize_fca_container(ar, m, version);
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1765
1124
|
#if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
|
|
1766
1125
|
|
|
1767
1126
|
template <class InputIterator,
|
|
@@ -1771,10 +1130,10 @@ namespace boost {
|
|
|
1771
1130
|
std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
|
|
1772
1131
|
class Allocator = std::allocator<
|
|
1773
1132
|
boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
|
|
1774
|
-
class =
|
|
1775
|
-
class =
|
|
1776
|
-
class =
|
|
1777
|
-
class =
|
|
1133
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
1134
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1135
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
1136
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1778
1137
|
unordered_multimap(InputIterator, InputIterator,
|
|
1779
1138
|
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
1780
1139
|
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
@@ -1783,21 +1142,20 @@ namespace boost {
|
|
|
1783
1142
|
Allocator>;
|
|
1784
1143
|
|
|
1785
1144
|
template <class Key, class T,
|
|
1786
|
-
class Hash = boost::hash<
|
|
1787
|
-
class Pred = std::equal_to<
|
|
1145
|
+
class Hash = boost::hash<std::remove_const_t<Key> >,
|
|
1146
|
+
class Pred = std::equal_to<std::remove_const_t<Key> >,
|
|
1788
1147
|
class Allocator = std::allocator<std::pair<const Key, T> >,
|
|
1789
|
-
class =
|
|
1790
|
-
class =
|
|
1791
|
-
class =
|
|
1148
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1149
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
1150
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1792
1151
|
unordered_multimap(std::initializer_list<std::pair<Key, T> >,
|
|
1793
1152
|
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
1794
1153
|
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
1795
|
-
-> unordered_multimap<
|
|
1796
|
-
Allocator>;
|
|
1154
|
+
-> unordered_multimap<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
|
|
1797
1155
|
|
|
1798
1156
|
template <class InputIterator, class Allocator,
|
|
1799
|
-
class =
|
|
1800
|
-
class =
|
|
1157
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
1158
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1801
1159
|
unordered_multimap(InputIterator, InputIterator, std::size_t, Allocator)
|
|
1802
1160
|
-> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
1803
1161
|
boost::unordered::detail::iter_val_t<InputIterator>,
|
|
@@ -1806,8 +1164,8 @@ namespace boost {
|
|
|
1806
1164
|
Allocator>;
|
|
1807
1165
|
|
|
1808
1166
|
template <class InputIterator, class Allocator,
|
|
1809
|
-
class =
|
|
1810
|
-
class =
|
|
1167
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
1168
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1811
1169
|
unordered_multimap(InputIterator, InputIterator, Allocator)
|
|
1812
1170
|
-> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
1813
1171
|
boost::unordered::detail::iter_val_t<InputIterator>,
|
|
@@ -1816,9 +1174,9 @@ namespace boost {
|
|
|
1816
1174
|
Allocator>;
|
|
1817
1175
|
|
|
1818
1176
|
template <class InputIterator, class Hash, class Allocator,
|
|
1819
|
-
class =
|
|
1820
|
-
class =
|
|
1821
|
-
class =
|
|
1177
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1178
|
+
class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
|
|
1179
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1822
1180
|
unordered_multimap(
|
|
1823
1181
|
InputIterator, InputIterator, std::size_t, Hash, Allocator)
|
|
1824
1182
|
-> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
|
|
@@ -1827,25 +1185,25 @@ namespace boost {
|
|
|
1827
1185
|
Allocator>;
|
|
1828
1186
|
|
|
1829
1187
|
template <class Key, class T, class Allocator,
|
|
1830
|
-
class =
|
|
1188
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1831
1189
|
unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
|
|
1832
|
-
Allocator) -> unordered_multimap<
|
|
1833
|
-
boost::hash<
|
|
1834
|
-
std::equal_to<
|
|
1190
|
+
Allocator) -> unordered_multimap<std::remove_const_t<Key>, T,
|
|
1191
|
+
boost::hash<std::remove_const_t<Key> >,
|
|
1192
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1835
1193
|
|
|
1836
1194
|
template <class Key, class T, class Allocator,
|
|
1837
|
-
class =
|
|
1195
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1838
1196
|
unordered_multimap(std::initializer_list<std::pair<Key, T> >, Allocator)
|
|
1839
|
-
-> unordered_multimap<
|
|
1840
|
-
boost::hash<
|
|
1841
|
-
std::equal_to<
|
|
1197
|
+
-> unordered_multimap<std::remove_const_t<Key>, T,
|
|
1198
|
+
boost::hash<std::remove_const_t<Key> >,
|
|
1199
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1842
1200
|
|
|
1843
1201
|
template <class Key, class T, class Hash, class Allocator,
|
|
1844
|
-
class =
|
|
1845
|
-
class =
|
|
1202
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1203
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1846
1204
|
unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
|
|
1847
|
-
Hash, Allocator) -> unordered_multimap<
|
|
1848
|
-
|
|
1205
|
+
Hash, Allocator) -> unordered_multimap<std::remove_const_t<Key>, T, Hash,
|
|
1206
|
+
std::equal_to<std::remove_const_t<Key> >, Allocator>;
|
|
1849
1207
|
|
|
1850
1208
|
#endif
|
|
1851
1209
|
|
|
@@ -1880,8 +1238,7 @@ namespace boost {
|
|
|
1880
1238
|
select_on_container_copy_construction(other.get_allocator()))
|
|
1881
1239
|
{
|
|
1882
1240
|
if (other.size()) {
|
|
1883
|
-
table_.copy_buckets(
|
|
1884
|
-
other.table_, boost::unordered::detail::true_type());
|
|
1241
|
+
table_.copy_buckets(other.table_, std::true_type());
|
|
1885
1242
|
}
|
|
1886
1243
|
}
|
|
1887
1244
|
|
|
@@ -1898,21 +1255,18 @@ namespace boost {
|
|
|
1898
1255
|
: table_(other.table_, a)
|
|
1899
1256
|
{
|
|
1900
1257
|
if (other.table_.size_) {
|
|
1901
|
-
table_.copy_buckets(
|
|
1902
|
-
other.table_, boost::unordered::detail::true_type());
|
|
1258
|
+
table_.copy_buckets(other.table_, std::true_type());
|
|
1903
1259
|
}
|
|
1904
1260
|
}
|
|
1905
1261
|
|
|
1906
1262
|
template <class K, class T, class H, class P, class A>
|
|
1907
1263
|
unordered_map<K, T, H, P, A>::unordered_map(
|
|
1908
|
-
|
|
1264
|
+
unordered_map&& other, allocator_type const& a)
|
|
1909
1265
|
: table_(other.table_, a, boost::unordered::detail::move_tag())
|
|
1910
1266
|
{
|
|
1911
1267
|
table_.move_construct_buckets(other.table_);
|
|
1912
1268
|
}
|
|
1913
1269
|
|
|
1914
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1915
|
-
|
|
1916
1270
|
template <class K, class T, class H, class P, class A>
|
|
1917
1271
|
unordered_map<K, T, H, P, A>::unordered_map(
|
|
1918
1272
|
std::initializer_list<value_type> list, size_type n, const hasher& hf,
|
|
@@ -1924,8 +1278,6 @@ namespace boost {
|
|
|
1924
1278
|
this->insert(list.begin(), list.end());
|
|
1925
1279
|
}
|
|
1926
1280
|
|
|
1927
|
-
#endif
|
|
1928
|
-
|
|
1929
1281
|
template <class K, class T, class H, class P, class A>
|
|
1930
1282
|
unordered_map<K, T, H, P, A>::unordered_map(
|
|
1931
1283
|
size_type n, const allocator_type& a)
|
|
@@ -1971,8 +1323,6 @@ namespace boost {
|
|
|
1971
1323
|
this->insert(f, l);
|
|
1972
1324
|
}
|
|
1973
1325
|
|
|
1974
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1975
|
-
|
|
1976
1326
|
template <class K, class T, class H, class P, class A>
|
|
1977
1327
|
unordered_map<K, T, H, P, A>::unordered_map(
|
|
1978
1328
|
std::initializer_list<value_type> list, const allocator_type& a)
|
|
@@ -2005,15 +1355,11 @@ namespace boost {
|
|
|
2005
1355
|
this->insert(list.begin(), list.end());
|
|
2006
1356
|
}
|
|
2007
1357
|
|
|
2008
|
-
#endif
|
|
2009
|
-
|
|
2010
1358
|
template <class K, class T, class H, class P, class A>
|
|
2011
|
-
unordered_map<K, T, H, P, A>::~unordered_map()
|
|
1359
|
+
unordered_map<K, T, H, P, A>::~unordered_map() noexcept
|
|
2012
1360
|
{
|
|
2013
1361
|
}
|
|
2014
1362
|
|
|
2015
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2016
|
-
|
|
2017
1363
|
template <class K, class T, class H, class P, class A>
|
|
2018
1364
|
unordered_map<K, T, H, P, A>& unordered_map<K, T, H, P, A>::operator=(
|
|
2019
1365
|
std::initializer_list<value_type> list)
|
|
@@ -2023,12 +1369,10 @@ namespace boost {
|
|
|
2023
1369
|
return *this;
|
|
2024
1370
|
}
|
|
2025
1371
|
|
|
2026
|
-
#endif
|
|
2027
|
-
|
|
2028
1372
|
// size and capacity
|
|
2029
1373
|
|
|
2030
1374
|
template <class K, class T, class H, class P, class A>
|
|
2031
|
-
std::size_t unordered_map<K, T, H, P, A>::max_size() const
|
|
1375
|
+
std::size_t unordered_map<K, T, H, P, A>::max_size() const noexcept
|
|
2032
1376
|
{
|
|
2033
1377
|
using namespace std;
|
|
2034
1378
|
|
|
@@ -2051,14 +1395,12 @@ namespace boost {
|
|
|
2051
1395
|
}
|
|
2052
1396
|
}
|
|
2053
1397
|
|
|
2054
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2055
1398
|
template <class K, class T, class H, class P, class A>
|
|
2056
1399
|
void unordered_map<K, T, H, P, A>::insert(
|
|
2057
1400
|
std::initializer_list<value_type> list)
|
|
2058
1401
|
{
|
|
2059
1402
|
this->insert(list.begin(), list.end());
|
|
2060
1403
|
}
|
|
2061
|
-
#endif
|
|
2062
1404
|
|
|
2063
1405
|
template <class K, class T, class H, class P, class A>
|
|
2064
1406
|
typename unordered_map<K, T, H, P, A>::iterator
|
|
@@ -2091,9 +1433,9 @@ namespace boost {
|
|
|
2091
1433
|
|
|
2092
1434
|
template <class K, class T, class H, class P, class A>
|
|
2093
1435
|
void unordered_map<K, T, H, P, A>::swap(unordered_map& other)
|
|
2094
|
-
|
|
2095
|
-
boost::is_nothrow_swappable<H>::value&&
|
|
2096
|
-
boost::is_nothrow_swappable<P>::value)
|
|
1436
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
1437
|
+
boost::unordered::detail::is_nothrow_swappable<H>::value&&
|
|
1438
|
+
boost::unordered::detail::is_nothrow_swappable<P>::value)
|
|
2097
1439
|
{
|
|
2098
1440
|
table_.swap(other.table_);
|
|
2099
1441
|
}
|
|
@@ -2106,7 +1448,6 @@ namespace boost {
|
|
|
2106
1448
|
table_.merge_unique(source.table_);
|
|
2107
1449
|
}
|
|
2108
1450
|
|
|
2109
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
2110
1451
|
template <class K, class T, class H, class P, class A>
|
|
2111
1452
|
template <typename H2, typename P2>
|
|
2112
1453
|
void unordered_map<K, T, H, P, A>::merge(
|
|
@@ -2114,7 +1455,6 @@ namespace boost {
|
|
|
2114
1455
|
{
|
|
2115
1456
|
table_.merge_unique(source.table_);
|
|
2116
1457
|
}
|
|
2117
|
-
#endif
|
|
2118
1458
|
|
|
2119
1459
|
template <class K, class T, class H, class P, class A>
|
|
2120
1460
|
template <typename H2, typename P2>
|
|
@@ -2124,7 +1464,6 @@ namespace boost {
|
|
|
2124
1464
|
table_.merge_unique(source.table_);
|
|
2125
1465
|
}
|
|
2126
1466
|
|
|
2127
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
2128
1467
|
template <class K, class T, class H, class P, class A>
|
|
2129
1468
|
template <typename H2, typename P2>
|
|
2130
1469
|
void unordered_map<K, T, H, P, A>::merge(
|
|
@@ -2132,7 +1471,6 @@ namespace boost {
|
|
|
2132
1471
|
{
|
|
2133
1472
|
table_.merge_unique(source.table_);
|
|
2134
1473
|
}
|
|
2135
|
-
#endif
|
|
2136
1474
|
|
|
2137
1475
|
// observers
|
|
2138
1476
|
|
|
@@ -2221,25 +1559,25 @@ namespace boost {
|
|
|
2221
1559
|
|
|
2222
1560
|
template <class K, class T, class H, class P, class A>
|
|
2223
1561
|
typename unordered_map<K, T, H, P, A>::mapped_type&
|
|
2224
|
-
|
|
1562
|
+
unordered_map<K, T, H, P, A>::operator[](const key_type& k)
|
|
2225
1563
|
{
|
|
2226
1564
|
return table_.try_emplace_unique(k).first->second;
|
|
2227
1565
|
}
|
|
2228
1566
|
|
|
2229
1567
|
template <class K, class T, class H, class P, class A>
|
|
2230
1568
|
typename unordered_map<K, T, H, P, A>::mapped_type&
|
|
2231
|
-
|
|
1569
|
+
unordered_map<K, T, H, P, A>::operator[](key_type&& k)
|
|
2232
1570
|
{
|
|
2233
|
-
return table_.try_emplace_unique(
|
|
1571
|
+
return table_.try_emplace_unique(std::move(k)).first->second;
|
|
2234
1572
|
}
|
|
2235
1573
|
|
|
2236
1574
|
template <class K, class T, class H, class P, class A>
|
|
2237
1575
|
template <class Key>
|
|
2238
1576
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
2239
1577
|
typename unordered_map<K, T, H, P, A>::mapped_type&>::type
|
|
2240
|
-
unordered_map<K, T, H, P, A>::operator[](
|
|
1578
|
+
unordered_map<K, T, H, P, A>::operator[](Key&& k)
|
|
2241
1579
|
{
|
|
2242
|
-
return table_.try_emplace_unique(
|
|
1580
|
+
return table_.try_emplace_unique(std::forward<Key>(k)).first->second;
|
|
2243
1581
|
}
|
|
2244
1582
|
|
|
2245
1583
|
template <class K, class T, class H, class P, class A>
|
|
@@ -2254,8 +1592,8 @@ namespace boost {
|
|
|
2254
1592
|
return p->value().second;
|
|
2255
1593
|
}
|
|
2256
1594
|
|
|
2257
|
-
boost::
|
|
2258
|
-
|
|
1595
|
+
boost::unordered::detail::throw_out_of_range(
|
|
1596
|
+
"Unable to find key in unordered_map.");
|
|
2259
1597
|
}
|
|
2260
1598
|
|
|
2261
1599
|
template <class K, class T, class H, class P, class A>
|
|
@@ -2270,44 +1608,44 @@ namespace boost {
|
|
|
2270
1608
|
return p->value().second;
|
|
2271
1609
|
}
|
|
2272
1610
|
|
|
2273
|
-
boost::
|
|
2274
|
-
|
|
1611
|
+
boost::unordered::detail::throw_out_of_range(
|
|
1612
|
+
"Unable to find key in unordered_map.");
|
|
2275
1613
|
}
|
|
2276
1614
|
|
|
2277
1615
|
template <class K, class T, class H, class P, class A>
|
|
2278
1616
|
template <class Key>
|
|
2279
1617
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
2280
1618
|
typename unordered_map<K, T, H, P, A>::mapped_type&>::type
|
|
2281
|
-
unordered_map<K, T, H, P, A>::at(
|
|
1619
|
+
unordered_map<K, T, H, P, A>::at(Key&& k)
|
|
2282
1620
|
{
|
|
2283
1621
|
typedef typename table::node_pointer node_pointer;
|
|
2284
1622
|
|
|
2285
1623
|
if (table_.size_) {
|
|
2286
|
-
node_pointer p = table_.find_node(
|
|
1624
|
+
node_pointer p = table_.find_node(std::forward<Key>(k));
|
|
2287
1625
|
if (p)
|
|
2288
1626
|
return p->value().second;
|
|
2289
1627
|
}
|
|
2290
1628
|
|
|
2291
|
-
boost::
|
|
2292
|
-
|
|
1629
|
+
boost::unordered::detail::throw_out_of_range(
|
|
1630
|
+
"Unable to find key in unordered_map.");
|
|
2293
1631
|
}
|
|
2294
1632
|
|
|
2295
1633
|
template <class K, class T, class H, class P, class A>
|
|
2296
1634
|
template <class Key>
|
|
2297
1635
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
|
2298
1636
|
typename unordered_map<K, T, H, P, A>::mapped_type const&>::type
|
|
2299
|
-
unordered_map<K, T, H, P, A>::at(
|
|
1637
|
+
unordered_map<K, T, H, P, A>::at(Key&& k) const
|
|
2300
1638
|
{
|
|
2301
1639
|
typedef typename table::node_pointer node_pointer;
|
|
2302
1640
|
|
|
2303
1641
|
if (table_.size_) {
|
|
2304
|
-
node_pointer p = table_.find_node(
|
|
1642
|
+
node_pointer p = table_.find_node(std::forward<Key>(k));
|
|
2305
1643
|
if (p)
|
|
2306
1644
|
return p->value().second;
|
|
2307
1645
|
}
|
|
2308
1646
|
|
|
2309
|
-
boost::
|
|
2310
|
-
|
|
1647
|
+
boost::unordered::detail::throw_out_of_range(
|
|
1648
|
+
"Unable to find key in unordered_map.");
|
|
2311
1649
|
}
|
|
2312
1650
|
|
|
2313
1651
|
template <class K, class T, class H, class P, class A>
|
|
@@ -2320,7 +1658,7 @@ namespace boost {
|
|
|
2320
1658
|
// hash policy
|
|
2321
1659
|
|
|
2322
1660
|
template <class K, class T, class H, class P, class A>
|
|
2323
|
-
float unordered_map<K, T, H, P, A>::load_factor() const
|
|
1661
|
+
float unordered_map<K, T, H, P, A>::load_factor() const noexcept
|
|
2324
1662
|
{
|
|
2325
1663
|
if (table_.size_ == 0) {
|
|
2326
1664
|
return 0.0f;
|
|
@@ -2332,7 +1670,7 @@ namespace boost {
|
|
|
2332
1670
|
}
|
|
2333
1671
|
|
|
2334
1672
|
template <class K, class T, class H, class P, class A>
|
|
2335
|
-
void unordered_map<K, T, H, P, A>::max_load_factor(float m)
|
|
1673
|
+
void unordered_map<K, T, H, P, A>::max_load_factor(float m) noexcept
|
|
2336
1674
|
{
|
|
2337
1675
|
table_.max_load_factor(m);
|
|
2338
1676
|
}
|
|
@@ -2376,9 +1714,8 @@ namespace boost {
|
|
|
2376
1714
|
}
|
|
2377
1715
|
|
|
2378
1716
|
template <class K, class T, class H, class P, class A>
|
|
2379
|
-
inline void swap(
|
|
2380
|
-
unordered_map<K, T, H, P, A>& m1
|
|
2381
|
-
BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
|
|
1717
|
+
inline void swap(unordered_map<K, T, H, P, A>& m1,
|
|
1718
|
+
unordered_map<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
|
|
2382
1719
|
{
|
|
2383
1720
|
#if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
|
|
2384
1721
|
struct dummy
|
|
@@ -2428,8 +1765,7 @@ namespace boost {
|
|
|
2428
1765
|
select_on_container_copy_construction(other.get_allocator()))
|
|
2429
1766
|
{
|
|
2430
1767
|
if (other.table_.size_) {
|
|
2431
|
-
table_.copy_buckets(
|
|
2432
|
-
other.table_, boost::unordered::detail::false_type());
|
|
1768
|
+
table_.copy_buckets(other.table_, std::false_type());
|
|
2433
1769
|
}
|
|
2434
1770
|
}
|
|
2435
1771
|
|
|
@@ -2447,21 +1783,18 @@ namespace boost {
|
|
|
2447
1783
|
: table_(other.table_, a)
|
|
2448
1784
|
{
|
|
2449
1785
|
if (other.table_.size_) {
|
|
2450
|
-
table_.copy_buckets(
|
|
2451
|
-
other.table_, boost::unordered::detail::false_type());
|
|
1786
|
+
table_.copy_buckets(other.table_, std::false_type());
|
|
2452
1787
|
}
|
|
2453
1788
|
}
|
|
2454
1789
|
|
|
2455
1790
|
template <class K, class T, class H, class P, class A>
|
|
2456
1791
|
unordered_multimap<K, T, H, P, A>::unordered_multimap(
|
|
2457
|
-
|
|
1792
|
+
unordered_multimap&& other, allocator_type const& a)
|
|
2458
1793
|
: table_(other.table_, a, boost::unordered::detail::move_tag())
|
|
2459
1794
|
{
|
|
2460
1795
|
table_.move_construct_buckets(other.table_);
|
|
2461
1796
|
}
|
|
2462
1797
|
|
|
2463
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2464
|
-
|
|
2465
1798
|
template <class K, class T, class H, class P, class A>
|
|
2466
1799
|
unordered_multimap<K, T, H, P, A>::unordered_multimap(
|
|
2467
1800
|
std::initializer_list<value_type> list, size_type n, const hasher& hf,
|
|
@@ -2473,8 +1806,6 @@ namespace boost {
|
|
|
2473
1806
|
this->insert(list.begin(), list.end());
|
|
2474
1807
|
}
|
|
2475
1808
|
|
|
2476
|
-
#endif
|
|
2477
|
-
|
|
2478
1809
|
template <class K, class T, class H, class P, class A>
|
|
2479
1810
|
unordered_multimap<K, T, H, P, A>::unordered_multimap(
|
|
2480
1811
|
size_type n, const allocator_type& a)
|
|
@@ -2520,8 +1851,6 @@ namespace boost {
|
|
|
2520
1851
|
this->insert(f, l);
|
|
2521
1852
|
}
|
|
2522
1853
|
|
|
2523
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2524
|
-
|
|
2525
1854
|
template <class K, class T, class H, class P, class A>
|
|
2526
1855
|
unordered_multimap<K, T, H, P, A>::unordered_multimap(
|
|
2527
1856
|
std::initializer_list<value_type> list, const allocator_type& a)
|
|
@@ -2554,31 +1883,25 @@ namespace boost {
|
|
|
2554
1883
|
this->insert(list.begin(), list.end());
|
|
2555
1884
|
}
|
|
2556
1885
|
|
|
2557
|
-
#endif
|
|
2558
|
-
|
|
2559
1886
|
template <class K, class T, class H, class P, class A>
|
|
2560
|
-
unordered_multimap<K, T, H, P, A>::~unordered_multimap()
|
|
1887
|
+
unordered_multimap<K, T, H, P, A>::~unordered_multimap() noexcept
|
|
2561
1888
|
{
|
|
2562
1889
|
}
|
|
2563
1890
|
|
|
2564
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2565
|
-
|
|
2566
1891
|
template <class K, class T, class H, class P, class A>
|
|
2567
|
-
unordered_multimap<K, T, H, P, A>&
|
|
2568
|
-
operator=(
|
|
1892
|
+
unordered_multimap<K, T, H, P, A>&
|
|
1893
|
+
unordered_multimap<K, T, H, P, A>::operator=(
|
|
1894
|
+
std::initializer_list<value_type> list)
|
|
2569
1895
|
{
|
|
2570
1896
|
this->clear();
|
|
2571
1897
|
this->insert(list.begin(), list.end());
|
|
2572
1898
|
return *this;
|
|
2573
1899
|
}
|
|
2574
1900
|
|
|
2575
|
-
#endif
|
|
2576
|
-
|
|
2577
1901
|
// size and capacity
|
|
2578
1902
|
|
|
2579
1903
|
template <class K, class T, class H, class P, class A>
|
|
2580
|
-
std::size_t
|
|
2581
|
-
unordered_multimap<K, T, H, P, A>::max_size() const BOOST_NOEXCEPT
|
|
1904
|
+
std::size_t unordered_multimap<K, T, H, P, A>::max_size() const noexcept
|
|
2582
1905
|
{
|
|
2583
1906
|
using namespace std;
|
|
2584
1907
|
|
|
@@ -2598,14 +1921,12 @@ namespace boost {
|
|
|
2598
1921
|
table_.insert_range_equiv(first, last);
|
|
2599
1922
|
}
|
|
2600
1923
|
|
|
2601
|
-
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
2602
1924
|
template <class K, class T, class H, class P, class A>
|
|
2603
1925
|
void unordered_multimap<K, T, H, P, A>::insert(
|
|
2604
1926
|
std::initializer_list<value_type> list)
|
|
2605
1927
|
{
|
|
2606
1928
|
this->insert(list.begin(), list.end());
|
|
2607
1929
|
}
|
|
2608
|
-
#endif
|
|
2609
1930
|
|
|
2610
1931
|
template <class K, class T, class H, class P, class A>
|
|
2611
1932
|
typename unordered_multimap<K, T, H, P, A>::iterator
|
|
@@ -2640,9 +1961,9 @@ namespace boost {
|
|
|
2640
1961
|
|
|
2641
1962
|
template <class K, class T, class H, class P, class A>
|
|
2642
1963
|
void unordered_multimap<K, T, H, P, A>::swap(unordered_multimap& other)
|
|
2643
|
-
|
|
2644
|
-
boost::is_nothrow_swappable<H>::value&&
|
|
2645
|
-
boost::is_nothrow_swappable<P>::value)
|
|
1964
|
+
noexcept(value_allocator_traits::is_always_equal::value&&
|
|
1965
|
+
boost::unordered::detail::is_nothrow_swappable<H>::value&&
|
|
1966
|
+
boost::unordered::detail::is_nothrow_swappable<P>::value)
|
|
2646
1967
|
{
|
|
2647
1968
|
table_.swap(other.table_);
|
|
2648
1969
|
}
|
|
@@ -2673,7 +1994,6 @@ namespace boost {
|
|
|
2673
1994
|
}
|
|
2674
1995
|
}
|
|
2675
1996
|
|
|
2676
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
2677
1997
|
template <class K, class T, class H, class P, class A>
|
|
2678
1998
|
template <typename H2, typename P2>
|
|
2679
1999
|
void unordered_multimap<K, T, H, P, A>::merge(
|
|
@@ -2683,7 +2003,6 @@ namespace boost {
|
|
|
2683
2003
|
insert(source.extract(source.begin()));
|
|
2684
2004
|
}
|
|
2685
2005
|
}
|
|
2686
|
-
#endif
|
|
2687
2006
|
|
|
2688
2007
|
template <class K, class T, class H, class P, class A>
|
|
2689
2008
|
template <typename H2, typename P2>
|
|
@@ -2695,7 +2014,6 @@ namespace boost {
|
|
|
2695
2014
|
}
|
|
2696
2015
|
}
|
|
2697
2016
|
|
|
2698
|
-
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
|
2699
2017
|
template <class K, class T, class H, class P, class A>
|
|
2700
2018
|
template <typename H2, typename P2>
|
|
2701
2019
|
void unordered_multimap<K, T, H, P, A>::merge(
|
|
@@ -2705,7 +2023,6 @@ namespace boost {
|
|
|
2705
2023
|
insert(source.extract(source.begin()));
|
|
2706
2024
|
}
|
|
2707
2025
|
}
|
|
2708
|
-
#endif
|
|
2709
2026
|
|
|
2710
2027
|
// lookup
|
|
2711
2028
|
|
|
@@ -2740,8 +2057,7 @@ namespace boost {
|
|
|
2740
2057
|
unordered_multimap<K, T, H, P, A>::find(CompatibleKey const& k,
|
|
2741
2058
|
CompatibleHash const& hash, CompatiblePredicate const& eq) const
|
|
2742
2059
|
{
|
|
2743
|
-
return
|
|
2744
|
-
table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
|
|
2060
|
+
return table_.transparent_find(k, hash, eq);
|
|
2745
2061
|
}
|
|
2746
2062
|
|
|
2747
2063
|
template <class K, class T, class H, class P, class A>
|
|
@@ -2780,7 +2096,7 @@ namespace boost {
|
|
|
2780
2096
|
// hash policy
|
|
2781
2097
|
|
|
2782
2098
|
template <class K, class T, class H, class P, class A>
|
|
2783
|
-
float unordered_multimap<K, T, H, P, A>::load_factor() const
|
|
2099
|
+
float unordered_multimap<K, T, H, P, A>::load_factor() const noexcept
|
|
2784
2100
|
{
|
|
2785
2101
|
if (table_.size_ == 0) {
|
|
2786
2102
|
return 0.0f;
|
|
@@ -2792,8 +2108,7 @@ namespace boost {
|
|
|
2792
2108
|
}
|
|
2793
2109
|
|
|
2794
2110
|
template <class K, class T, class H, class P, class A>
|
|
2795
|
-
void unordered_multimap<K, T, H, P, A>::max_load_factor(
|
|
2796
|
-
float m) BOOST_NOEXCEPT
|
|
2111
|
+
void unordered_multimap<K, T, H, P, A>::max_load_factor(float m) noexcept
|
|
2797
2112
|
{
|
|
2798
2113
|
table_.max_load_factor(m);
|
|
2799
2114
|
}
|
|
@@ -2838,8 +2153,7 @@ namespace boost {
|
|
|
2838
2153
|
|
|
2839
2154
|
template <class K, class T, class H, class P, class A>
|
|
2840
2155
|
inline void swap(unordered_multimap<K, T, H, P, A>& m1,
|
|
2841
|
-
unordered_multimap<K, T, H, P, A>& m2)
|
|
2842
|
-
BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
|
|
2156
|
+
unordered_multimap<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
|
|
2843
2157
|
{
|
|
2844
2158
|
#if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
|
|
2845
2159
|
struct dummy
|
|
@@ -2859,8 +2173,6 @@ namespace boost {
|
|
|
2859
2173
|
|
|
2860
2174
|
template <typename N, class K, class T, class A> class node_handle_map
|
|
2861
2175
|
{
|
|
2862
|
-
BOOST_MOVABLE_BUT_NOT_COPYABLE(node_handle_map)
|
|
2863
|
-
|
|
2864
2176
|
template <typename Types> friend struct ::boost::unordered::detail::table;
|
|
2865
2177
|
template <class K2, class T2, class H2, class P2, class A2>
|
|
2866
2178
|
friend class boost::unordered::unordered_map;
|
|
@@ -2891,7 +2203,9 @@ namespace boost {
|
|
|
2891
2203
|
}
|
|
2892
2204
|
|
|
2893
2205
|
public:
|
|
2894
|
-
|
|
2206
|
+
constexpr node_handle_map() noexcept : ptr_(), alloc_() {}
|
|
2207
|
+
node_handle_map(node_handle_map const&) = delete;
|
|
2208
|
+
node_handle_map& operator=(node_handle_map const&) = delete;
|
|
2895
2209
|
|
|
2896
2210
|
~node_handle_map()
|
|
2897
2211
|
{
|
|
@@ -2902,14 +2216,14 @@ namespace boost {
|
|
|
2902
2216
|
}
|
|
2903
2217
|
}
|
|
2904
2218
|
|
|
2905
|
-
node_handle_map(
|
|
2219
|
+
node_handle_map(node_handle_map&& n) noexcept
|
|
2906
2220
|
: ptr_(n.ptr_),
|
|
2907
|
-
alloc_(
|
|
2221
|
+
alloc_(std::move(n.alloc_))
|
|
2908
2222
|
{
|
|
2909
2223
|
n.ptr_ = node_pointer();
|
|
2910
2224
|
}
|
|
2911
2225
|
|
|
2912
|
-
node_handle_map& operator=(
|
|
2226
|
+
node_handle_map& operator=(node_handle_map&& n)
|
|
2913
2227
|
{
|
|
2914
2228
|
BOOST_ASSERT(!alloc_.has_value() ||
|
|
2915
2229
|
boost::allocator_propagate_on_container_move_assignment<
|
|
@@ -2926,7 +2240,7 @@ namespace boost {
|
|
|
2926
2240
|
if (!alloc_.has_value() ||
|
|
2927
2241
|
boost::allocator_propagate_on_container_move_assignment<
|
|
2928
2242
|
value_allocator>::type::value) {
|
|
2929
|
-
alloc_ =
|
|
2243
|
+
alloc_ = std::move(n.alloc_);
|
|
2930
2244
|
}
|
|
2931
2245
|
ptr_ = n.ptr_;
|
|
2932
2246
|
n.ptr_ = node_pointer();
|
|
@@ -2943,19 +2257,22 @@ namespace boost {
|
|
|
2943
2257
|
|
|
2944
2258
|
allocator_type get_allocator() const { return *alloc_; }
|
|
2945
2259
|
|
|
2946
|
-
|
|
2260
|
+
explicit operator bool() const noexcept
|
|
2261
|
+
{
|
|
2262
|
+
return !this->operator!();
|
|
2263
|
+
}
|
|
2947
2264
|
|
|
2948
|
-
bool operator!() const
|
|
2265
|
+
bool operator!() const noexcept { return ptr_ ? 0 : 1; }
|
|
2949
2266
|
|
|
2950
|
-
BOOST_ATTRIBUTE_NODISCARD bool empty() const
|
|
2267
|
+
BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
|
|
2951
2268
|
{
|
|
2952
2269
|
return ptr_ ? 0 : 1;
|
|
2953
2270
|
}
|
|
2954
2271
|
|
|
2955
|
-
void swap(node_handle_map& n)
|
|
2956
|
-
boost::allocator_propagate_on_container_swap<
|
|
2957
|
-
|
|
2958
|
-
|
|
2272
|
+
void swap(node_handle_map& n)
|
|
2273
|
+
noexcept(boost::allocator_propagate_on_container_swap<
|
|
2274
|
+
value_allocator>::type::value ||
|
|
2275
|
+
boost::allocator_is_always_equal<value_allocator>::type::value)
|
|
2959
2276
|
{
|
|
2960
2277
|
|
|
2961
2278
|
BOOST_ASSERT(!alloc_.has_value() || !n.alloc_.has_value() ||
|
|
@@ -2965,47 +2282,42 @@ namespace boost {
|
|
|
2965
2282
|
if (boost::allocator_propagate_on_container_swap<
|
|
2966
2283
|
value_allocator>::type::value ||
|
|
2967
2284
|
!alloc_.has_value() || !n.alloc_.has_value()) {
|
|
2968
|
-
boost::
|
|
2285
|
+
boost::core::invoke_swap(alloc_, n.alloc_);
|
|
2969
2286
|
}
|
|
2970
|
-
boost::
|
|
2287
|
+
boost::core::invoke_swap(ptr_, n.ptr_);
|
|
2971
2288
|
}
|
|
2972
2289
|
};
|
|
2973
2290
|
|
|
2974
2291
|
template <class N, class K, class T, class A>
|
|
2975
2292
|
void swap(node_handle_map<N, K, T, A>& x, node_handle_map<N, K, T, A>& y)
|
|
2976
|
-
|
|
2293
|
+
noexcept(noexcept(x.swap(y)))
|
|
2977
2294
|
{
|
|
2978
2295
|
x.swap(y);
|
|
2979
2296
|
}
|
|
2980
2297
|
|
|
2981
2298
|
template <class Iter, class NodeType> struct insert_return_type_map
|
|
2982
2299
|
{
|
|
2983
|
-
private:
|
|
2984
|
-
BOOST_MOVABLE_BUT_NOT_COPYABLE(insert_return_type_map)
|
|
2985
|
-
|
|
2986
|
-
// typedef typename boost::allocator_rebind<A,
|
|
2987
|
-
// std::pair<K const, T> >::type value_allocator;
|
|
2988
|
-
// typedef N node_;
|
|
2989
|
-
|
|
2990
2300
|
public:
|
|
2991
2301
|
Iter position;
|
|
2992
2302
|
bool inserted;
|
|
2993
2303
|
NodeType node;
|
|
2994
2304
|
|
|
2995
2305
|
insert_return_type_map() : position(), inserted(false), node() {}
|
|
2306
|
+
insert_return_type_map(insert_return_type_map const&) = delete;
|
|
2307
|
+
insert_return_type_map& operator=(insert_return_type_map const&) = delete;
|
|
2996
2308
|
|
|
2997
|
-
insert_return_type_map(
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
2309
|
+
insert_return_type_map(insert_return_type_map&& x) noexcept
|
|
2310
|
+
: position(x.position),
|
|
2311
|
+
inserted(x.inserted),
|
|
2312
|
+
node(std::move(x.node))
|
|
3001
2313
|
{
|
|
3002
2314
|
}
|
|
3003
2315
|
|
|
3004
|
-
insert_return_type_map& operator=(
|
|
2316
|
+
insert_return_type_map& operator=(insert_return_type_map&& x)
|
|
3005
2317
|
{
|
|
3006
2318
|
inserted = x.inserted;
|
|
3007
2319
|
position = x.position;
|
|
3008
|
-
node =
|
|
2320
|
+
node = std::move(x.node);
|
|
3009
2321
|
return *this;
|
|
3010
2322
|
}
|
|
3011
2323
|
};
|
|
@@ -3014,11 +2326,26 @@ namespace boost {
|
|
|
3014
2326
|
void swap(insert_return_type_map<Iter, NodeType>& x,
|
|
3015
2327
|
insert_return_type_map<Iter, NodeType>& y)
|
|
3016
2328
|
{
|
|
3017
|
-
boost::
|
|
3018
|
-
boost::
|
|
3019
|
-
boost::
|
|
2329
|
+
boost::core::invoke_swap(x.node, y.node);
|
|
2330
|
+
boost::core::invoke_swap(x.inserted, y.inserted);
|
|
2331
|
+
boost::core::invoke_swap(x.position, y.position);
|
|
3020
2332
|
}
|
|
3021
2333
|
} // namespace unordered
|
|
2334
|
+
|
|
2335
|
+
namespace serialization {
|
|
2336
|
+
template <class K, class T, class H, class P, class A>
|
|
2337
|
+
struct version<boost::unordered_map<K, T, H, P, A> >
|
|
2338
|
+
{
|
|
2339
|
+
BOOST_STATIC_CONSTANT(int, value = 1);
|
|
2340
|
+
};
|
|
2341
|
+
|
|
2342
|
+
template <class K, class T, class H, class P, class A>
|
|
2343
|
+
struct version<boost::unordered_multimap<K, T, H, P, A> >
|
|
2344
|
+
{
|
|
2345
|
+
BOOST_STATIC_CONSTANT(int, value = 1);
|
|
2346
|
+
};
|
|
2347
|
+
} // namespace serialization
|
|
2348
|
+
|
|
3022
2349
|
} // namespace boost
|
|
3023
2350
|
|
|
3024
2351
|
#if defined(BOOST_MSVC)
|