passenger 6.1.0 → 6.1.1
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 +32 -2
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +15 -19
- data/bin/passenger-install-nginx-module +42 -44
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -3
- data/dev/copy_boost_headers +54 -40
- data/dev/ruby_server.rb +1 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
- data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
- data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ContentHandler.c +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +26 -99
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
|
@@ -1115,10 +1115,10 @@ class tree
|
|
|
1115
1115
|
std::pair<iterator, bool> insert_or_assign(const_iterator hint, BOOST_FWD_REF(KeyType) key, BOOST_FWD_REF(M) obj)
|
|
1116
1116
|
{
|
|
1117
1117
|
insert_commit_data data;
|
|
1118
|
-
const
|
|
1118
|
+
const typename remove_cvref<KeyType>::type & k = key; //Support emulated rvalue references
|
|
1119
1119
|
std::pair<iiterator, bool> ret =
|
|
1120
|
-
hint == const_iterator() ? this->icont().insert_unique_check(k, data)
|
|
1121
|
-
: this->icont().insert_unique_check(hint.get(), k, data);
|
|
1120
|
+
hint == const_iterator() ? this->icont().insert_unique_check(k, KeyNodeCompare(key_comp()), data)
|
|
1121
|
+
: this->icont().insert_unique_check(hint.get(), k, KeyNodeCompare(key_comp()), data);
|
|
1122
1122
|
if(ret.second){
|
|
1123
1123
|
ret.first = this->priv_insert_or_assign_commit(boost::forward<KeyType>(key), boost::forward<M>(obj), data);
|
|
1124
1124
|
}
|
|
@@ -1152,8 +1152,11 @@ class tree
|
|
|
1152
1152
|
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
|
|
1153
1153
|
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
|
|
1154
1154
|
, size_type>::type
|
|
1155
|
-
erase(
|
|
1156
|
-
{
|
|
1155
|
+
erase(BOOST_FWD_REF(K) key)
|
|
1156
|
+
{
|
|
1157
|
+
const typename remove_cvref<K>::type & k = key; //Support emulated rvalue references
|
|
1158
|
+
return AllocHolder::erase_key(k, KeyNodeCompare(key_comp()), alloc_version());
|
|
1159
|
+
}
|
|
1157
1160
|
|
|
1158
1161
|
template <class K>
|
|
1159
1162
|
inline typename dtl::enable_if_c<
|
|
@@ -1230,6 +1230,15 @@ class devector
|
|
|
1230
1230
|
BOOST_ASSERT(invariants_ok());
|
|
1231
1231
|
}
|
|
1232
1232
|
|
|
1233
|
+
inline size_type front_capacity() const
|
|
1234
|
+
{
|
|
1235
|
+
return m_.back_idx;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
inline size_type back_capacity() const
|
|
1239
|
+
{
|
|
1240
|
+
return size_type(m_.capacity - m_.front_idx);
|
|
1241
|
+
}
|
|
1233
1242
|
|
|
1234
1243
|
/**
|
|
1235
1244
|
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
@@ -2263,16 +2272,6 @@ class devector
|
|
|
2263
2272
|
return boost::intrusive::pointer_traits<pointer>::const_cast_from(i);
|
|
2264
2273
|
}
|
|
2265
2274
|
|
|
2266
|
-
inline size_type front_capacity() const
|
|
2267
|
-
{
|
|
2268
|
-
return m_.back_idx;
|
|
2269
|
-
}
|
|
2270
|
-
|
|
2271
|
-
inline size_type back_capacity() const
|
|
2272
|
-
{
|
|
2273
|
-
return size_type(m_.capacity - m_.front_idx);
|
|
2274
|
-
}
|
|
2275
|
-
|
|
2276
2275
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
2277
2276
|
|
|
2278
2277
|
inline T* priv_raw_begin() BOOST_NOEXCEPT
|
|
@@ -3041,6 +3040,28 @@ class devector
|
|
|
3041
3040
|
#endif // ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
3042
3041
|
};
|
|
3043
3042
|
|
|
3043
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
3044
|
+
//!
|
|
3045
|
+
//! <b>Complexity</b>: Linear.
|
|
3046
|
+
template <class T, class A, class O, class U>
|
|
3047
|
+
inline typename devector<T, A, O>::size_type erase(devector<T, A, O>& c, const U& v)
|
|
3048
|
+
{
|
|
3049
|
+
typename devector<T, A, O>::size_type old_size = c.size();
|
|
3050
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
3051
|
+
return old_size - c.size();
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3054
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
3055
|
+
//!
|
|
3056
|
+
//! <b>Complexity</b>: Linear.
|
|
3057
|
+
template <class T, class A, class O, class Pred>
|
|
3058
|
+
inline typename devector<T, A, O>::size_type erase_if(devector<T, A, O>& c, Pred pred)
|
|
3059
|
+
{
|
|
3060
|
+
typename devector<T, A, O>::size_type old_size = c.size();
|
|
3061
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
3062
|
+
return old_size - c.size();
|
|
3063
|
+
}
|
|
3064
|
+
|
|
3044
3065
|
}} // namespace boost::container
|
|
3045
3066
|
|
|
3046
3067
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
#include <boost/container/detail/type_traits.hpp>
|
|
31
31
|
#include <boost/container/detail/mpl.hpp>
|
|
32
32
|
#include <boost/container/detail/algorithm.hpp> //equal()
|
|
33
|
-
#include <boost/container/detail/container_or_allocator_rebind.hpp>
|
|
34
33
|
#include <boost/container/detail/pair.hpp>
|
|
35
34
|
// move
|
|
36
35
|
#include <boost/move/utility_core.hpp>
|
|
@@ -54,6 +53,10 @@
|
|
|
54
53
|
#define BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
|
|
55
54
|
#endif
|
|
56
55
|
|
|
56
|
+
#ifndef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
|
|
57
|
+
#include <boost/container/detail/container_or_allocator_rebind.hpp>
|
|
58
|
+
#endif
|
|
59
|
+
|
|
57
60
|
//for C++03 compilers, were type-puning is the only option for std::pair
|
|
58
61
|
//disable strict aliasing to reduce problems.
|
|
59
62
|
#if defined(BOOST_GCC) && (BOOST_GCC >= 100000) && !defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
|
|
@@ -845,8 +848,7 @@ class flat_map
|
|
|
845
848
|
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
846
849
|
//! references obtained to that element before it was extracted become valid.
|
|
847
850
|
//!
|
|
848
|
-
//! Returns
|
|
849
|
-
//! took place. The iterator component is pointing at the element that was inserted or updated.
|
|
851
|
+
//! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
|
|
850
852
|
//!
|
|
851
853
|
//! Complexity: Logarithmic in the size of the container in general, but amortized constant if
|
|
852
854
|
//! the new element is inserted just before hint.
|
|
@@ -869,8 +871,7 @@ class flat_map
|
|
|
869
871
|
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
870
872
|
//! references obtained to that element before it was extracted become valid.
|
|
871
873
|
//!
|
|
872
|
-
//! Returns
|
|
873
|
-
//! took place. The iterator component is pointing at the element that was inserted or updated.
|
|
874
|
+
//! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
|
|
874
875
|
//!
|
|
875
876
|
//! Complexity: Logarithmic in the size of the container in general, but amortized constant if
|
|
876
877
|
//! the new element is inserted just before hint.
|
|
@@ -940,7 +941,7 @@ class flat_map
|
|
|
940
941
|
|
|
941
942
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
942
943
|
|
|
943
|
-
//! <b>Effects</b>: Inserts an object x of type
|
|
944
|
+
//! <b>Effects</b>: Inserts an object x of type value_type constructed with
|
|
944
945
|
//! std::forward<Args>(args)... if and only if there is no element in the container
|
|
945
946
|
//! with key equivalent to the key of x.
|
|
946
947
|
//!
|
|
@@ -956,7 +957,7 @@ class flat_map
|
|
|
956
957
|
inline std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
|
|
957
958
|
{ return dtl::force_copy< std::pair<iterator, bool> >(m_flat_tree.emplace_unique(boost::forward<Args>(args)...)); }
|
|
958
959
|
|
|
959
|
-
//! <b>Effects</b>: Inserts an object of type
|
|
960
|
+
//! <b>Effects</b>: Inserts an object of type value_type constructed with
|
|
960
961
|
//! std::forward<Args>(args)... in the container if and only if there is
|
|
961
962
|
//! no element in the container with key equivalent to the key of x.
|
|
962
963
|
//! p is a hint pointing to where the insert should start to search.
|
|
@@ -1332,7 +1333,7 @@ class flat_map
|
|
|
1332
1333
|
!dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
|
|
1333
1334
|
!dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
|
|
1334
1335
|
BOOST_MOVE_I size_type>::type)
|
|
1335
|
-
erase(
|
|
1336
|
+
erase(BOOST_FWD_REF(K) x)
|
|
1336
1337
|
{ return m_flat_tree.erase_unique(x); }
|
|
1337
1338
|
|
|
1338
1339
|
//! <b>Effects</b>: Erases all the elements in the range [first, last).
|
|
@@ -1714,6 +1715,15 @@ class flat_map
|
|
|
1714
1715
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1715
1716
|
};
|
|
1716
1717
|
|
|
1718
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1719
|
+
//!
|
|
1720
|
+
//! <b>Complexity</b>: Linear.
|
|
1721
|
+
template <class K, class M, class C, class A, class Pred>
|
|
1722
|
+
inline typename flat_map<K, M, C, A>::size_type erase_if(flat_map<K, M, C, A>& c, Pred pred)
|
|
1723
|
+
{
|
|
1724
|
+
return container_erase_if(c, pred);
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1717
1727
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1718
1728
|
|
|
1719
1729
|
template <typename InputIterator>
|
|
@@ -1788,7 +1798,11 @@ template <class Key, class T, class Compare, class AllocatorOrContainer>
|
|
|
1788
1798
|
struct has_trivial_destructor_after_move<boost::container::flat_map<Key, T, Compare, AllocatorOrContainer> >
|
|
1789
1799
|
{
|
|
1790
1800
|
typedef typename boost::container::flat_map<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
|
|
1801
|
+
#ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
|
|
1802
|
+
typedef AllocatorOrContainer alloc_or_cont_t;
|
|
1803
|
+
#else
|
|
1791
1804
|
typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
|
|
1805
|
+
#endif
|
|
1792
1806
|
typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
|
|
1793
1807
|
BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
|
|
1794
1808
|
};
|
|
@@ -2471,7 +2485,7 @@ class flat_multimap
|
|
|
2471
2485
|
|
|
2472
2486
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2473
2487
|
|
|
2474
|
-
//! <b>Effects</b>: Inserts an object of type
|
|
2488
|
+
//! <b>Effects</b>: Inserts an object of type value_type constructed with
|
|
2475
2489
|
//! std::forward<Args>(args)... and returns the iterator pointing to the
|
|
2476
2490
|
//! newly inserted element.
|
|
2477
2491
|
//!
|
|
@@ -2484,7 +2498,7 @@ class flat_multimap
|
|
|
2484
2498
|
iterator emplace(BOOST_FWD_REF(Args)... args)
|
|
2485
2499
|
{ return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Args>(args)...)); }
|
|
2486
2500
|
|
|
2487
|
-
//! <b>Effects</b>: Inserts an object of type
|
|
2501
|
+
//! <b>Effects</b>: Inserts an object of type value_type constructed with
|
|
2488
2502
|
//! std::forward<Args>(args)... in the container.
|
|
2489
2503
|
//! p is a hint pointing to where the insert should start to search.
|
|
2490
2504
|
//!
|
|
@@ -3067,6 +3081,15 @@ class flat_multimap
|
|
|
3067
3081
|
#pragma GCC pop_options
|
|
3068
3082
|
#endif
|
|
3069
3083
|
|
|
3084
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
3085
|
+
//!
|
|
3086
|
+
//! <b>Complexity</b>: Linear.
|
|
3087
|
+
template <class K, class M, class C, class A, class Pred>
|
|
3088
|
+
inline typename flat_multimap<K, M, C, A>::size_type erase_if(flat_multimap<K, M, C, A>& c, Pred pred)
|
|
3089
|
+
{
|
|
3090
|
+
return container_erase_if(c, pred);
|
|
3091
|
+
}
|
|
3092
|
+
|
|
3070
3093
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
3071
3094
|
|
|
3072
3095
|
template <typename InputIterator>
|
|
@@ -3143,7 +3166,11 @@ template <class Key, class T, class Compare, class AllocatorOrContainer>
|
|
|
3143
3166
|
struct has_trivial_destructor_after_move< boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer> >
|
|
3144
3167
|
{
|
|
3145
3168
|
typedef typename boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
|
|
3169
|
+
#ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
|
|
3170
|
+
typedef AllocatorOrContainer alloc_or_cont_t;
|
|
3171
|
+
#else
|
|
3146
3172
|
typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
|
|
3173
|
+
#endif
|
|
3147
3174
|
typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
|
|
3148
3175
|
BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
|
|
3149
3176
|
};
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
// container/detail
|
|
29
29
|
#include <boost/container/detail/flat_tree.hpp>
|
|
30
30
|
#include <boost/container/detail/mpl.hpp>
|
|
31
|
+
#include <boost/container/detail/algorithm.hpp>
|
|
31
32
|
// move
|
|
32
33
|
#include <boost/move/traits.hpp>
|
|
33
34
|
#include <boost/move/utility_core.hpp>
|
|
@@ -1132,6 +1133,15 @@ class flat_set
|
|
|
1132
1133
|
{ return this->get_sequence_cref(); }
|
|
1133
1134
|
};
|
|
1134
1135
|
|
|
1136
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1137
|
+
//!
|
|
1138
|
+
//! <b>Complexity</b>: Linear.
|
|
1139
|
+
template <class K, class C, class A, class Pred>
|
|
1140
|
+
inline typename flat_set<K, C, A>::size_type erase_if(flat_set<K, C, A>& c, Pred pred)
|
|
1141
|
+
{
|
|
1142
|
+
return container_erase_if(c, pred);
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1135
1145
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1136
1146
|
|
|
1137
1147
|
template <typename InputIterator>
|
|
@@ -1863,6 +1873,15 @@ class flat_multiset
|
|
|
1863
1873
|
{ return this->get_sequence_cref(); }
|
|
1864
1874
|
};
|
|
1865
1875
|
|
|
1876
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1877
|
+
//!
|
|
1878
|
+
//! <b>Complexity</b>: Linear.
|
|
1879
|
+
template <class K, class C, class A, class Pred>
|
|
1880
|
+
inline typename flat_multiset<K, C, A>::size_type erase_if(flat_multiset<K, C, A>& c, Pred pred)
|
|
1881
|
+
{
|
|
1882
|
+
return container_erase_if(c, pred);
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1866
1885
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1867
1886
|
|
|
1868
1887
|
template <typename InputIterator>
|
|
@@ -90,7 +90,7 @@ struct intrusive_list_type
|
|
|
90
90
|
, dtl::bi::size_type
|
|
91
91
|
<typename allocator_traits_type::size_type>
|
|
92
92
|
>::type container_type;
|
|
93
|
-
typedef container_type type
|
|
93
|
+
typedef container_type type;
|
|
94
94
|
};
|
|
95
95
|
|
|
96
96
|
} //namespace dtl {
|
|
@@ -1487,6 +1487,28 @@ class list
|
|
|
1487
1487
|
|
|
1488
1488
|
};
|
|
1489
1489
|
|
|
1490
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
1491
|
+
//!
|
|
1492
|
+
//! <b>Complexity</b>: Linear.
|
|
1493
|
+
template <class T, class A, class U>
|
|
1494
|
+
inline typename list<T, A>::size_type erase(list<T, A>& c, const U& v)
|
|
1495
|
+
{
|
|
1496
|
+
typename list<T, A>::size_type old_size = c.size();
|
|
1497
|
+
c.remove_if(equal_to_value<U>(v));
|
|
1498
|
+
return old_size - c.size();
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1502
|
+
//!
|
|
1503
|
+
//! <b>Complexity</b>: Linear.
|
|
1504
|
+
template <class T, class A, class Pred>
|
|
1505
|
+
inline typename list<T, A>::size_type erase_if(list<T, A>& c, Pred pred)
|
|
1506
|
+
{
|
|
1507
|
+
typename list<T, A>::size_type old_size = c.size();
|
|
1508
|
+
c.remove_if(pred);
|
|
1509
|
+
return old_size - c.size();
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1490
1512
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1491
1513
|
template <typename InputIterator>
|
|
1492
1514
|
list(InputIterator, InputIterator) ->
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
#include <boost/container/detail/value_init.hpp>
|
|
33
33
|
#include <boost/container/detail/pair.hpp>
|
|
34
34
|
#include <boost/container/detail/pair_key_mapped_of_value.hpp>
|
|
35
|
+
#include <boost/container/detail/algorithm.hpp>
|
|
35
36
|
|
|
36
37
|
// move
|
|
37
38
|
#include <boost/move/traits.hpp>
|
|
@@ -610,10 +611,11 @@ class map
|
|
|
610
611
|
inline std::pair<iterator, bool> insert_or_assign(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
|
|
611
612
|
{ return this->base_t::insert_or_assign(const_iterator(), ::boost::move(k), ::boost::forward<M>(obj)); }
|
|
612
613
|
|
|
614
|
+
//! <b>Requires</b>: This overload is available only if key_compare::is_transparent exists.
|
|
615
|
+
//!
|
|
613
616
|
//! <b>Effects</b>: If a key equivalent to k already exists in the container, assigns forward<M>(obj)
|
|
614
617
|
//! to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value
|
|
615
|
-
//! as if by insert, constructing it from value_type(k,
|
|
616
|
-
//! to the container as close as possible to the position just before hint.
|
|
618
|
+
//! as if by insert, constructing it from value_type(k, move(obj)).
|
|
617
619
|
//!
|
|
618
620
|
//! No iterators or references are invalidated. If the insertion is successful, pointers and references
|
|
619
621
|
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
@@ -622,6 +624,29 @@ class map
|
|
|
622
624
|
//! <b>Returns</b>: The bool component is true if the insertion took place and false if the assignment
|
|
623
625
|
//! took place. The iterator component is pointing at the element that was inserted or updated.
|
|
624
626
|
//!
|
|
627
|
+
//! <b>Complexity</b>: Logarithmic in the size of the container.
|
|
628
|
+
template <class K, class M>
|
|
629
|
+
|
|
630
|
+
BOOST_CONTAINER_DOC1ST
|
|
631
|
+
( std::pair<iterator BOOST_MOVE_I bool>
|
|
632
|
+
, typename dtl::enable_if_transparent< key_compare
|
|
633
|
+
BOOST_MOVE_I K
|
|
634
|
+
BOOST_MOVE_I std::pair<iterator BOOST_MOVE_I bool>
|
|
635
|
+
>::type) //transparent
|
|
636
|
+
insert_or_assign(BOOST_FWD_REF(K) k, BOOST_FWD_REF(M) obj)
|
|
637
|
+
{ return this->base_t::insert_or_assign(const_iterator(), ::boost::forward<K>(k), ::boost::forward<M>(obj)); }
|
|
638
|
+
|
|
639
|
+
//! <b>Effects</b>: If a key equivalent to k already exists in the container, assigns forward<M>(obj)
|
|
640
|
+
//! to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value
|
|
641
|
+
//! as if by insert, constructing it from value_type(k, forward<M>(obj)) and the new element
|
|
642
|
+
//! to the container as close as possible to the position just before hint.
|
|
643
|
+
//!
|
|
644
|
+
//! No iterators or references are invalidated. If the insertion is successful, pointers and references
|
|
645
|
+
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
646
|
+
//! references obtained to that element before it was extracted become valid.
|
|
647
|
+
//!
|
|
648
|
+
//! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
|
|
649
|
+
//!
|
|
625
650
|
//! <b>Complexity</b>: Logarithmic in the size of the container in general, but amortized constant if
|
|
626
651
|
//! the new element is inserted just before hint.
|
|
627
652
|
template <class M>
|
|
@@ -637,8 +662,7 @@ class map
|
|
|
637
662
|
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
638
663
|
//! references obtained to that element before it was extracted become valid.
|
|
639
664
|
//!
|
|
640
|
-
//! <b>Returns</b>: The
|
|
641
|
-
//! took place. The iterator component is pointing at the element that was inserted or updated.
|
|
665
|
+
//! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
|
|
642
666
|
//!
|
|
643
667
|
//! <b>Complexity</b>: Logarithmic in the size of the container in general, but amortized constant if
|
|
644
668
|
//! the new element is inserted just before hint.
|
|
@@ -646,6 +670,31 @@ class map
|
|
|
646
670
|
inline iterator insert_or_assign(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
|
|
647
671
|
{ return this->base_t::insert_or_assign(hint, ::boost::move(k), ::boost::forward<M>(obj)).first; }
|
|
648
672
|
|
|
673
|
+
//! <b>Requires</b>: This overload is available only if key_compare::is_transparent exists.
|
|
674
|
+
//!
|
|
675
|
+
//! <b>Effects</b>: If a key equivalent to k already exists in the container, assigns forward<M>(obj)
|
|
676
|
+
//! to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value
|
|
677
|
+
//! as if by insert, constructing it from value_type(k, move(obj)) and the new element
|
|
678
|
+
//! to the container as close as possible to the position just before hint.
|
|
679
|
+
//!
|
|
680
|
+
//! No iterators or references are invalidated. If the insertion is successful, pointers and references
|
|
681
|
+
//! to the element obtained while it is held in the node handle are invalidated, and pointers and
|
|
682
|
+
//! references obtained to that element before it was extracted become valid.
|
|
683
|
+
//!
|
|
684
|
+
//! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
|
|
685
|
+
//!
|
|
686
|
+
//! <b>Complexity</b>: Logarithmic in the size of the container in general, but amortized constant if
|
|
687
|
+
//! the new element is inserted just before hint.
|
|
688
|
+
template <class K, class M>
|
|
689
|
+
BOOST_CONTAINER_DOC1ST
|
|
690
|
+
( iterator
|
|
691
|
+
, typename dtl::enable_if_transparent< key_compare
|
|
692
|
+
BOOST_MOVE_I K
|
|
693
|
+
BOOST_MOVE_I iterator
|
|
694
|
+
>::type) //transparent
|
|
695
|
+
insert_or_assign(const_iterator hint, BOOST_FWD_REF(K) k, BOOST_FWD_REF(M) obj)
|
|
696
|
+
{ return this->base_t::insert_or_assign(hint, ::boost::forward<K>(k), ::boost::forward<M>(obj)).first; }
|
|
697
|
+
|
|
649
698
|
//! <b>Returns</b>: A reference to the element whose key is equivalent to x.
|
|
650
699
|
//! Throws: An exception object of type out_of_range if no such element is present.
|
|
651
700
|
//! <b>Complexity</b>: logarithmic.
|
|
@@ -983,7 +1032,7 @@ class map
|
|
|
983
1032
|
!dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
|
|
984
1033
|
!dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
|
|
985
1034
|
BOOST_MOVE_I size_type>::type)
|
|
986
|
-
erase(
|
|
1035
|
+
erase(BOOST_FWD_REF(K) x)
|
|
987
1036
|
{ return this->base_t::erase_unique(x); }
|
|
988
1037
|
|
|
989
1038
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
@@ -1318,6 +1367,15 @@ class map
|
|
|
1318
1367
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1319
1368
|
};
|
|
1320
1369
|
|
|
1370
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1371
|
+
//!
|
|
1372
|
+
//! <b>Complexity</b>: Linear.
|
|
1373
|
+
template <class K, class M, class C, class A, class O, class Pred>
|
|
1374
|
+
inline typename map<K, M, C, A, O>::size_type erase_if(map<K, M, C, A, O>& c, Pred pred)
|
|
1375
|
+
{
|
|
1376
|
+
return container_erase_if(c, pred);
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1321
1379
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1322
1380
|
|
|
1323
1381
|
template <typename InputIterator>
|
|
@@ -2242,6 +2300,15 @@ class multimap
|
|
|
2242
2300
|
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2243
2301
|
};
|
|
2244
2302
|
|
|
2303
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
2304
|
+
//!
|
|
2305
|
+
//! <b>Complexity</b>: Linear.
|
|
2306
|
+
template <class K, class M, class C, class A, class O, class Pred>
|
|
2307
|
+
inline typename multimap<K, M, C, A, O>::size_type erase_if(multimap<K, M, C, A, O>& c, Pred pred)
|
|
2308
|
+
{
|
|
2309
|
+
return container_erase_if(c, pred);
|
|
2310
|
+
}
|
|
2311
|
+
|
|
2245
2312
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
2246
2313
|
|
|
2247
2314
|
template <typename InputIterator>
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include <boost/container/detail/config_begin.hpp>
|
|
23
23
|
#include <boost/container/detail/workaround.hpp>
|
|
24
24
|
#include <boost/container/throw_exception.hpp>
|
|
25
|
+
#include <boost/container/detail/operator_new_helpers.hpp>
|
|
25
26
|
#include <cstddef>
|
|
26
27
|
|
|
27
28
|
//!\file
|
|
@@ -152,22 +153,14 @@ class new_allocator
|
|
|
152
153
|
//!Throws bad_alloc if there is no enough memory
|
|
153
154
|
pointer allocate(size_type count)
|
|
154
155
|
{
|
|
155
|
-
|
|
156
|
-
if(BOOST_UNLIKELY(count > max_count))
|
|
157
|
-
throw_bad_alloc();
|
|
158
|
-
return static_cast<T*>(::operator new(count*sizeof(T)));
|
|
156
|
+
return dtl::operator_new_allocate<T>(count);
|
|
159
157
|
}
|
|
160
158
|
|
|
161
159
|
//!Deallocates previously allocated memory.
|
|
162
160
|
//!Never throws
|
|
163
161
|
void deallocate(pointer ptr, size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
164
162
|
{
|
|
165
|
-
(
|
|
166
|
-
# if __cpp_sized_deallocation
|
|
167
|
-
::operator delete((void*)ptr, n * sizeof(T));
|
|
168
|
-
#else
|
|
169
|
-
::operator delete((void*)ptr);
|
|
170
|
-
# endif
|
|
163
|
+
return dtl::operator_delete_deallocate<T>(ptr, n);
|
|
171
164
|
}
|
|
172
165
|
|
|
173
166
|
//!Returns the maximum number of elements that could be allocated.
|
|
@@ -124,8 +124,6 @@ struct hash_opt
|
|
|
124
124
|
|
|
125
125
|
typedef hash_opt<false, false, false, false> hash_assoc_defaults;
|
|
126
126
|
|
|
127
|
-
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
128
|
-
|
|
129
127
|
//!This option setter specifies if nodes also store the hash value
|
|
130
128
|
//!so that search and rehashing for hash-expensive types is improved.
|
|
131
129
|
//!This option might degrade performance for easy to hash types (like integers)
|
|
@@ -178,6 +176,8 @@ using hash_assoc_options_t = typename boost::container::hash_assoc_options<Optio
|
|
|
178
176
|
|
|
179
177
|
#endif
|
|
180
178
|
|
|
179
|
+
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
180
|
+
|
|
181
181
|
////////////////////////////////////////////////////////////////
|
|
182
182
|
//
|
|
183
183
|
//
|
|
@@ -212,9 +212,7 @@ struct default_if_zero<0u, DefaultN>
|
|
|
212
212
|
BOOST_STATIC_CONSTEXPR std::size_t value = DefaultN;
|
|
213
213
|
};
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
#endif
|
|
215
|
+
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
218
216
|
|
|
219
217
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
220
218
|
|
|
@@ -246,7 +244,7 @@ class default_next_capacity;
|
|
|
246
244
|
|
|
247
245
|
typedef vector_opt<void, void> vector_null_opt;
|
|
248
246
|
|
|
249
|
-
#else
|
|
247
|
+
#else
|
|
250
248
|
|
|
251
249
|
//!This growth factor argument specifies that the container should increase its
|
|
252
250
|
//!capacity a 50% when existing capacity is exhausted.
|
|
@@ -262,20 +260,30 @@ struct growth_factor_100{};
|
|
|
262
260
|
|
|
263
261
|
#endif //!defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
264
262
|
|
|
265
|
-
//!This option setter specifies the growth factor strategy of the
|
|
263
|
+
//!This option setter specifies the growth factor strategy of the
|
|
264
|
+
//!underlying vector.
|
|
265
|
+
//!
|
|
266
|
+
//!\tparam GrowthFactor The function object that implements the growth factor
|
|
267
|
+
//!
|
|
268
|
+
//! The GrowthFactor function object must offer the following interface:
|
|
269
|
+
//!
|
|
270
|
+
//!\code
|
|
271
|
+
//!template<class SizeType>
|
|
272
|
+
//!SizeType operator()(SizeType cur_cap, SizeType add_min_cap, SizeType max_cap) const;
|
|
273
|
+
//!\endcode
|
|
266
274
|
//!
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
//!
|
|
272
|
-
//!
|
|
273
|
-
//!and `max_cap`.
|
|
274
|
-
//!
|
|
275
|
+
//!Where:
|
|
276
|
+
//! * `cur_cap` is the current capacity
|
|
277
|
+
//! * `add_min_cap` is the minimum additional capacity we want to achieve
|
|
278
|
+
//! * `max_cap` is the maximum capacity that the allocator or other factors allow.
|
|
279
|
+
//!
|
|
280
|
+
//!The implementation should return a value between `cur_cap + add_min_cap`
|
|
281
|
+
//!and `max_cap`. The implementation should handle the potential wraparound produced
|
|
282
|
+
//!by the growth factor and always succeed with a correct value.
|
|
275
283
|
//!
|
|
276
284
|
//!Predefined growth factors that can be passed as arguments to this option are:
|
|
277
|
-
//!\c boost::container::growth_factor_50
|
|
278
|
-
//!\c boost::container::growth_factor_60
|
|
285
|
+
//!\c boost::container::growth_factor_50,
|
|
286
|
+
//!\c boost::container::growth_factor_60 and
|
|
279
287
|
//!\c boost::container::growth_factor_100
|
|
280
288
|
//!
|
|
281
289
|
//!If this option is not specified, a default will be used by the container.
|
|
@@ -608,21 +616,30 @@ using devector_options_t = typename boost::container::devector_options<Options..
|
|
|
608
616
|
|
|
609
617
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
610
618
|
|
|
611
|
-
template<std::size_t BlockBytes, std::size_t BlockSize>
|
|
619
|
+
template<std::size_t BlockBytes, std::size_t BlockSize, class StoredSizeType, bool Reservable>
|
|
612
620
|
struct deque_opt
|
|
613
621
|
{
|
|
614
622
|
BOOST_STATIC_CONSTEXPR std::size_t block_bytes = BlockBytes;
|
|
615
623
|
BOOST_STATIC_CONSTEXPR std::size_t block_size = BlockSize;
|
|
616
624
|
BOOST_CONTAINER_STATIC_ASSERT_MSG(!(block_bytes && block_size), "block_bytes and block_size can't be specified at the same time");
|
|
625
|
+
BOOST_STATIC_CONSTEXPR bool reservable = Reservable;
|
|
626
|
+
|
|
627
|
+
typedef StoredSizeType stored_size_type;
|
|
628
|
+
|
|
629
|
+
template<class AllocTraits>
|
|
630
|
+
struct get_stored_size_type
|
|
631
|
+
: get_stored_size_type_with_alloctraits<AllocTraits, StoredSizeType>
|
|
632
|
+
{};
|
|
617
633
|
};
|
|
618
634
|
|
|
619
|
-
typedef deque_opt<0u, 0u> deque_null_opt;
|
|
635
|
+
typedef deque_opt<0u, 0u, void, false> deque_null_opt;
|
|
620
636
|
|
|
621
637
|
#endif
|
|
622
638
|
|
|
623
639
|
//! Helper metafunction to combine options into a single type to be used
|
|
624
640
|
//! by \c boost::container::deque.
|
|
625
|
-
//! Supported options are: \c boost::container::block_bytes
|
|
641
|
+
//! Supported options are: \c boost::container::block_bytes, \c boost::container::block_size,
|
|
642
|
+
//! \c boost::container::stored_size and \c boost::container::reservable
|
|
626
643
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || defined(BOOST_CONTAINER_VARIADIC_TEMPLATES)
|
|
627
644
|
template<class ...Options>
|
|
628
645
|
#else
|
|
@@ -639,7 +656,11 @@ struct deque_options
|
|
|
639
656
|
Options...
|
|
640
657
|
#endif
|
|
641
658
|
>::type packed_options;
|
|
642
|
-
typedef deque_opt< packed_options::block_bytes
|
|
659
|
+
typedef deque_opt< packed_options::block_bytes
|
|
660
|
+
, packed_options::block_size
|
|
661
|
+
, typename packed_options::stored_size_type
|
|
662
|
+
, packed_options::reservable
|
|
663
|
+
> implementation_defined;
|
|
643
664
|
/// @endcond
|
|
644
665
|
typedef implementation_defined type;
|
|
645
666
|
};
|
|
@@ -654,19 +675,29 @@ using deque_options_t = typename boost::container::deque_options<Options...>::ty
|
|
|
654
675
|
#endif
|
|
655
676
|
|
|
656
677
|
//!This option specifies the maximum size of a block in bytes: this delimites the number of contiguous elements
|
|
657
|
-
//!that will be allocated by
|
|
678
|
+
//!that will be allocated by some containers as min(1u, BlockBytes/sizeof(value_type))
|
|
658
679
|
//!A value zero represents the default value.
|
|
659
680
|
//!
|
|
660
681
|
//!\tparam BlockBytes An unsigned integer value.
|
|
661
682
|
BOOST_INTRUSIVE_OPTION_CONSTANT(block_bytes, std::size_t, BlockBytes, block_bytes)
|
|
662
683
|
|
|
663
684
|
//!This option specifies the size of a block, delimites the number of contiguous elements
|
|
664
|
-
//!that will be allocated by
|
|
685
|
+
//!that will be allocated by some containersas BlockSize.
|
|
686
|
+
//!For some containers (like deque), a power of two value can improve performance.
|
|
665
687
|
//!A value zero represents the default value.
|
|
666
688
|
//!
|
|
667
689
|
//!\tparam BlockBytes An unsigned integer value.
|
|
668
690
|
BOOST_INTRUSIVE_OPTION_CONSTANT(block_size, std::size_t, BlockSize, block_size)
|
|
669
691
|
|
|
692
|
+
//!This option specifies if the container has reserve/capacity-like features
|
|
693
|
+
//!
|
|
694
|
+
//!For some containers (like deque) this option might change the internal representation or
|
|
695
|
+
//!behavior so that memory for elements can be allocated in advance in
|
|
696
|
+
//!order to improve performance.
|
|
697
|
+
//!
|
|
698
|
+
//!\tparam Reservable An boolean value.
|
|
699
|
+
BOOST_INTRUSIVE_OPTION_CONSTANT(reservable, bool, Reservable, reservable)
|
|
700
|
+
|
|
670
701
|
} //namespace container {
|
|
671
702
|
} //namespace boost {
|
|
672
703
|
|
|
@@ -26,9 +26,9 @@ namespace pmr {
|
|
|
26
26
|
|
|
27
27
|
template <
|
|
28
28
|
typename T,
|
|
29
|
-
typename
|
|
29
|
+
typename Options = void
|
|
30
30
|
>
|
|
31
|
-
using devector = boost::container::devector<T,
|
|
31
|
+
using devector = boost::container::devector<T, polymorphic_allocator<T>, Options >;
|
|
32
32
|
|
|
33
33
|
#endif
|
|
34
34
|
|
|
@@ -36,12 +36,14 @@ using devector = boost::container::devector<T, GrowthPolicy, polymorphic_allocat
|
|
|
36
36
|
//! that uses a polymorphic allocator
|
|
37
37
|
template <
|
|
38
38
|
typename T,
|
|
39
|
-
typename
|
|
39
|
+
typename Options = void
|
|
40
40
|
>
|
|
41
41
|
struct devector_of
|
|
42
42
|
{
|
|
43
43
|
typedef boost::container::devector
|
|
44
|
-
< T
|
|
44
|
+
< T
|
|
45
|
+
, polymorphic_allocator<T>
|
|
46
|
+
, Options > type;
|
|
45
47
|
};
|
|
46
48
|
|
|
47
49
|
} //namespace pmr {
|