passenger 6.0.8 → 6.0.9
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 +29 -0
- data/CONTRIBUTORS +5 -0
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Shared/ApplicationPoolApiKey.h +2 -0
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +27 -27
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +2 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +19 -19
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -0
- data/src/cxx_supportlib/FileDescriptor.h +8 -0
- data/src/cxx_supportlib/StaticString.h +2 -0
- data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_all.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +240 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +21 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +21 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +29 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +58 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +3 -3
- 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 +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +58 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +1 -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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +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_function.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +1 -1
- 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/functional.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +88 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +8 -4
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +13 -11
- 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 +7 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +25 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +3 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +29 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +37 -0
- 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 +1 -1
- 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 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +4 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +1 -1
- 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 +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +2 -2
- 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 +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +107 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +194 -112
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +283 -83
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +218 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +47 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +287 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +39 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +62 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +29 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +67 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +39 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +281 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +62 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +216 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +215 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +14 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +34 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +137 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +245 -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 +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +13 -9
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +56 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +106 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +56 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +47 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +51 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +17 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +235 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +79 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +55 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +106 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +136 -89
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +100 -58
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +55 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +55 -43
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +32 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +25 -1
- data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +3 -23
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +154 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +4 -320
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +214 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +215 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx98.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +186 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +37 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +45 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +123 -71
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +117 -45
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +142 -36
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +141 -90
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/guards_dended.hpp +198 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +12 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +126 -92
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +4 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +3000 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +237 -169
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +10 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +58 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +21 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +51 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +109 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +184 -105
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +123 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +368 -384
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +102 -134
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +581 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +199 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_iterator.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_iterator.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/mod_inverse.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_log2.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +8 -16
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/twin.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +7 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +18 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +38 -38
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +13 -16
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +10 -121
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +31 -14
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +4 -48
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +30 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +224 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +253 -43
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/enum.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/params.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/string.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/converter_policies.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/meta.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/default.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/maybe.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/name.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/item.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_arg_list.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/specification.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_binary.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_nullary.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/parameter/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/macros.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/parameters.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/object_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/e2k.h +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +55 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/riscv.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other.h +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/wordsize.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/add.hpp +54 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/dec.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_1_number.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_maximum_number.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_minimum_number.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/maximum_number.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/div.hpp +37 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/inc.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_1024.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_256.hpp +276 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_512.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_1024.hpp +536 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_512.hpp +280 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mod.hpp +37 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mul.hpp +60 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/sub.hpp +51 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/enum.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/insert.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/remove.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/replace.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_256.hpp +793 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/not_equal.hpp +44 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +16 -33
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/limits.hpp +136 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/deduce_d.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/dmc/while.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_256.hpp +533 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/while.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_256.hpp +533 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/while.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_1024.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_512.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/while.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/auto_rec.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/dmc/auto_rec.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_1024.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_256.hpp +280 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_512.hpp +276 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/intercept.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_1024.hpp +530 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_256.hpp +273 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_512.hpp +274 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/overload.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward1.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward2.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward3.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward4.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward5.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_1024.hpp +2573 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_1024.hpp +2573 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_1024.hpp +2573 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_1024.hpp +2573 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_1024.hpp +2573 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_1024.hpp +2571 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_512.hpp +1291 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_1024.hpp +2571 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_1024.hpp +2571 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_1024.hpp +2571 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_1024.hpp +2571 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_256.hpp +1296 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_512.hpp +1293 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse1.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse2.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse3.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse4.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse5.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_1024.hpp +1549 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_256.hpp +782 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_512.hpp +781 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_1024.hpp +1549 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_256.hpp +782 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_512.hpp +781 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/local.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/rlocal.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/dmc/fold_left.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_left.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_right.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_256.hpp +533 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_1024.hpp +1557 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_256.hpp +791 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_512.hpp +789 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_left.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_right.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_1024.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_512.hpp +276 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_1024.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_512.hpp +276 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/enum.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_left.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_right.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/for_each_product.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_1024.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_512.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/reverse.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/size.hpp +56 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +5 -72
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/bool.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_1024.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_512.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/is_begin_parens.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/remove_parens.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/deduce_r.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/dmc/for.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/for.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_256.hpp +533 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/for.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_1024.hpp +1044 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_256.hpp +533 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_512.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/msvc/for.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_1024.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_256.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_512.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_1024.hpp +1557 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_256.hpp +791 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_512.hpp +789 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat_from_to.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +6 -11
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_1024.hpp +530 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_256.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_512.hpp +274 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/split.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/elem.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/enum.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_left.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_right.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_1024.hpp +530 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_256.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_512.hpp +274 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_1024.hpp +530 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_256.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_512.hpp +274 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_1024.hpp +1556 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_256.hpp +1053 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_512.hpp +788 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_1024.hpp +530 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_256.hpp +273 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_512.hpp +274 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_1024.hpp +1043 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_256.hpp +532 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_512.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/size.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/variadic_seq_to_seq.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/eat.hpp +4 -18
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +11 -157
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_128.hpp +403 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_256.hpp +1171 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_64.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_128.hpp +595 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_256.hpp +1747 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_64.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_128.hpp +403 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +1171 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_64.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +17 -39
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +38 -25
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/size.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_array.hpp +15 -12
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +37 -25
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +38 -24
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/has_opt.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/elem.hpp +93 -71
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_128.hpp +275 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_256.hpp +723 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_64.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_128.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_256.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_64.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/size.hpp +39 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_array.hpp +15 -9
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_list.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_tuple.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +29 -5
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/mixmax_skip_N17.ipp +287 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +9 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +13 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +313 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +78 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +97 -113
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +4 -75
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +4 -147
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +8 -761
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +20 -19
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +342 -42
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +107 -24
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -117
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1516 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +39 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +13 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +39 -41
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +638 -22
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +790 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +521 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +734 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +1575 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3117 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +474 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +1040 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +195 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +1402 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/indexed_bit_flag.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +156 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +667 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +175 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +576 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +915 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +1872 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/primary_transform.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +158 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +1124 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +213 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +152 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +255 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/{libs/regex/src/regex_traits_defaults.cpp → regex/v5/regex_traits_defaults.hpp} +719 -415
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +159 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +299 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +382 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +312 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +864 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +1176 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/cerrno.hpp +329 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/errc.hpp +126 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +189 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +215 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +163 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +80 -58
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/{system_category_posix.hpp → is_generic_value.hpp} +7 -14
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/throws.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/{std_interoperability.hpp → to_std_category.hpp} +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_category.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +7 -925
- data/src/cxx_supportlib/vendor-modified/boost/system/error_condition.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/generic_category.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/is_error_code_enum.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/is_error_condition_enum.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/system_category.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +37 -39
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +247 -168
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +242 -217
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_trivially_copyable.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +5 -0
- metadata +223 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +0 -25
- data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +0 -206
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cpp_regex_traits.cpp +0 -117
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +0 -667
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/instances.cpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_raw_buffer.cpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +0 -314
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/winstances.cpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +0 -1038
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +0 -581
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/round_fwd.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +0 -640
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +0 -1712
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +0 -489
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/real_cast.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -557
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +0 -236
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp.orig +0 -841
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp.orig +0 -54
|
@@ -21,11 +21,105 @@
|
|
|
21
21
|
|
|
22
22
|
#include <boost/container/detail/config_begin.hpp>
|
|
23
23
|
#include <boost/container/detail/workaround.hpp>
|
|
24
|
+
#include <boost/core/ignore_unused.hpp>
|
|
24
25
|
|
|
25
26
|
#ifndef BOOST_NO_EXCEPTIONS
|
|
27
|
+
#include <exception> //for std exception base
|
|
28
|
+
|
|
29
|
+
# if defined(BOOST_CONTAINER_USE_STD_EXCEPTIONS)
|
|
26
30
|
#include <stdexcept> //for std exception types
|
|
27
31
|
#include <string> //for implicit std::string conversion
|
|
28
32
|
#include <new> //for std::bad_alloc
|
|
33
|
+
|
|
34
|
+
typedef std::bad_alloc bad_alloc_t;
|
|
35
|
+
typedef std::out_of_range out_of_range_t;
|
|
36
|
+
typedef std::out_of_range length_error_t;
|
|
37
|
+
typedef std::logic_error logic_error_t;
|
|
38
|
+
typedef std::runtime_error runtime_error_t;
|
|
39
|
+
|
|
40
|
+
# else //!BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
41
|
+
|
|
42
|
+
namespace boost {
|
|
43
|
+
namespace container {
|
|
44
|
+
|
|
45
|
+
class exception
|
|
46
|
+
: public ::std::exception
|
|
47
|
+
{
|
|
48
|
+
typedef ::std::exception std_exception_t;
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
|
|
52
|
+
//msg must be a static string (guaranteed by callers)
|
|
53
|
+
explicit exception(const char *msg)
|
|
54
|
+
: std_exception_t(), m_msg(msg)
|
|
55
|
+
{}
|
|
56
|
+
|
|
57
|
+
virtual const char *what() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
58
|
+
{ return m_msg ? m_msg : "unknown boost::container exception"; }
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
const char *m_msg;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
class bad_alloc
|
|
65
|
+
: public exception
|
|
66
|
+
{
|
|
67
|
+
public:
|
|
68
|
+
bad_alloc()
|
|
69
|
+
: exception("boost::container::bad_alloc thrown")
|
|
70
|
+
{}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
typedef bad_alloc bad_alloc_t;
|
|
74
|
+
|
|
75
|
+
class out_of_range
|
|
76
|
+
: public exception
|
|
77
|
+
{
|
|
78
|
+
public:
|
|
79
|
+
explicit out_of_range(const char *msg)
|
|
80
|
+
: exception(msg)
|
|
81
|
+
{}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
typedef out_of_range out_of_range_t;
|
|
85
|
+
|
|
86
|
+
class length_error
|
|
87
|
+
: public exception
|
|
88
|
+
{
|
|
89
|
+
public:
|
|
90
|
+
explicit length_error(const char *msg)
|
|
91
|
+
: exception(msg)
|
|
92
|
+
{}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
typedef out_of_range length_error_t;
|
|
96
|
+
|
|
97
|
+
class logic_error
|
|
98
|
+
: public exception
|
|
99
|
+
{
|
|
100
|
+
public:
|
|
101
|
+
explicit logic_error(const char *msg)
|
|
102
|
+
: exception(msg)
|
|
103
|
+
{}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
typedef logic_error logic_error_t;
|
|
107
|
+
|
|
108
|
+
class runtime_error
|
|
109
|
+
: public exception
|
|
110
|
+
{
|
|
111
|
+
public:
|
|
112
|
+
explicit runtime_error(const char *msg)
|
|
113
|
+
: exception(msg)
|
|
114
|
+
{}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
typedef runtime_error runtime_error_t;
|
|
118
|
+
|
|
119
|
+
} // namespace boost {
|
|
120
|
+
} // namespace container {
|
|
121
|
+
|
|
122
|
+
# endif
|
|
29
123
|
#else
|
|
30
124
|
#include <boost/assert.hpp>
|
|
31
125
|
#include <cstdlib> //for std::abort
|
|
@@ -51,41 +145,35 @@ namespace container {
|
|
|
51
145
|
|
|
52
146
|
BOOST_NORETURN inline void throw_bad_alloc()
|
|
53
147
|
{
|
|
54
|
-
|
|
55
|
-
(void)msg;
|
|
56
|
-
BOOST_ASSERT(!msg);
|
|
148
|
+
BOOST_ASSERT(!"boost::container bad_alloc thrown");
|
|
57
149
|
std::abort();
|
|
58
150
|
}
|
|
59
151
|
|
|
60
152
|
BOOST_NORETURN inline void throw_out_of_range(const char* str)
|
|
61
153
|
{
|
|
62
|
-
|
|
63
|
-
(
|
|
64
|
-
BOOST_ASSERT_MSG(!msg, str);
|
|
154
|
+
boost::ignore_unused(str);
|
|
155
|
+
BOOST_ASSERT_MSG(!"boost::container out_of_range thrown", str);
|
|
65
156
|
std::abort();
|
|
66
157
|
}
|
|
67
158
|
|
|
68
159
|
BOOST_NORETURN inline void throw_length_error(const char* str)
|
|
69
160
|
{
|
|
70
|
-
|
|
71
|
-
(
|
|
72
|
-
BOOST_ASSERT_MSG(!msg, str);
|
|
161
|
+
boost::ignore_unused(str);
|
|
162
|
+
BOOST_ASSERT_MSG(!"boost::container length_error thrown", str);
|
|
73
163
|
std::abort();
|
|
74
164
|
}
|
|
75
165
|
|
|
76
166
|
BOOST_NORETURN inline void throw_logic_error(const char* str)
|
|
77
167
|
{
|
|
78
|
-
|
|
79
|
-
(
|
|
80
|
-
BOOST_ASSERT_MSG(!msg, str);
|
|
168
|
+
boost::ignore_unused(str);
|
|
169
|
+
BOOST_ASSERT_MSG(!"boost::container logic_error thrown", str);
|
|
81
170
|
std::abort();
|
|
82
171
|
}
|
|
83
172
|
|
|
84
173
|
BOOST_NORETURN inline void throw_runtime_error(const char* str)
|
|
85
174
|
{
|
|
86
|
-
|
|
87
|
-
(
|
|
88
|
-
BOOST_ASSERT_MSG(!msg, str);
|
|
175
|
+
boost::ignore_unused(str);
|
|
176
|
+
BOOST_ASSERT_MSG(!"boost::container runtime_error thrown", str);
|
|
89
177
|
std::abort();
|
|
90
178
|
}
|
|
91
179
|
|
|
@@ -104,7 +192,11 @@ namespace container {
|
|
|
104
192
|
//! </ul>
|
|
105
193
|
BOOST_NORETURN inline void throw_bad_alloc()
|
|
106
194
|
{
|
|
195
|
+
#ifdef BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
107
196
|
throw std::bad_alloc();
|
|
197
|
+
#else
|
|
198
|
+
throw bad_alloc();
|
|
199
|
+
#endif
|
|
108
200
|
}
|
|
109
201
|
|
|
110
202
|
//! Exception callback called by Boost.Container to signal arguments out of range.
|
|
@@ -120,7 +212,11 @@ namespace container {
|
|
|
120
212
|
//! </ul>
|
|
121
213
|
BOOST_NORETURN inline void throw_out_of_range(const char* str)
|
|
122
214
|
{
|
|
215
|
+
#ifdef BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
123
216
|
throw std::out_of_range(str);
|
|
217
|
+
#else
|
|
218
|
+
throw out_of_range(str);
|
|
219
|
+
#endif
|
|
124
220
|
}
|
|
125
221
|
|
|
126
222
|
//! Exception callback called by Boost.Container to signal errors resizing.
|
|
@@ -136,7 +232,11 @@ namespace container {
|
|
|
136
232
|
//! </ul>
|
|
137
233
|
BOOST_NORETURN inline void throw_length_error(const char* str)
|
|
138
234
|
{
|
|
235
|
+
#ifdef BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
139
236
|
throw std::length_error(str);
|
|
237
|
+
#else
|
|
238
|
+
throw length_error(str);
|
|
239
|
+
#endif
|
|
140
240
|
}
|
|
141
241
|
|
|
142
242
|
//! Exception callback called by Boost.Container to report errors in the internal logical
|
|
@@ -153,7 +253,11 @@ namespace container {
|
|
|
153
253
|
//! </ul>
|
|
154
254
|
BOOST_NORETURN inline void throw_logic_error(const char* str)
|
|
155
255
|
{
|
|
256
|
+
#ifdef BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
156
257
|
throw std::logic_error(str);
|
|
258
|
+
#else
|
|
259
|
+
throw logic_error(str);
|
|
260
|
+
#endif
|
|
157
261
|
}
|
|
158
262
|
|
|
159
263
|
//! Exception callback called by Boost.Container to report errors that can only be detected during runtime.
|
|
@@ -169,7 +273,11 @@ namespace container {
|
|
|
169
273
|
//! </ul>
|
|
170
274
|
BOOST_NORETURN inline void throw_runtime_error(const char* str)
|
|
171
275
|
{
|
|
276
|
+
#ifdef BOOST_CONTAINER_USE_STD_EXCEPTIONS
|
|
172
277
|
throw std::runtime_error(str);
|
|
278
|
+
#else
|
|
279
|
+
throw runtime_error(str);
|
|
280
|
+
#endif
|
|
173
281
|
}
|
|
174
282
|
|
|
175
283
|
#endif
|
|
@@ -108,10 +108,12 @@ class vec_iterator
|
|
|
108
108
|
, nat>::type nonconst_iterator;
|
|
109
109
|
|
|
110
110
|
public:
|
|
111
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
111
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
112
|
+
const Pointer &get_ptr() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
112
113
|
{ return m_ptr; }
|
|
113
114
|
|
|
114
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
115
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
116
|
+
Pointer &get_ptr() BOOST_NOEXCEPT_OR_NOTHROW
|
|
115
117
|
{ return m_ptr; }
|
|
116
118
|
|
|
117
119
|
BOOST_CONTAINER_FORCEINLINE explicit vec_iterator(Pointer ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
|
@@ -138,13 +140,16 @@ class vec_iterator
|
|
|
138
140
|
{ m_ptr = other.get_ptr(); return *this; }
|
|
139
141
|
|
|
140
142
|
//Pointer like operators
|
|
141
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
143
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
144
|
+
reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
142
145
|
{ BOOST_ASSERT(!!m_ptr); return *m_ptr; }
|
|
143
146
|
|
|
144
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
147
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
148
|
+
pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
145
149
|
{ return m_ptr; }
|
|
146
150
|
|
|
147
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
151
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
152
|
+
reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
148
153
|
{ BOOST_ASSERT(!!m_ptr); return m_ptr[off]; }
|
|
149
154
|
|
|
150
155
|
//Increment / Decrement
|
|
@@ -167,35 +172,45 @@ class vec_iterator
|
|
|
167
172
|
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
|
168
173
|
{ BOOST_ASSERT(m_ptr || !off); m_ptr -= off; return *this; }
|
|
169
174
|
|
|
170
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
175
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
176
|
+
friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
|
171
177
|
{ BOOST_ASSERT(x.m_ptr || !off); return vec_iterator(x.m_ptr+off); }
|
|
172
178
|
|
|
173
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
179
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
180
|
+
friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
|
|
174
181
|
{ BOOST_ASSERT(right.m_ptr || !off); right.m_ptr += off; return right; }
|
|
175
182
|
|
|
176
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
183
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
184
|
+
friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
|
177
185
|
{ BOOST_ASSERT(left.m_ptr || !off); left.m_ptr -= off; return left; }
|
|
178
186
|
|
|
179
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
187
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
188
|
+
friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
|
|
180
189
|
{ return left.m_ptr - right.m_ptr; }
|
|
181
190
|
|
|
182
191
|
//Comparison operators
|
|
183
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
192
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
193
|
+
friend bool operator== (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
184
194
|
{ return l.m_ptr == r.m_ptr; }
|
|
185
195
|
|
|
186
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
196
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
197
|
+
friend bool operator!= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
187
198
|
{ return l.m_ptr != r.m_ptr; }
|
|
188
199
|
|
|
189
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
200
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
201
|
+
friend bool operator< (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
190
202
|
{ return l.m_ptr < r.m_ptr; }
|
|
191
203
|
|
|
192
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
204
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
205
|
+
friend bool operator<= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
193
206
|
{ return l.m_ptr <= r.m_ptr; }
|
|
194
207
|
|
|
195
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
208
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
209
|
+
friend bool operator> (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
196
210
|
{ return l.m_ptr > r.m_ptr; }
|
|
197
211
|
|
|
198
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
212
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
213
|
+
friend bool operator>= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
|
199
214
|
{ return l.m_ptr >= r.m_ptr; }
|
|
200
215
|
};
|
|
201
216
|
|
|
@@ -247,10 +262,6 @@ struct vector_value_traits_base
|
|
|
247
262
|
{
|
|
248
263
|
static const bool trivial_dctr = dtl::is_trivially_destructible<T>::value;
|
|
249
264
|
static const bool trivial_dctr_after_move = has_trivial_destructor_after_move<T>::value;
|
|
250
|
-
static const bool trivial_copy = dtl::is_trivially_copy_constructible<T>::value;
|
|
251
|
-
static const bool nothrow_copy = dtl::is_nothrow_copy_constructible<T>::value || trivial_copy;
|
|
252
|
-
static const bool trivial_assign = dtl::is_trivially_copy_assignable<T>::value;
|
|
253
|
-
static const bool nothrow_assign = dtl::is_nothrow_copy_assignable<T>::value || trivial_assign;
|
|
254
265
|
};
|
|
255
266
|
|
|
256
267
|
template <class Allocator>
|
|
@@ -288,7 +299,8 @@ struct vector_alloc_holder
|
|
|
288
299
|
typedef typename allocator_traits_type::size_type size_type;
|
|
289
300
|
typedef typename allocator_traits_type::value_type value_type;
|
|
290
301
|
|
|
291
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
302
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
303
|
+
static bool is_propagable_from(const allocator_type &from_alloc, pointer p, const allocator_type &to_alloc, bool const propagate_allocator)
|
|
292
304
|
{
|
|
293
305
|
(void)propagate_allocator; (void)p; (void)to_alloc; (void)from_alloc;
|
|
294
306
|
const bool all_storage_propagable = !allocator_traits_type::is_partially_propagable::value ||
|
|
@@ -296,7 +308,8 @@ struct vector_alloc_holder
|
|
|
296
308
|
return all_storage_propagable && (propagate_allocator || allocator_traits_type::equal(from_alloc, to_alloc));
|
|
297
309
|
}
|
|
298
310
|
|
|
299
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
311
|
+
BOOST_CONTAINER_FORCEINLINE
|
|
312
|
+
static bool are_swap_propagable(const allocator_type &l_a, pointer l_p, const allocator_type &r_a, pointer r_p, bool const propagate_allocator)
|
|
300
313
|
{
|
|
301
314
|
(void)propagate_allocator; (void)l_p; (void)r_p; (void)l_a; (void)r_a;
|
|
302
315
|
const bool all_storage_propagable = !allocator_traits_type::is_partially_propagable::value ||
|
|
@@ -317,35 +330,42 @@ struct vector_alloc_holder
|
|
|
317
330
|
{}
|
|
318
331
|
|
|
319
332
|
//Constructor, does not throw
|
|
320
|
-
template<class AllocConvertible>
|
|
321
|
-
vector_alloc_holder(vector_uninitialized_size_t, BOOST_FWD_REF(AllocConvertible) a,
|
|
333
|
+
template<class AllocConvertible, class SizeType>
|
|
334
|
+
vector_alloc_holder(vector_uninitialized_size_t, BOOST_FWD_REF(AllocConvertible) a, SizeType initial_size)
|
|
322
335
|
: allocator_type(boost::forward<AllocConvertible>(a))
|
|
323
336
|
, m_start()
|
|
324
337
|
//Size is initialized here so vector should only call uninitialized_xxx after this
|
|
325
338
|
, m_size(static_cast<stored_size_type>(initial_size))
|
|
326
339
|
, m_capacity()
|
|
327
340
|
{
|
|
328
|
-
if(initial_size){
|
|
341
|
+
if (initial_size > size_type(-1)){
|
|
342
|
+
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
343
|
+
}
|
|
344
|
+
else if(initial_size){
|
|
329
345
|
pointer reuse = pointer();
|
|
330
|
-
size_type final_cap = initial_size;
|
|
331
|
-
m_start = this->allocation_command(allocate_new,
|
|
332
|
-
|
|
346
|
+
size_type final_cap = static_cast<size_type>(initial_size);
|
|
347
|
+
m_start = this->allocation_command(allocate_new, final_cap, final_cap, reuse);
|
|
348
|
+
this->set_stored_capacity(final_cap);
|
|
333
349
|
}
|
|
334
350
|
}
|
|
335
351
|
|
|
336
352
|
//Constructor, does not throw
|
|
337
|
-
|
|
353
|
+
template<class SizeType>
|
|
354
|
+
vector_alloc_holder(vector_uninitialized_size_t, SizeType initial_size)
|
|
338
355
|
: allocator_type()
|
|
339
356
|
, m_start()
|
|
340
357
|
//Size is initialized here so vector should only call uninitialized_xxx after this
|
|
341
358
|
, m_size(static_cast<stored_size_type>(initial_size))
|
|
342
359
|
, m_capacity()
|
|
343
360
|
{
|
|
344
|
-
if(initial_size){
|
|
361
|
+
if (initial_size > size_type(-1)){
|
|
362
|
+
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
363
|
+
}
|
|
364
|
+
else if(initial_size){
|
|
345
365
|
pointer reuse = pointer();
|
|
346
366
|
size_type final_cap = initial_size;
|
|
347
|
-
m_start = this->allocation_command(allocate_new,
|
|
348
|
-
|
|
367
|
+
m_start = this->allocation_command(allocate_new, final_cap, final_cap, reuse);
|
|
368
|
+
this->set_stored_capacity(final_cap);
|
|
349
369
|
}
|
|
350
370
|
}
|
|
351
371
|
|
|
@@ -383,8 +403,20 @@ struct vector_alloc_holder
|
|
|
383
403
|
}
|
|
384
404
|
}
|
|
385
405
|
|
|
406
|
+
BOOST_CONTAINER_FORCEINLINE void set_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
407
|
+
{ this->m_size = static_cast<stored_size_type>(s); }
|
|
408
|
+
|
|
409
|
+
BOOST_CONTAINER_FORCEINLINE void dec_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
410
|
+
{ this->m_size -= static_cast<stored_size_type>(s); }
|
|
411
|
+
|
|
412
|
+
BOOST_CONTAINER_FORCEINLINE void inc_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
413
|
+
{ this->m_size += static_cast<stored_size_type>(s); }
|
|
414
|
+
|
|
415
|
+
BOOST_CONTAINER_FORCEINLINE void set_stored_capacity(size_type c) BOOST_NOEXCEPT_OR_NOTHROW
|
|
416
|
+
{ this->m_capacity = static_cast<stored_size_type>(c); }
|
|
417
|
+
|
|
386
418
|
BOOST_CONTAINER_FORCEINLINE pointer allocation_command(boost::container::allocation_type command,
|
|
387
|
-
|
|
419
|
+
size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse)
|
|
388
420
|
{
|
|
389
421
|
typedef typename dtl::version<allocator_type>::type alloc_version;
|
|
390
422
|
return this->priv_allocation_command(alloc_version(), command, limit_size, prefer_in_recvd_out_size, reuse);
|
|
@@ -427,7 +459,7 @@ struct vector_alloc_holder
|
|
|
427
459
|
{
|
|
428
460
|
BOOST_ASSERT(additional_objects > size_type(this->m_capacity - this->m_size));
|
|
429
461
|
size_type max = allocator_traits_type::max_size(this->alloc());
|
|
430
|
-
(clamp_by_stored_size_type)(max, stored_size_type());
|
|
462
|
+
(clamp_by_stored_size_type<size_type>)(max, stored_size_type());
|
|
431
463
|
const size_type remaining_cap = max - size_type(this->m_capacity);
|
|
432
464
|
const size_type min_additional_cap = additional_objects - size_type(this->m_capacity - this->m_size);
|
|
433
465
|
|
|
@@ -470,7 +502,7 @@ struct vector_alloc_holder
|
|
|
470
502
|
BOOST_CONTAINER_FORCEINLINE void start(const pointer &p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
471
503
|
{ m_start = p; }
|
|
472
504
|
BOOST_CONTAINER_FORCEINLINE void capacity(const size_type &c) BOOST_NOEXCEPT_OR_NOTHROW
|
|
473
|
-
{ BOOST_ASSERT( c <= stored_size_type(-1));
|
|
505
|
+
{ BOOST_ASSERT( c <= stored_size_type(-1)); this->set_stored_capacity(c); }
|
|
474
506
|
|
|
475
507
|
static BOOST_CONTAINER_FORCEINLINE void on_capacity_overflow()
|
|
476
508
|
{ }
|
|
@@ -488,17 +520,7 @@ struct vector_alloc_holder
|
|
|
488
520
|
}
|
|
489
521
|
}
|
|
490
522
|
|
|
491
|
-
|
|
492
|
-
{}
|
|
493
|
-
|
|
494
|
-
template<class SomeStoredSizeType>
|
|
495
|
-
BOOST_CONTAINER_FORCEINLINE static void clamp_by_stored_size_type(size_type &s, SomeStoredSizeType)
|
|
496
|
-
{
|
|
497
|
-
if (s >= SomeStoredSizeType(-1) )
|
|
498
|
-
s = SomeStoredSizeType(-1);
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
BOOST_CONTAINER_FORCEINLINE pointer priv_allocation_command(version_1, boost::container::allocation_type command,
|
|
523
|
+
pointer priv_allocation_command(version_1, boost::container::allocation_type command,
|
|
502
524
|
size_type limit_size,
|
|
503
525
|
size_type &prefer_in_recvd_out_size,
|
|
504
526
|
pointer &reuse)
|
|
@@ -510,7 +532,7 @@ struct vector_alloc_holder
|
|
|
510
532
|
if (limit_size > stored_size_type(-1)){
|
|
511
533
|
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
512
534
|
}
|
|
513
|
-
(clamp_by_stored_size_type)(prefer_in_recvd_out_size, stored_size_type());
|
|
535
|
+
(clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
|
|
514
536
|
pointer const p = this->allocate(prefer_in_recvd_out_size);
|
|
515
537
|
reuse = pointer();
|
|
516
538
|
return p;
|
|
@@ -525,11 +547,11 @@ struct vector_alloc_holder
|
|
|
525
547
|
if (limit_size > stored_size_type(-1)){
|
|
526
548
|
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
527
549
|
}
|
|
528
|
-
(clamp_by_stored_size_type)(prefer_in_recvd_out_size, stored_size_type());
|
|
550
|
+
(clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
|
|
529
551
|
//Allocate memory
|
|
530
552
|
pointer p = this->alloc().allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse);
|
|
531
553
|
//If after allocation prefer_in_recvd_out_size is not representable by stored_size_type, truncate it.
|
|
532
|
-
(clamp_by_stored_size_type)(prefer_in_recvd_out_size, stored_size_type());
|
|
554
|
+
(clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
|
|
533
555
|
return p;
|
|
534
556
|
}
|
|
535
557
|
};
|
|
@@ -611,6 +633,15 @@ struct vector_alloc_holder<Allocator, StoredSizeType, version_0>
|
|
|
611
633
|
static BOOST_CONTAINER_FORCEINLINE void on_capacity_overflow()
|
|
612
634
|
{ allocator_type::on_capacity_overflow(); }
|
|
613
635
|
|
|
636
|
+
BOOST_CONTAINER_FORCEINLINE void set_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
637
|
+
{ this->m_size = static_cast<stored_size_type>(s); }
|
|
638
|
+
|
|
639
|
+
BOOST_CONTAINER_FORCEINLINE void dec_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
640
|
+
{ this->m_size -= static_cast<stored_size_type>(s); }
|
|
641
|
+
|
|
642
|
+
BOOST_CONTAINER_FORCEINLINE void inc_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
643
|
+
{ this->m_size += static_cast<stored_size_type>(s); }
|
|
644
|
+
|
|
614
645
|
BOOST_CONTAINER_FORCEINLINE void priv_first_allocation(size_type cap)
|
|
615
646
|
{
|
|
616
647
|
if(cap > allocator_type::internal_capacity){
|
|
@@ -656,7 +687,7 @@ struct vector_alloc_holder<Allocator, StoredSizeType, version_0>
|
|
|
656
687
|
BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
657
688
|
{ return allocator_type::internal_storage(); }
|
|
658
689
|
|
|
659
|
-
BOOST_CONTAINER_FORCEINLINE size_type
|
|
690
|
+
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
660
691
|
{ return allocator_type::internal_capacity; }
|
|
661
692
|
|
|
662
693
|
stored_size_type m_size;
|
|
@@ -1003,7 +1034,7 @@ private:
|
|
|
1003
1034
|
#endif
|
|
1004
1035
|
::boost::container::uninitialized_copy_alloc_n_source
|
|
1005
1036
|
( this->m_holder.alloc(), il.begin()
|
|
1006
|
-
, il.size(), this->priv_raw_begin());
|
|
1037
|
+
, static_cast<size_type>(il.size()), this->priv_raw_begin());
|
|
1007
1038
|
}
|
|
1008
1039
|
#endif
|
|
1009
1040
|
|
|
@@ -1024,7 +1055,7 @@ private:
|
|
|
1024
1055
|
: m_holder(boost::move(x.m_holder))
|
|
1025
1056
|
{}
|
|
1026
1057
|
|
|
1027
|
-
#endif
|
|
1058
|
+
#endif // defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1028
1059
|
|
|
1029
1060
|
//! <b>Effects</b>: Copy constructs a vector using the specified allocator.
|
|
1030
1061
|
//!
|
|
@@ -1251,7 +1282,12 @@ private:
|
|
|
1251
1282
|
{
|
|
1252
1283
|
//For Fwd iterators the standard only requires EmplaceConstructible and assignable from *first
|
|
1253
1284
|
//so we can't do any backwards allocation
|
|
1254
|
-
const size_type
|
|
1285
|
+
const typename iterator_traits<FwdIt>::size_type sz = boost::container::iterator_distance(first, last);
|
|
1286
|
+
if (sz > size_type(-1)){
|
|
1287
|
+
boost::container::throw_length_error("vector::assign, FwdIt's max length reached");
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
const size_type input_sz = static_cast<size_type>(sz);
|
|
1255
1291
|
const size_type old_capacity = this->capacity();
|
|
1256
1292
|
if(input_sz > old_capacity){ //If input range is too big, we need to reallocate
|
|
1257
1293
|
size_type real_cap = 0;
|
|
@@ -1282,7 +1318,7 @@ private:
|
|
|
1282
1318
|
}
|
|
1283
1319
|
|
|
1284
1320
|
boost::container::copy_assign_range_alloc_n(this->m_holder.alloc(), first, input_sz, this->priv_raw_begin(), this->size());
|
|
1285
|
-
|
|
1321
|
+
m_holder.set_stored_size(input_sz);
|
|
1286
1322
|
}
|
|
1287
1323
|
|
|
1288
1324
|
//! <b>Effects</b>: Assigns the n copies of val to *this.
|
|
@@ -1299,7 +1335,7 @@ private:
|
|
|
1299
1335
|
//! <b>Throws</b>: If allocator's copy constructor throws.
|
|
1300
1336
|
//!
|
|
1301
1337
|
//! <b>Complexity</b>: Constant.
|
|
1302
|
-
allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1338
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1303
1339
|
{ return this->m_holder.alloc(); }
|
|
1304
1340
|
|
|
1305
1341
|
//! <b>Effects</b>: Returns a reference to the internal allocator.
|
|
@@ -1309,7 +1345,8 @@ private:
|
|
|
1309
1345
|
//! <b>Complexity</b>: Constant.
|
|
1310
1346
|
//!
|
|
1311
1347
|
//! <b>Note</b>: Non-standard extension.
|
|
1312
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
1348
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1349
|
+
stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1313
1350
|
{ return this->m_holder.alloc(); }
|
|
1314
1351
|
|
|
1315
1352
|
//! <b>Effects</b>: Returns a reference to the internal allocator.
|
|
@@ -1319,7 +1356,8 @@ private:
|
|
|
1319
1356
|
//! <b>Complexity</b>: Constant.
|
|
1320
1357
|
//!
|
|
1321
1358
|
//! <b>Note</b>: Non-standard extension.
|
|
1322
|
-
BOOST_CONTAINER_FORCEINLINE
|
|
1359
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1360
|
+
const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1323
1361
|
{ return this->m_holder.alloc(); }
|
|
1324
1362
|
|
|
1325
1363
|
//////////////////////////////////////////////
|
|
@@ -1333,7 +1371,7 @@ private:
|
|
|
1333
1371
|
//! <b>Throws</b>: Nothing.
|
|
1334
1372
|
//!
|
|
1335
1373
|
//! <b>Complexity</b>: Constant.
|
|
1336
|
-
BOOST_CONTAINER_FORCEINLINE iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1374
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1337
1375
|
{ return iterator(this->m_holder.start()); }
|
|
1338
1376
|
|
|
1339
1377
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
|
|
@@ -1341,7 +1379,7 @@ private:
|
|
|
1341
1379
|
//! <b>Throws</b>: Nothing.
|
|
1342
1380
|
//!
|
|
1343
1381
|
//! <b>Complexity</b>: Constant.
|
|
1344
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1382
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1345
1383
|
{ return const_iterator(this->m_holder.start()); }
|
|
1346
1384
|
|
|
1347
1385
|
//! <b>Effects</b>: Returns an iterator to the end of the vector.
|
|
@@ -1349,11 +1387,11 @@ private:
|
|
|
1349
1387
|
//! <b>Throws</b>: Nothing.
|
|
1350
1388
|
//!
|
|
1351
1389
|
//! <b>Complexity</b>: Constant.
|
|
1352
|
-
BOOST_CONTAINER_FORCEINLINE iterator end() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1390
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE iterator end() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1353
1391
|
{
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
return
|
|
1392
|
+
iterator it (this->m_holder.start());
|
|
1393
|
+
it += this->m_holder.m_size;
|
|
1394
|
+
return it; //Adding zero to null pointer is allowed (non-UB)
|
|
1357
1395
|
}
|
|
1358
1396
|
|
|
1359
1397
|
//! <b>Effects</b>: Returns a const_iterator to the end of the vector.
|
|
@@ -1361,7 +1399,7 @@ private:
|
|
|
1361
1399
|
//! <b>Throws</b>: Nothing.
|
|
1362
1400
|
//!
|
|
1363
1401
|
//! <b>Complexity</b>: Constant.
|
|
1364
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1402
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1365
1403
|
{ return this->cend(); }
|
|
1366
1404
|
|
|
1367
1405
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
|
|
@@ -1370,7 +1408,7 @@ private:
|
|
|
1370
1408
|
//! <b>Throws</b>: Nothing.
|
|
1371
1409
|
//!
|
|
1372
1410
|
//! <b>Complexity</b>: Constant.
|
|
1373
|
-
BOOST_CONTAINER_FORCEINLINE reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1411
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1374
1412
|
{ return reverse_iterator(this->end()); }
|
|
1375
1413
|
|
|
1376
1414
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
|
@@ -1379,7 +1417,7 @@ private:
|
|
|
1379
1417
|
//! <b>Throws</b>: Nothing.
|
|
1380
1418
|
//!
|
|
1381
1419
|
//! <b>Complexity</b>: Constant.
|
|
1382
|
-
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1420
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1383
1421
|
{ return this->crbegin(); }
|
|
1384
1422
|
|
|
1385
1423
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the end
|
|
@@ -1388,7 +1426,7 @@ private:
|
|
|
1388
1426
|
//! <b>Throws</b>: Nothing.
|
|
1389
1427
|
//!
|
|
1390
1428
|
//! <b>Complexity</b>: Constant.
|
|
1391
|
-
BOOST_CONTAINER_FORCEINLINE reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1429
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1392
1430
|
{ return reverse_iterator(this->begin()); }
|
|
1393
1431
|
|
|
1394
1432
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
|
@@ -1397,7 +1435,7 @@ private:
|
|
|
1397
1435
|
//! <b>Throws</b>: Nothing.
|
|
1398
1436
|
//!
|
|
1399
1437
|
//! <b>Complexity</b>: Constant.
|
|
1400
|
-
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1438
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1401
1439
|
{ return this->crend(); }
|
|
1402
1440
|
|
|
1403
1441
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
|
|
@@ -1405,7 +1443,7 @@ private:
|
|
|
1405
1443
|
//! <b>Throws</b>: Nothing.
|
|
1406
1444
|
//!
|
|
1407
1445
|
//! <b>Complexity</b>: Constant.
|
|
1408
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1446
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1409
1447
|
{ return const_iterator(this->m_holder.start()); }
|
|
1410
1448
|
|
|
1411
1449
|
//! <b>Effects</b>: Returns a const_iterator to the end of the vector.
|
|
@@ -1413,13 +1451,12 @@ private:
|
|
|
1413
1451
|
//! <b>Throws</b>: Nothing.
|
|
1414
1452
|
//!
|
|
1415
1453
|
//! <b>Complexity</b>: Constant.
|
|
1416
|
-
BOOST_CONTAINER_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1454
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1417
1455
|
{
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
return
|
|
1456
|
+
const_iterator it (this->m_holder.start());
|
|
1457
|
+
it += this->m_holder.m_size;
|
|
1458
|
+
return it; //Adding zero to null pointer is allowed (non-UB)
|
|
1421
1459
|
}
|
|
1422
|
-
//{ return const_iterator(this->m_holder.start() + this->m_holder.m_size); }
|
|
1423
1460
|
|
|
1424
1461
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
|
1425
1462
|
//! of the reversed vector.
|
|
@@ -1427,7 +1464,7 @@ private:
|
|
|
1427
1464
|
//! <b>Throws</b>: Nothing.
|
|
1428
1465
|
//!
|
|
1429
1466
|
//! <b>Complexity</b>: Constant.
|
|
1430
|
-
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1467
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1431
1468
|
{ return const_reverse_iterator(this->end());}
|
|
1432
1469
|
|
|
1433
1470
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
|
@@ -1436,7 +1473,7 @@ private:
|
|
|
1436
1473
|
//! <b>Throws</b>: Nothing.
|
|
1437
1474
|
//!
|
|
1438
1475
|
//! <b>Complexity</b>: Constant.
|
|
1439
|
-
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1476
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1440
1477
|
{ return const_reverse_iterator(this->begin()); }
|
|
1441
1478
|
|
|
1442
1479
|
//////////////////////////////////////////////
|
|
@@ -1450,7 +1487,7 @@ private:
|
|
|
1450
1487
|
//! <b>Throws</b>: Nothing.
|
|
1451
1488
|
//!
|
|
1452
1489
|
//! <b>Complexity</b>: Constant.
|
|
1453
|
-
BOOST_CONTAINER_FORCEINLINE bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1490
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1454
1491
|
{ return !this->m_holder.m_size; }
|
|
1455
1492
|
|
|
1456
1493
|
//! <b>Effects</b>: Returns the number of the elements contained in the vector.
|
|
@@ -1458,7 +1495,7 @@ private:
|
|
|
1458
1495
|
//! <b>Throws</b>: Nothing.
|
|
1459
1496
|
//!
|
|
1460
1497
|
//! <b>Complexity</b>: Constant.
|
|
1461
|
-
BOOST_CONTAINER_FORCEINLINE size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1498
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1462
1499
|
{ return this->m_holder.m_size; }
|
|
1463
1500
|
|
|
1464
1501
|
//! <b>Effects</b>: Returns the largest possible size of the vector.
|
|
@@ -1466,7 +1503,7 @@ private:
|
|
|
1466
1503
|
//! <b>Throws</b>: Nothing.
|
|
1467
1504
|
//!
|
|
1468
1505
|
//! <b>Complexity</b>: Constant.
|
|
1469
|
-
BOOST_CONTAINER_FORCEINLINE size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1506
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1470
1507
|
{ return allocator_traits_type::max_size(this->m_holder.alloc()); }
|
|
1471
1508
|
|
|
1472
1509
|
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
|
@@ -1475,8 +1512,8 @@ private:
|
|
|
1475
1512
|
//! <b>Throws</b>: If memory allocation throws, or T's copy/move or value initialization throws.
|
|
1476
1513
|
//!
|
|
1477
1514
|
//! <b>Complexity</b>: Linear to the difference between size() and new_size.
|
|
1478
|
-
void resize(size_type new_size)
|
|
1479
|
-
{ this->priv_resize(new_size, value_init); }
|
|
1515
|
+
BOOST_CONTAINER_FORCEINLINE void resize(size_type new_size)
|
|
1516
|
+
{ this->priv_resize(new_size, value_init, alloc_version()); }
|
|
1480
1517
|
|
|
1481
1518
|
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
|
1482
1519
|
//! the size becomes n. New elements are default initialized.
|
|
@@ -1486,8 +1523,8 @@ private:
|
|
|
1486
1523
|
//! <b>Complexity</b>: Linear to the difference between size() and new_size.
|
|
1487
1524
|
//!
|
|
1488
1525
|
//! <b>Note</b>: Non-standard extension
|
|
1489
|
-
void resize(size_type new_size, default_init_t)
|
|
1490
|
-
{ this->priv_resize(new_size, default_init); }
|
|
1526
|
+
BOOST_CONTAINER_FORCEINLINE void resize(size_type new_size, default_init_t)
|
|
1527
|
+
{ this->priv_resize(new_size, default_init, alloc_version()); }
|
|
1491
1528
|
|
|
1492
1529
|
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
|
1493
1530
|
//! the size becomes n. New elements are copy constructed from x.
|
|
@@ -1495,8 +1532,8 @@ private:
|
|
|
1495
1532
|
//! <b>Throws</b>: If memory allocation throws, or T's copy/move constructor throws.
|
|
1496
1533
|
//!
|
|
1497
1534
|
//! <b>Complexity</b>: Linear to the difference between size() and new_size.
|
|
1498
|
-
void resize(size_type new_size, const T& x)
|
|
1499
|
-
{ this->priv_resize(new_size, x); }
|
|
1535
|
+
BOOST_CONTAINER_FORCEINLINE void resize(size_type new_size, const T& x)
|
|
1536
|
+
{ this->priv_resize(new_size, x, alloc_version()); }
|
|
1500
1537
|
|
|
1501
1538
|
//! <b>Effects</b>: Number of elements for which memory has been allocated.
|
|
1502
1539
|
//! capacity() is always greater than or equal to size().
|
|
@@ -1504,7 +1541,7 @@ private:
|
|
|
1504
1541
|
//! <b>Throws</b>: Nothing.
|
|
1505
1542
|
//!
|
|
1506
1543
|
//! <b>Complexity</b>: Constant.
|
|
1507
|
-
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1544
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1508
1545
|
{ return this->m_holder.capacity(); }
|
|
1509
1546
|
|
|
1510
1547
|
//! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
|
|
@@ -1516,7 +1553,7 @@ private:
|
|
|
1516
1553
|
BOOST_CONTAINER_FORCEINLINE void reserve(size_type new_cap)
|
|
1517
1554
|
{
|
|
1518
1555
|
if (this->capacity() < new_cap){
|
|
1519
|
-
this->
|
|
1556
|
+
this->priv_move_to_new_buffer(new_cap, alloc_version());
|
|
1520
1557
|
}
|
|
1521
1558
|
}
|
|
1522
1559
|
|
|
@@ -1543,7 +1580,7 @@ private:
|
|
|
1543
1580
|
//! <b>Throws</b>: Nothing.
|
|
1544
1581
|
//!
|
|
1545
1582
|
//! <b>Complexity</b>: Constant.
|
|
1546
|
-
reference
|
|
1583
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reference front() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1547
1584
|
{
|
|
1548
1585
|
BOOST_ASSERT(!this->empty());
|
|
1549
1586
|
return *this->m_holder.start();
|
|
@@ -1557,7 +1594,7 @@ private:
|
|
|
1557
1594
|
//! <b>Throws</b>: Nothing.
|
|
1558
1595
|
//!
|
|
1559
1596
|
//! <b>Complexity</b>: Constant.
|
|
1560
|
-
const_reference
|
|
1597
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1561
1598
|
{
|
|
1562
1599
|
BOOST_ASSERT(!this->empty());
|
|
1563
1600
|
return *this->m_holder.start();
|
|
@@ -1571,7 +1608,7 @@ private:
|
|
|
1571
1608
|
//! <b>Throws</b>: Nothing.
|
|
1572
1609
|
//!
|
|
1573
1610
|
//! <b>Complexity</b>: Constant.
|
|
1574
|
-
reference
|
|
1611
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reference back() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1575
1612
|
{
|
|
1576
1613
|
BOOST_ASSERT(!this->empty());
|
|
1577
1614
|
return this->m_holder.start()[this->m_holder.m_size - 1];
|
|
@@ -1585,7 +1622,7 @@ private:
|
|
|
1585
1622
|
//! <b>Throws</b>: Nothing.
|
|
1586
1623
|
//!
|
|
1587
1624
|
//! <b>Complexity</b>: Constant.
|
|
1588
|
-
const_reference
|
|
1625
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1589
1626
|
{
|
|
1590
1627
|
BOOST_ASSERT(!this->empty());
|
|
1591
1628
|
return this->m_holder.start()[this->m_holder.m_size - 1];
|
|
@@ -1599,7 +1636,7 @@ private:
|
|
|
1599
1636
|
//! <b>Throws</b>: Nothing.
|
|
1600
1637
|
//!
|
|
1601
1638
|
//! <b>Complexity</b>: Constant.
|
|
1602
|
-
reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1639
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1603
1640
|
{
|
|
1604
1641
|
BOOST_ASSERT(this->m_holder.m_size > n);
|
|
1605
1642
|
return this->m_holder.start()[n];
|
|
@@ -1613,7 +1650,8 @@ private:
|
|
|
1613
1650
|
//! <b>Throws</b>: Nothing.
|
|
1614
1651
|
//!
|
|
1615
1652
|
//! <b>Complexity</b>: Constant.
|
|
1616
|
-
|
|
1653
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1654
|
+
const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1617
1655
|
{
|
|
1618
1656
|
BOOST_ASSERT(this->m_holder.m_size > n);
|
|
1619
1657
|
return this->m_holder.start()[n];
|
|
@@ -1630,7 +1668,8 @@ private:
|
|
|
1630
1668
|
//! <b>Complexity</b>: Constant.
|
|
1631
1669
|
//!
|
|
1632
1670
|
//! <b>Note</b>: Non-standard extension
|
|
1633
|
-
|
|
1671
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1672
|
+
iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1634
1673
|
{
|
|
1635
1674
|
BOOST_ASSERT(this->m_holder.m_size >= n);
|
|
1636
1675
|
return iterator(this->m_holder.start()+n);
|
|
@@ -1647,7 +1686,8 @@ private:
|
|
|
1647
1686
|
//! <b>Complexity</b>: Constant.
|
|
1648
1687
|
//!
|
|
1649
1688
|
//! <b>Note</b>: Non-standard extension
|
|
1650
|
-
|
|
1689
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1690
|
+
const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1651
1691
|
{
|
|
1652
1692
|
BOOST_ASSERT(this->m_holder.m_size >= n);
|
|
1653
1693
|
return const_iterator(this->m_holder.start()+n);
|
|
@@ -1663,7 +1703,8 @@ private:
|
|
|
1663
1703
|
//! <b>Complexity</b>: Constant.
|
|
1664
1704
|
//!
|
|
1665
1705
|
//! <b>Note</b>: Non-standard extension
|
|
1666
|
-
|
|
1706
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1707
|
+
size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1667
1708
|
{
|
|
1668
1709
|
//Range check assert done in priv_index_of
|
|
1669
1710
|
return this->priv_index_of(vector_iterator_get_ptr(p));
|
|
@@ -1679,7 +1720,8 @@ private:
|
|
|
1679
1720
|
//! <b>Complexity</b>: Constant.
|
|
1680
1721
|
//!
|
|
1681
1722
|
//! <b>Note</b>: Non-standard extension
|
|
1682
|
-
|
|
1723
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
1724
|
+
size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1683
1725
|
{
|
|
1684
1726
|
//Range check assert done in priv_index_of
|
|
1685
1727
|
return this->priv_index_of(vector_iterator_get_ptr(p));
|
|
@@ -1690,10 +1732,10 @@ private:
|
|
|
1690
1732
|
//! <b>Effects</b>: Returns a reference to the nth element
|
|
1691
1733
|
//! from the beginning of the container.
|
|
1692
1734
|
//!
|
|
1693
|
-
//! <b>Throws</b>:
|
|
1735
|
+
//! <b>Throws</b>: range_error if n >= size()
|
|
1694
1736
|
//!
|
|
1695
1737
|
//! <b>Complexity</b>: Constant.
|
|
1696
|
-
reference at(size_type n)
|
|
1738
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE reference at(size_type n)
|
|
1697
1739
|
{
|
|
1698
1740
|
this->priv_throw_if_out_of_range(n);
|
|
1699
1741
|
return this->m_holder.start()[n];
|
|
@@ -1704,10 +1746,10 @@ private:
|
|
|
1704
1746
|
//! <b>Effects</b>: Returns a const reference to the nth element
|
|
1705
1747
|
//! from the beginning of the container.
|
|
1706
1748
|
//!
|
|
1707
|
-
//! <b>Throws</b>:
|
|
1749
|
+
//! <b>Throws</b>: range_error if n >= size()
|
|
1708
1750
|
//!
|
|
1709
1751
|
//! <b>Complexity</b>: Constant.
|
|
1710
|
-
const_reference at(size_type n) const
|
|
1752
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const_reference at(size_type n) const
|
|
1711
1753
|
{
|
|
1712
1754
|
this->priv_throw_if_out_of_range(n);
|
|
1713
1755
|
return this->m_holder.start()[n];
|
|
@@ -1725,7 +1767,7 @@ private:
|
|
|
1725
1767
|
//! <b>Throws</b>: Nothing.
|
|
1726
1768
|
//!
|
|
1727
1769
|
//! <b>Complexity</b>: Constant.
|
|
1728
|
-
T* data() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1770
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE T* data() BOOST_NOEXCEPT_OR_NOTHROW
|
|
1729
1771
|
{ return this->priv_raw_begin(); }
|
|
1730
1772
|
|
|
1731
1773
|
//! <b>Returns</b>: A pointer such that [data(),data() + size()) is a valid range.
|
|
@@ -1734,7 +1776,7 @@ private:
|
|
|
1734
1776
|
//! <b>Throws</b>: Nothing.
|
|
1735
1777
|
//!
|
|
1736
1778
|
//! <b>Complexity</b>: Constant.
|
|
1737
|
-
const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1779
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1738
1780
|
{ return this->priv_raw_begin(); }
|
|
1739
1781
|
|
|
1740
1782
|
//////////////////////////////////////////////
|
|
@@ -1756,17 +1798,17 @@ private:
|
|
|
1756
1798
|
template<class ...Args>
|
|
1757
1799
|
BOOST_CONTAINER_FORCEINLINE reference emplace_back(BOOST_FWD_REF(Args)...args)
|
|
1758
1800
|
{
|
|
1801
|
+
T* const p = this->priv_raw_end();
|
|
1759
1802
|
if (BOOST_LIKELY(this->room_enough())){
|
|
1760
1803
|
//There is more memory, just construct a new object at the end
|
|
1761
|
-
T* const p = this->priv_raw_end();
|
|
1762
1804
|
allocator_traits_type::construct(this->m_holder.alloc(), p, ::boost::forward<Args>(args)...);
|
|
1763
1805
|
++this->m_holder.m_size;
|
|
1764
1806
|
return *p;
|
|
1765
1807
|
}
|
|
1766
1808
|
else{
|
|
1767
|
-
typedef dtl::insert_emplace_proxy<allocator_type, T*, Args...>
|
|
1768
|
-
return *this->
|
|
1769
|
-
(
|
|
1809
|
+
typedef dtl::insert_emplace_proxy<allocator_type, T*, Args...> proxy_t;
|
|
1810
|
+
return *this->priv_insert_forward_range_no_capacity
|
|
1811
|
+
(p, 1, proxy_t(::boost::forward<Args>(args)...), alloc_version());
|
|
1770
1812
|
}
|
|
1771
1813
|
}
|
|
1772
1814
|
|
|
@@ -1801,13 +1843,13 @@ private:
|
|
|
1801
1843
|
//! <b>Complexity</b>: If position is end(), amortized constant time
|
|
1802
1844
|
//! Linear time otherwise.
|
|
1803
1845
|
template<class ...Args>
|
|
1804
|
-
iterator emplace(const_iterator position, BOOST_FWD_REF(Args) ...args)
|
|
1846
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace(const_iterator position, BOOST_FWD_REF(Args) ...args)
|
|
1805
1847
|
{
|
|
1806
1848
|
BOOST_ASSERT(this->priv_in_range_or_end(position));
|
|
1807
1849
|
//Just call more general insert(pos, size, value) and return iterator
|
|
1808
|
-
typedef dtl::insert_emplace_proxy<allocator_type, T*, Args...>
|
|
1809
|
-
return this->
|
|
1810
|
-
,
|
|
1850
|
+
typedef dtl::insert_emplace_proxy<allocator_type, T*, Args...> proxy_t;
|
|
1851
|
+
return this->priv_insert_forward_range( vector_iterator_get_ptr(position), 1
|
|
1852
|
+
, proxy_t(::boost::forward<Args>(args)...));
|
|
1811
1853
|
}
|
|
1812
1854
|
|
|
1813
1855
|
#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
@@ -1816,17 +1858,17 @@ private:
|
|
|
1816
1858
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1817
1859
|
BOOST_CONTAINER_FORCEINLINE reference emplace_back(BOOST_MOVE_UREF##N)\
|
|
1818
1860
|
{\
|
|
1861
|
+
T* const p = this->priv_raw_end();\
|
|
1819
1862
|
if (BOOST_LIKELY(this->room_enough())){\
|
|
1820
|
-
T* const p = this->priv_raw_end();\
|
|
1821
1863
|
allocator_traits_type::construct (this->m_holder.alloc()\
|
|
1822
1864
|
, this->priv_raw_end() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1823
1865
|
++this->m_holder.m_size;\
|
|
1824
1866
|
return *p;\
|
|
1825
1867
|
}\
|
|
1826
1868
|
else{\
|
|
1827
|
-
typedef dtl::insert_emplace_proxy_arg##N<allocator_type, T* BOOST_MOVE_I##N BOOST_MOVE_TARG##N>
|
|
1828
|
-
return *this->
|
|
1829
|
-
(
|
|
1869
|
+
typedef dtl::insert_emplace_proxy_arg##N<allocator_type, T* BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
|
|
1870
|
+
return *this->priv_insert_forward_range_no_capacity\
|
|
1871
|
+
( p, 1, proxy_t(BOOST_MOVE_FWD##N), alloc_version());\
|
|
1830
1872
|
}\
|
|
1831
1873
|
}\
|
|
1832
1874
|
\
|
|
@@ -1843,11 +1885,11 @@ private:
|
|
|
1843
1885
|
}\
|
|
1844
1886
|
\
|
|
1845
1887
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1846
|
-
iterator emplace(const_iterator pos BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1888
|
+
BOOST_CONTAINER_FORCEINLINE iterator emplace(const_iterator pos BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
1847
1889
|
{\
|
|
1848
1890
|
BOOST_ASSERT(this->priv_in_range_or_end(pos));\
|
|
1849
|
-
typedef dtl::insert_emplace_proxy_arg##N<allocator_type, T* BOOST_MOVE_I##N BOOST_MOVE_TARG##N>
|
|
1850
|
-
return this->
|
|
1891
|
+
typedef dtl::insert_emplace_proxy_arg##N<allocator_type, T* BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
|
|
1892
|
+
return this->priv_insert_forward_range(vector_iterator_get_ptr(pos), 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1851
1893
|
}\
|
|
1852
1894
|
//
|
|
1853
1895
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_VECTOR_EMPLACE_CODE)
|
|
@@ -1909,11 +1951,11 @@ private:
|
|
|
1909
1951
|
//! <b>Throws</b>: If memory allocation throws or T's copy/move constructor throws.
|
|
1910
1952
|
//!
|
|
1911
1953
|
//! <b>Complexity</b>: Linear to n.
|
|
1912
|
-
iterator insert(const_iterator p, size_type n, const T& x)
|
|
1954
|
+
BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, size_type n, const T& x)
|
|
1913
1955
|
{
|
|
1914
1956
|
BOOST_ASSERT(this->priv_in_range_or_end(p));
|
|
1915
1957
|
dtl::insert_n_copies_proxy<allocator_type, T*> proxy(x);
|
|
1916
|
-
return this->
|
|
1958
|
+
return this->priv_insert_forward_range(vector_iterator_get_ptr(p), n, proxy);
|
|
1917
1959
|
}
|
|
1918
1960
|
|
|
1919
1961
|
//! <b>Requires</b>: p must be a valid iterator of *this.
|
|
@@ -1949,7 +1991,7 @@ private:
|
|
|
1949
1991
|
|
|
1950
1992
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1951
1993
|
template <class FwdIt>
|
|
1952
|
-
iterator insert(const_iterator pos, FwdIt first, FwdIt last
|
|
1994
|
+
BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator pos, FwdIt first, FwdIt last
|
|
1953
1995
|
, typename dtl::disable_if_or
|
|
1954
1996
|
< void
|
|
1955
1997
|
, dtl::is_convertible<FwdIt, size_type>
|
|
@@ -1958,8 +2000,13 @@ private:
|
|
|
1958
2000
|
)
|
|
1959
2001
|
{
|
|
1960
2002
|
BOOST_ASSERT(this->priv_in_range_or_end(pos));
|
|
2003
|
+
const typename iterator_traits<FwdIt>::size_type sz = boost::container::iterator_distance(first, last);
|
|
2004
|
+
if (sz > size_type(-1)){
|
|
2005
|
+
boost::container::throw_length_error("vector::insert, FwdIt's max length reached");
|
|
2006
|
+
}
|
|
2007
|
+
|
|
1961
2008
|
dtl::insert_range_proxy<allocator_type, FwdIt, T*> proxy(first);
|
|
1962
|
-
return this->
|
|
2009
|
+
return this->priv_insert_forward_range(vector_iterator_get_ptr(pos), static_cast<size_type>(sz), proxy);
|
|
1963
2010
|
}
|
|
1964
2011
|
#endif
|
|
1965
2012
|
|
|
@@ -1980,14 +2027,14 @@ private:
|
|
|
1980
2027
|
//! a non-standard extension.
|
|
1981
2028
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1982
2029
|
template <class InIt>
|
|
1983
|
-
iterator insert(const_iterator pos, size_type num, InIt first, InIt last)
|
|
2030
|
+
BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator pos, size_type num, InIt first, InIt last)
|
|
1984
2031
|
{
|
|
1985
2032
|
BOOST_ASSERT(this->priv_in_range_or_end(pos));
|
|
1986
2033
|
BOOST_ASSERT(dtl::is_input_iterator<InIt>::value ||
|
|
1987
2034
|
num == static_cast<size_type>(boost::container::iterator_distance(first, last)));
|
|
1988
2035
|
(void)last;
|
|
1989
2036
|
dtl::insert_range_proxy<allocator_type, InIt, T*> proxy(first);
|
|
1990
|
-
return this->
|
|
2037
|
+
return this->priv_insert_forward_range(vector_iterator_get_ptr(pos), num, proxy);
|
|
1991
2038
|
}
|
|
1992
2039
|
#endif
|
|
1993
2040
|
|
|
@@ -1999,7 +2046,7 @@ private:
|
|
|
1999
2046
|
//! <b>Returns</b>: an iterator to the first inserted element or position if first == last.
|
|
2000
2047
|
//!
|
|
2001
2048
|
//! <b>Complexity</b>: Linear to the range [il.begin(), il.end()).
|
|
2002
|
-
iterator insert(const_iterator position, std::initializer_list<value_type> il)
|
|
2049
|
+
BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator position, std::initializer_list<value_type> il)
|
|
2003
2050
|
{
|
|
2004
2051
|
//Assertion done in insert()
|
|
2005
2052
|
return this->insert(position, il.begin(), il.end());
|
|
@@ -2011,11 +2058,12 @@ private:
|
|
|
2011
2058
|
//! <b>Throws</b>: Nothing.
|
|
2012
2059
|
//!
|
|
2013
2060
|
//! <b>Complexity</b>: Constant time.
|
|
2014
|
-
void pop_back() BOOST_NOEXCEPT_OR_NOTHROW
|
|
2061
|
+
BOOST_CONTAINER_FORCEINLINE void pop_back() BOOST_NOEXCEPT_OR_NOTHROW
|
|
2015
2062
|
{
|
|
2016
2063
|
BOOST_ASSERT(!this->empty());
|
|
2017
2064
|
//Destroy last element
|
|
2018
|
-
this->
|
|
2065
|
+
allocator_traits_type::destroy(this->get_stored_allocator(), this->priv_raw_end() - 1);
|
|
2066
|
+
--this->m_holder.m_size;
|
|
2019
2067
|
}
|
|
2020
2068
|
|
|
2021
2069
|
//! <b>Effects</b>: Erases the element at position pos.
|
|
@@ -2029,10 +2077,16 @@ private:
|
|
|
2029
2077
|
BOOST_ASSERT(this->priv_in_range(position));
|
|
2030
2078
|
const pointer p = vector_iterator_get_ptr(position);
|
|
2031
2079
|
T *const pos_ptr = boost::movelib::to_raw_pointer(p);
|
|
2032
|
-
T *const
|
|
2033
|
-
|
|
2080
|
+
T *const end_ptr = this->priv_raw_end();
|
|
2081
|
+
|
|
2034
2082
|
//Move elements forward and destroy last
|
|
2035
|
-
|
|
2083
|
+
(void)::boost::container::move(pos_ptr + 1, end_ptr, pos_ptr);
|
|
2084
|
+
|
|
2085
|
+
T *const last_ptr = end_ptr-1;
|
|
2086
|
+
if(!value_traits::trivial_dctr_after_move || pos_ptr == last_ptr){
|
|
2087
|
+
allocator_traits_type::destroy(this->get_stored_allocator(), last_ptr);
|
|
2088
|
+
}
|
|
2089
|
+
--this->m_holder.m_size;
|
|
2036
2090
|
return iterator(p);
|
|
2037
2091
|
}
|
|
2038
2092
|
|
|
@@ -2044,15 +2098,19 @@ private:
|
|
|
2044
2098
|
//! plus linear to the elements between pos and the last element.
|
|
2045
2099
|
iterator erase(const_iterator first, const_iterator last)
|
|
2046
2100
|
{
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2101
|
+
BOOST_ASSERT(this->priv_in_range_or_end(first));
|
|
2102
|
+
BOOST_ASSERT(this->priv_in_range_or_end(last));
|
|
2103
|
+
BOOST_ASSERT(first <= last);
|
|
2104
|
+
if(first != last){
|
|
2051
2105
|
T* const old_end_ptr = this->priv_raw_end();
|
|
2052
2106
|
T* const first_ptr = boost::movelib::to_raw_pointer(vector_iterator_get_ptr(first));
|
|
2053
2107
|
T* const last_ptr = boost::movelib::to_raw_pointer(vector_iterator_get_ptr(last));
|
|
2054
|
-
T* const
|
|
2055
|
-
|
|
2108
|
+
T* const new_last_ptr = boost::movelib::to_raw_pointer(boost::container::move(last_ptr, old_end_ptr, first_ptr));
|
|
2109
|
+
const size_type n = static_cast<size_type>(old_end_ptr - new_last_ptr);
|
|
2110
|
+
if(!value_traits::trivial_dctr_after_move || old_end_ptr == last_ptr){
|
|
2111
|
+
boost::container::destroy_alloc_n(this->get_stored_allocator(), new_last_ptr, n);
|
|
2112
|
+
}
|
|
2113
|
+
this->m_holder.dec_stored_size(n);
|
|
2056
2114
|
}
|
|
2057
2115
|
return iterator(vector_iterator_get_ptr(first));
|
|
2058
2116
|
}
|
|
@@ -2102,43 +2160,44 @@ private:
|
|
|
2102
2160
|
//! <b>Effects</b>: Returns true if x and y are equal
|
|
2103
2161
|
//!
|
|
2104
2162
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2105
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator==(const vector& x, const vector& y)
|
|
2163
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE friend bool operator==(const vector& x, const vector& y)
|
|
2106
2164
|
{ return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
|
|
2107
2165
|
|
|
2108
2166
|
//! <b>Effects</b>: Returns true if x and y are unequal
|
|
2109
2167
|
//!
|
|
2110
2168
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2111
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const vector& x, const vector& y)
|
|
2169
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const vector& x, const vector& y)
|
|
2112
2170
|
{ return !(x == y); }
|
|
2113
2171
|
|
|
2114
2172
|
//! <b>Effects</b>: Returns true if x is less than y
|
|
2115
2173
|
//!
|
|
2116
2174
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2117
|
-
friend bool operator<(const vector& x, const vector& y)
|
|
2175
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD friend bool operator<(const vector& x, const vector& y)
|
|
2118
2176
|
{ return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
|
2119
2177
|
|
|
2120
2178
|
//! <b>Effects</b>: Returns true if x is greater than y
|
|
2121
2179
|
//!
|
|
2122
2180
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2123
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator>(const vector& x, const vector& y)
|
|
2181
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE friend bool operator>(const vector& x, const vector& y)
|
|
2124
2182
|
{ return y < x; }
|
|
2125
2183
|
|
|
2126
2184
|
//! <b>Effects</b>: Returns true if x is equal or less than y
|
|
2127
2185
|
//!
|
|
2128
2186
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2129
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator<=(const vector& x, const vector& y)
|
|
2187
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE friend bool operator<=(const vector& x, const vector& y)
|
|
2130
2188
|
{ return !(y < x); }
|
|
2131
2189
|
|
|
2132
2190
|
//! <b>Effects</b>: Returns true if x is equal or greater than y
|
|
2133
2191
|
//!
|
|
2134
2192
|
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
|
2135
|
-
BOOST_CONTAINER_FORCEINLINE friend bool operator>=(const vector& x, const vector& y)
|
|
2193
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE friend bool operator>=(const vector& x, const vector& y)
|
|
2136
2194
|
{ return !(x < y); }
|
|
2137
2195
|
|
|
2138
2196
|
//! <b>Effects</b>: x.swap(y)
|
|
2139
2197
|
//!
|
|
2140
2198
|
//! <b>Complexity</b>: Constant.
|
|
2141
2199
|
BOOST_CONTAINER_FORCEINLINE friend void swap(vector& x, vector& y)
|
|
2200
|
+
BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
|
|
2142
2201
|
{ x.swap(y); }
|
|
2143
2202
|
|
|
2144
2203
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
@@ -2245,14 +2304,14 @@ private:
|
|
|
2245
2304
|
else{
|
|
2246
2305
|
//Hole was just filled, disable exception rollback and change vector size
|
|
2247
2306
|
past_hole_values_destroyer.release();
|
|
2248
|
-
this->m_holder.
|
|
2307
|
+
this->m_holder.inc_stored_size(element_count);
|
|
2249
2308
|
}
|
|
2250
2309
|
}
|
|
2251
2310
|
else{
|
|
2252
2311
|
if(old_hole_size){
|
|
2253
2312
|
//Hole was just filled by priv_insert_ordered_at_shift_range, disable exception rollback and change vector size
|
|
2254
2313
|
past_hole_values_destroyer.release();
|
|
2255
|
-
this->m_holder.
|
|
2314
|
+
this->m_holder.inc_stored_size(element_count);
|
|
2256
2315
|
}
|
|
2257
2316
|
//Insert the new value in the already constructed range
|
|
2258
2317
|
begin_ptr[pos + insertions_left - 1] = position_value.get_val();
|
|
@@ -2353,7 +2412,7 @@ private:
|
|
|
2353
2412
|
if (old_cap > 0) {
|
|
2354
2413
|
this->m_holder.deallocate(old_p, old_cap);
|
|
2355
2414
|
}
|
|
2356
|
-
|
|
2415
|
+
m_holder.set_stored_size(old_size + added);
|
|
2357
2416
|
this->m_holder.start(new_storage);
|
|
2358
2417
|
this->m_holder.capacity(new_cap);
|
|
2359
2418
|
new_buffer_deallocator.release();
|
|
@@ -2361,12 +2420,12 @@ private:
|
|
|
2361
2420
|
}
|
|
2362
2421
|
|
|
2363
2422
|
BOOST_CONTAINER_FORCEINLINE bool room_enough() const
|
|
2364
|
-
{ return this->m_holder.m_size
|
|
2423
|
+
{ return this->m_holder.m_size != this->m_holder.capacity(); }
|
|
2365
2424
|
|
|
2366
2425
|
BOOST_CONTAINER_FORCEINLINE pointer back_ptr() const
|
|
2367
2426
|
{ return this->m_holder.start() + this->m_holder.m_size; }
|
|
2368
2427
|
|
|
2369
|
-
size_type priv_index_of(pointer p) const
|
|
2428
|
+
BOOST_CONTAINER_FORCEINLINE size_type priv_index_of(pointer p) const
|
|
2370
2429
|
{
|
|
2371
2430
|
BOOST_ASSERT(this->m_holder.start() <= p);
|
|
2372
2431
|
BOOST_ASSERT(p <= (this->m_holder.start()+this->size()));
|
|
@@ -2387,7 +2446,7 @@ private:
|
|
|
2387
2446
|
const size_type this_sz = m_holder.m_size;
|
|
2388
2447
|
const size_type other_sz = static_cast<size_type>(x.m_holder.m_size);
|
|
2389
2448
|
boost::container::move_assign_range_alloc_n(this->m_holder.alloc(), other_start, other_sz, this_start, this_sz);
|
|
2390
|
-
|
|
2449
|
+
m_holder.set_stored_size(other_sz);
|
|
2391
2450
|
//Not emptying the source container seems to be confusing for users as drop-in
|
|
2392
2451
|
//replacement for non-static vectors, so clear it.
|
|
2393
2452
|
x.clear();
|
|
@@ -2445,7 +2504,7 @@ private:
|
|
|
2445
2504
|
const size_type this_sz = m_holder.m_size;
|
|
2446
2505
|
const size_type other_sz = static_cast<size_type>(x.m_holder.m_size);
|
|
2447
2506
|
boost::container::copy_assign_range_alloc_n(this->m_holder.alloc(), other_start, other_sz, this_start, this_sz);
|
|
2448
|
-
|
|
2507
|
+
m_holder.set_stored_size(other_sz);
|
|
2449
2508
|
}
|
|
2450
2509
|
|
|
2451
2510
|
template<class OtherA>
|
|
@@ -2469,7 +2528,7 @@ private:
|
|
|
2469
2528
|
}
|
|
2470
2529
|
|
|
2471
2530
|
template<class Vector> //Template it to avoid it in explicit instantiations
|
|
2472
|
-
void priv_swap(Vector &x, dtl::true_type) //version_0
|
|
2531
|
+
BOOST_CONTAINER_FORCEINLINE void priv_swap(Vector &x, dtl::true_type) //version_0
|
|
2473
2532
|
{ this->m_holder.deep_swap(x.m_holder); }
|
|
2474
2533
|
|
|
2475
2534
|
template<class Vector> //Template it to avoid it in explicit instantiations
|
|
@@ -2506,26 +2565,29 @@ private:
|
|
|
2506
2565
|
dtl::swap_alloc(this->m_holder.alloc(), x.m_holder.alloc(), dtl::bool_<propagate_alloc>());
|
|
2507
2566
|
}
|
|
2508
2567
|
|
|
2509
|
-
void
|
|
2568
|
+
BOOST_CONTAINER_FORCEINLINE void priv_move_to_new_buffer(size_type, version_0)
|
|
2510
2569
|
{ alloc_holder_t::on_capacity_overflow(); }
|
|
2511
2570
|
|
|
2512
|
-
dtl::insert_range_proxy<allocator_type, boost::move_iterator<T*>, T*> priv_dummy_empty_proxy()
|
|
2571
|
+
BOOST_CONTAINER_FORCEINLINE dtl::insert_range_proxy<allocator_type, boost::move_iterator<T*>, T*> priv_dummy_empty_proxy()
|
|
2513
2572
|
{
|
|
2514
2573
|
return dtl::insert_range_proxy<allocator_type, boost::move_iterator<T*>, T*>
|
|
2515
2574
|
(::boost::make_move_iterator((T *)0));
|
|
2516
2575
|
}
|
|
2517
2576
|
|
|
2518
|
-
void
|
|
2577
|
+
BOOST_CONTAINER_FORCEINLINE void priv_move_to_new_buffer(size_type new_cap, version_1)
|
|
2519
2578
|
{
|
|
2520
2579
|
//There is not enough memory, allocate a new buffer
|
|
2521
2580
|
//Pass the hint so that allocators can take advantage of this.
|
|
2522
2581
|
pointer const p = this->m_holder.allocate(new_cap);
|
|
2582
|
+
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2583
|
+
++this->num_alloc;
|
|
2584
|
+
#endif
|
|
2523
2585
|
//We will reuse insert code, so create a dummy input iterator
|
|
2524
|
-
this->
|
|
2586
|
+
this->priv_insert_forward_range_new_allocation
|
|
2525
2587
|
( boost::movelib::to_raw_pointer(p), new_cap, this->priv_raw_end(), 0, this->priv_dummy_empty_proxy());
|
|
2526
2588
|
}
|
|
2527
2589
|
|
|
2528
|
-
void
|
|
2590
|
+
void priv_move_to_new_buffer(size_type new_cap, version_2)
|
|
2529
2591
|
{
|
|
2530
2592
|
//There is not enough memory, allocate a new
|
|
2531
2593
|
//buffer or expand the old one.
|
|
@@ -2549,38 +2611,24 @@ private:
|
|
|
2549
2611
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2550
2612
|
++this->num_expand_bwd;
|
|
2551
2613
|
#endif
|
|
2552
|
-
this->
|
|
2614
|
+
this->priv_insert_forward_range_expand_backwards
|
|
2553
2615
|
( new_mem , real_cap, ins_pos, 0, this->priv_dummy_empty_proxy());
|
|
2554
2616
|
}
|
|
2555
2617
|
else{ //New buffer
|
|
2556
2618
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2557
2619
|
++this->num_alloc;
|
|
2558
2620
|
#endif
|
|
2559
|
-
this->
|
|
2621
|
+
this->priv_insert_forward_range_new_allocation
|
|
2560
2622
|
( new_mem, real_cap, ins_pos, 0, this->priv_dummy_empty_proxy());
|
|
2561
2623
|
}
|
|
2562
2624
|
}
|
|
2563
2625
|
}
|
|
2564
2626
|
|
|
2565
|
-
void priv_destroy_last(const bool moved = false) BOOST_NOEXCEPT_OR_NOTHROW
|
|
2566
|
-
{
|
|
2567
|
-
(void)moved;
|
|
2568
|
-
const bool skip_destructor = value_traits::trivial_dctr || (value_traits::trivial_dctr_after_move && moved);
|
|
2569
|
-
if(!skip_destructor){
|
|
2570
|
-
value_type* const p = this->priv_raw_end() - 1;
|
|
2571
|
-
allocator_traits_type::destroy(this->get_stored_allocator(), p);
|
|
2572
|
-
}
|
|
2573
|
-
--this->m_holder.m_size;
|
|
2574
|
-
}
|
|
2575
|
-
|
|
2576
2627
|
void priv_destroy_last_n(const size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
2577
2628
|
{
|
|
2578
2629
|
BOOST_ASSERT(n <= this->m_holder.m_size);
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
boost::container::destroy_alloc_n(this->get_stored_allocator(), destroy_pos, n);
|
|
2582
|
-
}
|
|
2583
|
-
this->m_holder.m_size -= n;
|
|
2630
|
+
boost::container::destroy_alloc_n(this->get_stored_allocator(), this->priv_raw_end() - n, n);
|
|
2631
|
+
this->m_holder.dec_stored_size(n);
|
|
2584
2632
|
}
|
|
2585
2633
|
|
|
2586
2634
|
template<class InpIt>
|
|
@@ -2588,7 +2636,7 @@ private:
|
|
|
2588
2636
|
{
|
|
2589
2637
|
T* const old_end_pos = this->priv_raw_end();
|
|
2590
2638
|
T* const new_end_pos = boost::container::uninitialized_copy_alloc(this->m_holder.alloc(), first, last, old_end_pos);
|
|
2591
|
-
this->m_holder.
|
|
2639
|
+
this->m_holder.inc_stored_size(static_cast<size_type>(new_end_pos - old_end_pos));
|
|
2592
2640
|
}
|
|
2593
2641
|
|
|
2594
2642
|
void priv_destroy_all() BOOST_NOEXCEPT_OR_NOTHROW
|
|
@@ -2599,35 +2647,24 @@ private:
|
|
|
2599
2647
|
}
|
|
2600
2648
|
|
|
2601
2649
|
template<class U>
|
|
2602
|
-
iterator priv_insert(const const_iterator &p, BOOST_FWD_REF(U)
|
|
2650
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const const_iterator &p, BOOST_FWD_REF(U) u)
|
|
2603
2651
|
{
|
|
2604
|
-
|
|
2605
|
-
return this->priv_forward_range_insert
|
|
2606
|
-
( vector_iterator_get_ptr(p), 1, dtl::get_insert_value_proxy<T*, allocator_type>(::boost::forward<U>(x)));
|
|
2652
|
+
return this->emplace(p, ::boost::forward<U>(u));
|
|
2607
2653
|
}
|
|
2608
2654
|
|
|
2609
|
-
BOOST_CONTAINER_FORCEINLINE dtl::insert_copy_proxy<allocator_type, T*> priv_single_insert_proxy(const T &x)
|
|
2610
|
-
{ return dtl::insert_copy_proxy<allocator_type, T*> (x); }
|
|
2611
|
-
|
|
2612
|
-
BOOST_CONTAINER_FORCEINLINE dtl::insert_move_proxy<allocator_type, T*> priv_single_insert_proxy(BOOST_RV_REF(T) x)
|
|
2613
|
-
{ return dtl::insert_move_proxy<allocator_type, T*> (x); }
|
|
2614
|
-
|
|
2615
2655
|
template <class U>
|
|
2616
|
-
void priv_push_back(BOOST_FWD_REF(U) u)
|
|
2656
|
+
BOOST_CONTAINER_FORCEINLINE void priv_push_back(BOOST_FWD_REF(U) u)
|
|
2617
2657
|
{
|
|
2618
|
-
|
|
2619
|
-
//There is more memory, just construct a new object at the end
|
|
2620
|
-
allocator_traits_type::construct
|
|
2621
|
-
( this->m_holder.alloc(), this->priv_raw_end(), ::boost::forward<U>(u) );
|
|
2622
|
-
++this->m_holder.m_size;
|
|
2623
|
-
}
|
|
2624
|
-
else{
|
|
2625
|
-
this->priv_forward_range_insert_no_capacity
|
|
2626
|
-
( this->back_ptr(), 1
|
|
2627
|
-
, this->priv_single_insert_proxy(::boost::forward<U>(u)), alloc_version());
|
|
2628
|
-
}
|
|
2658
|
+
this->emplace_back(::boost::forward<U>(u));
|
|
2629
2659
|
}
|
|
2630
2660
|
|
|
2661
|
+
//Overload to support compiler errors that instantiate too much
|
|
2662
|
+
BOOST_CONTAINER_FORCEINLINE void priv_push_back(::boost::move_detail::nat)
|
|
2663
|
+
{}
|
|
2664
|
+
|
|
2665
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const_iterator, ::boost::move_detail::nat)
|
|
2666
|
+
{ return iterator(); }
|
|
2667
|
+
|
|
2631
2668
|
BOOST_CONTAINER_FORCEINLINE dtl::insert_n_copies_proxy<allocator_type, T*> priv_resize_proxy(const T &x)
|
|
2632
2669
|
{ return dtl::insert_n_copies_proxy<allocator_type, T*>(x); }
|
|
2633
2670
|
|
|
@@ -2637,20 +2674,6 @@ private:
|
|
|
2637
2674
|
BOOST_CONTAINER_FORCEINLINE dtl::insert_value_initialized_n_proxy<allocator_type, T*> priv_resize_proxy(value_init_t)
|
|
2638
2675
|
{ return dtl::insert_value_initialized_n_proxy<allocator_type, T*>(); }
|
|
2639
2676
|
|
|
2640
|
-
template <class U>
|
|
2641
|
-
void priv_resize(size_type new_size, const U& u)
|
|
2642
|
-
{
|
|
2643
|
-
const size_type sz = this->size();
|
|
2644
|
-
if (new_size < sz){
|
|
2645
|
-
//Destroy last elements
|
|
2646
|
-
this->priv_destroy_last_n(sz - new_size);
|
|
2647
|
-
}
|
|
2648
|
-
else{
|
|
2649
|
-
const size_type n = new_size - this->size();
|
|
2650
|
-
this->priv_forward_range_insert_at_end(n, this->priv_resize_proxy(u), alloc_version());
|
|
2651
|
-
}
|
|
2652
|
-
}
|
|
2653
|
-
|
|
2654
2677
|
BOOST_CONTAINER_FORCEINLINE void priv_shrink_to_fit(version_0) BOOST_NOEXCEPT_OR_NOTHROW
|
|
2655
2678
|
{}
|
|
2656
2679
|
|
|
@@ -2666,17 +2689,7 @@ private:
|
|
|
2666
2689
|
this->m_holder.m_capacity = 0;
|
|
2667
2690
|
}
|
|
2668
2691
|
else if(sz < cp){
|
|
2669
|
-
|
|
2670
|
-
//Pass the hint so that allocators can take advantage of this.
|
|
2671
|
-
pointer const p = this->m_holder.allocate(sz);
|
|
2672
|
-
|
|
2673
|
-
//We will reuse insert code, so create a dummy input iterator
|
|
2674
|
-
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2675
|
-
++this->num_alloc;
|
|
2676
|
-
#endif
|
|
2677
|
-
this->priv_forward_range_insert_new_allocation
|
|
2678
|
-
( boost::movelib::to_raw_pointer(p), sz
|
|
2679
|
-
, this->priv_raw_begin(), 0, this->priv_dummy_empty_proxy());
|
|
2692
|
+
this->priv_move_to_new_buffer(sz, alloc_version());
|
|
2680
2693
|
}
|
|
2681
2694
|
}
|
|
2682
2695
|
}
|
|
@@ -2707,20 +2720,18 @@ private:
|
|
|
2707
2720
|
}
|
|
2708
2721
|
|
|
2709
2722
|
template <class InsertionProxy>
|
|
2710
|
-
iterator
|
|
2711
|
-
(
|
|
2723
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert_forward_range_no_capacity
|
|
2724
|
+
(T * const, const size_type, const InsertionProxy , version_0)
|
|
2712
2725
|
{
|
|
2713
|
-
alloc_holder_t::on_capacity_overflow();
|
|
2714
|
-
return iterator(pos);
|
|
2726
|
+
return alloc_holder_t::on_capacity_overflow(), iterator();
|
|
2715
2727
|
}
|
|
2716
2728
|
|
|
2717
2729
|
template <class InsertionProxy>
|
|
2718
|
-
iterator
|
|
2719
|
-
(const
|
|
2730
|
+
BOOST_CONTAINER_NOINLINE iterator priv_insert_forward_range_no_capacity
|
|
2731
|
+
(T *const raw_pos, const size_type n, const InsertionProxy insert_range_proxy, version_1)
|
|
2720
2732
|
{
|
|
2721
2733
|
//Check if we have enough memory or try to expand current memory
|
|
2722
|
-
const size_type n_pos =
|
|
2723
|
-
T *const raw_pos = boost::movelib::to_raw_pointer(pos);
|
|
2734
|
+
const size_type n_pos = static_cast<size_type>(raw_pos - this->priv_raw_begin());
|
|
2724
2735
|
|
|
2725
2736
|
const size_type new_cap = this->m_holder.template next_capacity<growth_factor_type>(n);
|
|
2726
2737
|
//Pass the hint so that allocators can take advantage of this.
|
|
@@ -2728,17 +2739,15 @@ private:
|
|
|
2728
2739
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2729
2740
|
++this->num_alloc;
|
|
2730
2741
|
#endif
|
|
2731
|
-
this->
|
|
2732
|
-
( new_buf, new_cap, raw_pos, n, insert_range_proxy);
|
|
2742
|
+
this->priv_insert_forward_range_new_allocation(new_buf, new_cap, raw_pos, n, insert_range_proxy);
|
|
2733
2743
|
return iterator(this->m_holder.start() + n_pos);
|
|
2734
2744
|
}
|
|
2735
2745
|
|
|
2736
2746
|
template <class InsertionProxy>
|
|
2737
|
-
iterator
|
|
2738
|
-
(const
|
|
2747
|
+
BOOST_CONTAINER_NOINLINE iterator priv_insert_forward_range_no_capacity
|
|
2748
|
+
(T *const raw_pos, const size_type n, const InsertionProxy insert_range_proxy, version_2)
|
|
2739
2749
|
{
|
|
2740
2750
|
//Check if we have enough memory or try to expand current memory
|
|
2741
|
-
T *const raw_pos = boost::movelib::to_raw_pointer(pos);
|
|
2742
2751
|
const size_type n_pos = raw_pos - this->priv_raw_begin();
|
|
2743
2752
|
|
|
2744
2753
|
//There is not enough memory, allocate a new
|
|
@@ -2757,14 +2766,15 @@ private:
|
|
|
2757
2766
|
#endif
|
|
2758
2767
|
this->m_holder.capacity(real_cap);
|
|
2759
2768
|
//Expand forward
|
|
2760
|
-
this->
|
|
2769
|
+
this->priv_insert_forward_range_expand_forward
|
|
2770
|
+
(raw_pos, n, insert_range_proxy, dtl::bool_<dtl::is_single_value_proxy<InsertionProxy>::value>());
|
|
2761
2771
|
}
|
|
2762
2772
|
//Backwards (and possibly forward) expansion
|
|
2763
2773
|
else{
|
|
2764
2774
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2765
2775
|
++this->num_expand_bwd;
|
|
2766
2776
|
#endif
|
|
2767
|
-
this->
|
|
2777
|
+
this->priv_insert_forward_range_expand_backwards
|
|
2768
2778
|
(boost::movelib::to_raw_pointer(ret), real_cap, raw_pos, n, insert_range_proxy);
|
|
2769
2779
|
}
|
|
2770
2780
|
}
|
|
@@ -2773,7 +2783,7 @@ private:
|
|
|
2773
2783
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
2774
2784
|
++this->num_alloc;
|
|
2775
2785
|
#endif
|
|
2776
|
-
this->
|
|
2786
|
+
this->priv_insert_forward_range_new_allocation
|
|
2777
2787
|
( boost::movelib::to_raw_pointer(ret), real_cap, raw_pos, n, insert_range_proxy);
|
|
2778
2788
|
}
|
|
2779
2789
|
|
|
@@ -2781,46 +2791,53 @@ private:
|
|
|
2781
2791
|
}
|
|
2782
2792
|
|
|
2783
2793
|
template <class InsertionProxy>
|
|
2784
|
-
iterator
|
|
2794
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert_forward_range
|
|
2785
2795
|
(const pointer &pos, const size_type n, const InsertionProxy insert_range_proxy)
|
|
2786
2796
|
{
|
|
2787
2797
|
BOOST_ASSERT(this->m_holder.capacity() >= this->m_holder.m_size);
|
|
2798
|
+
T *const p = boost::movelib::to_raw_pointer(pos);
|
|
2788
2799
|
//Check if we have enough memory or try to expand current memory
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
return
|
|
2800
|
+
if (BOOST_LIKELY(n <= (this->m_holder.capacity() - this->m_holder.m_size))){
|
|
2801
|
+
//Expand forward
|
|
2802
|
+
this->priv_insert_forward_range_expand_forward
|
|
2803
|
+
(p, n, insert_range_proxy, dtl::bool_<dtl::is_single_value_proxy<InsertionProxy>::value>());
|
|
2804
|
+
return iterator(pos);
|
|
2794
2805
|
}
|
|
2795
2806
|
else{
|
|
2796
|
-
|
|
2797
|
-
T *const raw_pos = boost::movelib::to_raw_pointer(pos);
|
|
2798
|
-
const size_type n_pos = raw_pos - this->priv_raw_begin();
|
|
2799
|
-
this->priv_forward_range_insert_expand_forward(raw_pos, n, insert_range_proxy);
|
|
2800
|
-
return iterator(this->m_holder.start() + n_pos);
|
|
2807
|
+
return this->priv_insert_forward_range_no_capacity(p, n, insert_range_proxy, alloc_version());
|
|
2801
2808
|
}
|
|
2802
2809
|
}
|
|
2803
2810
|
|
|
2804
|
-
template <class
|
|
2805
|
-
|
|
2806
|
-
(const size_type n, const InsertionProxy insert_range_proxy, version_0)
|
|
2811
|
+
template <class U>
|
|
2812
|
+
void priv_resize(const size_type new_size, const U &u, version_0)
|
|
2807
2813
|
{
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
if (n > remaining){
|
|
2814
|
+
const size_type sz = this->m_holder.m_size;
|
|
2815
|
+
if (new_size > this->capacity()){
|
|
2812
2816
|
//This will trigger an error
|
|
2813
2817
|
alloc_holder_t::on_capacity_overflow();
|
|
2814
2818
|
}
|
|
2815
|
-
|
|
2816
|
-
|
|
2819
|
+
else if (new_size < sz){
|
|
2820
|
+
//Destroy last elements
|
|
2821
|
+
this->priv_destroy_last_n(sz - new_size);
|
|
2822
|
+
}
|
|
2823
|
+
else{
|
|
2824
|
+
T* const old_finish = this->priv_raw_end();
|
|
2825
|
+
this->priv_resize_proxy(u).uninitialized_copy_n_and_update(this->m_holder.alloc(), old_finish, new_size - sz);
|
|
2826
|
+
this->m_holder.set_stored_size(new_size);
|
|
2827
|
+
}
|
|
2817
2828
|
}
|
|
2818
2829
|
|
|
2819
|
-
template <class
|
|
2820
|
-
|
|
2821
|
-
(const size_type n, const InsertionProxy insert_range_proxy, AllocVersion)
|
|
2830
|
+
template <class U, class AllocVersion>
|
|
2831
|
+
void priv_resize(const size_type new_size, const U &u, AllocVersion)
|
|
2822
2832
|
{
|
|
2823
|
-
|
|
2833
|
+
const size_type sz = this->m_holder.m_size;
|
|
2834
|
+
if (new_size < sz){
|
|
2835
|
+
//Destroy last elements
|
|
2836
|
+
this->priv_destroy_last_n(sz - new_size);
|
|
2837
|
+
}
|
|
2838
|
+
else {
|
|
2839
|
+
this->priv_insert_forward_range(this->back_ptr(), new_size - sz, this->priv_resize_proxy(u));
|
|
2840
|
+
}
|
|
2824
2841
|
}
|
|
2825
2842
|
|
|
2826
2843
|
//Takes the range pointed by [first_pos, last_pos) and shifts it to the right
|
|
@@ -2916,103 +2933,69 @@ private:
|
|
|
2916
2933
|
BOOST_CONTAINER_FORCEINLINE T* priv_raw_end() const
|
|
2917
2934
|
{ return this->priv_raw_begin() + this->m_holder.m_size; }
|
|
2918
2935
|
|
|
2919
|
-
template <class InsertionProxy>
|
|
2920
|
-
void
|
|
2936
|
+
template <class InsertionProxy> //inline single-element version as it is significantly smaller
|
|
2937
|
+
BOOST_CONTAINER_FORCEINLINE void priv_insert_forward_range_expand_forward
|
|
2938
|
+
(T* const raw_pos, const size_type, InsertionProxy insert_range_proxy, dtl::true_type)
|
|
2921
2939
|
{
|
|
2922
|
-
|
|
2923
|
-
insert_range_proxy.uninitialized_copy_n_and_update(this->m_holder.alloc(), old_finish, n);
|
|
2924
|
-
this->m_holder.m_size += n;
|
|
2925
|
-
}
|
|
2926
|
-
|
|
2927
|
-
template <class InsertionProxy>
|
|
2928
|
-
void priv_forward_range_insert_expand_forward(T* const pos, const size_type n, InsertionProxy insert_range_proxy)
|
|
2929
|
-
{
|
|
2930
|
-
//n can't be 0, because there is nothing to do in that case
|
|
2931
|
-
if(BOOST_UNLIKELY(!n)) return;
|
|
2940
|
+
BOOST_ASSERT(this->room_enough());
|
|
2932
2941
|
//There is enough memory
|
|
2933
2942
|
T* const old_finish = this->priv_raw_end();
|
|
2934
|
-
|
|
2943
|
+
allocator_type & a = this->m_holder.alloc();
|
|
2935
2944
|
|
|
2936
|
-
if (
|
|
2937
|
-
insert_range_proxy.uninitialized_copy_n_and_update(
|
|
2938
|
-
this->m_holder.m_size
|
|
2945
|
+
if (old_finish == raw_pos){
|
|
2946
|
+
insert_range_proxy.uninitialized_copy_n_and_update(a, old_finish, 1);
|
|
2947
|
+
++this->m_holder.m_size;
|
|
2939
2948
|
}
|
|
2940
|
-
else
|
|
2949
|
+
else{
|
|
2941
2950
|
//New elements can be just copied.
|
|
2942
2951
|
//Move to uninitialized memory last objects
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2952
|
+
T * const before_old_finish = old_finish-1;
|
|
2953
|
+
|
|
2954
|
+
allocator_traits_type::construct(a, old_finish, ::boost::move(*before_old_finish));
|
|
2955
|
+
++this->m_holder.m_size;
|
|
2946
2956
|
//Copy previous to last objects to the initialized end
|
|
2947
|
-
boost::container::move_backward(
|
|
2948
|
-
//Insert new objects in the
|
|
2949
|
-
insert_range_proxy.copy_n_and_update(
|
|
2950
|
-
}
|
|
2951
|
-
else {
|
|
2952
|
-
//The new elements don't fit in the [pos, end()) range.
|
|
2953
|
-
|
|
2954
|
-
//Copy old [pos, end()) elements to the uninitialized memory (a gap is created)
|
|
2955
|
-
::boost::container::uninitialized_move_alloc(this->m_holder.alloc(), pos, old_finish, pos + n);
|
|
2956
|
-
BOOST_TRY{
|
|
2957
|
-
//Copy first new elements in pos (gap is still there)
|
|
2958
|
-
insert_range_proxy.copy_n_and_update(this->m_holder.alloc(), pos, elems_after);
|
|
2959
|
-
//Copy to the beginning of the unallocated zone the last new elements (the gap is closed).
|
|
2960
|
-
insert_range_proxy.uninitialized_copy_n_and_update(this->m_holder.alloc(), old_finish, n - elems_after);
|
|
2961
|
-
this->m_holder.m_size += n;
|
|
2962
|
-
}
|
|
2963
|
-
BOOST_CATCH(...){
|
|
2964
|
-
boost::container::destroy_alloc_n(this->get_stored_allocator(), pos + n, elems_after);
|
|
2965
|
-
BOOST_RETHROW
|
|
2966
|
-
}
|
|
2967
|
-
BOOST_CATCH_END
|
|
2957
|
+
boost::container::move_backward(raw_pos, before_old_finish, old_finish);
|
|
2958
|
+
//Insert new objects in the raw_pos
|
|
2959
|
+
insert_range_proxy.copy_n_and_update(a, raw_pos, 1);
|
|
2968
2960
|
}
|
|
2969
2961
|
}
|
|
2970
2962
|
|
|
2971
2963
|
template <class InsertionProxy>
|
|
2972
|
-
void
|
|
2964
|
+
BOOST_CONTAINER_FORCEINLINE void priv_insert_forward_range_expand_forward(T* const raw_pos, const size_type n, InsertionProxy insert_range_proxy, dtl::false_type)
|
|
2965
|
+
{
|
|
2966
|
+
//There is enough memory
|
|
2967
|
+
boost::container::expand_forward_and_insert_alloc
|
|
2968
|
+
( this->m_holder.alloc(), raw_pos, this->priv_raw_end(), n, insert_range_proxy);
|
|
2969
|
+
this->m_holder.inc_stored_size(n);
|
|
2970
|
+
}
|
|
2971
|
+
|
|
2972
|
+
template <class InsertionProxy>
|
|
2973
|
+
void priv_insert_forward_range_new_allocation
|
|
2973
2974
|
(T* const new_start, size_type new_cap, T* const pos, const size_type n, InsertionProxy insert_range_proxy)
|
|
2974
2975
|
{
|
|
2975
2976
|
//n can be zero, if we want to reallocate!
|
|
2976
|
-
|
|
2977
|
-
T *
|
|
2978
|
-
|
|
2979
|
-
typename value_traits::ArrayDeallocator new_buffer_deallocator(new_start,
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
if(
|
|
2986
|
-
|
|
2987
|
-
(this->m_holder.
|
|
2988
|
-
new_values_destroyer.increment_size(new_finish - old_finish);
|
|
2989
|
-
}
|
|
2990
|
-
//Initialize new objects, starting from previous point
|
|
2991
|
-
old_finish = new_finish;
|
|
2992
|
-
insert_range_proxy.uninitialized_copy_n_and_update(this->m_holder.alloc(), old_finish, n);
|
|
2993
|
-
new_finish += n;
|
|
2994
|
-
new_values_destroyer.increment_size(new_finish - old_finish);
|
|
2995
|
-
//Initialize from the rest of the old buffer,
|
|
2996
|
-
//starting from previous point
|
|
2997
|
-
if(old_buffer){
|
|
2998
|
-
new_finish = ::boost::container::uninitialized_move_alloc
|
|
2999
|
-
(this->m_holder.alloc(), pos, old_buffer + this->m_holder.m_size, new_finish);
|
|
3000
|
-
//Destroy and deallocate old elements
|
|
3001
|
-
//If there is allocated memory, destroy and deallocate
|
|
3002
|
-
if(!value_traits::trivial_dctr_after_move)
|
|
3003
|
-
boost::container::destroy_alloc_n(this->get_stored_allocator(), old_buffer, this->m_holder.m_size);
|
|
2977
|
+
allocator_type &a = this->m_holder.alloc();
|
|
2978
|
+
T * const raw_old_buffer = this->priv_raw_begin();
|
|
2979
|
+
|
|
2980
|
+
typename value_traits::ArrayDeallocator new_buffer_deallocator(new_start, a, new_cap);
|
|
2981
|
+
boost::container::uninitialized_move_and_insert_alloc
|
|
2982
|
+
(a, raw_old_buffer, pos, this->priv_raw_end(), new_start, n, insert_range_proxy);
|
|
2983
|
+
new_buffer_deallocator.release();
|
|
2984
|
+
|
|
2985
|
+
//Destroy and deallocate old elements
|
|
2986
|
+
if(raw_old_buffer){
|
|
2987
|
+
BOOST_IF_CONSTEXPR(!has_trivial_destructor_after_move<value_type>::value)
|
|
2988
|
+
boost::container::destroy_alloc_n(a, raw_old_buffer, this->m_holder.m_size);
|
|
3004
2989
|
this->m_holder.deallocate(this->m_holder.start(), this->m_holder.capacity());
|
|
3005
2990
|
}
|
|
2991
|
+
|
|
3006
2992
|
this->m_holder.start(new_start);
|
|
3007
|
-
this->m_holder.
|
|
2993
|
+
this->m_holder.inc_stored_size(n);
|
|
3008
2994
|
this->m_holder.capacity(new_cap);
|
|
3009
|
-
//All construction successful, disable rollbacks
|
|
3010
|
-
new_values_destroyer.release();
|
|
3011
|
-
new_buffer_deallocator.release();
|
|
3012
2995
|
}
|
|
3013
2996
|
|
|
3014
2997
|
template <class InsertionProxy>
|
|
3015
|
-
void
|
|
2998
|
+
void priv_insert_forward_range_expand_backwards
|
|
3016
2999
|
(T* const new_start, const size_type new_capacity,
|
|
3017
3000
|
T* const pos, const size_type n, InsertionProxy insert_range_proxy)
|
|
3018
3001
|
{
|
|
@@ -3021,28 +3004,31 @@ private:
|
|
|
3021
3004
|
T* const old_start = this->priv_raw_begin();
|
|
3022
3005
|
const size_type old_size = this->m_holder.m_size;
|
|
3023
3006
|
T* const old_finish = old_start + old_size;
|
|
3007
|
+
allocator_type &a = this->m_holder.alloc();
|
|
3008
|
+
|
|
3009
|
+
//Update the vector buffer information to a safe state
|
|
3010
|
+
this->m_holder.start(new_start);
|
|
3011
|
+
this->m_holder.capacity(new_capacity);
|
|
3012
|
+
this->m_holder.m_size = 0;
|
|
3024
3013
|
|
|
3025
3014
|
//We can have 8 possibilities:
|
|
3026
3015
|
const size_type elemsbefore = static_cast<size_type>(pos - old_start);
|
|
3027
3016
|
const size_type s_before = static_cast<size_type>(old_start - new_start);
|
|
3028
3017
|
const size_type before_plus_new = elemsbefore + n;
|
|
3029
3018
|
|
|
3030
|
-
|
|
3031
|
-
this->m_holder.start(new_start);
|
|
3032
|
-
this->m_holder.capacity(new_capacity);
|
|
3033
|
-
this->m_holder.m_size = 0;
|
|
3019
|
+
typedef typename value_traits::ArrayDestructor array_destructor_t;
|
|
3034
3020
|
|
|
3035
3021
|
//If anything goes wrong, this object will destroy
|
|
3036
3022
|
//all the old objects to fulfill previous vector state
|
|
3037
|
-
|
|
3023
|
+
array_destructor_t old_values_destroyer(old_start, a, old_size);
|
|
3038
3024
|
//Check if s_before is big enough to hold the beginning of old data + new data
|
|
3039
3025
|
if(s_before >= before_plus_new){
|
|
3040
3026
|
//Copy first old values before pos, after that the new objects
|
|
3041
3027
|
T *const new_elem_pos =
|
|
3042
|
-
::boost::container::uninitialized_move_alloc(
|
|
3043
|
-
this->m_holder.
|
|
3044
|
-
insert_range_proxy.uninitialized_copy_n_and_update(
|
|
3045
|
-
this->m_holder.
|
|
3028
|
+
::boost::container::uninitialized_move_alloc(a, old_start, pos, new_start);
|
|
3029
|
+
this->m_holder.set_stored_size(elemsbefore);
|
|
3030
|
+
insert_range_proxy.uninitialized_copy_n_and_update(a, new_elem_pos, n);
|
|
3031
|
+
this->m_holder.set_stored_size(before_plus_new);
|
|
3046
3032
|
const size_type new_size = old_size + n;
|
|
3047
3033
|
//Check if s_before is so big that even copying the old data + new data
|
|
3048
3034
|
//there is a gap between the new data and the old data
|
|
@@ -3059,15 +3045,14 @@ private:
|
|
|
3059
3045
|
//
|
|
3060
3046
|
//Now initialize the rest of memory with the last old values
|
|
3061
3047
|
if(before_plus_new != new_size){ //Special case to avoid operations in back insertion
|
|
3062
|
-
::boost::container::uninitialized_move_alloc
|
|
3063
|
-
(this->m_holder.alloc(), pos, old_finish, new_start + before_plus_new);
|
|
3048
|
+
::boost::container::uninitialized_move_alloc(a, pos, old_finish, new_start + before_plus_new);
|
|
3064
3049
|
//All new elements correctly constructed, avoid new element destruction
|
|
3065
|
-
this->m_holder.
|
|
3050
|
+
this->m_holder.set_stored_size(new_size);
|
|
3066
3051
|
}
|
|
3067
3052
|
//Old values destroyed automatically with "old_values_destroyer"
|
|
3068
3053
|
//when "old_values_destroyer" goes out of scope unless the have trivial
|
|
3069
3054
|
//destructor after move.
|
|
3070
|
-
|
|
3055
|
+
BOOST_IF_CONSTEXPR(value_traits::trivial_dctr_after_move)
|
|
3071
3056
|
old_values_destroyer.release();
|
|
3072
3057
|
}
|
|
3073
3058
|
//s_before is so big that divides old_end
|
|
@@ -3084,30 +3069,29 @@ private:
|
|
|
3084
3069
|
//
|
|
3085
3070
|
//Now initialize the rest of memory with the last old values
|
|
3086
3071
|
//All new elements correctly constructed, avoid new element destruction
|
|
3087
|
-
|
|
3088
|
-
|
|
3072
|
+
BOOST_IF_CONSTEXPR(!value_traits::trivial_dctr){
|
|
3073
|
+
const size_type raw_gap = s_before - before_plus_new;
|
|
3089
3074
|
//Now initialize the rest of s_before memory with the
|
|
3090
3075
|
//first of elements after new values
|
|
3091
|
-
::boost::container::uninitialized_move_alloc_n
|
|
3092
|
-
(this->m_holder.alloc(), pos, raw_gap, new_start + before_plus_new);
|
|
3076
|
+
::boost::container::uninitialized_move_alloc_n(a, pos, raw_gap, new_start + before_plus_new);
|
|
3093
3077
|
//Now we have a contiguous buffer so program trailing element destruction
|
|
3094
3078
|
//and update size to the final size.
|
|
3095
3079
|
old_values_destroyer.shrink_forward(new_size-s_before);
|
|
3096
|
-
this->m_holder.
|
|
3080
|
+
this->m_holder.set_stored_size(new_size);
|
|
3097
3081
|
//Now move remaining last objects in the old buffer begin
|
|
3098
3082
|
T * const remaining_pos = pos + raw_gap;
|
|
3099
3083
|
if(remaining_pos != old_start){ //Make sure data has to be moved
|
|
3100
3084
|
::boost::container::move(remaining_pos, old_finish, old_start);
|
|
3101
3085
|
}
|
|
3102
3086
|
//Once moved, avoid calling the destructors if trivial after move
|
|
3103
|
-
|
|
3087
|
+
BOOST_IF_CONSTEXPR(value_traits::trivial_dctr_after_move){
|
|
3104
3088
|
old_values_destroyer.release();
|
|
3105
3089
|
}
|
|
3106
3090
|
}
|
|
3107
3091
|
else{ //If trivial destructor, we can uninitialized copy + copy in a single uninitialized copy
|
|
3108
3092
|
::boost::container::uninitialized_move_alloc_n
|
|
3109
|
-
(
|
|
3110
|
-
this->m_holder.
|
|
3093
|
+
(a, pos, static_cast<size_type>(old_finish - pos), new_start + before_plus_new);
|
|
3094
|
+
this->m_holder.set_stored_size(new_size);
|
|
3111
3095
|
old_values_destroyer.release();
|
|
3112
3096
|
}
|
|
3113
3097
|
}
|
|
@@ -3161,8 +3145,7 @@ private:
|
|
|
3161
3145
|
//|___________|_____|_________|_____________________|
|
|
3162
3146
|
//
|
|
3163
3147
|
//Copy the first part of old_begin to raw_mem
|
|
3164
|
-
::boost::container::uninitialized_move_alloc_n
|
|
3165
|
-
(this->m_holder.alloc(), old_start, s_before, new_start);
|
|
3148
|
+
::boost::container::uninitialized_move_alloc_n(a, old_start, s_before, new_start);
|
|
3166
3149
|
//The buffer is all constructed until old_end,
|
|
3167
3150
|
//so program trailing destruction and assign final size
|
|
3168
3151
|
//if !do_after, s_before+n otherwise.
|
|
@@ -3174,17 +3157,18 @@ private:
|
|
|
3174
3157
|
}
|
|
3175
3158
|
else{
|
|
3176
3159
|
new_1st_range = n;
|
|
3177
|
-
|
|
3160
|
+
BOOST_IF_CONSTEXPR(value_traits::trivial_dctr_after_move){
|
|
3178
3161
|
old_values_destroyer.release();
|
|
3162
|
+
}
|
|
3179
3163
|
else{
|
|
3180
3164
|
old_values_destroyer.shrink_forward(old_size - (s_before - n));
|
|
3181
3165
|
}
|
|
3182
3166
|
}
|
|
3183
|
-
this->m_holder.
|
|
3167
|
+
this->m_holder.set_stored_size(old_size + new_1st_range);
|
|
3184
3168
|
//Now copy the second part of old_begin overwriting itself
|
|
3185
3169
|
T *const next = ::boost::container::move(old_start + s_before, pos, old_start);
|
|
3186
3170
|
//Now copy the new_beg elements
|
|
3187
|
-
insert_range_proxy.copy_n_and_update(
|
|
3171
|
+
insert_range_proxy.copy_n_and_update(a, next, new_1st_range);
|
|
3188
3172
|
|
|
3189
3173
|
//If there is no after work and the last old part needs to be moved to front, do it
|
|
3190
3174
|
if(!do_after && (n != s_before)){
|
|
@@ -3220,33 +3204,37 @@ private:
|
|
|
3220
3204
|
//
|
|
3221
3205
|
//First copy whole old_begin and part of new to raw_mem
|
|
3222
3206
|
T * const new_pos = ::boost::container::uninitialized_move_alloc
|
|
3223
|
-
(
|
|
3224
|
-
this->m_holder.
|
|
3207
|
+
(a, old_start, pos, new_start);
|
|
3208
|
+
this->m_holder.set_stored_size(elemsbefore);
|
|
3225
3209
|
const size_type mid_n = s_before - elemsbefore;
|
|
3226
|
-
insert_range_proxy.uninitialized_copy_n_and_update(
|
|
3210
|
+
insert_range_proxy.uninitialized_copy_n_and_update(a, new_pos, mid_n);
|
|
3227
3211
|
//The buffer is all constructed until old_end,
|
|
3228
3212
|
//release destroyer
|
|
3229
|
-
this->m_holder.
|
|
3213
|
+
this->m_holder.set_stored_size(old_size + s_before);
|
|
3230
3214
|
old_values_destroyer.release();
|
|
3231
3215
|
|
|
3232
3216
|
if(do_after){
|
|
3233
3217
|
//Copy new_beg part
|
|
3234
|
-
insert_range_proxy.copy_n_and_update(
|
|
3218
|
+
insert_range_proxy.copy_n_and_update(a, old_start, elemsbefore);
|
|
3235
3219
|
}
|
|
3236
3220
|
else{
|
|
3237
3221
|
//Copy all new elements
|
|
3238
3222
|
const size_type rest_new = n - mid_n;
|
|
3239
|
-
insert_range_proxy.copy_n_and_update(
|
|
3223
|
+
insert_range_proxy.copy_n_and_update(a, old_start, rest_new);
|
|
3224
|
+
|
|
3240
3225
|
T* const move_start = old_start + rest_new;
|
|
3241
3226
|
//Displace old_end, but make sure data has to be moved
|
|
3242
3227
|
T* const move_end = move_start != pos ? ::boost::container::move(pos, old_finish, move_start)
|
|
3243
3228
|
: old_finish;
|
|
3229
|
+
(void)move_end; //To avoid warnings of unused initialization for move_end in case
|
|
3230
|
+
//trivial_dctr_after_move is true
|
|
3244
3231
|
//Destroy remaining moved elements from old_end except if they
|
|
3245
3232
|
//have trivial destructor after being moved
|
|
3246
|
-
size_type n_destroy = s_before - n;
|
|
3247
|
-
|
|
3248
|
-
boost::container::destroy_alloc_n(
|
|
3249
|
-
|
|
3233
|
+
const size_type n_destroy = s_before - n;
|
|
3234
|
+
BOOST_IF_CONSTEXPR(!value_traits::trivial_dctr_after_move){
|
|
3235
|
+
boost::container::destroy_alloc_n(a, move_end, n_destroy);
|
|
3236
|
+
}
|
|
3237
|
+
this->m_holder.dec_stored_size(n_destroy);
|
|
3250
3238
|
}
|
|
3251
3239
|
}
|
|
3252
3240
|
|
|
@@ -3288,14 +3276,13 @@ private:
|
|
|
3288
3276
|
//
|
|
3289
3277
|
//First copy the part of old_end raw_mem
|
|
3290
3278
|
T* finish_n = old_finish - n_after;
|
|
3291
|
-
::boost::container::uninitialized_move_alloc
|
|
3292
|
-
|
|
3293
|
-
this->m_holder.m_size += n_after;
|
|
3279
|
+
::boost::container::uninitialized_move_alloc(a, finish_n, old_finish, old_finish);
|
|
3280
|
+
this->m_holder.inc_stored_size(n_after);
|
|
3294
3281
|
//Displace the rest of old_end to the new position
|
|
3295
3282
|
boost::container::move_backward(pos, finish_n, old_finish);
|
|
3296
3283
|
//Now overwrite with new_end
|
|
3297
3284
|
//The new_end part is [first + (n - n_after), last)
|
|
3298
|
-
insert_range_proxy.copy_n_and_update(
|
|
3285
|
+
insert_range_proxy.copy_n_and_update(a, pos, n_after);
|
|
3299
3286
|
}
|
|
3300
3287
|
else {
|
|
3301
3288
|
//The raw_mem from end will divide new_end part
|
|
@@ -3309,23 +3296,20 @@ private:
|
|
|
3309
3296
|
// _____________________________________________________________
|
|
3310
3297
|
//| old_begin + new_beg | new_end |old_end | raw_mem |
|
|
3311
3298
|
//|__________________________|_______________|________|_________|
|
|
3312
|
-
//
|
|
3313
3299
|
|
|
3314
|
-
const size_type mid_last_dist = n_after - elemsafter;
|
|
3315
3300
|
//First initialize data in raw memory
|
|
3301
|
+
const size_type mid_last_dist = n_after - elemsafter;
|
|
3316
3302
|
|
|
3317
3303
|
//Copy to the old_end part to the uninitialized zone leaving a gap.
|
|
3318
|
-
::boost::container::uninitialized_move_alloc
|
|
3319
|
-
(this->m_holder.alloc(), pos, old_finish, old_finish + mid_last_dist);
|
|
3304
|
+
::boost::container::uninitialized_move_alloc(a, pos, old_finish, old_finish + mid_last_dist);
|
|
3320
3305
|
|
|
3321
|
-
|
|
3322
|
-
(old_finish + mid_last_dist, this->m_holder.alloc(), old_finish - pos);
|
|
3306
|
+
array_destructor_t old_end_destroyer(old_finish + mid_last_dist, a, static_cast<size_type>(old_finish - pos));
|
|
3323
3307
|
|
|
3324
3308
|
//Copy the first part to the already constructed old_end zone
|
|
3325
|
-
insert_range_proxy.copy_n_and_update(
|
|
3309
|
+
insert_range_proxy.copy_n_and_update(a, pos, elemsafter);
|
|
3326
3310
|
//Copy the rest to the uninitialized zone filling the gap
|
|
3327
|
-
insert_range_proxy.uninitialized_copy_n_and_update(
|
|
3328
|
-
this->m_holder.
|
|
3311
|
+
insert_range_proxy.uninitialized_copy_n_and_update(a, old_finish, mid_last_dist);
|
|
3312
|
+
this->m_holder.inc_stored_size(n_after);
|
|
3329
3313
|
old_end_destroyer.release();
|
|
3330
3314
|
}
|
|
3331
3315
|
}
|