passenger 5.3.3 → 5.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +8 -0
- data/build/support/cxx_dependency_map.rb +151 -83
- data/dev/configkit-schemas/index.json +3 -3
- data/src/agent/Core/AdminPanelConnector.h +5 -3
- data/src/agent/Core/ApplicationPool/Common.h +1 -2
- data/src/agent/Core/ApplicationPool/Context.h +1 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller.h +2 -1
- data/src/agent/Core/Controller/Config.h +6 -5
- data/src/agent/Core/Controller/Hooks.cpp +11 -0
- data/src/agent/Core/Controller/SendRequest.cpp +7 -7
- data/src/agent/Core/CoreMain.cpp +0 -2
- data/src/agent/Core/SpawningKit/Context.h +1 -3
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
- data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
- data/src/agent/Shared/ApiServerUtils.h +2 -2
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
- data/src/apache2_module/Config.cpp +7 -6
- data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Exceptions.h +0 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
- data/src/cxx_supportlib/ResourceLocator.h +3 -21
- data/src/cxx_supportlib/SafeLibev.h +6 -6
- data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
- data/src/cxx_supportlib/ServerKit/Server.h +2 -2
- data/src/cxx_supportlib/SystemTools/README.md +1 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
- data/src/cxx_supportlib/Utils.cpp +1 -113
- data/src/cxx_supportlib/Utils.h +1 -29
- data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
- data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
- 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 +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -14
- 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 +61 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
- 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 +212 -51
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
- 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 +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -1
- 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 +65 -14
- 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 +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{function.hpp → functional.hpp} +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
- 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 +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
- 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 +80 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
- 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 +13 -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_thread.ipp +11 -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 +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
- 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 +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
- 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 -5
- 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/io_control.hpp +1 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
- 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 +36 -14
- 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/macos_fenced_block.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
- 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 +17 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
- 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 +10 -9
- 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 +29 -19
- 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 +7 -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 +26 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
- 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 +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -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 +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.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 +5 -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 +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
- 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 +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
- 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 +9 -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 +37 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
- 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 +9 -5
- 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 +14 -13
- 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 +9 -6
- 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 +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
- 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 +29 -2
- 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 +11 -5
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
- 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 +29 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
- 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 +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
- 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 +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +313 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
- 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 +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +263 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +48 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
- 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 +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
- 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 +27 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
- 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 +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
- 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 +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
- 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 +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
- data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
- data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
- data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
- data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
- data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
- 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 +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
- metadata +201 -47
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
- data/src/cxx_supportlib/MessageClient.h +0 -309
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
|
@@ -48,45 +48,51 @@ namespace boost {
|
|
|
48
48
|
namespace container {
|
|
49
49
|
|
|
50
50
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
51
|
-
template <class Key, class
|
|
52
|
-
class
|
|
51
|
+
template <class Key, class Compare, class AllocatorOrContainer>
|
|
52
|
+
class flat_multiset;
|
|
53
53
|
#endif
|
|
54
54
|
|
|
55
55
|
//! flat_set is a Sorted Associative Container that stores objects of type Key.
|
|
56
56
|
//! It is also a Unique Associative Container, meaning that no two elements are the same.
|
|
57
57
|
//!
|
|
58
|
-
//! flat_set is similar to std::set but it's implemented
|
|
59
|
-
//!
|
|
60
|
-
//!
|
|
58
|
+
//! flat_set is similar to std::set but it's implemented by as an ordered sequence container.
|
|
59
|
+
//! The underlying sequence container is by default <i>vector</i> but it can also work
|
|
60
|
+
//! user-provided vector-like SequenceContainers (like <i>static_vector</i> or <i>small_vector</i>).
|
|
61
61
|
//!
|
|
62
|
-
//!
|
|
63
|
-
//!
|
|
62
|
+
//! Using vector-like sequence containers means that inserting a new element into a flat_set might invalidate
|
|
63
|
+
//! previous iterators and references (unless that sequence container is <i>stable_vector</i> or a similar
|
|
64
|
+
//! container that offers stable pointers and references). Similarly, erasing an element might invalidate
|
|
65
|
+
//! iterators and references pointing to elements that come after (their keys are bigger) the erased element.
|
|
64
66
|
//!
|
|
65
67
|
//! This container provides random-access iterators.
|
|
66
68
|
//!
|
|
67
69
|
//! \tparam Key is the type to be inserted in the set, which is also the key_type
|
|
68
70
|
//! \tparam Compare is the comparison functor used to order keys
|
|
69
|
-
//! \tparam
|
|
71
|
+
//! \tparam AllocatorOrContainer is either:
|
|
72
|
+
//! - The allocator to allocate <code>value_type</code>s (e.g. <i>allocator< std::pair<Key, T> > </i>).
|
|
73
|
+
//! (in this case <i>sequence_type</i> will be vector<value_type, AllocatorOrContainer>)
|
|
74
|
+
//! - The SequenceContainer to be used as the underlying <i>sequence_type</i>. It must be a vector-like
|
|
75
|
+
//! sequence container with random-access iterators.
|
|
70
76
|
#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
71
|
-
template <class Key, class Compare = std::less<Key>, class
|
|
77
|
+
template <class Key, class Compare = std::less<Key>, class AllocatorOrContainer = new_allocator<Key> >
|
|
72
78
|
#else
|
|
73
|
-
template <class Key, class Compare, class
|
|
79
|
+
template <class Key, class Compare, class AllocatorOrContainer>
|
|
74
80
|
#endif
|
|
75
81
|
class flat_set
|
|
76
82
|
///@cond
|
|
77
|
-
: public
|
|
83
|
+
: public dtl::flat_tree<Key, dtl::identity<Key>, Compare, AllocatorOrContainer>
|
|
78
84
|
///@endcond
|
|
79
85
|
{
|
|
80
86
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
81
87
|
private:
|
|
82
88
|
BOOST_COPYABLE_AND_MOVABLE(flat_set)
|
|
83
|
-
typedef
|
|
89
|
+
typedef dtl::flat_tree<Key, dtl::identity<Key>, Compare, AllocatorOrContainer> tree_t;
|
|
84
90
|
|
|
85
91
|
public:
|
|
86
|
-
|
|
92
|
+
tree_t &tree()
|
|
87
93
|
{ return *this; }
|
|
88
94
|
|
|
89
|
-
const
|
|
95
|
+
const tree_t &tree() const
|
|
90
96
|
{ return *this; }
|
|
91
97
|
|
|
92
98
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
@@ -97,23 +103,25 @@ class flat_set
|
|
|
97
103
|
// types
|
|
98
104
|
//
|
|
99
105
|
//////////////////////////////////////////////
|
|
100
|
-
typedef Key
|
|
101
|
-
typedef
|
|
102
|
-
typedef
|
|
103
|
-
typedef
|
|
104
|
-
typedef ::
|
|
105
|
-
typedef
|
|
106
|
-
typedef typename ::
|
|
107
|
-
typedef typename ::
|
|
108
|
-
typedef typename ::
|
|
109
|
-
typedef typename ::
|
|
110
|
-
typedef typename ::
|
|
111
|
-
typedef
|
|
112
|
-
typedef typename BOOST_CONTAINER_IMPDEF(
|
|
113
|
-
typedef typename BOOST_CONTAINER_IMPDEF(
|
|
114
|
-
|
|
115
|
-
typedef typename
|
|
116
|
-
typedef typename
|
|
106
|
+
typedef Key key_type;
|
|
107
|
+
typedef Compare key_compare;
|
|
108
|
+
typedef Key value_type;
|
|
109
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::sequence_type) sequence_type;
|
|
110
|
+
typedef typename sequence_type::allocator_type allocator_type;
|
|
111
|
+
typedef ::boost::container::allocator_traits<allocator_type> allocator_traits_type;
|
|
112
|
+
typedef typename sequence_type::pointer pointer;
|
|
113
|
+
typedef typename sequence_type::const_pointer const_pointer;
|
|
114
|
+
typedef typename sequence_type::reference reference;
|
|
115
|
+
typedef typename sequence_type::const_reference const_reference;
|
|
116
|
+
typedef typename sequence_type::size_type size_type;
|
|
117
|
+
typedef typename sequence_type::difference_type difference_type;
|
|
118
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
|
|
119
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::value_compare) value_compare;
|
|
120
|
+
|
|
121
|
+
typedef typename sequence_type::iterator iterator;
|
|
122
|
+
typedef typename sequence_type::const_iterator const_iterator;
|
|
123
|
+
typedef typename sequence_type::reverse_iterator reverse_iterator;
|
|
124
|
+
typedef typename sequence_type::const_reverse_iterator const_reverse_iterator;
|
|
117
125
|
|
|
118
126
|
public:
|
|
119
127
|
//////////////////////////////////////////////
|
|
@@ -125,37 +133,47 @@ class flat_set
|
|
|
125
133
|
//! <b>Effects</b>: Default constructs an empty container.
|
|
126
134
|
//!
|
|
127
135
|
//! <b>Complexity</b>: Constant.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
136
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
137
|
+
flat_set() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
|
|
138
|
+
dtl::is_nothrow_default_constructible<Compare>::value)
|
|
139
|
+
: tree_t()
|
|
131
140
|
{}
|
|
132
141
|
|
|
133
142
|
//! <b>Effects</b>: Constructs an empty container using the specified
|
|
134
|
-
//! comparison object
|
|
143
|
+
//! comparison object.
|
|
135
144
|
//!
|
|
136
145
|
//! <b>Complexity</b>: Constant.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
:
|
|
146
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
147
|
+
explicit flat_set(const Compare& comp)
|
|
148
|
+
: tree_t(comp)
|
|
140
149
|
{}
|
|
141
150
|
|
|
142
151
|
//! <b>Effects</b>: Constructs an empty container using the specified allocator.
|
|
143
152
|
//!
|
|
144
153
|
//! <b>Complexity</b>: Constant.
|
|
154
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
145
155
|
explicit flat_set(const allocator_type& a)
|
|
146
|
-
:
|
|
156
|
+
: tree_t(a)
|
|
147
157
|
{}
|
|
148
158
|
|
|
149
|
-
//! <b>Effects</b>: Constructs an empty container using the specified
|
|
150
|
-
//!
|
|
159
|
+
//! <b>Effects</b>: Constructs an empty container using the specified
|
|
160
|
+
//! comparison object and allocator.
|
|
161
|
+
//!
|
|
162
|
+
//! <b>Complexity</b>: Constant.
|
|
163
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
164
|
+
flat_set(const Compare& comp, const allocator_type& a)
|
|
165
|
+
: tree_t(comp, a)
|
|
166
|
+
{}
|
|
167
|
+
|
|
168
|
+
//! <b>Effects</b>: Constructs an empty container and
|
|
169
|
+
//! inserts elements from the range [first ,last ).
|
|
151
170
|
//!
|
|
152
171
|
//! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
|
|
153
172
|
//! comp and otherwise N logN, where N is last - first.
|
|
154
173
|
template <class InputIterator>
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
: base_t(true, first, last, comp, a)
|
|
174
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
175
|
+
flat_set(InputIterator first, InputIterator last)
|
|
176
|
+
: tree_t(true, first, last)
|
|
159
177
|
{}
|
|
160
178
|
|
|
161
179
|
//! <b>Effects</b>: Constructs an empty container using the specified
|
|
@@ -164,8 +182,63 @@ class flat_set
|
|
|
164
182
|
//! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
|
|
165
183
|
//! comp and otherwise N logN, where N is last - first.
|
|
166
184
|
template <class InputIterator>
|
|
185
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
167
186
|
flat_set(InputIterator first, InputIterator last, const allocator_type& a)
|
|
168
|
-
:
|
|
187
|
+
: tree_t(true, first, last, a)
|
|
188
|
+
{}
|
|
189
|
+
|
|
190
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
191
|
+
//! inserts elements from the range [first ,last ).
|
|
192
|
+
//!
|
|
193
|
+
//! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
|
|
194
|
+
//! comp and otherwise N logN, where N is last - first.
|
|
195
|
+
template <class InputIterator>
|
|
196
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
197
|
+
flat_set(InputIterator first, InputIterator last, const Compare& comp)
|
|
198
|
+
: tree_t(true, first, last, comp)
|
|
199
|
+
{}
|
|
200
|
+
|
|
201
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
202
|
+
//! allocator, and inserts elements from the range [first ,last ).
|
|
203
|
+
//!
|
|
204
|
+
//! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
|
|
205
|
+
//! comp and otherwise N logN, where N is last - first.
|
|
206
|
+
template <class InputIterator>
|
|
207
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
208
|
+
flat_set(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
|
|
209
|
+
: tree_t(true, first, last, comp, a)
|
|
210
|
+
{}
|
|
211
|
+
|
|
212
|
+
//! <b>Effects</b>: Constructs an empty container and
|
|
213
|
+
//! inserts elements from the ordered unique range [first ,last). This function
|
|
214
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
215
|
+
//!
|
|
216
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate and must be
|
|
217
|
+
//! unique values.
|
|
218
|
+
//!
|
|
219
|
+
//! <b>Complexity</b>: Linear in N.
|
|
220
|
+
//!
|
|
221
|
+
//! <b>Note</b>: Non-standard extension.
|
|
222
|
+
template <class InputIterator>
|
|
223
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
224
|
+
flat_set(ordered_unique_range_t, InputIterator first, InputIterator last)
|
|
225
|
+
: tree_t(ordered_unique_range, first, last)
|
|
226
|
+
{}
|
|
227
|
+
|
|
228
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
229
|
+
//! inserts elements from the ordered unique range [first ,last). This function
|
|
230
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
231
|
+
//!
|
|
232
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate and must be
|
|
233
|
+
//! unique values.
|
|
234
|
+
//!
|
|
235
|
+
//! <b>Complexity</b>: Linear in N.
|
|
236
|
+
//!
|
|
237
|
+
//! <b>Note</b>: Non-standard extension.
|
|
238
|
+
template <class InputIterator>
|
|
239
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
240
|
+
flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp)
|
|
241
|
+
: tree_t(ordered_unique_range, first, last, comp)
|
|
169
242
|
{}
|
|
170
243
|
|
|
171
244
|
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
@@ -179,21 +252,19 @@ class flat_set
|
|
|
179
252
|
//!
|
|
180
253
|
//! <b>Note</b>: Non-standard extension.
|
|
181
254
|
template <class InputIterator>
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
: base_t(ordered_unique_range, first, last, comp, a)
|
|
255
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
256
|
+
flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
|
|
257
|
+
: tree_t(ordered_unique_range, first, last, comp, a)
|
|
186
258
|
{}
|
|
187
259
|
|
|
188
260
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
189
|
-
//! <b>Effects</b>: Constructs an empty container
|
|
190
|
-
//!
|
|
261
|
+
//! <b>Effects</b>: Constructs an empty container and
|
|
262
|
+
//! inserts elements from the range [il.begin(), il.end()).
|
|
191
263
|
//!
|
|
192
264
|
//! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
|
|
193
265
|
//! comp and otherwise N logN, where N is il.begin() - il.end().
|
|
194
|
-
flat_set(std::initializer_list<value_type> il
|
|
195
|
-
|
|
196
|
-
: base_t(true, il.begin(), il.end(), comp, a)
|
|
266
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(std::initializer_list<value_type> il)
|
|
267
|
+
: tree_t(true, il.begin(), il.end())
|
|
197
268
|
{}
|
|
198
269
|
|
|
199
270
|
//! <b>Effects</b>: Constructs an empty container using the specified
|
|
@@ -201,8 +272,54 @@ class flat_set
|
|
|
201
272
|
//!
|
|
202
273
|
//! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
|
|
203
274
|
//! comp and otherwise N logN, where N is il.begin() - il.end().
|
|
204
|
-
flat_set(std::initializer_list<value_type> il, const allocator_type& a)
|
|
205
|
-
:
|
|
275
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(std::initializer_list<value_type> il, const allocator_type& a)
|
|
276
|
+
: tree_t(true, il.begin(), il.end(), a)
|
|
277
|
+
{}
|
|
278
|
+
|
|
279
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
280
|
+
//! inserts elements from the range [il.begin(), il.end()).
|
|
281
|
+
//!
|
|
282
|
+
//! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
|
|
283
|
+
//! comp and otherwise N logN, where N is il.begin() - il.end().
|
|
284
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(std::initializer_list<value_type> il, const Compare& comp)
|
|
285
|
+
: tree_t(true, il.begin(), il.end(), comp)
|
|
286
|
+
{}
|
|
287
|
+
|
|
288
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
289
|
+
//! allocator, and inserts elements from the range [il.begin(), il.end()).
|
|
290
|
+
//!
|
|
291
|
+
//! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
|
|
292
|
+
//! comp and otherwise N logN, where N is il.begin() - il.end().
|
|
293
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
|
|
294
|
+
: tree_t(true, il.begin(), il.end(), comp, a)
|
|
295
|
+
{}
|
|
296
|
+
|
|
297
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
298
|
+
//! inserts elements from the ordered unique range [il.begin(), il.end()). This function
|
|
299
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
300
|
+
//!
|
|
301
|
+
//! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate and must be
|
|
302
|
+
//! unique values.
|
|
303
|
+
//!
|
|
304
|
+
//! <b>Complexity</b>: Linear in N.
|
|
305
|
+
//!
|
|
306
|
+
//! <b>Note</b>: Non-standard extension.
|
|
307
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(ordered_unique_range_t, std::initializer_list<value_type> il)
|
|
308
|
+
: tree_t(ordered_unique_range, il.begin(), il.end())
|
|
309
|
+
{}
|
|
310
|
+
|
|
311
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
312
|
+
//! inserts elements from the ordered unique range [il.begin(), il.end()). This function
|
|
313
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
314
|
+
//!
|
|
315
|
+
//! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate and must be
|
|
316
|
+
//! unique values.
|
|
317
|
+
//!
|
|
318
|
+
//! <b>Complexity</b>: Linear in N.
|
|
319
|
+
//!
|
|
320
|
+
//! <b>Note</b>: Non-standard extension.
|
|
321
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp)
|
|
322
|
+
: tree_t(ordered_unique_range, il.begin(), il.end(), comp)
|
|
206
323
|
{}
|
|
207
324
|
|
|
208
325
|
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
@@ -215,17 +332,16 @@ class flat_set
|
|
|
215
332
|
//! <b>Complexity</b>: Linear in N.
|
|
216
333
|
//!
|
|
217
334
|
//! <b>Note</b>: Non-standard extension.
|
|
218
|
-
flat_set(ordered_unique_range_t, std::initializer_list<value_type> il,
|
|
219
|
-
|
|
220
|
-
: base_t(ordered_unique_range, il.begin(), il.end(), comp, a)
|
|
335
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
|
|
336
|
+
: tree_t(ordered_unique_range, il.begin(), il.end(), comp, a)
|
|
221
337
|
{}
|
|
222
338
|
#endif
|
|
223
339
|
|
|
224
340
|
//! <b>Effects</b>: Copy constructs the container.
|
|
225
341
|
//!
|
|
226
342
|
//! <b>Complexity</b>: Linear in x.size().
|
|
227
|
-
flat_set(const flat_set& x)
|
|
228
|
-
:
|
|
343
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(const flat_set& x)
|
|
344
|
+
: tree_t(static_cast<const tree_t&>(x))
|
|
229
345
|
{}
|
|
230
346
|
|
|
231
347
|
//! <b>Effects</b>: Move constructs thecontainer. Constructs *this using x's resources.
|
|
@@ -233,31 +349,31 @@ class flat_set
|
|
|
233
349
|
//! <b>Complexity</b>: Constant.
|
|
234
350
|
//!
|
|
235
351
|
//! <b>Postcondition</b>: x is emptied.
|
|
236
|
-
flat_set(BOOST_RV_REF(flat_set) x)
|
|
237
|
-
BOOST_NOEXCEPT_IF(boost::container::
|
|
238
|
-
:
|
|
352
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(BOOST_RV_REF(flat_set) x)
|
|
353
|
+
BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
|
|
354
|
+
: tree_t(BOOST_MOVE_BASE(tree_t, x))
|
|
239
355
|
{}
|
|
240
356
|
|
|
241
357
|
//! <b>Effects</b>: Copy constructs a container using the specified allocator.
|
|
242
358
|
//!
|
|
243
359
|
//! <b>Complexity</b>: Linear in x.size().
|
|
244
|
-
flat_set(const flat_set& x, const allocator_type &a)
|
|
245
|
-
:
|
|
360
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(const flat_set& x, const allocator_type &a)
|
|
361
|
+
: tree_t(static_cast<const tree_t&>(x), a)
|
|
246
362
|
{}
|
|
247
363
|
|
|
248
364
|
//! <b>Effects</b>: Move constructs a container using the specified allocator.
|
|
249
365
|
//! Constructs *this using x's resources.
|
|
250
366
|
//!
|
|
251
367
|
//! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise
|
|
252
|
-
flat_set(BOOST_RV_REF(flat_set) x, const allocator_type &a)
|
|
253
|
-
:
|
|
368
|
+
BOOST_CONTAINER_FORCEINLINE flat_set(BOOST_RV_REF(flat_set) x, const allocator_type &a)
|
|
369
|
+
: tree_t(BOOST_MOVE_BASE(tree_t, x), a)
|
|
254
370
|
{}
|
|
255
371
|
|
|
256
372
|
//! <b>Effects</b>: Makes *this a copy of x.
|
|
257
373
|
//!
|
|
258
374
|
//! <b>Complexity</b>: Linear in x.size().
|
|
259
|
-
flat_set& operator=(BOOST_COPY_ASSIGN_REF(flat_set) x)
|
|
260
|
-
{ return static_cast<flat_set&>(this->
|
|
375
|
+
BOOST_CONTAINER_FORCEINLINE flat_set& operator=(BOOST_COPY_ASSIGN_REF(flat_set) x)
|
|
376
|
+
{ return static_cast<flat_set&>(this->tree_t::operator=(static_cast<const tree_t&>(x))); }
|
|
261
377
|
|
|
262
378
|
//! <b>Throws</b>: If allocator_traits_type::propagate_on_container_move_assignment
|
|
263
379
|
//! is false and (allocation throws or value_type's move constructor throws)
|
|
@@ -265,11 +381,11 @@ class flat_set
|
|
|
265
381
|
//! <b>Complexity</b>: Constant if allocator_traits_type::
|
|
266
382
|
//! propagate_on_container_move_assignment is true or
|
|
267
383
|
//! this->get>allocator() == x.get_allocator(). Linear otherwise.
|
|
268
|
-
flat_set& operator=(BOOST_RV_REF(flat_set) x)
|
|
384
|
+
BOOST_CONTAINER_FORCEINLINE flat_set& operator=(BOOST_RV_REF(flat_set) x)
|
|
269
385
|
BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
|
|
270
386
|
allocator_traits_type::is_always_equal::value) &&
|
|
271
|
-
boost::container::
|
|
272
|
-
{ return static_cast<flat_set&>(this->
|
|
387
|
+
boost::container::dtl::is_nothrow_move_assignable<Compare>::value)
|
|
388
|
+
{ return static_cast<flat_set&>(this->tree_t::operator=(BOOST_MOVE_BASE(tree_t, x))); }
|
|
273
389
|
|
|
274
390
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
275
391
|
//! <b>Effects</b>: Copy all elements from il to *this.
|
|
@@ -427,12 +543,13 @@ class flat_set
|
|
|
427
543
|
//! <b>Complexity</b>: Constant.
|
|
428
544
|
size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW;
|
|
429
545
|
|
|
430
|
-
//! <b>Effects</b>: If n is less than or equal to capacity(),
|
|
546
|
+
//! <b>Effects</b>: If n is less than or equal to capacity(), or the
|
|
547
|
+
//! underlying container has no `reserve` member, this call has no
|
|
431
548
|
//! effect. Otherwise, it is a request for allocation of additional memory.
|
|
432
549
|
//! If the request is successful, then capacity() is greater than or equal to
|
|
433
550
|
//! n; otherwise, capacity() is unchanged. In either case, size() is unchanged.
|
|
434
551
|
//!
|
|
435
|
-
//! <b>Throws</b>: If memory allocation allocation throws or
|
|
552
|
+
//! <b>Throws</b>: If memory allocation allocation throws or T's copy constructor throws.
|
|
436
553
|
//!
|
|
437
554
|
//! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
|
|
438
555
|
//! to values might be invalidated.
|
|
@@ -469,8 +586,8 @@ class flat_set
|
|
|
469
586
|
//!
|
|
470
587
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
471
588
|
template <class... Args>
|
|
472
|
-
std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
|
|
473
|
-
{ return this->
|
|
589
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
|
|
590
|
+
{ return this->tree_t::emplace_unique(boost::forward<Args>(args)...); }
|
|
474
591
|
|
|
475
592
|
//! <b>Effects</b>: Inserts an object of type Key constructed with
|
|
476
593
|
//! std::forward<Args>(args)... in the container if and only if there is
|
|
@@ -485,19 +602,19 @@ class flat_set
|
|
|
485
602
|
//!
|
|
486
603
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
487
604
|
template <class... Args>
|
|
488
|
-
iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
|
|
489
|
-
{ return this->
|
|
605
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
|
|
606
|
+
{ return this->tree_t::emplace_hint_unique(p, boost::forward<Args>(args)...); }
|
|
490
607
|
|
|
491
608
|
#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
492
609
|
|
|
493
610
|
#define BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE(N) \
|
|
494
611
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
495
|
-
std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
|
|
496
|
-
{ return this->
|
|
612
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
|
|
613
|
+
{ return this->tree_t::emplace_unique(BOOST_MOVE_FWD##N); }\
|
|
497
614
|
\
|
|
498
615
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
499
|
-
iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
500
|
-
{ return this->
|
|
616
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
617
|
+
{ return this->tree_t::emplace_hint_unique(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
|
|
501
618
|
//
|
|
502
619
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE)
|
|
503
620
|
#undef BOOST_CONTAINER_FLAT_SET_EMPLACE_CODE
|
|
@@ -570,13 +687,12 @@ class flat_set
|
|
|
570
687
|
//! <b>Effects</b>: inserts each element from the range [first,last) if and only
|
|
571
688
|
//! if there is no element with key equivalent to the key of that element.
|
|
572
689
|
//!
|
|
573
|
-
//! <b>Complexity</b>:
|
|
574
|
-
//! search time plus N*size() insertion time.
|
|
690
|
+
//! <b>Complexity</b>: N log(N).
|
|
575
691
|
//!
|
|
576
692
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
577
693
|
template <class InputIterator>
|
|
578
|
-
void insert(InputIterator first, InputIterator last)
|
|
579
|
-
{ this->
|
|
694
|
+
BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
|
|
695
|
+
{ this->tree_t::insert_unique(first, last); }
|
|
580
696
|
|
|
581
697
|
//! <b>Requires</b>: first, last are not iterators into *this and
|
|
582
698
|
//! must be ordered according to the predicate and must be
|
|
@@ -585,24 +701,22 @@ class flat_set
|
|
|
585
701
|
//! <b>Effects</b>: inserts each element from the range [first,last) .This function
|
|
586
702
|
//! is more efficient than the normal range creation for ordered ranges.
|
|
587
703
|
//!
|
|
588
|
-
//! <b>Complexity</b>:
|
|
589
|
-
//! search time plus N*size() insertion time.
|
|
704
|
+
//! <b>Complexity</b>: Linear.
|
|
590
705
|
//!
|
|
591
706
|
//! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
|
|
592
707
|
template <class InputIterator>
|
|
593
|
-
void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
|
|
594
|
-
{ this->
|
|
708
|
+
BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
|
|
709
|
+
{ this->tree_t::insert_unique(ordered_unique_range, first, last); }
|
|
595
710
|
|
|
596
711
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
597
712
|
//! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()) if and only
|
|
598
713
|
//! if there is no element with key equivalent to the key of that element.
|
|
599
714
|
//!
|
|
600
|
-
//! <b>Complexity</b>:
|
|
601
|
-
//! search time plus N*size() insertion time.
|
|
715
|
+
//! <b>Complexity</b>: N log(N).
|
|
602
716
|
//!
|
|
603
717
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
604
|
-
void insert(std::initializer_list<value_type> il)
|
|
605
|
-
{ this->
|
|
718
|
+
BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
|
|
719
|
+
{ this->tree_t::insert_unique(il.begin(), il.end()); }
|
|
606
720
|
|
|
607
721
|
//! <b>Requires</b>: Range [il.begin(), il.end()) must be ordered according to the predicate
|
|
608
722
|
//! and must be unique values.
|
|
@@ -610,33 +724,32 @@ class flat_set
|
|
|
610
724
|
//! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()) .This function
|
|
611
725
|
//! is more efficient than the normal range creation for ordered ranges.
|
|
612
726
|
//!
|
|
613
|
-
//! <b>Complexity</b>:
|
|
614
|
-
//! search time plus N*size() insertion time.
|
|
727
|
+
//! <b>Complexity</b>: Linear.
|
|
615
728
|
//!
|
|
616
729
|
//! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
|
|
617
|
-
void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
|
|
618
|
-
{ this->
|
|
730
|
+
BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
|
|
731
|
+
{ this->tree_t::insert_unique(ordered_unique_range, il.begin(), il.end()); }
|
|
619
732
|
#endif
|
|
620
733
|
|
|
621
|
-
//! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2,
|
|
734
|
+
//! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
|
|
622
735
|
template<class C2>
|
|
623
|
-
BOOST_CONTAINER_FORCEINLINE void merge(flat_set<Key, C2,
|
|
624
|
-
{ this->
|
|
736
|
+
BOOST_CONTAINER_FORCEINLINE void merge(flat_set<Key, C2, AllocatorOrContainer>& source)
|
|
737
|
+
{ this->tree_t::merge_unique(source.tree()); }
|
|
625
738
|
|
|
626
|
-
//! @copydoc ::boost::container::
|
|
739
|
+
//! @copydoc ::boost::container::flat_set::merge(flat_set<Key, C2, AllocatorOrContainer>&)
|
|
627
740
|
template<class C2>
|
|
628
|
-
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_set<Key, C2,
|
|
629
|
-
{ return this->merge(static_cast<flat_set<Key, C2,
|
|
741
|
+
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_set<Key, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
|
|
742
|
+
{ return this->merge(static_cast<flat_set<Key, C2, AllocatorOrContainer>&>(source)); }
|
|
630
743
|
|
|
631
|
-
//! @copydoc ::boost::container::flat_map::merge(flat_multimap<Key, T, C2,
|
|
744
|
+
//! @copydoc ::boost::container::flat_map::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
|
|
632
745
|
template<class C2>
|
|
633
|
-
BOOST_CONTAINER_FORCEINLINE void merge(flat_multiset<Key, C2,
|
|
634
|
-
{ this->
|
|
746
|
+
BOOST_CONTAINER_FORCEINLINE void merge(flat_multiset<Key, C2, AllocatorOrContainer>& source)
|
|
747
|
+
{ this->tree_t::merge_unique(source.tree()); }
|
|
635
748
|
|
|
636
|
-
//! @copydoc ::boost::container::
|
|
749
|
+
//! @copydoc ::boost::container::flat_set::merge(flat_multiset<Key, C2, AllocatorOrContainer>&)
|
|
637
750
|
template<class C2>
|
|
638
|
-
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multiset<Key, C2,
|
|
639
|
-
{ return this->merge(static_cast<flat_multiset<Key, C2,
|
|
751
|
+
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multiset<Key, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
|
|
752
|
+
{ return this->merge(static_cast<flat_multiset<Key, C2, AllocatorOrContainer>&>(source)); }
|
|
640
753
|
|
|
641
754
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
642
755
|
|
|
@@ -677,7 +790,7 @@ class flat_set
|
|
|
677
790
|
//! <b>Complexity</b>: Constant.
|
|
678
791
|
void swap(flat_set& x)
|
|
679
792
|
BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
|
|
680
|
-
&& boost::container::
|
|
793
|
+
&& boost::container::dtl::is_nothrow_swappable<Compare>::value );
|
|
681
794
|
|
|
682
795
|
//! <b>Effects</b>: erase(a.begin(),a.end()).
|
|
683
796
|
//!
|
|
@@ -765,8 +878,8 @@ class flat_set
|
|
|
765
878
|
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
|
766
879
|
//!
|
|
767
880
|
//! <b>Complexity</b>: log(size())+count(k)
|
|
768
|
-
size_type count(const key_type& x) const
|
|
769
|
-
{ return static_cast<size_type>(this->
|
|
881
|
+
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
|
|
882
|
+
{ return static_cast<size_type>(this->tree_t::find(x) != this->tree_t::cend()); }
|
|
770
883
|
|
|
771
884
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
772
885
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
|
@@ -798,14 +911,14 @@ class flat_set
|
|
|
798
911
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
|
799
912
|
//!
|
|
800
913
|
//! <b>Complexity</b>: Logarithmic
|
|
801
|
-
std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
|
|
802
|
-
{ return this->
|
|
914
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
|
|
915
|
+
{ return this->tree_t::lower_bound_range(x); }
|
|
803
916
|
|
|
804
917
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
|
805
918
|
//!
|
|
806
919
|
//! <b>Complexity</b>: Logarithmic
|
|
807
|
-
std::pair<iterator,iterator> equal_range(const key_type& x)
|
|
808
|
-
{ return this->
|
|
920
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type& x)
|
|
921
|
+
{ return this->tree_t::lower_bound_range(x); }
|
|
809
922
|
|
|
810
923
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
811
924
|
|
|
@@ -844,17 +957,47 @@ class flat_set
|
|
|
844
957
|
//! <b>Complexity</b>: Constant.
|
|
845
958
|
friend void swap(flat_set& x, flat_set& y);
|
|
846
959
|
|
|
960
|
+
//! <b>Effects</b>: Extracts the internal sequence container.
|
|
961
|
+
//!
|
|
962
|
+
//! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
|
|
963
|
+
//!
|
|
964
|
+
//! <b>Postcondition</b>: this->empty()
|
|
965
|
+
//!
|
|
966
|
+
//! <b>Throws</b>: If secuence_type's move constructor throws
|
|
967
|
+
sequence_type extract_sequence();
|
|
968
|
+
|
|
847
969
|
#endif //#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
848
970
|
|
|
971
|
+
//! <b>Effects</b>: Discards the internally hold sequence container and adopts the
|
|
972
|
+
//! one passed externally using the move assignment. Erases non-unique elements.
|
|
973
|
+
//!
|
|
974
|
+
//! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
|
|
975
|
+
//!
|
|
976
|
+
//! <b>Throws</b>: If the comparison or the move constructor throws
|
|
977
|
+
BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
|
|
978
|
+
{ this->tree_t::adopt_sequence_unique(boost::move(seq)); }
|
|
979
|
+
|
|
980
|
+
//! <b>Requires</b>: seq shall be ordered according to this->compare()
|
|
981
|
+
//! and shall contain unique elements.
|
|
982
|
+
//!
|
|
983
|
+
//! <b>Effects</b>: Discards the internally hold sequence container and adopts the
|
|
984
|
+
//! one passed externally using the move assignment.
|
|
985
|
+
//!
|
|
986
|
+
//! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
|
|
987
|
+
//!
|
|
988
|
+
//! <b>Throws</b>: If the move assignment throws
|
|
989
|
+
BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_unique_range_t, BOOST_RV_REF(sequence_type) seq)
|
|
990
|
+
{ this->tree_t::adopt_sequence_unique(ordered_unique_range_t(), boost::move(seq)); }
|
|
991
|
+
|
|
849
992
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
850
993
|
private:
|
|
851
994
|
template<class KeyType>
|
|
852
|
-
std::pair<iterator, bool> priv_insert(BOOST_FWD_REF(KeyType) x)
|
|
853
|
-
{ return this->
|
|
995
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> priv_insert(BOOST_FWD_REF(KeyType) x)
|
|
996
|
+
{ return this->tree_t::insert_unique(::boost::forward<KeyType>(x)); }
|
|
854
997
|
|
|
855
998
|
template<class KeyType>
|
|
856
|
-
iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
|
|
857
|
-
{ return this->
|
|
999
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
|
|
1000
|
+
{ return this->tree_t::insert_unique(p, ::boost::forward<KeyType>(x)); }
|
|
858
1001
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
859
1002
|
};
|
|
860
1003
|
|
|
@@ -864,11 +1007,11 @@ class flat_set
|
|
|
864
1007
|
|
|
865
1008
|
//!has_trivial_destructor_after_move<> == true_type
|
|
866
1009
|
//!specialization for optimizations
|
|
867
|
-
template <class Key, class Compare, class
|
|
868
|
-
struct has_trivial_destructor_after_move<boost::container::flat_set<Key, Compare,
|
|
1010
|
+
template <class Key, class Compare, class AllocatorOrContainer>
|
|
1011
|
+
struct has_trivial_destructor_after_move<boost::container::flat_set<Key, Compare, AllocatorOrContainer> >
|
|
869
1012
|
{
|
|
870
|
-
typedef typename ::boost::container::allocator_traits<
|
|
871
|
-
static const bool value = ::boost::has_trivial_destructor_after_move<
|
|
1013
|
+
typedef typename ::boost::container::allocator_traits<AllocatorOrContainer>::pointer pointer;
|
|
1014
|
+
static const bool value = ::boost::has_trivial_destructor_after_move<AllocatorOrContainer>::value &&
|
|
872
1015
|
::boost::has_trivial_destructor_after_move<pointer>::value &&
|
|
873
1016
|
::boost::has_trivial_destructor_after_move<Compare>::value;
|
|
874
1017
|
};
|
|
@@ -877,42 +1020,47 @@ namespace container {
|
|
|
877
1020
|
|
|
878
1021
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
879
1022
|
|
|
880
|
-
//! flat_multiset is a Sorted Associative Container that stores objects of type Key
|
|
881
|
-
//!
|
|
882
|
-
//! flat_multiset can store multiple copies of the same key value.
|
|
1023
|
+
//! flat_multiset is a Sorted Associative Container that stores objects of type Key and
|
|
1024
|
+
//! can store multiple copies of the same key value.
|
|
883
1025
|
//!
|
|
884
|
-
//! flat_multiset is similar to std::multiset but it's implemented
|
|
885
|
-
//!
|
|
886
|
-
//!
|
|
1026
|
+
//! flat_multiset is similar to std::multiset but it's implemented by as an ordered sequence container.
|
|
1027
|
+
//! The underlying sequence container is by default <i>vector</i> but it can also work
|
|
1028
|
+
//! user-provided vector-like SequenceContainers (like <i>static_vector</i> or <i>small_vector</i>).
|
|
887
1029
|
//!
|
|
888
|
-
//!
|
|
889
|
-
//!
|
|
1030
|
+
//! Using vector-like sequence containers means that inserting a new element into a flat_multiset might invalidate
|
|
1031
|
+
//! previous iterators and references (unless that sequence container is <i>stable_vector</i> or a similar
|
|
1032
|
+
//! container that offers stable pointers and references). Similarly, erasing an element might invalidate
|
|
1033
|
+
//! iterators and references pointing to elements that come after (their keys are bigger) the erased element.
|
|
890
1034
|
//!
|
|
891
1035
|
//! This container provides random-access iterators.
|
|
892
1036
|
//!
|
|
893
1037
|
//! \tparam Key is the type to be inserted in the multiset, which is also the key_type
|
|
894
1038
|
//! \tparam Compare is the comparison functor used to order keys
|
|
895
|
-
//! \tparam
|
|
1039
|
+
//! \tparam AllocatorOrContainer is either:
|
|
1040
|
+
//! - The allocator to allocate <code>value_type</code>s (e.g. <i>allocator< std::pair<Key, T> > </i>).
|
|
1041
|
+
//! (in this case <i>sequence_type</i> will be vector<value_type, AllocatorOrContainer>)
|
|
1042
|
+
//! - The SequenceContainer to be used as the underlying <i>sequence_type</i>. It must be a vector-like
|
|
1043
|
+
//! sequence container with random-access iterators.
|
|
896
1044
|
#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
897
|
-
template <class Key, class Compare = std::less<Key>, class
|
|
1045
|
+
template <class Key, class Compare = std::less<Key>, class AllocatorOrContainer = new_allocator<Key> >
|
|
898
1046
|
#else
|
|
899
|
-
template <class Key, class Compare, class
|
|
1047
|
+
template <class Key, class Compare, class AllocatorOrContainer>
|
|
900
1048
|
#endif
|
|
901
1049
|
class flat_multiset
|
|
902
1050
|
///@cond
|
|
903
|
-
: public
|
|
1051
|
+
: public dtl::flat_tree<Key, dtl::identity<Key>, Compare, AllocatorOrContainer>
|
|
904
1052
|
///@endcond
|
|
905
1053
|
{
|
|
906
1054
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
907
1055
|
private:
|
|
908
1056
|
BOOST_COPYABLE_AND_MOVABLE(flat_multiset)
|
|
909
|
-
typedef
|
|
1057
|
+
typedef dtl::flat_tree<Key, dtl::identity<Key>, Compare, AllocatorOrContainer> tree_t;
|
|
910
1058
|
|
|
911
1059
|
public:
|
|
912
|
-
|
|
1060
|
+
tree_t &tree()
|
|
913
1061
|
{ return *this; }
|
|
914
1062
|
|
|
915
|
-
const
|
|
1063
|
+
const tree_t &tree() const
|
|
916
1064
|
{ return *this; }
|
|
917
1065
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
918
1066
|
|
|
@@ -922,57 +1070,101 @@ class flat_multiset
|
|
|
922
1070
|
// types
|
|
923
1071
|
//
|
|
924
1072
|
//////////////////////////////////////////////
|
|
925
|
-
typedef Key
|
|
926
|
-
typedef
|
|
927
|
-
typedef
|
|
928
|
-
typedef
|
|
929
|
-
typedef ::
|
|
930
|
-
typedef
|
|
931
|
-
typedef typename ::
|
|
932
|
-
typedef typename ::
|
|
933
|
-
typedef typename ::
|
|
934
|
-
typedef typename ::
|
|
935
|
-
typedef typename ::
|
|
936
|
-
typedef
|
|
937
|
-
typedef typename BOOST_CONTAINER_IMPDEF(
|
|
938
|
-
typedef typename BOOST_CONTAINER_IMPDEF(
|
|
939
|
-
|
|
940
|
-
typedef typename
|
|
941
|
-
typedef typename
|
|
1073
|
+
typedef Key key_type;
|
|
1074
|
+
typedef Compare key_compare;
|
|
1075
|
+
typedef Key value_type;
|
|
1076
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::sequence_type) sequence_type;
|
|
1077
|
+
typedef typename sequence_type::allocator_type allocator_type;
|
|
1078
|
+
typedef ::boost::container::allocator_traits<allocator_type> allocator_traits_type;
|
|
1079
|
+
typedef typename sequence_type::pointer pointer;
|
|
1080
|
+
typedef typename sequence_type::const_pointer const_pointer;
|
|
1081
|
+
typedef typename sequence_type::reference reference;
|
|
1082
|
+
typedef typename sequence_type::const_reference const_reference;
|
|
1083
|
+
typedef typename sequence_type::size_type size_type;
|
|
1084
|
+
typedef typename sequence_type::difference_type difference_type;
|
|
1085
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::stored_allocator_type) stored_allocator_type;
|
|
1086
|
+
typedef typename BOOST_CONTAINER_IMPDEF(tree_t::value_compare) value_compare;
|
|
1087
|
+
|
|
1088
|
+
typedef typename sequence_type::iterator iterator;
|
|
1089
|
+
typedef typename sequence_type::const_iterator const_iterator;
|
|
1090
|
+
typedef typename sequence_type::reverse_iterator reverse_iterator;
|
|
1091
|
+
typedef typename sequence_type::const_reverse_iterator const_reverse_iterator;
|
|
942
1092
|
|
|
943
1093
|
//! @copydoc ::boost::container::flat_set::flat_set()
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
:
|
|
1094
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
|
|
1095
|
+
dtl::is_nothrow_default_constructible<Compare>::value)
|
|
1096
|
+
: tree_t()
|
|
947
1097
|
{}
|
|
948
1098
|
|
|
949
|
-
//! @copydoc ::boost::container::flat_set::flat_set(const Compare
|
|
950
|
-
explicit flat_multiset(const Compare& comp
|
|
951
|
-
|
|
952
|
-
: base_t(comp, a)
|
|
1099
|
+
//! @copydoc ::boost::container::flat_set::flat_set(const Compare&)
|
|
1100
|
+
BOOST_CONTAINER_FORCEINLINE explicit flat_multiset(const Compare& comp)
|
|
1101
|
+
: tree_t(comp)
|
|
953
1102
|
{}
|
|
954
1103
|
|
|
955
1104
|
//! @copydoc ::boost::container::flat_set::flat_set(const allocator_type&)
|
|
956
|
-
explicit flat_multiset(const allocator_type& a)
|
|
957
|
-
:
|
|
1105
|
+
BOOST_CONTAINER_FORCEINLINE explicit flat_multiset(const allocator_type& a)
|
|
1106
|
+
: tree_t(a)
|
|
958
1107
|
{}
|
|
959
1108
|
|
|
960
|
-
//! @copydoc ::boost::container::flat_set::flat_set(
|
|
1109
|
+
//! @copydoc ::boost::container::flat_set::flat_set(const Compare&, const allocator_type&)
|
|
1110
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(const Compare& comp, const allocator_type& a)
|
|
1111
|
+
: tree_t(comp, a)
|
|
1112
|
+
{}
|
|
1113
|
+
|
|
1114
|
+
//! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator)
|
|
961
1115
|
template <class InputIterator>
|
|
962
|
-
flat_multiset(InputIterator first, InputIterator last
|
|
963
|
-
|
|
964
|
-
const allocator_type& a = allocator_type())
|
|
965
|
-
: base_t(false, first, last, comp, a)
|
|
1116
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(InputIterator first, InputIterator last)
|
|
1117
|
+
: tree_t(false, first, last)
|
|
966
1118
|
{}
|
|
967
1119
|
|
|
968
1120
|
//! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator, const allocator_type&)
|
|
969
1121
|
template <class InputIterator>
|
|
970
|
-
flat_multiset(InputIterator first, InputIterator last, const allocator_type& a)
|
|
971
|
-
:
|
|
1122
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(InputIterator first, InputIterator last, const allocator_type& a)
|
|
1123
|
+
: tree_t(false, first, last, a)
|
|
1124
|
+
{}
|
|
1125
|
+
|
|
1126
|
+
//! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator, const Compare& comp)
|
|
1127
|
+
template <class InputIterator>
|
|
1128
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(InputIterator first, InputIterator last, const Compare& comp)
|
|
1129
|
+
: tree_t(false, first, last, comp)
|
|
1130
|
+
{}
|
|
1131
|
+
|
|
1132
|
+
//! @copydoc ::boost::container::flat_set::flat_set(InputIterator, InputIterator, const Compare& comp, const allocator_type&)
|
|
1133
|
+
template <class InputIterator>
|
|
1134
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
|
|
1135
|
+
: tree_t(false, first, last, comp, a)
|
|
1136
|
+
{}
|
|
1137
|
+
|
|
1138
|
+
//! <b>Effects</b>: Constructs an empty flat_multiset and
|
|
1139
|
+
//! inserts elements from the ordered range [first ,last ). This function
|
|
1140
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
1141
|
+
//!
|
|
1142
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
|
1143
|
+
//!
|
|
1144
|
+
//! <b>Complexity</b>: Linear in N.
|
|
1145
|
+
//!
|
|
1146
|
+
//! <b>Note</b>: Non-standard extension.
|
|
1147
|
+
template <class InputIterator>
|
|
1148
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, InputIterator first, InputIterator last)
|
|
1149
|
+
: tree_t(ordered_range, first, last)
|
|
1150
|
+
{}
|
|
1151
|
+
|
|
1152
|
+
//! <b>Effects</b>: Constructs an empty flat_multiset using the specified comparison object and
|
|
1153
|
+
//! inserts elements from the ordered range [first ,last ). This function
|
|
1154
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
1155
|
+
//!
|
|
1156
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
|
1157
|
+
//!
|
|
1158
|
+
//! <b>Complexity</b>: Linear in N.
|
|
1159
|
+
//!
|
|
1160
|
+
//! <b>Note</b>: Non-standard extension.
|
|
1161
|
+
template <class InputIterator>
|
|
1162
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp)
|
|
1163
|
+
: tree_t(ordered_range, first, last, comp)
|
|
972
1164
|
{}
|
|
973
1165
|
|
|
974
1166
|
//! <b>Effects</b>: Constructs an empty flat_multiset using the specified comparison object and
|
|
975
|
-
//! allocator, and inserts elements from the ordered range [first
|
|
1167
|
+
//! allocator, and inserts elements from the ordered range [first, last ). This function
|
|
976
1168
|
//! is more efficient than the normal range creation for ordered ranges.
|
|
977
1169
|
//!
|
|
978
1170
|
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
|
@@ -981,22 +1173,55 @@ class flat_multiset
|
|
|
981
1173
|
//!
|
|
982
1174
|
//! <b>Note</b>: Non-standard extension.
|
|
983
1175
|
template <class InputIterator>
|
|
984
|
-
flat_multiset(ordered_range_t, InputIterator first, InputIterator last,
|
|
985
|
-
|
|
986
|
-
const allocator_type& a = allocator_type())
|
|
987
|
-
: base_t(ordered_range, first, last, comp, a)
|
|
1176
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
|
|
1177
|
+
: tree_t(ordered_range, first, last, comp, a)
|
|
988
1178
|
{}
|
|
989
1179
|
|
|
990
1180
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
991
|
-
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type
|
|
992
|
-
flat_multiset(std::initializer_list<value_type> il
|
|
993
|
-
|
|
994
|
-
: base_t(false, il.begin(), il.end(), comp, a)
|
|
1181
|
+
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type)
|
|
1182
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(std::initializer_list<value_type> il)
|
|
1183
|
+
: tree_t(false, il.begin(), il.end())
|
|
995
1184
|
{}
|
|
996
1185
|
|
|
997
1186
|
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type>, const allocator_type&)
|
|
998
|
-
flat_multiset(std::initializer_list<value_type> il, const allocator_type& a)
|
|
999
|
-
:
|
|
1187
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(std::initializer_list<value_type> il, const allocator_type& a)
|
|
1188
|
+
: tree_t(false, il.begin(), il.end(), a)
|
|
1189
|
+
{}
|
|
1190
|
+
|
|
1191
|
+
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type>, const Compare& comp)
|
|
1192
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(std::initializer_list<value_type> il, const Compare& comp)
|
|
1193
|
+
: tree_t(false, il.begin(), il.end(), comp)
|
|
1194
|
+
{}
|
|
1195
|
+
|
|
1196
|
+
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type>, const Compare& comp, const allocator_type&)
|
|
1197
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
|
|
1198
|
+
: tree_t(false, il.begin(), il.end(), comp, a)
|
|
1199
|
+
{}
|
|
1200
|
+
|
|
1201
|
+
//! <b>Effects</b>: Constructs an empty containerand
|
|
1202
|
+
//! inserts elements from the ordered unique range [il.begin(), il.end()). This function
|
|
1203
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
1204
|
+
//!
|
|
1205
|
+
//! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate.
|
|
1206
|
+
//!
|
|
1207
|
+
//! <b>Complexity</b>: Linear in N.
|
|
1208
|
+
//!
|
|
1209
|
+
//! <b>Note</b>: Non-standard extension.
|
|
1210
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, std::initializer_list<value_type> il)
|
|
1211
|
+
: tree_t(ordered_range, il.begin(), il.end())
|
|
1212
|
+
{}
|
|
1213
|
+
|
|
1214
|
+
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
1215
|
+
//! inserts elements from the ordered unique range [il.begin(), il.end()). This function
|
|
1216
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
|
1217
|
+
//!
|
|
1218
|
+
//! <b>Requires</b>: [il.begin(), il.end()) must be ordered according to the predicate.
|
|
1219
|
+
//!
|
|
1220
|
+
//! <b>Complexity</b>: Linear in N.
|
|
1221
|
+
//!
|
|
1222
|
+
//! <b>Note</b>: Non-standard extension.
|
|
1223
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp)
|
|
1224
|
+
: tree_t(ordered_range, il.begin(), il.end(), comp)
|
|
1000
1225
|
{}
|
|
1001
1226
|
|
|
1002
1227
|
//! <b>Effects</b>: Constructs an empty container using the specified comparison object and
|
|
@@ -1008,43 +1233,42 @@ class flat_multiset
|
|
|
1008
1233
|
//! <b>Complexity</b>: Linear in N.
|
|
1009
1234
|
//!
|
|
1010
1235
|
//! <b>Note</b>: Non-standard extension.
|
|
1011
|
-
flat_multiset(ordered_range_t, std::initializer_list<value_type> il,
|
|
1012
|
-
|
|
1013
|
-
: base_t(ordered_range, il.begin(), il.end(), comp, a)
|
|
1236
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
|
|
1237
|
+
: tree_t(ordered_range, il.begin(), il.end(), comp, a)
|
|
1014
1238
|
{}
|
|
1015
1239
|
#endif
|
|
1016
1240
|
|
|
1017
1241
|
//! @copydoc ::boost::container::flat_set::flat_set(const flat_set &)
|
|
1018
|
-
flat_multiset(const flat_multiset& x)
|
|
1019
|
-
:
|
|
1242
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(const flat_multiset& x)
|
|
1243
|
+
: tree_t(static_cast<const tree_t&>(x))
|
|
1020
1244
|
{}
|
|
1021
1245
|
|
|
1022
1246
|
//! @copydoc ::boost::container::flat_set::flat_set(flat_set &&)
|
|
1023
|
-
flat_multiset(BOOST_RV_REF(flat_multiset) x)
|
|
1024
|
-
BOOST_NOEXCEPT_IF(boost::container::
|
|
1025
|
-
:
|
|
1247
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(BOOST_RV_REF(flat_multiset) x)
|
|
1248
|
+
BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
|
|
1249
|
+
: tree_t(boost::move(static_cast<tree_t&>(x)))
|
|
1026
1250
|
{}
|
|
1027
1251
|
|
|
1028
1252
|
//! @copydoc ::boost::container::flat_set::flat_set(const flat_set &, const allocator_type &)
|
|
1029
|
-
flat_multiset(const flat_multiset& x, const allocator_type &a)
|
|
1030
|
-
:
|
|
1253
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(const flat_multiset& x, const allocator_type &a)
|
|
1254
|
+
: tree_t(static_cast<const tree_t&>(x), a)
|
|
1031
1255
|
{}
|
|
1032
1256
|
|
|
1033
1257
|
//! @copydoc ::boost::container::flat_set::flat_set(flat_set &&, const allocator_type &)
|
|
1034
|
-
flat_multiset(BOOST_RV_REF(flat_multiset) x, const allocator_type &a)
|
|
1035
|
-
:
|
|
1258
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(BOOST_RV_REF(flat_multiset) x, const allocator_type &a)
|
|
1259
|
+
: tree_t(BOOST_MOVE_BASE(tree_t, x), a)
|
|
1036
1260
|
{}
|
|
1037
1261
|
|
|
1038
1262
|
//! @copydoc ::boost::container::flat_set::operator=(const flat_set &)
|
|
1039
|
-
flat_multiset& operator=(BOOST_COPY_ASSIGN_REF(flat_multiset) x)
|
|
1040
|
-
{ return static_cast<flat_multiset&>(this->
|
|
1263
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset& operator=(BOOST_COPY_ASSIGN_REF(flat_multiset) x)
|
|
1264
|
+
{ return static_cast<flat_multiset&>(this->tree_t::operator=(static_cast<const tree_t&>(x))); }
|
|
1041
1265
|
|
|
1042
1266
|
//! @copydoc ::boost::container::flat_set::operator=(flat_set &&)
|
|
1043
|
-
flat_multiset& operator=(BOOST_RV_REF(flat_multiset) x)
|
|
1267
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset& operator=(BOOST_RV_REF(flat_multiset) x)
|
|
1044
1268
|
BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
|
|
1045
1269
|
allocator_traits_type::is_always_equal::value) &&
|
|
1046
|
-
boost::container::
|
|
1047
|
-
{ return static_cast<flat_multiset&>(this->
|
|
1270
|
+
boost::container::dtl::is_nothrow_move_assignable<Compare>::value)
|
|
1271
|
+
{ return static_cast<flat_multiset&>(this->tree_t::operator=(BOOST_MOVE_BASE(tree_t, x))); }
|
|
1048
1272
|
|
|
1049
1273
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1050
1274
|
//! @copydoc ::boost::container::flat_set::operator=(std::initializer_list<value_type>)
|
|
@@ -1140,8 +1364,8 @@ class flat_multiset
|
|
|
1140
1364
|
//!
|
|
1141
1365
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
1142
1366
|
template <class... Args>
|
|
1143
|
-
iterator emplace(BOOST_FWD_REF(Args)... args)
|
|
1144
|
-
{ return this->
|
|
1367
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace(BOOST_FWD_REF(Args)... args)
|
|
1368
|
+
{ return this->tree_t::emplace_equal(boost::forward<Args>(args)...); }
|
|
1145
1369
|
|
|
1146
1370
|
//! <b>Effects</b>: Inserts an object of type Key constructed with
|
|
1147
1371
|
//! std::forward<Args>(args)... in the container.
|
|
@@ -1155,19 +1379,19 @@ class flat_multiset
|
|
|
1155
1379
|
//!
|
|
1156
1380
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
1157
1381
|
template <class... Args>
|
|
1158
|
-
iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
|
|
1159
|
-
{ return this->
|
|
1382
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator p, BOOST_FWD_REF(Args)... args)
|
|
1383
|
+
{ return this->tree_t::emplace_hint_equal(p, boost::forward<Args>(args)...); }
|
|
1160
1384
|
|
|
1161
1385
|
#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
1162
1386
|
|
|
1163
1387
|
#define BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE(N) \
|
|
1164
1388
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1165
|
-
iterator emplace(BOOST_MOVE_UREF##N)\
|
|
1166
|
-
{ return this->
|
|
1389
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace(BOOST_MOVE_UREF##N)\
|
|
1390
|
+
{ return this->tree_t::emplace_equal(BOOST_MOVE_FWD##N); }\
|
|
1167
1391
|
\
|
|
1168
1392
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1169
|
-
iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1170
|
-
{ return this->
|
|
1393
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1394
|
+
{ return this->tree_t::emplace_hint_equal(hint BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
|
|
1171
1395
|
//
|
|
1172
1396
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE)
|
|
1173
1397
|
#undef BOOST_CONTAINER_FLAT_MULTISET_EMPLACE_CODE
|
|
@@ -1228,13 +1452,12 @@ class flat_multiset
|
|
|
1228
1452
|
//!
|
|
1229
1453
|
//! <b>Effects</b>: inserts each element from the range [first,last) .
|
|
1230
1454
|
//!
|
|
1231
|
-
//! <b>Complexity</b>:
|
|
1232
|
-
//! search time plus N*size() insertion time.
|
|
1455
|
+
//! <b>Complexity</b>: N log(N).
|
|
1233
1456
|
//!
|
|
1234
1457
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
1235
1458
|
template <class InputIterator>
|
|
1236
|
-
void insert(InputIterator first, InputIterator last)
|
|
1237
|
-
{ this->
|
|
1459
|
+
BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
|
|
1460
|
+
{ this->tree_t::insert_equal(first, last); }
|
|
1238
1461
|
|
|
1239
1462
|
//! <b>Requires</b>: first, last are not iterators into *this and
|
|
1240
1463
|
//! must be ordered according to the predicate.
|
|
@@ -1242,56 +1465,53 @@ class flat_multiset
|
|
|
1242
1465
|
//! <b>Effects</b>: inserts each element from the range [first,last) .This function
|
|
1243
1466
|
//! is more efficient than the normal range creation for ordered ranges.
|
|
1244
1467
|
//!
|
|
1245
|
-
//! <b>Complexity</b>:
|
|
1246
|
-
//! search time plus N*size() insertion time.
|
|
1468
|
+
//! <b>Complexity</b>: Linear.
|
|
1247
1469
|
//!
|
|
1248
1470
|
//! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
|
|
1249
1471
|
template <class InputIterator>
|
|
1250
|
-
void insert(ordered_range_t, InputIterator first, InputIterator last)
|
|
1251
|
-
{ this->
|
|
1472
|
+
BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, InputIterator first, InputIterator last)
|
|
1473
|
+
{ this->tree_t::insert_equal(ordered_range, first, last); }
|
|
1252
1474
|
|
|
1253
1475
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1254
1476
|
//! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()).
|
|
1255
1477
|
//!
|
|
1256
|
-
//! <b>Complexity</b>:
|
|
1257
|
-
//! search time plus N*size() insertion time.
|
|
1478
|
+
//! <b>Complexity</b>: N log(N).
|
|
1258
1479
|
//!
|
|
1259
1480
|
//! <b>Note</b>: If an element is inserted it might invalidate elements.
|
|
1260
|
-
void insert(std::initializer_list<value_type> il)
|
|
1261
|
-
{ this->
|
|
1481
|
+
BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
|
|
1482
|
+
{ this->tree_t::insert_equal(il.begin(), il.end()); }
|
|
1262
1483
|
|
|
1263
1484
|
//! <b>Requires</b>: Range [il.begin(), il.end()) must be ordered according to the predicate.
|
|
1264
1485
|
//!
|
|
1265
1486
|
//! <b>Effects</b>: inserts each element from the range [il.begin(), il.end()). This function
|
|
1266
1487
|
//! is more efficient than the normal range creation for ordered ranges.
|
|
1267
1488
|
//!
|
|
1268
|
-
//! <b>Complexity</b>:
|
|
1269
|
-
//! search time plus N*size() insertion time.
|
|
1489
|
+
//! <b>Complexity</b>: Linear.
|
|
1270
1490
|
//!
|
|
1271
1491
|
//! <b>Note</b>: Non-standard extension. If an element is inserted it might invalidate elements.
|
|
1272
|
-
void insert(ordered_range_t, std::initializer_list<value_type> il)
|
|
1273
|
-
{ this->
|
|
1492
|
+
BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, std::initializer_list<value_type> il)
|
|
1493
|
+
{ this->tree_t::insert_equal(ordered_range, il.begin(), il.end()); }
|
|
1274
1494
|
#endif
|
|
1275
1495
|
|
|
1276
|
-
//! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2,
|
|
1496
|
+
//! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
|
|
1277
1497
|
template<class C2>
|
|
1278
|
-
BOOST_CONTAINER_FORCEINLINE void merge(flat_multiset<Key, C2,
|
|
1279
|
-
{ this->
|
|
1498
|
+
BOOST_CONTAINER_FORCEINLINE void merge(flat_multiset<Key, C2, AllocatorOrContainer>& source)
|
|
1499
|
+
{ this->tree_t::merge_equal(source.tree()); }
|
|
1280
1500
|
|
|
1281
|
-
//! @copydoc ::boost::container::flat_multiset::merge(flat_multiset<Key, C2,
|
|
1501
|
+
//! @copydoc ::boost::container::flat_multiset::merge(flat_multiset<Key, C2, AllocatorOrContainer>&)
|
|
1282
1502
|
template<class C2>
|
|
1283
|
-
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multiset<Key, C2,
|
|
1284
|
-
{ return this->merge(static_cast<flat_multiset<Key, C2,
|
|
1503
|
+
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multiset<Key, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
|
|
1504
|
+
{ return this->merge(static_cast<flat_multiset<Key, C2, AllocatorOrContainer>&>(source)); }
|
|
1285
1505
|
|
|
1286
|
-
//! @copydoc ::boost::container::flat_multimap::merge(flat_map<Key, T, C2,
|
|
1506
|
+
//! @copydoc ::boost::container::flat_multimap::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
|
|
1287
1507
|
template<class C2>
|
|
1288
|
-
BOOST_CONTAINER_FORCEINLINE void merge(flat_set<Key, C2,
|
|
1289
|
-
{ this->
|
|
1508
|
+
BOOST_CONTAINER_FORCEINLINE void merge(flat_set<Key, C2, AllocatorOrContainer>& source)
|
|
1509
|
+
{ this->tree_t::merge_equal(source.tree()); }
|
|
1290
1510
|
|
|
1291
|
-
//! @copydoc ::boost::container::flat_multiset::merge(flat_set<Key, C2,
|
|
1511
|
+
//! @copydoc ::boost::container::flat_multiset::merge(flat_set<Key, C2, AllocatorOrContainer>&)
|
|
1292
1512
|
template<class C2>
|
|
1293
|
-
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_set<Key, C2,
|
|
1294
|
-
{ return this->merge(static_cast<flat_set<Key, C2,
|
|
1513
|
+
BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_set<Key, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
|
|
1514
|
+
{ return this->merge(static_cast<flat_set<Key, C2, AllocatorOrContainer>&>(source)); }
|
|
1295
1515
|
|
|
1296
1516
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1297
1517
|
|
|
@@ -1307,7 +1527,7 @@ class flat_multiset
|
|
|
1307
1527
|
//! @copydoc ::boost::container::flat_set::swap
|
|
1308
1528
|
void swap(flat_multiset& x)
|
|
1309
1529
|
BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
|
|
1310
|
-
&& boost::container::
|
|
1530
|
+
&& boost::container::dtl::is_nothrow_swappable<Compare>::value );
|
|
1311
1531
|
|
|
1312
1532
|
//! @copydoc ::boost::container::flat_set::clear
|
|
1313
1533
|
void clear() BOOST_NOEXCEPT_OR_NOTHROW;
|
|
@@ -1392,17 +1612,46 @@ class flat_multiset
|
|
|
1392
1612
|
//! <b>Complexity</b>: Constant.
|
|
1393
1613
|
friend void swap(flat_multiset& x, flat_multiset& y);
|
|
1394
1614
|
|
|
1615
|
+
//! <b>Effects</b>: Extracts the internal sequence container.
|
|
1616
|
+
//!
|
|
1617
|
+
//! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
|
|
1618
|
+
//!
|
|
1619
|
+
//! <b>Postcondition</b>: this->empty()
|
|
1620
|
+
//!
|
|
1621
|
+
//! <b>Throws</b>: If secuence_type's move constructor throws
|
|
1622
|
+
sequence_type extract_sequence();
|
|
1623
|
+
|
|
1395
1624
|
#endif //#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1396
1625
|
|
|
1626
|
+
//! <b>Effects</b>: Discards the internally hold sequence container and adopts the
|
|
1627
|
+
//! one passed externally using the move assignment.
|
|
1628
|
+
//!
|
|
1629
|
+
//! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
|
|
1630
|
+
//!
|
|
1631
|
+
//! <b>Throws</b>: If the comparison or the move constructor throws
|
|
1632
|
+
BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
|
|
1633
|
+
{ this->tree_t::adopt_sequence_equal(boost::move(seq)); }
|
|
1634
|
+
|
|
1635
|
+
//! <b>Requires</b>: seq shall be ordered according to this->compare()
|
|
1636
|
+
//!
|
|
1637
|
+
//! <b>Effects</b>: Discards the internally hold sequence container and adopts the
|
|
1638
|
+
//! one passed externally using the move assignment.
|
|
1639
|
+
//!
|
|
1640
|
+
//! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
|
|
1641
|
+
//!
|
|
1642
|
+
//! <b>Throws</b>: If the move assignment throws
|
|
1643
|
+
BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_range_t, BOOST_RV_REF(sequence_type) seq)
|
|
1644
|
+
{ this->tree_t::adopt_sequence_equal(ordered_range_t(), boost::move(seq)); }
|
|
1645
|
+
|
|
1397
1646
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1398
1647
|
private:
|
|
1399
1648
|
template <class KeyType>
|
|
1400
|
-
iterator priv_insert(BOOST_FWD_REF(KeyType) x)
|
|
1401
|
-
{ return this->
|
|
1649
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(BOOST_FWD_REF(KeyType) x)
|
|
1650
|
+
{ return this->tree_t::insert_equal(::boost::forward<KeyType>(x)); }
|
|
1402
1651
|
|
|
1403
1652
|
template <class KeyType>
|
|
1404
|
-
iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
|
|
1405
|
-
{ return this->
|
|
1653
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const_iterator p, BOOST_FWD_REF(KeyType) x)
|
|
1654
|
+
{ return this->tree_t::insert_equal(p, ::boost::forward<KeyType>(x)); }
|
|
1406
1655
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1407
1656
|
};
|
|
1408
1657
|
|
|
@@ -1412,11 +1661,11 @@ class flat_multiset
|
|
|
1412
1661
|
|
|
1413
1662
|
//!has_trivial_destructor_after_move<> == true_type
|
|
1414
1663
|
//!specialization for optimizations
|
|
1415
|
-
template <class Key, class Compare, class
|
|
1416
|
-
struct has_trivial_destructor_after_move<boost::container::flat_multiset<Key, Compare,
|
|
1664
|
+
template <class Key, class Compare, class AllocatorOrContainer>
|
|
1665
|
+
struct has_trivial_destructor_after_move<boost::container::flat_multiset<Key, Compare, AllocatorOrContainer> >
|
|
1417
1666
|
{
|
|
1418
|
-
typedef typename ::boost::container::allocator_traits<
|
|
1419
|
-
static const bool value = ::boost::has_trivial_destructor_after_move<
|
|
1667
|
+
typedef typename ::boost::container::allocator_traits<AllocatorOrContainer>::pointer pointer;
|
|
1668
|
+
static const bool value = ::boost::has_trivial_destructor_after_move<AllocatorOrContainer>::value &&
|
|
1420
1669
|
::boost::has_trivial_destructor_after_move<pointer>::value &&
|
|
1421
1670
|
::boost::has_trivial_destructor_after_move<Compare>::value;
|
|
1422
1671
|
};
|