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
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
#include <boost/container/detail/mpl.hpp>
|
|
28
28
|
#include <boost/container/detail/tree.hpp>
|
|
29
29
|
#include <boost/container/new_allocator.hpp> //new_allocator
|
|
30
|
+
#include <boost/container/detail/algorithm.hpp>
|
|
30
31
|
// intrusive/detail
|
|
31
32
|
#include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
|
|
32
33
|
#include <boost/intrusive/detail/minimal_less_equal_header.hpp>//less, equal
|
|
@@ -957,6 +958,15 @@ class set
|
|
|
957
958
|
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
958
959
|
};
|
|
959
960
|
|
|
961
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
962
|
+
//!
|
|
963
|
+
//! <b>Complexity</b>: Linear.
|
|
964
|
+
template <class K, class C, class A, class O, class Pred>
|
|
965
|
+
inline typename set<K, C, A, O>::size_type erase_if(set<K, C, A, O>& c, Pred pred)
|
|
966
|
+
{
|
|
967
|
+
return container_erase_if(c, pred);
|
|
968
|
+
}
|
|
969
|
+
|
|
960
970
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
961
971
|
|
|
962
972
|
template <typename InputIterator>
|
|
@@ -1612,6 +1622,15 @@ class multiset
|
|
|
1612
1622
|
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1613
1623
|
};
|
|
1614
1624
|
|
|
1625
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1626
|
+
//!
|
|
1627
|
+
//! <b>Complexity</b>: Linear.
|
|
1628
|
+
template <class K, class C, class A, class O, class Pred>
|
|
1629
|
+
inline typename multiset<K, C, A, O>::size_type erase_if(multiset<K, C, A, O>& c, Pred pred)
|
|
1630
|
+
{
|
|
1631
|
+
return container_erase_if(c, pred);
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1615
1634
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1616
1635
|
|
|
1617
1636
|
template <typename InputIterator>
|
|
@@ -94,7 +94,7 @@ struct intrusive_slist_type
|
|
|
94
94
|
, dtl::bi::size_type
|
|
95
95
|
<typename allocator_traits_type::size_type>
|
|
96
96
|
>::type container_type;
|
|
97
|
-
typedef container_type type
|
|
97
|
+
typedef container_type type;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
} //namespace dtl {
|
|
@@ -1629,8 +1629,8 @@ class slist
|
|
|
1629
1629
|
Icont &icont_;
|
|
1630
1630
|
typedef typename Icont::iterator iiterator;
|
|
1631
1631
|
typedef typename Icont::const_iterator iconst_iterator;
|
|
1632
|
-
|
|
1633
|
-
iiterator
|
|
1632
|
+
iconst_iterator prev_;
|
|
1633
|
+
iiterator ret_;
|
|
1634
1634
|
|
|
1635
1635
|
public:
|
|
1636
1636
|
insertion_functor(Icont &icont, typename Icont::const_iterator prev)
|
|
@@ -1639,11 +1639,16 @@ class slist
|
|
|
1639
1639
|
|
|
1640
1640
|
void operator()(Node &n)
|
|
1641
1641
|
{
|
|
1642
|
-
|
|
1642
|
+
prev_ = this->icont_.insert_after(prev_, n);
|
|
1643
|
+
if(!ret_)
|
|
1644
|
+
ret_ = prev_.unconst();
|
|
1643
1645
|
}
|
|
1644
1646
|
|
|
1645
1647
|
iiterator inserted_first() const
|
|
1646
|
-
{
|
|
1648
|
+
{
|
|
1649
|
+
iiterator f(ret_);
|
|
1650
|
+
return ++f;
|
|
1651
|
+
}
|
|
1647
1652
|
};
|
|
1648
1653
|
|
|
1649
1654
|
//Functors for member algorithm defaults
|
|
@@ -1653,6 +1658,28 @@ class slist
|
|
|
1653
1658
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1654
1659
|
};
|
|
1655
1660
|
|
|
1661
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
1662
|
+
//!
|
|
1663
|
+
//! <b>Complexity</b>: Linear.
|
|
1664
|
+
template <class T, class A, class U>
|
|
1665
|
+
inline typename slist<T, A>::size_type erase(slist<T, A>& c, const U& v)
|
|
1666
|
+
{
|
|
1667
|
+
typename slist<T, A>::size_type old_size = c.size();
|
|
1668
|
+
c.remove_if(equal_to_value<U>(v));
|
|
1669
|
+
return old_size - c.size();
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1673
|
+
//!
|
|
1674
|
+
//! <b>Complexity</b>: Linear.
|
|
1675
|
+
template <class T, class A, class Pred>
|
|
1676
|
+
inline typename slist<T, A>::size_type erase_if(slist<T, A>& c, Pred pred)
|
|
1677
|
+
{
|
|
1678
|
+
typename slist<T, A>::size_type old_size = c.size();
|
|
1679
|
+
c.remove_if(pred);
|
|
1680
|
+
return old_size - c.size();
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1656
1683
|
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
|
1657
1684
|
|
|
1658
1685
|
template <typename InpIt>
|
|
@@ -127,10 +127,11 @@ class small_vector_allocator
|
|
|
127
127
|
{
|
|
128
128
|
typedef unsigned int allocation_type;
|
|
129
129
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
130
|
-
private:
|
|
131
130
|
|
|
131
|
+
public:
|
|
132
132
|
typedef typename allocator_traits<VoidAlloc>::template portable_rebind_alloc<T>::type allocator_type;
|
|
133
133
|
|
|
134
|
+
private:
|
|
134
135
|
BOOST_COPYABLE_AND_MOVABLE(small_vector_allocator)
|
|
135
136
|
|
|
136
137
|
inline const allocator_type &as_base() const BOOST_NOEXCEPT
|
|
@@ -353,7 +354,8 @@ class small_vector_base
|
|
|
353
354
|
typedef typename real_allocator<T, SecAlloc>::type underlying_allocator_t;
|
|
354
355
|
typedef typename allocator_traits<underlying_allocator_t>::
|
|
355
356
|
template portable_rebind_alloc<void>::type void_underlying_allocator_t;
|
|
356
|
-
typedef small_vector_allocator
|
|
357
|
+
typedef typename small_vector_allocator
|
|
358
|
+
<T, void_underlying_allocator_t, Options>::allocator_type allocator_type;
|
|
357
359
|
typedef typename dtl::get_small_vector_opt<Options>::type options_t;
|
|
358
360
|
typedef typename dtl::vector_for_small_vector
|
|
359
361
|
<T, SecAlloc, Options>::type base_type;
|
|
@@ -548,6 +550,7 @@ class small_vector
|
|
|
548
550
|
BOOST_COPYABLE_AND_MOVABLE(small_vector)
|
|
549
551
|
|
|
550
552
|
public:
|
|
553
|
+
typedef dtl::true_type is_partially_propagable;
|
|
551
554
|
typedef small_vector_base<T, Allocator, Options> base_type;
|
|
552
555
|
typedef typename base_type::allocator_type allocator_type;
|
|
553
556
|
typedef typename base_type::size_type size_type;
|
|
@@ -672,6 +675,28 @@ class small_vector
|
|
|
672
675
|
{ this->base_type::prot_shrink_to_fit_small(this->internal_capacity()); }
|
|
673
676
|
};
|
|
674
677
|
|
|
678
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
679
|
+
//!
|
|
680
|
+
//! <b>Complexity</b>: Linear.
|
|
681
|
+
template <class T, std::size_t N, class A, class O, class U>
|
|
682
|
+
inline typename small_vector<T, N, A, O>::size_type erase(small_vector<T, N, A, O>& c, const U& v)
|
|
683
|
+
{
|
|
684
|
+
typename small_vector<T, N, A, O>::size_type old_size = c.size();
|
|
685
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
686
|
+
return old_size - c.size();
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
690
|
+
//!
|
|
691
|
+
//! <b>Complexity</b>: Linear.
|
|
692
|
+
template <class T, std::size_t N, class A, class O, class Pred>
|
|
693
|
+
inline typename small_vector<T, N, A, O>::size_type erase_if(small_vector<T, N, A, O>& c, Pred pred)
|
|
694
|
+
{
|
|
695
|
+
typename small_vector<T, N, A, O>::size_type old_size = c.size();
|
|
696
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
697
|
+
return old_size - c.size();
|
|
698
|
+
}
|
|
699
|
+
|
|
675
700
|
}}
|
|
676
701
|
|
|
677
702
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
@@ -2251,6 +2251,28 @@ stable_vector(InputIterator, InputIterator, Allocator const&) ->
|
|
|
2251
2251
|
|
|
2252
2252
|
#undef BOOST_CONTAINER_STABLE_VECTOR_CHECK_INVARIANT
|
|
2253
2253
|
|
|
2254
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
2255
|
+
//!
|
|
2256
|
+
//! <b>Complexity</b>: Linear.
|
|
2257
|
+
template <class T, class A, class U>
|
|
2258
|
+
inline typename stable_vector<T, A>::size_type erase(stable_vector<T, A>& c, const U& v)
|
|
2259
|
+
{
|
|
2260
|
+
typename stable_vector<T, A>::size_type old_size = c.size();
|
|
2261
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
2262
|
+
return old_size - c.size();
|
|
2263
|
+
}
|
|
2264
|
+
|
|
2265
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
2266
|
+
//!
|
|
2267
|
+
//! <b>Complexity</b>: Linear.
|
|
2268
|
+
template <class T, class A, class Pred>
|
|
2269
|
+
inline typename stable_vector<T, A>::size_type erase_if(stable_vector<T, A>& c, Pred pred)
|
|
2270
|
+
{
|
|
2271
|
+
typename stable_vector<T, A>::size_type old_size = c.size();
|
|
2272
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
2273
|
+
return old_size - c.size();
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2254
2276
|
} //namespace container {
|
|
2255
2277
|
|
|
2256
2278
|
//!has_trivial_destructor_after_move<> == true_type
|
|
@@ -63,8 +63,19 @@ class static_storage_allocator
|
|
|
63
63
|
inline static_storage_allocator & operator=(const static_storage_allocator &) BOOST_NOEXCEPT_OR_NOTHROW
|
|
64
64
|
{ return *this; }
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
//GCC in C++03 regressions fails, due to a bug in strict-aliasing optimizations
|
|
67
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_CXX_VERSION < 201103L)
|
|
68
|
+
#pragma GCC push_options
|
|
69
|
+
#pragma GCC optimize("no-strict-aliasing")
|
|
70
|
+
#endif
|
|
71
|
+
|
|
72
|
+
BOOST_CONTAINER_FORCEINLINE T* internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
73
|
+
//Avoiding launder due to performance regressions, see https://github.com/boostorg/container/issues/309
|
|
74
|
+
{ return const_cast<T*>(static_cast<const T*>(static_cast<const void*>(storage.data))); }
|
|
75
|
+
|
|
76
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_CXX_VERSION < 201103L)
|
|
77
|
+
#pragma GCC pop_options
|
|
78
|
+
#endif
|
|
68
79
|
|
|
69
80
|
BOOST_STATIC_CONSTEXPR std::size_t internal_capacity = N;
|
|
70
81
|
|
|
@@ -819,7 +830,8 @@ public:
|
|
|
819
830
|
//! Nothing.
|
|
820
831
|
//!
|
|
821
832
|
//! @par Complexity
|
|
822
|
-
//! Constant O(1).
|
|
833
|
+
//! @li If \c is_trivially_destructible<T>::value is \c true Constant O(1).
|
|
834
|
+
//! @li If \c is_trivially_destructible<T>::value is \c false Linear O(N).
|
|
823
835
|
void clear() BOOST_NOEXCEPT_OR_NOTHROW;
|
|
824
836
|
|
|
825
837
|
//! @pre <tt>i < size()</tt>
|
|
@@ -1226,8 +1238,6 @@ public:
|
|
|
1226
1238
|
|
|
1227
1239
|
//! @brief Checks if contents of two static_vectors are equal.
|
|
1228
1240
|
//!
|
|
1229
|
-
//! @ingroup static_vector_non_member
|
|
1230
|
-
//!
|
|
1231
1241
|
//! @param x The first static_vector.
|
|
1232
1242
|
//! @param y The second static_vector.
|
|
1233
1243
|
//!
|
|
@@ -1240,8 +1250,6 @@ bool operator== (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
|
|
|
1240
1250
|
|
|
1241
1251
|
//! @brief Checks if contents of two static_vectors are not equal.
|
|
1242
1252
|
//!
|
|
1243
|
-
//! @ingroup static_vector_non_member
|
|
1244
|
-
//!
|
|
1245
1253
|
//! @param x The first static_vector.
|
|
1246
1254
|
//! @param y The second static_vector.
|
|
1247
1255
|
//!
|
|
@@ -1254,8 +1262,6 @@ bool operator!= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
|
|
|
1254
1262
|
|
|
1255
1263
|
//! @brief Lexicographically compares static_vectors.
|
|
1256
1264
|
//!
|
|
1257
|
-
//! @ingroup static_vector_non_member
|
|
1258
|
-
//!
|
|
1259
1265
|
//! @param x The first static_vector.
|
|
1260
1266
|
//! @param y The second static_vector.
|
|
1261
1267
|
//!
|
|
@@ -1268,8 +1274,6 @@ bool operator< (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> cons
|
|
|
1268
1274
|
|
|
1269
1275
|
//! @brief Lexicographically compares static_vectors.
|
|
1270
1276
|
//!
|
|
1271
|
-
//! @ingroup static_vector_non_member
|
|
1272
|
-
//!
|
|
1273
1277
|
//! @param x The first static_vector.
|
|
1274
1278
|
//! @param y The second static_vector.
|
|
1275
1279
|
//!
|
|
@@ -1282,8 +1286,6 @@ bool operator> (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> cons
|
|
|
1282
1286
|
|
|
1283
1287
|
//! @brief Lexicographically compares static_vectors.
|
|
1284
1288
|
//!
|
|
1285
|
-
//! @ingroup static_vector_non_member
|
|
1286
|
-
//!
|
|
1287
1289
|
//! @param x The first static_vector.
|
|
1288
1290
|
//! @param y The second static_vector.
|
|
1289
1291
|
//!
|
|
@@ -1296,8 +1298,6 @@ bool operator<= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
|
|
|
1296
1298
|
|
|
1297
1299
|
//! @brief Lexicographically compares static_vectors.
|
|
1298
1300
|
//!
|
|
1299
|
-
//! @ingroup static_vector_non_member
|
|
1300
|
-
//!
|
|
1301
1301
|
//! @param x The first static_vector.
|
|
1302
1302
|
//! @param y The second static_vector.
|
|
1303
1303
|
//!
|
|
@@ -1312,8 +1312,6 @@ bool operator>= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
|
|
|
1312
1312
|
//!
|
|
1313
1313
|
//! This function calls static_vector::swap().
|
|
1314
1314
|
//!
|
|
1315
|
-
//! @ingroup static_vector_non_member
|
|
1316
|
-
//!
|
|
1317
1315
|
//! @param x The first static_vector.
|
|
1318
1316
|
//! @param y The second static_vector.
|
|
1319
1317
|
//!
|
|
@@ -1335,6 +1333,28 @@ inline void swap(static_vector<V, C1, O1> & x, static_vector<V, C2, O2> & y
|
|
|
1335
1333
|
|
|
1336
1334
|
#endif // BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1337
1335
|
|
|
1336
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
1337
|
+
//!
|
|
1338
|
+
//! <b>Complexity</b>: Linear.
|
|
1339
|
+
template <class T, std::size_t N, class O, class U>
|
|
1340
|
+
inline typename static_vector<T, N, O>::size_type erase(static_vector<T, N, O>& c, const U& v)
|
|
1341
|
+
{
|
|
1342
|
+
typename static_vector<T, N, O>::size_type old_size = c.size();
|
|
1343
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
1344
|
+
return old_size - c.size();
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
1348
|
+
//!
|
|
1349
|
+
//! <b>Complexity</b>: Linear.
|
|
1350
|
+
template <class T, std::size_t N, class O, class Pred>
|
|
1351
|
+
inline typename static_vector<T, N, O>::size_type erase_if(static_vector<T, N, O>& c, Pred pred)
|
|
1352
|
+
{
|
|
1353
|
+
typename static_vector<T, N, O>::size_type old_size = c.size();
|
|
1354
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
1355
|
+
return old_size - c.size();
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1338
1358
|
}} // namespace boost::container
|
|
1339
1359
|
|
|
1340
1360
|
#include <boost/container/detail/config_end.hpp>
|
|
@@ -274,7 +274,7 @@ class basic_string_base
|
|
|
274
274
|
//active representation is short or long
|
|
275
275
|
short_header hdr;
|
|
276
276
|
BOOST_CONTAINER_STATIC_ASSERT((sizeof(short_header) == 1));
|
|
277
|
-
*(unsigned char*)&hdr = *
|
|
277
|
+
*(unsigned char*)&hdr = *static_cast<const unsigned char*>(static_cast<const void *>(&this->members_.m_repr));
|
|
278
278
|
return hdr.is_short != 0;
|
|
279
279
|
}
|
|
280
280
|
|
|
@@ -3550,6 +3550,28 @@ getline(std::basic_istream<CharT, Traits>& is, basic_string<CharT,Traits,Allocat
|
|
|
3550
3550
|
return getline(is, s, '\n');
|
|
3551
3551
|
}
|
|
3552
3552
|
|
|
3553
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
3554
|
+
//!
|
|
3555
|
+
//! <b>Complexity</b>: Linear.
|
|
3556
|
+
template <class T, class Tr, class A, class U>
|
|
3557
|
+
inline typename basic_string<T, Tr, A>::size_type erase(basic_string<T, Tr, A>& c, const U& v)
|
|
3558
|
+
{
|
|
3559
|
+
typename basic_string<T, Tr, A>::size_type old_size = c.size();
|
|
3560
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
3561
|
+
return old_size - c.size();
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
3565
|
+
//!
|
|
3566
|
+
//! <b>Complexity</b>: Linear.
|
|
3567
|
+
template <class T, class Tr, class A, class Pred>
|
|
3568
|
+
inline typename basic_string<T, Tr, A>::size_type erase_if(basic_string<T, Tr, A>& c, Pred pred)
|
|
3569
|
+
{
|
|
3570
|
+
typename basic_string<T, Tr, A>::size_type old_size = c.size();
|
|
3571
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
3572
|
+
return old_size - c.size();
|
|
3573
|
+
}
|
|
3574
|
+
|
|
3553
3575
|
}}
|
|
3554
3576
|
|
|
3555
3577
|
//GCC 12 has a regression for array-bounds warnings
|
|
@@ -454,16 +454,16 @@ struct vector_alloc_holder
|
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
|
|
457
|
+
BOOST_CONTAINER_FORCEINLINE void set_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
458
458
|
{ this->m_size = static_cast<stored_size_type>(s); }
|
|
459
459
|
|
|
460
|
-
|
|
460
|
+
BOOST_CONTAINER_FORCEINLINE void dec_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
461
461
|
{ this->m_size = static_cast<stored_size_type>(this->m_size - s); }
|
|
462
462
|
|
|
463
|
-
|
|
463
|
+
BOOST_CONTAINER_FORCEINLINE void inc_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
|
|
464
464
|
{ this->m_size = static_cast<stored_size_type>(this->m_size + s); }
|
|
465
465
|
|
|
466
|
-
|
|
466
|
+
BOOST_CONTAINER_FORCEINLINE void set_stored_capacity(size_type c) BOOST_NOEXCEPT_OR_NOTHROW
|
|
467
467
|
{ this->m_capacity = static_cast<stored_size_type>(c); }
|
|
468
468
|
|
|
469
469
|
inline pointer allocation_command(boost::container::allocation_type command,
|
|
@@ -546,13 +546,13 @@ struct vector_alloc_holder
|
|
|
546
546
|
inline const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
547
547
|
{ return *this; }
|
|
548
548
|
|
|
549
|
-
|
|
549
|
+
BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
550
550
|
{ return m_start; }
|
|
551
|
-
|
|
551
|
+
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
552
552
|
{ return m_capacity; }
|
|
553
|
-
|
|
553
|
+
BOOST_CONTAINER_FORCEINLINE void start(const pointer &p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
554
554
|
{ m_start = p; }
|
|
555
|
-
|
|
555
|
+
BOOST_CONTAINER_FORCEINLINE void capacity(const size_type &c) BOOST_NOEXCEPT_OR_NOTHROW
|
|
556
556
|
{ BOOST_ASSERT( c <= stored_size_type(-1)); this->set_stored_capacity(c); }
|
|
557
557
|
|
|
558
558
|
static inline void on_capacity_overflow()
|
|
@@ -729,13 +729,13 @@ struct vector_alloc_holder<Allocator, StoredSizeType, version_0>
|
|
|
729
729
|
inline const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
730
730
|
{ return *this; }
|
|
731
731
|
|
|
732
|
-
|
|
732
|
+
BOOST_CONTAINER_FORCEINLINE bool try_expand_fwd(size_type at_least)
|
|
733
733
|
{ return !at_least; }
|
|
734
734
|
|
|
735
|
-
|
|
735
|
+
BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
736
736
|
{ return allocator_type::internal_storage(); }
|
|
737
737
|
|
|
738
|
-
|
|
738
|
+
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
|
739
739
|
{ return allocator_type::internal_capacity; }
|
|
740
740
|
|
|
741
741
|
stored_size_type m_size;
|
|
@@ -2100,8 +2100,8 @@ private:
|
|
|
2100
2100
|
>::type * = 0
|
|
2101
2101
|
)
|
|
2102
2102
|
{
|
|
2103
|
-
typedef typename iter_size<FwdIt>::type it_size_type;
|
|
2104
2103
|
BOOST_ASSERT(this->priv_in_range_or_end(pos));
|
|
2104
|
+
typedef typename iter_size<FwdIt>::type it_size_type;
|
|
2105
2105
|
const it_size_type sz = boost::container::iterator_udistance(first, last);
|
|
2106
2106
|
if (BOOST_UNLIKELY(sz > size_type(-1))){
|
|
2107
2107
|
boost::container::throw_length_error("vector::insert, FwdIt's max length reached");
|
|
@@ -2573,7 +2573,7 @@ private:
|
|
|
2573
2573
|
new_values_destroyer.release();
|
|
2574
2574
|
}
|
|
2575
2575
|
|
|
2576
|
-
|
|
2576
|
+
BOOST_CONTAINER_FORCEINLINE bool room_enough() const
|
|
2577
2577
|
{ return this->m_holder.m_size != this->m_holder.capacity(); }
|
|
2578
2578
|
|
|
2579
2579
|
inline pointer back_ptr() const
|
|
@@ -2897,13 +2897,13 @@ private:
|
|
|
2897
2897
|
}
|
|
2898
2898
|
|
|
2899
2899
|
template<class U>
|
|
2900
|
-
|
|
2900
|
+
BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const const_iterator &p, BOOST_FWD_REF(U) u)
|
|
2901
2901
|
{
|
|
2902
2902
|
return this->emplace(p, ::boost::forward<U>(u));
|
|
2903
2903
|
}
|
|
2904
2904
|
|
|
2905
2905
|
template <class U>
|
|
2906
|
-
|
|
2906
|
+
BOOST_CONTAINER_FORCEINLINE void priv_push_back(BOOST_FWD_REF(U) u)
|
|
2907
2907
|
{
|
|
2908
2908
|
this->emplace_back(::boost::forward<U>(u));
|
|
2909
2909
|
}
|
|
@@ -3014,6 +3014,7 @@ private:
|
|
|
3014
3014
|
{
|
|
3015
3015
|
return alloc_holder_t::on_capacity_overflow(), iterator();
|
|
3016
3016
|
}
|
|
3017
|
+
|
|
3017
3018
|
#ifdef _MSC_VER
|
|
3018
3019
|
#pragma warning (pop)
|
|
3019
3020
|
#endif
|
|
@@ -3022,15 +3023,14 @@ private:
|
|
|
3022
3023
|
BOOST_CONTAINER_NOINLINE iterator priv_insert_forward_range_no_capacity
|
|
3023
3024
|
(T *const raw_pos, const size_type n, const InsertionProxy insert_range_proxy, version_1)
|
|
3024
3025
|
{
|
|
3025
|
-
//Check if we have enough memory or try to expand current memory
|
|
3026
|
-
const size_type n_pos = static_cast<size_type>(raw_pos - this->priv_raw_begin());
|
|
3027
|
-
|
|
3028
3026
|
const size_type new_cap = this->m_holder.template next_capacity<growth_factor_type>(n);
|
|
3029
3027
|
//Pass the hint so that allocators can take advantage of this.
|
|
3030
3028
|
T * const new_buf = boost::movelib::to_raw_pointer(this->m_holder.allocate(new_cap));
|
|
3031
3029
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
|
3032
3030
|
++this->num_alloc;
|
|
3033
3031
|
#endif
|
|
3032
|
+
//Check if we have enough memory or try to expand current memory
|
|
3033
|
+
const size_type n_pos = static_cast<size_type>(raw_pos - this->priv_raw_begin());
|
|
3034
3034
|
this->priv_insert_forward_range_new_allocation(new_buf, new_cap, raw_pos, n, insert_range_proxy);
|
|
3035
3035
|
return iterator(this->m_holder.start() + difference_type(n_pos));
|
|
3036
3036
|
}
|
|
@@ -3221,10 +3221,10 @@ private:
|
|
|
3221
3221
|
}
|
|
3222
3222
|
|
|
3223
3223
|
private:
|
|
3224
|
-
|
|
3224
|
+
BOOST_CONTAINER_FORCEINLINE T *priv_raw_begin() const
|
|
3225
3225
|
{ return boost::movelib::to_raw_pointer(m_holder.start()); }
|
|
3226
3226
|
|
|
3227
|
-
|
|
3227
|
+
BOOST_CONTAINER_FORCEINLINE T* priv_raw_end() const
|
|
3228
3228
|
{ return this->priv_raw_begin() + this->m_holder.m_size; }
|
|
3229
3229
|
|
|
3230
3230
|
template <class InsertionProxy> //inline single-element version as it is significantly smaller
|
|
@@ -3351,6 +3351,27 @@ vector(InputIterator, InputIterator, Allocator const&) ->
|
|
|
3351
3351
|
|
|
3352
3352
|
#endif
|
|
3353
3353
|
|
|
3354
|
+
//! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
|
|
3355
|
+
//!
|
|
3356
|
+
//! <b>Complexity</b>: Linear.
|
|
3357
|
+
template <class T, class A, class O, class U>
|
|
3358
|
+
inline typename vector<T, A, O>::size_type erase(vector<T, A, O>& c, const U& v)
|
|
3359
|
+
{
|
|
3360
|
+
typename vector<T, A, O>::size_type old_size = c.size();
|
|
3361
|
+
c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
|
|
3362
|
+
return old_size - c.size();
|
|
3363
|
+
}
|
|
3364
|
+
|
|
3365
|
+
//! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
|
|
3366
|
+
//!
|
|
3367
|
+
//! <b>Complexity</b>: Linear.
|
|
3368
|
+
template <class T, class A, class O, class Pred>
|
|
3369
|
+
inline typename vector<T, A, O>::size_type erase_if(vector<T, A, O>& c, Pred pred)
|
|
3370
|
+
{
|
|
3371
|
+
typename vector<T, A, O>::size_type old_size = c.size();
|
|
3372
|
+
c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
|
|
3373
|
+
return old_size - c.size();
|
|
3374
|
+
}
|
|
3354
3375
|
|
|
3355
3376
|
}} //namespace boost::container
|
|
3356
3377
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright 2005-2014 Daniel James.
|
|
2
|
-
// Copyright 2021, 2022 Peter Dimov.
|
|
2
|
+
// Copyright 2021, 2022, 2025 Peter Dimov.
|
|
3
3
|
// Distributed under the Boost Software License, Version 1.0.
|
|
4
4
|
// https://www.boost.org/LICENSE_1_0.txt
|
|
5
5
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#define BOOST_FUNCTIONAL_HASH_HASH_HPP
|
|
12
12
|
|
|
13
13
|
#include <boost/container_hash/hash_fwd.hpp>
|
|
14
|
+
#include <boost/container_hash/hash_is_avalanching.hpp>
|
|
14
15
|
#include <boost/container_hash/is_range.hpp>
|
|
15
16
|
#include <boost/container_hash/is_contiguous_range.hpp>
|
|
16
17
|
#include <boost/container_hash/is_unordered_range.hpp>
|
|
@@ -557,19 +558,15 @@ namespace boost
|
|
|
557
558
|
|
|
558
559
|
#endif
|
|
559
560
|
|
|
560
|
-
//
|
|
561
|
+
// hash_is_avalanching
|
|
561
562
|
|
|
562
|
-
|
|
563
|
-
{
|
|
564
|
-
template<class T> struct hash_is_avalanching;
|
|
565
|
-
template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string<Ch> > >: std::is_integral<Ch> {};
|
|
563
|
+
template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string<Ch> > >: std::is_integral<Ch> {};
|
|
566
564
|
|
|
567
565
|
#if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
|
|
568
566
|
|
|
569
|
-
|
|
567
|
+
template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string_view<Ch> > >: std::is_integral<Ch> {};
|
|
570
568
|
|
|
571
569
|
#endif
|
|
572
|
-
} // namespace unordered
|
|
573
570
|
|
|
574
571
|
} // namespace boost
|
|
575
572
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright 2005-2009 Daniel James.
|
|
2
|
-
// Copyright 2021, 2022 Peter Dimov.
|
|
2
|
+
// Copyright 2021, 2022, 2025 Peter Dimov.
|
|
3
3
|
// Distributed under the Boost Software License, Version 1.0.
|
|
4
4
|
// https://www.boost.org/LICENSE_1_0.txt
|
|
5
5
|
|
|
@@ -32,6 +32,8 @@ template<class It> std::size_t hash_range( It, It );
|
|
|
32
32
|
template<class It> void hash_unordered_range( std::size_t&, It, It );
|
|
33
33
|
template<class It> std::size_t hash_unordered_range( It, It );
|
|
34
34
|
|
|
35
|
+
template<class Hash> struct hash_is_avalanching;
|
|
36
|
+
|
|
35
37
|
} // namespace boost
|
|
36
38
|
|
|
37
39
|
#endif // #ifndef BOOST_FUNCTIONAL_HASH_FWD_HPP
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Copyright 2025 Joaquin M Lopez Munoz.
|
|
2
|
+
// Distributed under the Boost Software License, Version 1.0.
|
|
3
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
|
4
|
+
|
|
5
|
+
#ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED
|
|
6
|
+
#define BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED
|
|
7
|
+
|
|
8
|
+
#include <type_traits>
|
|
9
|
+
|
|
10
|
+
namespace boost
|
|
11
|
+
{
|
|
12
|
+
namespace hash_detail
|
|
13
|
+
{
|
|
14
|
+
|
|
15
|
+
template<class... Ts> struct make_void
|
|
16
|
+
{
|
|
17
|
+
using type = void;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
template<class... Ts> using void_t = typename make_void<Ts...>::type;
|
|
21
|
+
|
|
22
|
+
template<class IsAvalanching> struct avalanching_value
|
|
23
|
+
{
|
|
24
|
+
static constexpr bool value = IsAvalanching::value;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// may be explicitly marked as BOOST_DEPRECATED in the future
|
|
28
|
+
template<> struct avalanching_value<void>
|
|
29
|
+
{
|
|
30
|
+
static constexpr bool value = true;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
template<class Hash, class = void> struct hash_is_avalanching_impl: std::false_type
|
|
34
|
+
{
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
template<class Hash> struct hash_is_avalanching_impl<Hash, void_t<typename Hash::is_avalanching> >:
|
|
38
|
+
std::integral_constant<bool, avalanching_value<typename Hash::is_avalanching>::value>
|
|
39
|
+
{
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
template<class Hash>
|
|
43
|
+
struct hash_is_avalanching_impl<Hash, typename std::enable_if< ((void)Hash::is_avalanching, true) >::type>
|
|
44
|
+
{
|
|
45
|
+
// Hash::is_avalanching is not a type: we don't define value to produce
|
|
46
|
+
// a compile error downstream
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
} // namespace hash_detail
|
|
50
|
+
|
|
51
|
+
template<class Hash> struct hash_is_avalanching: hash_detail::hash_is_avalanching_impl<Hash>::type
|
|
52
|
+
{
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
} // namespace boost
|
|
56
|
+
|
|
57
|
+
#endif // #ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED
|