passenger 6.0.11 → 6.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +24 -1
- data/CONTRIBUTORS +3 -0
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
- data/src/agent/Core/Controller.h +4 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
- 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 +5 -0
- 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 +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- metadata +39 -4
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
@@ -220,7 +220,7 @@ class slist_impl
|
|
220
220
|
{
|
221
221
|
node_algorithms::init_header(this->get_root_node());
|
222
222
|
this->priv_size_traits().set_size(size_type(0));
|
223
|
-
|
223
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
224
224
|
this->set_last_node(this->get_root_node());
|
225
225
|
}
|
226
226
|
}
|
@@ -287,7 +287,7 @@ class slist_impl
|
|
287
287
|
{
|
288
288
|
if(n){
|
289
289
|
this->priv_size_traits().set_size(n);
|
290
|
-
|
290
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
291
291
|
this->set_last_node(before_l);
|
292
292
|
}
|
293
293
|
node_traits::set_next(this->get_root_node(), f);
|
@@ -370,7 +370,7 @@ class slist_impl
|
|
370
370
|
//! it's a safe-mode or auto-unlink value. Otherwise constant.
|
371
371
|
~slist_impl()
|
372
372
|
{
|
373
|
-
|
373
|
+
BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
|
374
374
|
this->clear();
|
375
375
|
node_algorithms::init(this->get_root_node());
|
376
376
|
}
|
@@ -384,9 +384,9 @@ class slist_impl
|
|
384
384
|
//! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
|
385
385
|
//!
|
386
386
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the erased elements.
|
387
|
-
void clear()
|
387
|
+
void clear() BOOST_NOEXCEPT
|
388
388
|
{
|
389
|
-
|
389
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink){
|
390
390
|
this->clear_and_dispose(detail::null_disposer());
|
391
391
|
}
|
392
392
|
else{
|
@@ -405,13 +405,13 @@ class slist_impl
|
|
405
405
|
//!
|
406
406
|
//! <b>Note</b>: Invalidates the iterators to the erased elements.
|
407
407
|
template <class Disposer>
|
408
|
-
void clear_and_dispose(Disposer disposer)
|
408
|
+
void clear_and_dispose(Disposer disposer) BOOST_NOEXCEPT
|
409
409
|
{
|
410
410
|
const_iterator it(this->begin()), itend(this->end());
|
411
411
|
while(it != itend){
|
412
412
|
node_ptr to_erase(it.pointed_node());
|
413
413
|
++it;
|
414
|
-
|
414
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
415
415
|
node_algorithms::init(to_erase);
|
416
416
|
disposer(priv_value_traits().to_value_ptr(to_erase));
|
417
417
|
}
|
@@ -428,11 +428,11 @@ class slist_impl
|
|
428
428
|
//! <b>Complexity</b>: Constant.
|
429
429
|
//!
|
430
430
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
431
|
-
void push_front(reference value)
|
431
|
+
void push_front(reference value) BOOST_NOEXCEPT
|
432
432
|
{
|
433
433
|
node_ptr to_insert = priv_value_traits().to_node_ptr(value);
|
434
434
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
|
435
|
-
|
435
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
436
436
|
if(this->empty()){
|
437
437
|
this->set_last_node(to_insert);
|
438
438
|
}
|
@@ -452,13 +452,13 @@ class slist_impl
|
|
452
452
|
//!
|
453
453
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
454
454
|
//! This function is only available is cache_last<> is true.
|
455
|
-
void push_back(reference value)
|
455
|
+
void push_back(reference value) BOOST_NOEXCEPT
|
456
456
|
{
|
457
457
|
BOOST_STATIC_ASSERT((cache_last));
|
458
458
|
node_ptr n = priv_value_traits().to_node_ptr(value);
|
459
459
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(n));
|
460
460
|
node_algorithms::link_after(this->get_last_node(), n);
|
461
|
-
|
461
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
462
462
|
this->set_last_node(n);
|
463
463
|
}
|
464
464
|
this->priv_size_traits().increment();
|
@@ -472,7 +472,7 @@ class slist_impl
|
|
472
472
|
//! <b>Complexity</b>: Constant.
|
473
473
|
//!
|
474
474
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the erased element.
|
475
|
-
void pop_front()
|
475
|
+
void pop_front() BOOST_NOEXCEPT
|
476
476
|
{ return this->pop_front_and_dispose(detail::null_disposer()); }
|
477
477
|
|
478
478
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -486,15 +486,15 @@ class slist_impl
|
|
486
486
|
//!
|
487
487
|
//! <b>Note</b>: Invalidates the iterators to the erased element.
|
488
488
|
template<class Disposer>
|
489
|
-
void pop_front_and_dispose(Disposer disposer)
|
489
|
+
void pop_front_and_dispose(Disposer disposer) BOOST_NOEXCEPT
|
490
490
|
{
|
491
491
|
node_ptr to_erase = node_traits::get_next(this->get_root_node());
|
492
492
|
node_algorithms::unlink_after(this->get_root_node());
|
493
493
|
this->priv_size_traits().decrement();
|
494
|
-
|
494
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
495
495
|
node_algorithms::init(to_erase);
|
496
496
|
disposer(priv_value_traits().to_value_ptr(to_erase));
|
497
|
-
|
497
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
498
498
|
if(this->empty()){
|
499
499
|
this->set_last_node(this->get_root_node());
|
500
500
|
}
|
@@ -506,7 +506,7 @@ class slist_impl
|
|
506
506
|
//! <b>Throws</b>: Nothing.
|
507
507
|
//!
|
508
508
|
//! <b>Complexity</b>: Constant.
|
509
|
-
reference front()
|
509
|
+
BOOST_INTRUSIVE_FORCEINLINE reference front() BOOST_NOEXCEPT
|
510
510
|
{ return *this->priv_value_traits().to_value_ptr(node_traits::get_next(this->get_root_node())); }
|
511
511
|
|
512
512
|
//! <b>Effects</b>: Returns a const_reference to the first element of the list.
|
@@ -514,7 +514,7 @@ class slist_impl
|
|
514
514
|
//! <b>Throws</b>: Nothing.
|
515
515
|
//!
|
516
516
|
//! <b>Complexity</b>: Constant.
|
517
|
-
const_reference front() const
|
517
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reference front() const BOOST_NOEXCEPT
|
518
518
|
{ return *this->priv_value_traits().to_value_ptr(detail::uncast(node_traits::get_next(this->get_root_node()))); }
|
519
519
|
|
520
520
|
//! <b>Effects</b>: Returns a reference to the last element of the list.
|
@@ -525,7 +525,7 @@ class slist_impl
|
|
525
525
|
//!
|
526
526
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
527
527
|
//! This function is only available is cache_last<> is true.
|
528
|
-
reference back()
|
528
|
+
reference back() BOOST_NOEXCEPT
|
529
529
|
{
|
530
530
|
BOOST_STATIC_ASSERT((cache_last));
|
531
531
|
return *this->priv_value_traits().to_value_ptr(this->get_last_node());
|
@@ -539,7 +539,7 @@ class slist_impl
|
|
539
539
|
//!
|
540
540
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
541
541
|
//! This function is only available is cache_last<> is true.
|
542
|
-
const_reference back() const
|
542
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reference back() const BOOST_NOEXCEPT
|
543
543
|
{
|
544
544
|
BOOST_STATIC_ASSERT((cache_last));
|
545
545
|
return *this->priv_value_traits().to_value_ptr(this->get_last_node());
|
@@ -550,7 +550,7 @@ class slist_impl
|
|
550
550
|
//! <b>Throws</b>: Nothing.
|
551
551
|
//!
|
552
552
|
//! <b>Complexity</b>: Constant.
|
553
|
-
iterator begin()
|
553
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator begin() BOOST_NOEXCEPT
|
554
554
|
{ return iterator (node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
|
555
555
|
|
556
556
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the list.
|
@@ -558,7 +558,7 @@ class slist_impl
|
|
558
558
|
//! <b>Throws</b>: Nothing.
|
559
559
|
//!
|
560
560
|
//! <b>Complexity</b>: Constant.
|
561
|
-
const_iterator begin() const
|
561
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT
|
562
562
|
{ return const_iterator (node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
|
563
563
|
|
564
564
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the list.
|
@@ -566,7 +566,7 @@ class slist_impl
|
|
566
566
|
//! <b>Throws</b>: Nothing.
|
567
567
|
//!
|
568
568
|
//! <b>Complexity</b>: Constant.
|
569
|
-
const_iterator cbegin() const
|
569
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT
|
570
570
|
{ return const_iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
|
571
571
|
|
572
572
|
//! <b>Effects</b>: Returns an iterator to the end of the list.
|
@@ -574,7 +574,7 @@ class slist_impl
|
|
574
574
|
//! <b>Throws</b>: Nothing.
|
575
575
|
//!
|
576
576
|
//! <b>Complexity</b>: Constant.
|
577
|
-
iterator end()
|
577
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator end() BOOST_NOEXCEPT
|
578
578
|
{ return iterator(this->get_end_node(), this->priv_value_traits_ptr()); }
|
579
579
|
|
580
580
|
//! <b>Effects</b>: Returns a const_iterator to the end of the list.
|
@@ -582,7 +582,7 @@ class slist_impl
|
|
582
582
|
//! <b>Throws</b>: Nothing.
|
583
583
|
//!
|
584
584
|
//! <b>Complexity</b>: Constant.
|
585
|
-
const_iterator end() const
|
585
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT
|
586
586
|
{ return const_iterator(detail::uncast(this->get_end_node()), this->priv_value_traits_ptr()); }
|
587
587
|
|
588
588
|
//! <b>Effects</b>: Returns a const_iterator to the end of the list.
|
@@ -590,7 +590,7 @@ class slist_impl
|
|
590
590
|
//! <b>Throws</b>: Nothing.
|
591
591
|
//!
|
592
592
|
//! <b>Complexity</b>: Constant.
|
593
|
-
const_iterator cend() const
|
593
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT
|
594
594
|
{ return this->end(); }
|
595
595
|
|
596
596
|
//! <b>Effects</b>: Returns an iterator that points to a position
|
@@ -599,7 +599,7 @@ class slist_impl
|
|
599
599
|
//! <b>Throws</b>: Nothing.
|
600
600
|
//!
|
601
601
|
//! <b>Complexity</b>: Constant.
|
602
|
-
iterator before_begin()
|
602
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator before_begin() BOOST_NOEXCEPT
|
603
603
|
{ return iterator(this->get_root_node(), this->priv_value_traits_ptr()); }
|
604
604
|
|
605
605
|
//! <b>Effects</b>: Returns an iterator that points to a position
|
@@ -608,7 +608,7 @@ class slist_impl
|
|
608
608
|
//! <b>Throws</b>: Nothing.
|
609
609
|
//!
|
610
610
|
//! <b>Complexity</b>: Constant.
|
611
|
-
const_iterator before_begin() const
|
611
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator before_begin() const BOOST_NOEXCEPT
|
612
612
|
{ return const_iterator(detail::uncast(this->get_root_node()), this->priv_value_traits_ptr()); }
|
613
613
|
|
614
614
|
//! <b>Effects</b>: Returns an iterator that points to a position
|
@@ -617,7 +617,7 @@ class slist_impl
|
|
617
617
|
//! <b>Throws</b>: Nothing.
|
618
618
|
//!
|
619
619
|
//! <b>Complexity</b>: Constant.
|
620
|
-
const_iterator cbefore_begin() const
|
620
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator cbefore_begin() const BOOST_NOEXCEPT
|
621
621
|
{ return this->before_begin(); }
|
622
622
|
|
623
623
|
//! <b>Effects</b>: Returns an iterator to the last element contained in the list.
|
@@ -627,7 +627,7 @@ class slist_impl
|
|
627
627
|
//! <b>Complexity</b>: Constant.
|
628
628
|
//!
|
629
629
|
//! <b>Note</b>: This function is present only if cached_last<> option is true.
|
630
|
-
iterator last()
|
630
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator last() BOOST_NOEXCEPT
|
631
631
|
{
|
632
632
|
//This function shall not be used if cache_last is not true
|
633
633
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(cache_last);
|
@@ -641,7 +641,7 @@ class slist_impl
|
|
641
641
|
//! <b>Complexity</b>: Constant.
|
642
642
|
//!
|
643
643
|
//! <b>Note</b>: This function is present only if cached_last<> option is true.
|
644
|
-
const_iterator last() const
|
644
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator last() const BOOST_NOEXCEPT
|
645
645
|
{
|
646
646
|
//This function shall not be used if cache_last is not true
|
647
647
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(cache_last);
|
@@ -655,7 +655,7 @@ class slist_impl
|
|
655
655
|
//! <b>Complexity</b>: Constant.
|
656
656
|
//!
|
657
657
|
//! <b>Note</b>: This function is present only if cached_last<> option is true.
|
658
|
-
const_iterator clast() const
|
658
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator clast() const BOOST_NOEXCEPT
|
659
659
|
{ return const_iterator(this->get_last_node(), this->priv_value_traits_ptr()); }
|
660
660
|
|
661
661
|
//! <b>Precondition</b>: end_iterator must be a valid end iterator
|
@@ -666,7 +666,7 @@ class slist_impl
|
|
666
666
|
//! <b>Throws</b>: Nothing.
|
667
667
|
//!
|
668
668
|
//! <b>Complexity</b>: Constant.
|
669
|
-
static slist_impl &container_from_end_iterator(iterator end_iterator)
|
669
|
+
BOOST_INTRUSIVE_FORCEINLINE static slist_impl &container_from_end_iterator(iterator end_iterator) BOOST_NOEXCEPT
|
670
670
|
{ return slist_impl::priv_container_from_end_iterator(end_iterator); }
|
671
671
|
|
672
672
|
//! <b>Precondition</b>: end_iterator must be a valid end const_iterator
|
@@ -677,7 +677,7 @@ class slist_impl
|
|
677
677
|
//! <b>Throws</b>: Nothing.
|
678
678
|
//!
|
679
679
|
//! <b>Complexity</b>: Constant.
|
680
|
-
static const slist_impl &container_from_end_iterator(const_iterator end_iterator)
|
680
|
+
BOOST_INTRUSIVE_FORCEINLINE static const slist_impl &container_from_end_iterator(const_iterator end_iterator) BOOST_NOEXCEPT
|
681
681
|
{ return slist_impl::priv_container_from_end_iterator(end_iterator); }
|
682
682
|
|
683
683
|
//! <b>Effects</b>: Returns the number of the elements contained in the list.
|
@@ -688,9 +688,9 @@ class slist_impl
|
|
688
688
|
//! if constant_time_size is false. Constant time otherwise.
|
689
689
|
//!
|
690
690
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
691
|
-
size_type size() const
|
691
|
+
BOOST_INTRUSIVE_FORCEINLINE size_type size() const BOOST_NOEXCEPT
|
692
692
|
{
|
693
|
-
|
693
|
+
BOOST_IF_CONSTEXPR(constant_time_size)
|
694
694
|
return this->priv_size_traits().get_size();
|
695
695
|
else
|
696
696
|
return node_algorithms::count(this->get_root_node()) - 1;
|
@@ -703,7 +703,7 @@ class slist_impl
|
|
703
703
|
//! <b>Complexity</b>: Constant.
|
704
704
|
//!
|
705
705
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
706
|
-
bool empty() const
|
706
|
+
BOOST_INTRUSIVE_FORCEINLINE bool empty() const BOOST_NOEXCEPT
|
707
707
|
{ return node_algorithms::unique(this->get_root_node()); }
|
708
708
|
|
709
709
|
//! <b>Effects</b>: Swaps the elements of x and *this.
|
@@ -716,7 +716,7 @@ class slist_impl
|
|
716
716
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
717
717
|
void swap(slist_impl& other)
|
718
718
|
{
|
719
|
-
|
719
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
720
720
|
priv_swap_cache_last(this, &other);
|
721
721
|
}
|
722
722
|
else{
|
@@ -734,7 +734,7 @@ class slist_impl
|
|
734
734
|
//! <b>Complexity</b>: Linear to the number of elements plus the number shifts.
|
735
735
|
//!
|
736
736
|
//! <b>Note</b>: Iterators Does not affect the validity of iterators and references.
|
737
|
-
void shift_backwards(size_type n = 1)
|
737
|
+
void shift_backwards(size_type n = 1) BOOST_NOEXCEPT
|
738
738
|
{ this->priv_shift_backwards(n, detail::bool_<linear>()); }
|
739
739
|
|
740
740
|
//! <b>Effects</b>: Moves forward all the elements, so that the second
|
@@ -746,7 +746,7 @@ class slist_impl
|
|
746
746
|
//! <b>Complexity</b>: Linear to the number of elements plus the number shifts.
|
747
747
|
//!
|
748
748
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
749
|
-
void shift_forward(size_type n = 1)
|
749
|
+
void shift_forward(size_type n = 1) BOOST_NOEXCEPT
|
750
750
|
{ this->priv_shift_forward(n, detail::bool_<linear>()); }
|
751
751
|
|
752
752
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -818,7 +818,7 @@ class slist_impl
|
|
818
818
|
//! <b>Complexity</b>: Constant.
|
819
819
|
//!
|
820
820
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
821
|
-
iterator insert_after(const_iterator prev_p, reference value)
|
821
|
+
iterator insert_after(const_iterator prev_p, reference value) BOOST_NOEXCEPT
|
822
822
|
{
|
823
823
|
node_ptr n = priv_value_traits().to_node_ptr(value);
|
824
824
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(n));
|
@@ -844,7 +844,7 @@ class slist_impl
|
|
844
844
|
//!
|
845
845
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
846
846
|
template<class Iterator>
|
847
|
-
void insert_after(const_iterator prev_p, Iterator f, Iterator l)
|
847
|
+
void insert_after(const_iterator prev_p, Iterator f, Iterator l) BOOST_NOEXCEPT
|
848
848
|
{
|
849
849
|
//Insert first nodes avoiding cache and size checks
|
850
850
|
size_type count = 0;
|
@@ -859,7 +859,7 @@ class slist_impl
|
|
859
859
|
if(cache_last && (this->get_last_node() == prev_p.pointed_node())){
|
860
860
|
this->set_last_node(prev_n);
|
861
861
|
}
|
862
|
-
|
862
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
863
863
|
this->priv_size_traits().increase(count);
|
864
864
|
}
|
865
865
|
}
|
@@ -876,7 +876,7 @@ class slist_impl
|
|
876
876
|
//! Constant-time if cache_last<> is true and p == end().
|
877
877
|
//!
|
878
878
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
879
|
-
iterator insert(const_iterator p, reference value)
|
879
|
+
iterator insert(const_iterator p, reference value) BOOST_NOEXCEPT
|
880
880
|
{ return this->insert_after(this->previous(p), value); }
|
881
881
|
|
882
882
|
//! <b>Requires</b>: Dereferencing iterator must yield
|
@@ -894,7 +894,7 @@ class slist_impl
|
|
894
894
|
//!
|
895
895
|
//! <b>Note</b>: Does not affect the validity of iterators and references.
|
896
896
|
template<class Iterator>
|
897
|
-
void insert(const_iterator p, Iterator b, Iterator e)
|
897
|
+
void insert(const_iterator p, Iterator b, Iterator e) BOOST_NOEXCEPT
|
898
898
|
{ return this->insert_after(this->previous(p), b, e); }
|
899
899
|
|
900
900
|
//! <b>Effects</b>: Erases the element after the element pointed by prev of
|
@@ -909,7 +909,7 @@ class slist_impl
|
|
909
909
|
//!
|
910
910
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
911
911
|
//! erased element.
|
912
|
-
iterator erase_after(const_iterator prev)
|
912
|
+
iterator erase_after(const_iterator prev) BOOST_NOEXCEPT
|
913
913
|
{ return this->erase_after_and_dispose(prev, detail::null_disposer()); }
|
914
914
|
|
915
915
|
//! <b>Effects</b>: Erases the range (before_f, l) from
|
@@ -925,15 +925,15 @@ class slist_impl
|
|
925
925
|
//!
|
926
926
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
927
927
|
//! erased element.
|
928
|
-
iterator erase_after(const_iterator before_f, const_iterator l)
|
928
|
+
iterator erase_after(const_iterator before_f, const_iterator l) BOOST_NOEXCEPT
|
929
929
|
{
|
930
|
-
|
930
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink || constant_time_size){
|
931
931
|
return this->erase_after_and_dispose(before_f, l, detail::null_disposer());
|
932
932
|
}
|
933
933
|
else{
|
934
934
|
const node_ptr bfp = before_f.pointed_node();
|
935
935
|
const node_ptr lp = l.pointed_node();
|
936
|
-
|
936
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
937
937
|
if(lp == this->get_end_node()){
|
938
938
|
this->set_last_node(bfp);
|
939
939
|
}
|
@@ -957,22 +957,22 @@ class slist_impl
|
|
957
957
|
//!
|
958
958
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
959
959
|
//! erased element.
|
960
|
-
iterator erase_after(const_iterator before_f, const_iterator l, size_type n)
|
960
|
+
iterator erase_after(const_iterator before_f, const_iterator l, size_type n) BOOST_NOEXCEPT
|
961
961
|
{
|
962
962
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(node_algorithms::distance((++const_iterator(before_f)).pointed_node(), l.pointed_node()) == n);
|
963
|
-
|
963
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink){
|
964
964
|
return this->erase_after(before_f, l);
|
965
965
|
}
|
966
966
|
else{
|
967
967
|
const node_ptr bfp = before_f.pointed_node();
|
968
968
|
const node_ptr lp = l.pointed_node();
|
969
|
-
|
969
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
970
970
|
if((lp == this->get_end_node())){
|
971
971
|
this->set_last_node(bfp);
|
972
972
|
}
|
973
973
|
}
|
974
974
|
node_algorithms::unlink_after(bfp, lp);
|
975
|
-
|
975
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
976
976
|
this->priv_size_traits().decrease(n);
|
977
977
|
}
|
978
978
|
return l.unconst();
|
@@ -991,7 +991,7 @@ class slist_impl
|
|
991
991
|
//!
|
992
992
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
993
993
|
//! erased element.
|
994
|
-
iterator erase(const_iterator i)
|
994
|
+
iterator erase(const_iterator i) BOOST_NOEXCEPT
|
995
995
|
{ return this->erase_after(this->previous(i)); }
|
996
996
|
|
997
997
|
//! <b>Requires</b>: f and l must be valid iterator to elements in *this.
|
@@ -1008,7 +1008,7 @@ class slist_impl
|
|
1008
1008
|
//!
|
1009
1009
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
1010
1010
|
//! erased elements.
|
1011
|
-
iterator erase(const_iterator f, const_iterator l)
|
1011
|
+
iterator erase(const_iterator f, const_iterator l) BOOST_NOEXCEPT
|
1012
1012
|
{ return this->erase_after(this->previous(f), l); }
|
1013
1013
|
|
1014
1014
|
//! <b>Effects</b>: Erases the range [f, l) from
|
@@ -1025,7 +1025,7 @@ class slist_impl
|
|
1025
1025
|
//!
|
1026
1026
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
1027
1027
|
//! erased element.
|
1028
|
-
iterator erase(const_iterator f, const_iterator l, size_type n)
|
1028
|
+
iterator erase(const_iterator f, const_iterator l, size_type n) BOOST_NOEXCEPT
|
1029
1029
|
{ return this->erase_after(this->previous(f), l, n); }
|
1030
1030
|
|
1031
1031
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -1043,7 +1043,7 @@ class slist_impl
|
|
1043
1043
|
//!
|
1044
1044
|
//! <b>Note</b>: Invalidates the iterators to the erased element.
|
1045
1045
|
template<class Disposer>
|
1046
|
-
iterator erase_after_and_dispose(const_iterator prev, Disposer disposer)
|
1046
|
+
iterator erase_after_and_dispose(const_iterator prev, Disposer disposer) BOOST_NOEXCEPT
|
1047
1047
|
{
|
1048
1048
|
const_iterator it(prev);
|
1049
1049
|
++it;
|
@@ -1054,7 +1054,7 @@ class slist_impl
|
|
1054
1054
|
if(cache_last && (to_erase == this->get_last_node())){
|
1055
1055
|
this->set_last_node(prev_n);
|
1056
1056
|
}
|
1057
|
-
|
1057
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
1058
1058
|
node_algorithms::init(to_erase);
|
1059
1059
|
disposer(priv_value_traits().to_value_ptr(to_erase));
|
1060
1060
|
this->priv_size_traits().decrement();
|
@@ -1063,7 +1063,7 @@ class slist_impl
|
|
1063
1063
|
|
1064
1064
|
/// @cond
|
1065
1065
|
|
1066
|
-
static iterator s_insert_after(const_iterator const prev_p, reference value)
|
1066
|
+
static iterator s_insert_after(const_iterator const prev_p, reference value) BOOST_NOEXCEPT
|
1067
1067
|
{
|
1068
1068
|
BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
|
1069
1069
|
node_ptr const n = value_traits::to_node_ptr(value);
|
@@ -1073,7 +1073,7 @@ class slist_impl
|
|
1073
1073
|
}
|
1074
1074
|
|
1075
1075
|
template<class Disposer>
|
1076
|
-
static iterator s_erase_after_and_dispose(const_iterator prev, Disposer disposer)
|
1076
|
+
static iterator s_erase_after_and_dispose(const_iterator prev, Disposer disposer) BOOST_NOEXCEPT
|
1077
1077
|
{
|
1078
1078
|
BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
|
1079
1079
|
const_iterator it(prev);
|
@@ -1082,14 +1082,14 @@ class slist_impl
|
|
1082
1082
|
++it;
|
1083
1083
|
node_ptr prev_n(prev.pointed_node());
|
1084
1084
|
node_algorithms::unlink_after(prev_n);
|
1085
|
-
|
1085
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
1086
1086
|
node_algorithms::init(to_erase);
|
1087
1087
|
disposer(value_traits::to_value_ptr(to_erase));
|
1088
1088
|
return it.unconst();
|
1089
1089
|
}
|
1090
1090
|
|
1091
1091
|
template<class Disposer>
|
1092
|
-
static iterator s_erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer)
|
1092
|
+
static iterator s_erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
|
1093
1093
|
{
|
1094
1094
|
BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
|
1095
1095
|
node_ptr bfp(before_f.pointed_node()), lp(l.pointed_node());
|
@@ -1098,14 +1098,14 @@ class slist_impl
|
|
1098
1098
|
while(fp != lp){
|
1099
1099
|
node_ptr to_erase(fp);
|
1100
1100
|
fp = node_traits::get_next(fp);
|
1101
|
-
|
1101
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
1102
1102
|
node_algorithms::init(to_erase);
|
1103
1103
|
disposer(value_traits::to_value_ptr(to_erase));
|
1104
1104
|
}
|
1105
1105
|
return l.unconst();
|
1106
1106
|
}
|
1107
1107
|
|
1108
|
-
static iterator s_erase_after(const_iterator prev)
|
1108
|
+
static iterator s_erase_after(const_iterator prev) BOOST_NOEXCEPT
|
1109
1109
|
{ return s_erase_after_and_dispose(prev, detail::null_disposer()); }
|
1110
1110
|
|
1111
1111
|
/// @endcond
|
@@ -1125,7 +1125,7 @@ class slist_impl
|
|
1125
1125
|
//!
|
1126
1126
|
//! <b>Note</b>: Invalidates the iterators to the erased element.
|
1127
1127
|
template<class Disposer>
|
1128
|
-
iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer)
|
1128
|
+
iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
|
1129
1129
|
{
|
1130
1130
|
node_ptr bfp(before_f.pointed_node()), lp(l.pointed_node());
|
1131
1131
|
node_ptr fp(node_traits::get_next(bfp));
|
@@ -1133,7 +1133,7 @@ class slist_impl
|
|
1133
1133
|
while(fp != lp){
|
1134
1134
|
node_ptr to_erase(fp);
|
1135
1135
|
fp = node_traits::get_next(fp);
|
1136
|
-
|
1136
|
+
BOOST_IF_CONSTEXPR(safemode_or_autounlink)
|
1137
1137
|
node_algorithms::init(to_erase);
|
1138
1138
|
disposer(priv_value_traits().to_value_ptr(to_erase));
|
1139
1139
|
this->priv_size_traits().decrement();
|
@@ -1160,12 +1160,12 @@ class slist_impl
|
|
1160
1160
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
1161
1161
|
//! erased element.
|
1162
1162
|
template<class Disposer>
|
1163
|
-
iterator erase_and_dispose(const_iterator i, Disposer disposer)
|
1163
|
+
iterator erase_and_dispose(const_iterator i, Disposer disposer) BOOST_NOEXCEPT
|
1164
1164
|
{ return this->erase_after_and_dispose(this->previous(i), disposer); }
|
1165
1165
|
|
1166
1166
|
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
1167
1167
|
template<class Disposer>
|
1168
|
-
iterator erase_and_dispose(iterator i, Disposer disposer)
|
1168
|
+
iterator erase_and_dispose(iterator i, Disposer disposer) BOOST_NOEXCEPT
|
1169
1169
|
{ return this->erase_and_dispose(const_iterator(i), disposer); }
|
1170
1170
|
#endif
|
1171
1171
|
|
@@ -1187,7 +1187,7 @@ class slist_impl
|
|
1187
1187
|
//! <b>Note</b>: Invalidates the iterators (but not the references) to the
|
1188
1188
|
//! erased elements.
|
1189
1189
|
template<class Disposer>
|
1190
|
-
iterator erase_and_dispose(const_iterator f, const_iterator l, Disposer disposer)
|
1190
|
+
iterator erase_and_dispose(const_iterator f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
|
1191
1191
|
{ return this->erase_after_and_dispose(this->previous(f), l, disposer); }
|
1192
1192
|
|
1193
1193
|
//! <b>Requires</b>: Dereferencing iterator must yield
|
@@ -1256,7 +1256,7 @@ class slist_impl
|
|
1256
1256
|
//! assigned to the last spliced element or prev if x is empty.
|
1257
1257
|
//! This iterator can be used as new "prev" iterator for a new splice_after call.
|
1258
1258
|
//! that will splice new values after the previously spliced values.
|
1259
|
-
void splice_after(const_iterator prev, slist_impl &x, const_iterator *l = 0)
|
1259
|
+
void splice_after(const_iterator prev, slist_impl &x, const_iterator *l = 0) BOOST_NOEXCEPT
|
1260
1260
|
{
|
1261
1261
|
if(x.empty()){
|
1262
1262
|
if(l) *l = prev;
|
@@ -1269,7 +1269,7 @@ class slist_impl
|
|
1269
1269
|
const_iterator last_x(x.previous(x.end())); //constant time if cache_last is active
|
1270
1270
|
node_ptr prev_n(prev.pointed_node());
|
1271
1271
|
node_ptr last_x_n(last_x.pointed_node());
|
1272
|
-
|
1272
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
1273
1273
|
x.set_last_node(x.get_root_node());
|
1274
1274
|
if(node_traits::get_next(prev_n) == this->get_end_node()){
|
1275
1275
|
this->set_last_node(last_x_n);
|
@@ -1295,7 +1295,7 @@ class slist_impl
|
|
1295
1295
|
//!
|
1296
1296
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1297
1297
|
//! list. Iterators of this list and all the references are not invalidated.
|
1298
|
-
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator prev_ele)
|
1298
|
+
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator prev_ele) BOOST_NOEXCEPT
|
1299
1299
|
{
|
1300
1300
|
const_iterator elem = prev_ele;
|
1301
1301
|
this->splice_after(prev_pos, x, prev_ele, ++elem, 1);
|
@@ -1316,9 +1316,9 @@ class slist_impl
|
|
1316
1316
|
//!
|
1317
1317
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1318
1318
|
//! list. Iterators of this list and all the references are not invalidated.
|
1319
|
-
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l)
|
1319
|
+
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l) BOOST_NOEXCEPT
|
1320
1320
|
{
|
1321
|
-
|
1321
|
+
BOOST_IF_CONSTEXPR(constant_time_size)
|
1322
1322
|
this->splice_after(prev_pos, x, before_f, before_l, node_algorithms::distance(before_f.pointed_node(), before_l.pointed_node()));
|
1323
1323
|
else
|
1324
1324
|
this->priv_splice_after
|
@@ -1339,12 +1339,12 @@ class slist_impl
|
|
1339
1339
|
//!
|
1340
1340
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1341
1341
|
//! list. Iterators of this list and all the references are not invalidated.
|
1342
|
-
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l, size_type n)
|
1342
|
+
void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l, size_type n) BOOST_NOEXCEPT
|
1343
1343
|
{
|
1344
1344
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(node_algorithms::distance(before_f.pointed_node(), before_l.pointed_node()) == n);
|
1345
1345
|
this->priv_splice_after
|
1346
1346
|
(prev_pos.pointed_node(), x, before_f.pointed_node(), before_l.pointed_node());
|
1347
|
-
|
1347
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
1348
1348
|
this->priv_size_traits().increase(n);
|
1349
1349
|
x.priv_size_traits().decrease(n);
|
1350
1350
|
}
|
@@ -1371,7 +1371,7 @@ class slist_impl
|
|
1371
1371
|
//! assigned to the last spliced element or prev if x is empty.
|
1372
1372
|
//! This iterator can be used as new "prev" iterator for a new splice_after call.
|
1373
1373
|
//! that will splice new values after the previously spliced values.
|
1374
|
-
void splice(const_iterator it, slist_impl &x, const_iterator *l = 0)
|
1374
|
+
void splice(const_iterator it, slist_impl &x, const_iterator *l = 0) BOOST_NOEXCEPT
|
1375
1375
|
{ this->splice_after(this->previous(it), x, l); }
|
1376
1376
|
|
1377
1377
|
//! <b>Requires</b>: it p must be a valid iterator of *this.
|
@@ -1388,7 +1388,7 @@ class slist_impl
|
|
1388
1388
|
//!
|
1389
1389
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1390
1390
|
//! list. Iterators of this list and all the references are not invalidated.
|
1391
|
-
void splice(const_iterator pos, slist_impl &x, const_iterator elem)
|
1391
|
+
void splice(const_iterator pos, slist_impl &x, const_iterator elem) BOOST_NOEXCEPT
|
1392
1392
|
{ return this->splice_after(this->previous(pos), x, x.previous(elem)); }
|
1393
1393
|
|
1394
1394
|
//! <b>Requires</b>: pos must be a dereferenceable iterator in *this
|
@@ -1408,7 +1408,7 @@ class slist_impl
|
|
1408
1408
|
//!
|
1409
1409
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1410
1410
|
//! list. Iterators of this list and all the references are not invalidated.
|
1411
|
-
void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l)
|
1411
|
+
void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l) BOOST_NOEXCEPT
|
1412
1412
|
{ return this->splice_after(this->previous(pos), x, x.previous(f), x.previous(l)); }
|
1413
1413
|
|
1414
1414
|
//! <b>Requires</b>: pos must be a dereferenceable iterator in *this
|
@@ -1427,7 +1427,7 @@ class slist_impl
|
|
1427
1427
|
//!
|
1428
1428
|
//! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
|
1429
1429
|
//! list. Iterators of this list and all the references are not invalidated.
|
1430
|
-
void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l, size_type n)
|
1430
|
+
void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l, size_type n) BOOST_NOEXCEPT
|
1431
1431
|
{ return this->splice_after(this->previous(pos), x, x.previous(f), x.previous(l), n); }
|
1432
1432
|
|
1433
1433
|
//! <b>Effects</b>: This function sorts the list *this according to operator<.
|
@@ -1462,7 +1462,7 @@ class slist_impl
|
|
1462
1462
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(counter[i].empty());
|
1463
1463
|
const_iterator last_element(carry.previous(last_inserted, carry.end()));
|
1464
1464
|
|
1465
|
-
|
1465
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
1466
1466
|
counter[i].splice_after( counter[i].cbefore_begin(), carry
|
1467
1467
|
, carry.cbefore_begin(), last_element
|
1468
1468
|
, carry.size());
|
@@ -1479,7 +1479,7 @@ class slist_impl
|
|
1479
1479
|
counter[i].merge(counter[i-1], p, &last_inserted);
|
1480
1480
|
--fill;
|
1481
1481
|
const_iterator last_element(counter[fill].previous(last_inserted, counter[fill].end()));
|
1482
|
-
|
1482
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
1483
1483
|
this->splice_after( cbefore_begin(), counter[fill], counter[fill].cbefore_begin()
|
1484
1484
|
, last_element, counter[fill].size());
|
1485
1485
|
}
|
@@ -1576,7 +1576,7 @@ class slist_impl
|
|
1576
1576
|
//! <b>Complexity</b>: This function is linear to the contained elements.
|
1577
1577
|
//!
|
1578
1578
|
//! <b>Note</b>: Iterators and references are not invalidated
|
1579
|
-
void reverse()
|
1579
|
+
void reverse() BOOST_NOEXCEPT
|
1580
1580
|
{
|
1581
1581
|
if(cache_last && !this->empty()){
|
1582
1582
|
this->set_last_node(node_traits::get_next(this->get_root_node()));
|
@@ -1594,7 +1594,7 @@ class slist_impl
|
|
1594
1594
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
1595
1595
|
//! and iterators to elements that are not removed remain valid. This function is
|
1596
1596
|
//! linear time: it performs exactly size() comparisons for equality.
|
1597
|
-
void remove(const_reference value)
|
1597
|
+
void remove(const_reference value) BOOST_NOEXCEPT
|
1598
1598
|
{ this->remove_if(detail::equal_to_value<const_reference>(value)); }
|
1599
1599
|
|
1600
1600
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -1609,7 +1609,7 @@ class slist_impl
|
|
1609
1609
|
//! <b>Note</b>: The relative order of elements that are not removed is unchanged,
|
1610
1610
|
//! and iterators to elements that are not removed remain valid.
|
1611
1611
|
template<class Disposer>
|
1612
|
-
void remove_and_dispose(const_reference value, Disposer disposer)
|
1612
|
+
void remove_and_dispose(const_reference value, Disposer disposer) BOOST_NOEXCEPT
|
1613
1613
|
{ this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
|
1614
1614
|
|
1615
1615
|
//! <b>Effects</b>: Removes all the elements for which a specified
|
@@ -1629,7 +1629,7 @@ class slist_impl
|
|
1629
1629
|
node_algorithms::stable_partition
|
1630
1630
|
(bbeg, this->get_end_node(), detail::key_nodeptr_comp<Pred, value_traits>(pred, &this->priv_value_traits()), info);
|
1631
1631
|
//After cache last is set, slist invariants are preserved...
|
1632
|
-
|
1632
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
1633
1633
|
this->set_last_node(info.new_last_node);
|
1634
1634
|
}
|
1635
1635
|
//...so erase can be safely called
|
@@ -1658,7 +1658,7 @@ class slist_impl
|
|
1658
1658
|
node_algorithms::stable_partition
|
1659
1659
|
(bbeg, this->get_end_node(), detail::key_nodeptr_comp<Pred, value_traits>(pred, &this->priv_value_traits()), info);
|
1660
1660
|
//After cache last is set, slist invariants are preserved...
|
1661
|
-
|
1661
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
1662
1662
|
this->set_last_node(info.new_last_node);
|
1663
1663
|
}
|
1664
1664
|
//...so erase can be safely called
|
@@ -1738,7 +1738,7 @@ class slist_impl
|
|
1738
1738
|
++cur;
|
1739
1739
|
}
|
1740
1740
|
}
|
1741
|
-
|
1741
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
1742
1742
|
this->set_last_node(bcur.pointed_node());
|
1743
1743
|
}
|
1744
1744
|
}
|
@@ -1755,7 +1755,7 @@ class slist_impl
|
|
1755
1755
|
//! <b>Note</b>: Iterators and references are not invalidated.
|
1756
1756
|
//! This static function is available only if the <i>value traits</i>
|
1757
1757
|
//! is stateless.
|
1758
|
-
static iterator s_iterator_to(reference value)
|
1758
|
+
static iterator s_iterator_to(reference value) BOOST_NOEXCEPT
|
1759
1759
|
{
|
1760
1760
|
BOOST_STATIC_ASSERT((!stateful_value_traits));
|
1761
1761
|
return iterator (value_traits::to_node_ptr(value), const_value_traits_ptr());
|
@@ -1772,7 +1772,7 @@ class slist_impl
|
|
1772
1772
|
//! <b>Note</b>: Iterators and references are not invalidated.
|
1773
1773
|
//! This static function is available only if the <i>value traits</i>
|
1774
1774
|
//! is stateless.
|
1775
|
-
static const_iterator s_iterator_to(const_reference value)
|
1775
|
+
static const_iterator s_iterator_to(const_reference value) BOOST_NOEXCEPT
|
1776
1776
|
{
|
1777
1777
|
BOOST_STATIC_ASSERT((!stateful_value_traits));
|
1778
1778
|
reference r =*detail::uncast(pointer_traits<const_pointer>::pointer_to(value));
|
@@ -1788,7 +1788,7 @@ class slist_impl
|
|
1788
1788
|
//! <b>Complexity</b>: Constant time.
|
1789
1789
|
//!
|
1790
1790
|
//! <b>Note</b>: Iterators and references are not invalidated.
|
1791
|
-
iterator iterator_to(reference value)
|
1791
|
+
iterator iterator_to(reference value) BOOST_NOEXCEPT
|
1792
1792
|
{
|
1793
1793
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(linear || !node_algorithms::inited(this->priv_value_traits().to_node_ptr(value)));
|
1794
1794
|
return iterator (this->priv_value_traits().to_node_ptr(value), this->priv_value_traits_ptr());
|
@@ -1803,7 +1803,7 @@ class slist_impl
|
|
1803
1803
|
//! <b>Complexity</b>: Constant time.
|
1804
1804
|
//!
|
1805
1805
|
//! <b>Note</b>: Iterators and references are not invalidated.
|
1806
|
-
const_iterator iterator_to(const_reference value) const
|
1806
|
+
const_iterator iterator_to(const_reference value) const BOOST_NOEXCEPT
|
1807
1807
|
{
|
1808
1808
|
reference r =*detail::uncast(pointer_traits<const_pointer>::pointer_to(value));
|
1809
1809
|
BOOST_INTRUSIVE_INVARIANT_ASSERT (linear || !node_algorithms::inited(this->priv_value_traits().to_node_ptr(r)));
|
@@ -1818,7 +1818,7 @@ class slist_impl
|
|
1818
1818
|
//!
|
1819
1819
|
//! <b>Complexity</b>: Linear to the number of elements before i.
|
1820
1820
|
//! Constant if cache_last<> is true and i == end().
|
1821
|
-
iterator previous(iterator i)
|
1821
|
+
iterator previous(iterator i) BOOST_NOEXCEPT
|
1822
1822
|
{ return this->previous(this->cbefore_begin(), i); }
|
1823
1823
|
|
1824
1824
|
//! <b>Returns</b>: The const_iterator to the element before i in the list.
|
@@ -1829,7 +1829,7 @@ class slist_impl
|
|
1829
1829
|
//!
|
1830
1830
|
//! <b>Complexity</b>: Linear to the number of elements before i.
|
1831
1831
|
//! Constant if cache_last<> is true and i == end().
|
1832
|
-
const_iterator previous(const_iterator i) const
|
1832
|
+
const_iterator previous(const_iterator i) const BOOST_NOEXCEPT
|
1833
1833
|
{ return this->previous(this->cbefore_begin(), i); }
|
1834
1834
|
|
1835
1835
|
//! <b>Returns</b>: The iterator to the element before i in the list,
|
@@ -1841,7 +1841,7 @@ class slist_impl
|
|
1841
1841
|
//!
|
1842
1842
|
//! <b>Complexity</b>: Linear to the number of elements before i.
|
1843
1843
|
//! Constant if cache_last<> is true and i == end().
|
1844
|
-
iterator previous(const_iterator prev_from, iterator i)
|
1844
|
+
iterator previous(const_iterator prev_from, iterator i) BOOST_NOEXCEPT
|
1845
1845
|
{ return this->previous(prev_from, const_iterator(i)).unconst(); }
|
1846
1846
|
|
1847
1847
|
//! <b>Returns</b>: The const_iterator to the element before i in the list,
|
@@ -1853,7 +1853,7 @@ class slist_impl
|
|
1853
1853
|
//!
|
1854
1854
|
//! <b>Complexity</b>: Linear to the number of elements before i.
|
1855
1855
|
//! Constant if cache_last<> is true and i == end().
|
1856
|
-
const_iterator previous(const_iterator prev_from, const_iterator i) const
|
1856
|
+
const_iterator previous(const_iterator prev_from, const_iterator i) const BOOST_NOEXCEPT
|
1857
1857
|
{
|
1858
1858
|
if(cache_last && (i.pointed_node() == this->get_end_node())){
|
1859
1859
|
return const_iterator(detail::uncast(this->get_last_node()), this->priv_value_traits_ptr());
|
@@ -1881,9 +1881,9 @@ class slist_impl
|
|
1881
1881
|
//! point to elements of this list. Iterators of this list and all the references are not invalidated.
|
1882
1882
|
//!
|
1883
1883
|
//! <b>Warning</b>: Experimental function, don't use it!
|
1884
|
-
void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l)
|
1884
|
+
void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l) BOOST_NOEXCEPT
|
1885
1885
|
{
|
1886
|
-
|
1886
|
+
BOOST_IF_CONSTEXPR(constant_time_size)
|
1887
1887
|
this->incorporate_after(prev_pos, f, before_l, node_algorithms::distance(f.pointed_node(), before_l.pointed_node())+1);
|
1888
1888
|
else
|
1889
1889
|
this->priv_incorporate_after(prev_pos.pointed_node(), f, before_l);
|
@@ -1905,7 +1905,7 @@ class slist_impl
|
|
1905
1905
|
//! point to elements of this list. Iterators of this list and all the references are not invalidated.
|
1906
1906
|
//!
|
1907
1907
|
//! <b>Warning</b>: Experimental function, don't use it!
|
1908
|
-
void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l, size_type n)
|
1908
|
+
void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l, size_type n) BOOST_NOEXCEPT
|
1909
1909
|
{
|
1910
1910
|
if(n){
|
1911
1911
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(n > 0);
|
@@ -1915,7 +1915,7 @@ class slist_impl
|
|
1915
1915
|
, iterator(before_l, this->priv_value_traits_ptr())))
|
1916
1916
|
+1 == n);
|
1917
1917
|
this->priv_incorporate_after(prev_pos.pointed_node(), f, before_l);
|
1918
|
-
|
1918
|
+
BOOST_IF_CONSTEXPR(constant_time_size){
|
1919
1919
|
this->priv_size_traits().increase(n);
|
1920
1920
|
}
|
1921
1921
|
}
|
@@ -2006,7 +2006,7 @@ class slist_impl
|
|
2006
2006
|
|
2007
2007
|
void priv_incorporate_after(node_ptr prev_pos_n, node_ptr first_n, node_ptr before_l_n)
|
2008
2008
|
{
|
2009
|
-
|
2009
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
2010
2010
|
if(prev_pos_n == this->get_last_node()){
|
2011
2011
|
this->set_last_node(before_l_n);
|
2012
2012
|
}
|
@@ -2039,7 +2039,7 @@ class slist_impl
|
|
2039
2039
|
(node_traits::get_next(this->get_root_node()), (std::size_t)n));
|
2040
2040
|
if(ret.first){
|
2041
2041
|
node_traits::set_next(this->get_root_node(), ret.first);
|
2042
|
-
|
2042
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
2043
2043
|
this->set_last_node(ret.second);
|
2044
2044
|
}
|
2045
2045
|
}
|
@@ -2060,7 +2060,7 @@ class slist_impl
|
|
2060
2060
|
(node_traits::get_next(this->get_root_node()), (std::size_t)n));
|
2061
2061
|
if(ret.first){
|
2062
2062
|
node_traits::set_next(this->get_root_node(), ret.first);
|
2063
|
-
|
2063
|
+
BOOST_IF_CONSTEXPR(cache_last){
|
2064
2064
|
this->set_last_node(ret.second);
|
2065
2065
|
}
|
2066
2066
|
}
|
@@ -2233,10 +2233,10 @@ class slist
|
|
2233
2233
|
BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(slist) src, Cloner cloner, Disposer disposer)
|
2234
2234
|
{ Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
|
2235
2235
|
|
2236
|
-
BOOST_INTRUSIVE_FORCEINLINE static slist &container_from_end_iterator(iterator end_iterator)
|
2236
|
+
BOOST_INTRUSIVE_FORCEINLINE static slist &container_from_end_iterator(iterator end_iterator) BOOST_NOEXCEPT
|
2237
2237
|
{ return static_cast<slist &>(Base::container_from_end_iterator(end_iterator)); }
|
2238
2238
|
|
2239
|
-
BOOST_INTRUSIVE_FORCEINLINE static const slist &container_from_end_iterator(const_iterator end_iterator)
|
2239
|
+
BOOST_INTRUSIVE_FORCEINLINE static const slist &container_from_end_iterator(const_iterator end_iterator) BOOST_NOEXCEPT
|
2240
2240
|
{ return static_cast<const slist &>(Base::container_from_end_iterator(end_iterator)); }
|
2241
2241
|
};
|
2242
2242
|
|