passenger 6.2.1 → 6.2.2
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 +37 -15
- data/build/cxx_tests.rb +2 -0
- data/build/support/cxx_dependency_map.rb +3 -63
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Shared/ApiServerUtils.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/apache2_module/Hooks.cpp +13 -0
- data/src/apache2_module/Utils.h +14 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
- data/src/cxx_supportlib/InstanceDirectory.h +30 -3
- data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
- data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
- data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
- data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
- data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
- data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
- data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
- data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
- data/src/nginx_module/ContentHandler.c +35 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- metadata +73 -8
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
- /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (C) 2022-2023 Christian Mazakas
|
|
2
|
-
// Copyright (C) 2024-
|
|
2
|
+
// Copyright (C) 2024-2026 Joaquin M Lopez Munoz
|
|
3
|
+
// Copyright (C) 2026 Braden Ganetsky
|
|
3
4
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
4
5
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
5
6
|
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
#include <boost/unordered/detail/foa/node_set_handle.hpp>
|
|
17
18
|
#include <boost/unordered/detail/foa/node_set_types.hpp>
|
|
18
19
|
#include <boost/unordered/detail/foa/table.hpp>
|
|
20
|
+
#include <boost/unordered/detail/ranges_support.hpp>
|
|
19
21
|
#include <boost/unordered/detail/serialize_container.hpp>
|
|
20
22
|
#include <boost/unordered/detail/type_traits.hpp>
|
|
21
23
|
#include <boost/unordered/unordered_node_set_fwd.hpp>
|
|
@@ -112,6 +114,19 @@ namespace boost {
|
|
|
112
114
|
{
|
|
113
115
|
}
|
|
114
116
|
|
|
117
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
118
|
+
template<
|
|
119
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
120
|
+
detail::container_compatible_range<value_type> R
|
|
121
|
+
>
|
|
122
|
+
unordered_node_set(
|
|
123
|
+
FromRangeT&& fr, R&& rg, allocator_type const& a)
|
|
124
|
+
: unordered_node_set(
|
|
125
|
+
fr, std::forward<R>(rg), size_type(0), hasher(), key_equal(), a)
|
|
126
|
+
{
|
|
127
|
+
}
|
|
128
|
+
#endif
|
|
129
|
+
|
|
115
130
|
explicit unordered_node_set(allocator_type const& a)
|
|
116
131
|
: unordered_node_set(0, a)
|
|
117
132
|
{
|
|
@@ -140,6 +155,41 @@ namespace boost {
|
|
|
140
155
|
{
|
|
141
156
|
}
|
|
142
157
|
|
|
158
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
159
|
+
template<
|
|
160
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
161
|
+
detail::container_compatible_range<value_type> R
|
|
162
|
+
>
|
|
163
|
+
unordered_node_set(FromRangeT&&, R&& rg, size_type n = 0,
|
|
164
|
+
hasher const& h = hasher(), key_equal const& pred = key_equal(),
|
|
165
|
+
allocator_type const& a = allocator_type())
|
|
166
|
+
: unordered_node_set(n, h, pred, a)
|
|
167
|
+
{
|
|
168
|
+
this->insert_range(std::forward<R>(rg));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
template<
|
|
172
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
173
|
+
detail::container_compatible_range<value_type> R
|
|
174
|
+
>
|
|
175
|
+
unordered_node_set(
|
|
176
|
+
FromRangeT&& fr, R&& rg, size_type n, allocator_type const& a)
|
|
177
|
+
: unordered_node_set(
|
|
178
|
+
fr, std::forward<R>(rg), n, hasher(), key_equal(), a)
|
|
179
|
+
{
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
template<
|
|
183
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
184
|
+
detail::container_compatible_range<value_type> R
|
|
185
|
+
>
|
|
186
|
+
unordered_node_set(FromRangeT&& fr, R&& rg, size_type n,
|
|
187
|
+
hasher const& h, allocator_type const& a)
|
|
188
|
+
: unordered_node_set(fr, std::forward<R>(rg), n, h, key_equal(), a)
|
|
189
|
+
{
|
|
190
|
+
}
|
|
191
|
+
#endif
|
|
192
|
+
|
|
143
193
|
unordered_node_set(unordered_node_set const& other) : table_(other.table_)
|
|
144
194
|
{
|
|
145
195
|
}
|
|
@@ -187,9 +237,10 @@ namespace boost {
|
|
|
187
237
|
{
|
|
188
238
|
}
|
|
189
239
|
|
|
190
|
-
template <
|
|
240
|
+
template <typename Key2,
|
|
241
|
+
typename std::enable_if<std::is_same<Key, Key2>::value, int>::type = 0>
|
|
191
242
|
unordered_node_set(
|
|
192
|
-
concurrent_node_set<
|
|
243
|
+
concurrent_node_set<Key2, Hash, KeyEqual, Allocator>&& other)
|
|
193
244
|
: table_(std::move(other.table_))
|
|
194
245
|
{
|
|
195
246
|
}
|
|
@@ -296,6 +347,16 @@ namespace boost {
|
|
|
296
347
|
}
|
|
297
348
|
}
|
|
298
349
|
|
|
350
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
351
|
+
template<detail::container_compatible_range<value_type> R>
|
|
352
|
+
void insert_range(R&& rg)
|
|
353
|
+
{
|
|
354
|
+
auto first = std::ranges::begin(rg);
|
|
355
|
+
auto last = std::ranges::end(rg);
|
|
356
|
+
while (first != last) table_.emplace(*first++);
|
|
357
|
+
}
|
|
358
|
+
#endif
|
|
359
|
+
|
|
299
360
|
void insert(std::initializer_list<value_type> ilist)
|
|
300
361
|
{
|
|
301
362
|
this->insert(ilist.begin(), ilist.end());
|
|
@@ -648,6 +709,25 @@ namespace boost {
|
|
|
648
709
|
typename std::iterator_traits<InputIterator>::value_type, Hash, Pred,
|
|
649
710
|
Allocator>;
|
|
650
711
|
|
|
712
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
713
|
+
template <
|
|
714
|
+
boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
715
|
+
std::ranges::input_range R,
|
|
716
|
+
class Hash =
|
|
717
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
718
|
+
class Pred =
|
|
719
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
720
|
+
class Allocator = std::allocator<std::ranges::range_value_t<R> >,
|
|
721
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
722
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
723
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
724
|
+
unordered_node_set(FromRangeT&&, R&&,
|
|
725
|
+
std::size_t = boost::unordered::detail::foa::default_bucket_count,
|
|
726
|
+
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
727
|
+
-> unordered_node_set<std::ranges::range_value_t<R>,
|
|
728
|
+
Hash, Pred, Allocator>;
|
|
729
|
+
#endif
|
|
730
|
+
|
|
651
731
|
template <class T, class Hash = boost::hash<T>,
|
|
652
732
|
class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
|
|
653
733
|
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
@@ -679,6 +759,29 @@ namespace boost {
|
|
|
679
759
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
680
760
|
Allocator>;
|
|
681
761
|
|
|
762
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
763
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
764
|
+
std::ranges::input_range R,
|
|
765
|
+
class Allocator,
|
|
766
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
767
|
+
unordered_node_set(FromRangeT&&, R&&, std::size_t, Allocator)
|
|
768
|
+
-> unordered_node_set<std::ranges::range_value_t<R>,
|
|
769
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
770
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
771
|
+
Allocator>;
|
|
772
|
+
|
|
773
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
774
|
+
std::ranges::input_range R,
|
|
775
|
+
class Hash, class Allocator,
|
|
776
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
777
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
778
|
+
unordered_node_set(
|
|
779
|
+
FromRangeT&&, R&&, std::size_t, Hash, Allocator)
|
|
780
|
+
-> unordered_node_set<std::ranges::range_value_t<R>,
|
|
781
|
+
Hash, std::equal_to<std::ranges::range_value_t<R> >,
|
|
782
|
+
Allocator>;
|
|
783
|
+
#endif
|
|
784
|
+
|
|
682
785
|
template <class T, class Allocator,
|
|
683
786
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
684
787
|
unordered_node_set(std::initializer_list<T>, std::size_t, Allocator)
|
|
@@ -700,6 +803,18 @@ namespace boost {
|
|
|
700
803
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
701
804
|
Allocator>;
|
|
702
805
|
|
|
806
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
807
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
808
|
+
std::ranges::input_range R,
|
|
809
|
+
class Allocator,
|
|
810
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
811
|
+
unordered_node_set(FromRangeT&&, R&&, Allocator)
|
|
812
|
+
-> unordered_node_set<std::ranges::range_value_t<R>,
|
|
813
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
814
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
815
|
+
Allocator>;
|
|
816
|
+
#endif
|
|
817
|
+
|
|
703
818
|
template <class T, class Allocator,
|
|
704
819
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
705
820
|
unordered_node_set(std::initializer_list<T>, Allocator)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
|
|
2
2
|
// Copyright (C) 2005-2011 Daniel James.
|
|
3
3
|
// Copyright (C) 2022-2023 Christian Mazakas
|
|
4
|
-
// Copyright (C) 2024 Joaquin M Lopez Munoz.
|
|
4
|
+
// Copyright (C) 2024-2026 Joaquin M Lopez Munoz.
|
|
5
5
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
6
6
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7
7
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#pragma once
|
|
16
16
|
#endif
|
|
17
17
|
|
|
18
|
+
#include <boost/unordered/detail/ranges_support.hpp>
|
|
18
19
|
#include <boost/unordered/detail/serialize_fca_container.hpp>
|
|
19
20
|
#include <boost/unordered/detail/set.hpp>
|
|
20
21
|
#include <boost/unordered/detail/type_traits.hpp>
|
|
@@ -88,6 +89,17 @@ namespace boost {
|
|
|
88
89
|
const hasher& = hasher(), const key_equal& = key_equal(),
|
|
89
90
|
const allocator_type& = allocator_type());
|
|
90
91
|
|
|
92
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
93
|
+
template<
|
|
94
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
95
|
+
detail::container_compatible_range<T> R
|
|
96
|
+
>
|
|
97
|
+
unordered_set(FromRangeT&&, R&&,
|
|
98
|
+
size_type = boost::unordered::detail::default_bucket_count,
|
|
99
|
+
const hasher& = hasher(), const key_equal& = key_equal(),
|
|
100
|
+
const allocator_type& = allocator_type());
|
|
101
|
+
#endif
|
|
102
|
+
|
|
91
103
|
unordered_set(unordered_set const&);
|
|
92
104
|
|
|
93
105
|
unordered_set(unordered_set&& other)
|
|
@@ -122,6 +134,27 @@ namespace boost {
|
|
|
122
134
|
unordered_set(
|
|
123
135
|
InputIt, InputIt, size_type, const hasher&, const allocator_type&);
|
|
124
136
|
|
|
137
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
138
|
+
template <
|
|
139
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
140
|
+
detail::container_compatible_range<T> R
|
|
141
|
+
>
|
|
142
|
+
unordered_set(FromRangeT&&, R&&, const allocator_type&);
|
|
143
|
+
|
|
144
|
+
template <
|
|
145
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
146
|
+
detail::container_compatible_range<T> R
|
|
147
|
+
>
|
|
148
|
+
unordered_set(FromRangeT&&, R&&, size_type, const allocator_type&);
|
|
149
|
+
|
|
150
|
+
template <
|
|
151
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
152
|
+
detail::container_compatible_range<T> R
|
|
153
|
+
>
|
|
154
|
+
unordered_set(
|
|
155
|
+
FromRangeT&&, R&&, size_type, const hasher&, const allocator_type&);
|
|
156
|
+
#endif
|
|
157
|
+
|
|
125
158
|
unordered_set(std::initializer_list<value_type>, const allocator_type&);
|
|
126
159
|
|
|
127
160
|
unordered_set(
|
|
@@ -246,6 +279,11 @@ namespace boost {
|
|
|
246
279
|
|
|
247
280
|
template <class InputIt> void insert(InputIt, InputIt);
|
|
248
281
|
|
|
282
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
283
|
+
template <detail::container_compatible_range<T> R>
|
|
284
|
+
void insert_range(R&&);
|
|
285
|
+
#endif
|
|
286
|
+
|
|
249
287
|
void insert(std::initializer_list<value_type>);
|
|
250
288
|
|
|
251
289
|
// extract
|
|
@@ -478,6 +516,25 @@ namespace boost {
|
|
|
478
516
|
-> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
|
|
479
517
|
Hash, Pred, Allocator>;
|
|
480
518
|
|
|
519
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
520
|
+
template <
|
|
521
|
+
boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
522
|
+
std::ranges::input_range R,
|
|
523
|
+
class Hash =
|
|
524
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
525
|
+
class Pred =
|
|
526
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
527
|
+
class Allocator = std::allocator<std::ranges::range_value_t<R> >,
|
|
528
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
529
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
530
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
531
|
+
unordered_set(FromRangeT&&, R&&,
|
|
532
|
+
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
533
|
+
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
534
|
+
-> unordered_set<std::ranges::range_value_t<R>,
|
|
535
|
+
Hash, Pred, Allocator>;
|
|
536
|
+
#endif
|
|
537
|
+
|
|
481
538
|
template <class T, class Hash = boost::hash<T>,
|
|
482
539
|
class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
|
|
483
540
|
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
@@ -507,6 +564,29 @@ namespace boost {
|
|
|
507
564
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
508
565
|
Allocator>;
|
|
509
566
|
|
|
567
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
568
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
569
|
+
std::ranges::input_range R,
|
|
570
|
+
class Allocator,
|
|
571
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
572
|
+
unordered_set(FromRangeT&&, R&&, std::size_t, Allocator)
|
|
573
|
+
-> unordered_set<std::ranges::range_value_t<R>,
|
|
574
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
575
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
576
|
+
Allocator>;
|
|
577
|
+
|
|
578
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
579
|
+
std::ranges::input_range R,
|
|
580
|
+
class Hash, class Allocator,
|
|
581
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
582
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
583
|
+
unordered_set(
|
|
584
|
+
FromRangeT&&, R&&, std::size_t, Hash, Allocator)
|
|
585
|
+
-> unordered_set<std::ranges::range_value_t<R>,
|
|
586
|
+
Hash, std::equal_to<std::ranges::range_value_t<R> >,
|
|
587
|
+
Allocator>;
|
|
588
|
+
#endif
|
|
589
|
+
|
|
510
590
|
template <class T, class Allocator,
|
|
511
591
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
512
592
|
unordered_set(std::initializer_list<T>, std::size_t, Allocator)
|
|
@@ -527,6 +607,18 @@ namespace boost {
|
|
|
527
607
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
528
608
|
Allocator>;
|
|
529
609
|
|
|
610
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
611
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
612
|
+
std::ranges::input_range R,
|
|
613
|
+
class Allocator,
|
|
614
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
615
|
+
unordered_set(FromRangeT&&, R&&, Allocator)
|
|
616
|
+
-> unordered_set<std::ranges::range_value_t<R>,
|
|
617
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
618
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
619
|
+
Allocator>;
|
|
620
|
+
#endif
|
|
621
|
+
|
|
530
622
|
template <class T, class Allocator,
|
|
531
623
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
532
624
|
unordered_set(std::initializer_list<T>, Allocator)
|
|
@@ -585,6 +677,18 @@ namespace boost {
|
|
|
585
677
|
const hasher& = hasher(), const key_equal& = key_equal(),
|
|
586
678
|
const allocator_type& = allocator_type());
|
|
587
679
|
|
|
680
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
681
|
+
template<
|
|
682
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
683
|
+
detail::container_compatible_range<T> R
|
|
684
|
+
>
|
|
685
|
+
unordered_multiset(FromRangeT&&, R&&,
|
|
686
|
+
size_type = boost::unordered::detail::default_bucket_count,
|
|
687
|
+
const hasher& = hasher(), const key_equal& = key_equal(),
|
|
688
|
+
const allocator_type& = allocator_type());
|
|
689
|
+
#endif
|
|
690
|
+
|
|
691
|
+
|
|
588
692
|
unordered_multiset(unordered_multiset const&);
|
|
589
693
|
|
|
590
694
|
unordered_multiset(unordered_multiset&& other)
|
|
@@ -620,6 +724,27 @@ namespace boost {
|
|
|
620
724
|
unordered_multiset(
|
|
621
725
|
InputIt, InputIt, size_type, const hasher&, const allocator_type&);
|
|
622
726
|
|
|
727
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
728
|
+
template <
|
|
729
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
730
|
+
detail::container_compatible_range<T> R
|
|
731
|
+
>
|
|
732
|
+
unordered_multiset(FromRangeT&&, R&&, const allocator_type&);
|
|
733
|
+
|
|
734
|
+
template <
|
|
735
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
736
|
+
detail::container_compatible_range<T> R
|
|
737
|
+
>
|
|
738
|
+
unordered_multiset(FromRangeT&&, R&&, size_type, const allocator_type&);
|
|
739
|
+
|
|
740
|
+
template <
|
|
741
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
742
|
+
detail::container_compatible_range<T> R
|
|
743
|
+
>
|
|
744
|
+
unordered_multiset(
|
|
745
|
+
FromRangeT&&, R&&, size_type, const hasher&, const allocator_type&);
|
|
746
|
+
#endif
|
|
747
|
+
|
|
623
748
|
unordered_multiset(
|
|
624
749
|
std::initializer_list<value_type>, const allocator_type&);
|
|
625
750
|
|
|
@@ -720,6 +845,11 @@ namespace boost {
|
|
|
720
845
|
|
|
721
846
|
template <class InputIt> void insert(InputIt, InputIt);
|
|
722
847
|
|
|
848
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
849
|
+
template <detail::container_compatible_range<T> R>
|
|
850
|
+
void insert_range(R&&);
|
|
851
|
+
#endif
|
|
852
|
+
|
|
723
853
|
void insert(std::initializer_list<value_type>);
|
|
724
854
|
|
|
725
855
|
// extract
|
|
@@ -942,6 +1072,25 @@ namespace boost {
|
|
|
942
1072
|
typename std::iterator_traits<InputIterator>::value_type, Hash, Pred,
|
|
943
1073
|
Allocator>;
|
|
944
1074
|
|
|
1075
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1076
|
+
template <
|
|
1077
|
+
boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
1078
|
+
std::ranges::input_range R,
|
|
1079
|
+
class Hash =
|
|
1080
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
1081
|
+
class Pred =
|
|
1082
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
1083
|
+
class Allocator = std::allocator<std::ranges::range_value_t<R> >,
|
|
1084
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1085
|
+
class = std::enable_if_t<detail::is_pred_v<Pred> >,
|
|
1086
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1087
|
+
unordered_multiset(FromRangeT&&, R&&,
|
|
1088
|
+
std::size_t = boost::unordered::detail::default_bucket_count,
|
|
1089
|
+
Hash = Hash(), Pred = Pred(), Allocator = Allocator())
|
|
1090
|
+
-> unordered_multiset<std::ranges::range_value_t<R>,
|
|
1091
|
+
Hash, Pred, Allocator>;
|
|
1092
|
+
#endif
|
|
1093
|
+
|
|
945
1094
|
template <class T, class Hash = boost::hash<T>,
|
|
946
1095
|
class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
|
|
947
1096
|
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
@@ -973,6 +1122,29 @@ namespace boost {
|
|
|
973
1122
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
974
1123
|
Allocator>;
|
|
975
1124
|
|
|
1125
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1126
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
1127
|
+
std::ranges::input_range R,
|
|
1128
|
+
class Allocator,
|
|
1129
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1130
|
+
unordered_multiset(FromRangeT&&, R&&, std::size_t, Allocator)
|
|
1131
|
+
-> unordered_multiset<std::ranges::range_value_t<R>,
|
|
1132
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
1133
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
1134
|
+
Allocator>;
|
|
1135
|
+
|
|
1136
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
1137
|
+
std::ranges::input_range R,
|
|
1138
|
+
class Hash, class Allocator,
|
|
1139
|
+
class = std::enable_if_t<detail::is_hash_v<Hash> >,
|
|
1140
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1141
|
+
unordered_multiset(
|
|
1142
|
+
FromRangeT&&, R&&, std::size_t, Hash, Allocator)
|
|
1143
|
+
-> unordered_multiset<std::ranges::range_value_t<R>,
|
|
1144
|
+
Hash, std::equal_to<std::ranges::range_value_t<R> >,
|
|
1145
|
+
Allocator>;
|
|
1146
|
+
#endif
|
|
1147
|
+
|
|
976
1148
|
template <class T, class Allocator,
|
|
977
1149
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
978
1150
|
unordered_multiset(std::initializer_list<T>, std::size_t, Allocator)
|
|
@@ -994,6 +1166,18 @@ namespace boost {
|
|
|
994
1166
|
std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
|
|
995
1167
|
Allocator>;
|
|
996
1168
|
|
|
1169
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1170
|
+
template <boost::unordered::detail::convertible_to_from_range_t FromRangeT,
|
|
1171
|
+
std::ranges::input_range R,
|
|
1172
|
+
class Allocator,
|
|
1173
|
+
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
1174
|
+
unordered_multiset(FromRangeT&&, R&&, Allocator)
|
|
1175
|
+
-> unordered_multiset<std::ranges::range_value_t<R>,
|
|
1176
|
+
boost::hash<std::ranges::range_value_t<R> >,
|
|
1177
|
+
std::equal_to<std::ranges::range_value_t<R> >,
|
|
1178
|
+
Allocator>;
|
|
1179
|
+
#endif
|
|
1180
|
+
|
|
997
1181
|
template <class T, class Allocator,
|
|
998
1182
|
class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
|
|
999
1183
|
unordered_multiset(std::initializer_list<T>, Allocator)
|
|
@@ -1023,6 +1207,23 @@ namespace boost {
|
|
|
1023
1207
|
this->insert(f, l);
|
|
1024
1208
|
}
|
|
1025
1209
|
|
|
1210
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1211
|
+
template <class T, class H, class P, class A>
|
|
1212
|
+
template <
|
|
1213
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1214
|
+
detail::container_compatible_range<T> R
|
|
1215
|
+
>
|
|
1216
|
+
unordered_set<T, H, P, A>::unordered_set(FromRangeT&&, R&& rg,
|
|
1217
|
+
size_type n, const hasher& hf, const key_equal& eql,
|
|
1218
|
+
const allocator_type& a)
|
|
1219
|
+
: table_(
|
|
1220
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1221
|
+
hf, eql, a)
|
|
1222
|
+
{
|
|
1223
|
+
this->insert_range(std::forward<R>(rg));
|
|
1224
|
+
}
|
|
1225
|
+
#endif
|
|
1226
|
+
|
|
1026
1227
|
template <class T, class H, class P, class A>
|
|
1027
1228
|
unordered_set<T, H, P, A>::unordered_set(unordered_set const& other)
|
|
1028
1229
|
: table_(other.table_,
|
|
@@ -1115,6 +1316,51 @@ namespace boost {
|
|
|
1115
1316
|
this->insert(f, l);
|
|
1116
1317
|
}
|
|
1117
1318
|
|
|
1319
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1320
|
+
template <class T, class H, class P, class A>
|
|
1321
|
+
template <
|
|
1322
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1323
|
+
detail::container_compatible_range<T> R
|
|
1324
|
+
>
|
|
1325
|
+
unordered_set<T, H, P, A>::unordered_set(
|
|
1326
|
+
FromRangeT&&, R&& rg, const allocator_type& a)
|
|
1327
|
+
: table_(
|
|
1328
|
+
boost::unordered::detail::initial_size(
|
|
1329
|
+
std::forward<R>(rg), detail::default_bucket_count),
|
|
1330
|
+
hasher(), key_equal(), a)
|
|
1331
|
+
{
|
|
1332
|
+
this->insert_range(std::forward<R>(rg));
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
template <class T, class H, class P, class A>
|
|
1336
|
+
template <
|
|
1337
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1338
|
+
detail::container_compatible_range<T> R
|
|
1339
|
+
>
|
|
1340
|
+
unordered_set<T, H, P, A>::unordered_set(
|
|
1341
|
+
FromRangeT&&, R&& rg, size_type n, const allocator_type& a)
|
|
1342
|
+
: table_(
|
|
1343
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1344
|
+
hasher(), key_equal(), a)
|
|
1345
|
+
{
|
|
1346
|
+
this->insert_range(std::forward<R>(rg));
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
template <class T, class H, class P, class A>
|
|
1350
|
+
template <
|
|
1351
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1352
|
+
detail::container_compatible_range<T> R
|
|
1353
|
+
>
|
|
1354
|
+
unordered_set<T, H, P, A>::unordered_set(FromRangeT&&, R&& rg,
|
|
1355
|
+
size_type n, const hasher& hf, const allocator_type& a)
|
|
1356
|
+
: table_(
|
|
1357
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1358
|
+
hf, key_equal(), a)
|
|
1359
|
+
{
|
|
1360
|
+
this->insert_range(std::forward<R>(rg));
|
|
1361
|
+
}
|
|
1362
|
+
#endif
|
|
1363
|
+
|
|
1118
1364
|
template <class T, class H, class P, class A>
|
|
1119
1365
|
unordered_set<T, H, P, A>::unordered_set(
|
|
1120
1366
|
std::initializer_list<value_type> list, const allocator_type& a)
|
|
@@ -1187,6 +1433,20 @@ namespace boost {
|
|
|
1187
1433
|
}
|
|
1188
1434
|
}
|
|
1189
1435
|
|
|
1436
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1437
|
+
template <class T, class H, class P, class A>
|
|
1438
|
+
template <detail::container_compatible_range<T> R>
|
|
1439
|
+
void unordered_set<T, H, P, A>::insert_range(R&& rg)
|
|
1440
|
+
{
|
|
1441
|
+
auto first = std::ranges::begin(rg);
|
|
1442
|
+
auto last = std::ranges::end(rg);
|
|
1443
|
+
if (first != last) {
|
|
1444
|
+
table_.insert_range_unique(
|
|
1445
|
+
table::extractor::extract(*first), first, last);
|
|
1446
|
+
}
|
|
1447
|
+
}
|
|
1448
|
+
#endif
|
|
1449
|
+
|
|
1190
1450
|
template <class T, class H, class P, class A>
|
|
1191
1451
|
void unordered_set<T, H, P, A>::insert(
|
|
1192
1452
|
std::initializer_list<value_type> list)
|
|
@@ -1420,6 +1680,23 @@ namespace boost {
|
|
|
1420
1680
|
this->insert(f, l);
|
|
1421
1681
|
}
|
|
1422
1682
|
|
|
1683
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1684
|
+
template <class T, class H, class P, class A>
|
|
1685
|
+
template <
|
|
1686
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1687
|
+
detail::container_compatible_range<T> R
|
|
1688
|
+
>
|
|
1689
|
+
unordered_multiset<T, H, P, A>::unordered_multiset(FromRangeT&&, R&& rg,
|
|
1690
|
+
size_type n, const hasher& hf, const key_equal& eql,
|
|
1691
|
+
const allocator_type& a)
|
|
1692
|
+
: table_(
|
|
1693
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1694
|
+
hf, eql, a)
|
|
1695
|
+
{
|
|
1696
|
+
this->insert_range(std::forward<R>(rg));
|
|
1697
|
+
}
|
|
1698
|
+
#endif
|
|
1699
|
+
|
|
1423
1700
|
template <class T, class H, class P, class A>
|
|
1424
1701
|
unordered_multiset<T, H, P, A>::unordered_multiset(
|
|
1425
1702
|
unordered_multiset const& other)
|
|
@@ -1513,6 +1790,51 @@ namespace boost {
|
|
|
1513
1790
|
this->insert(f, l);
|
|
1514
1791
|
}
|
|
1515
1792
|
|
|
1793
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1794
|
+
template <class T, class H, class P, class A>
|
|
1795
|
+
template <
|
|
1796
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1797
|
+
detail::container_compatible_range<T> R
|
|
1798
|
+
>
|
|
1799
|
+
unordered_multiset<T, H, P, A>::unordered_multiset(
|
|
1800
|
+
FromRangeT&&, R&& rg, const allocator_type& a)
|
|
1801
|
+
: table_(
|
|
1802
|
+
boost::unordered::detail::initial_size(
|
|
1803
|
+
std::forward<R>(rg), detail::default_bucket_count),
|
|
1804
|
+
hasher(), key_equal(), a)
|
|
1805
|
+
{
|
|
1806
|
+
this->insert_range(std::forward<R>(rg));
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
template <class T, class H, class P, class A>
|
|
1810
|
+
template <
|
|
1811
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1812
|
+
detail::container_compatible_range<T> R
|
|
1813
|
+
>
|
|
1814
|
+
unordered_multiset<T, H, P, A>::unordered_multiset(
|
|
1815
|
+
FromRangeT&&, R&& rg, size_type n, const allocator_type& a)
|
|
1816
|
+
: table_(
|
|
1817
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1818
|
+
hasher(), key_equal(), a)
|
|
1819
|
+
{
|
|
1820
|
+
this->insert_range(std::forward<R>(rg));
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
template <class T, class H, class P, class A>
|
|
1824
|
+
template <
|
|
1825
|
+
detail::convertible_to_from_range_t FromRangeT,
|
|
1826
|
+
detail::container_compatible_range<T> R
|
|
1827
|
+
>
|
|
1828
|
+
unordered_multiset<T, H, P, A>::unordered_multiset(FromRangeT&&, R&& rg,
|
|
1829
|
+
size_type n, const hasher& hf, const allocator_type& a)
|
|
1830
|
+
: table_(
|
|
1831
|
+
boost::unordered::detail::initial_size(std::forward<R>(rg), n),
|
|
1832
|
+
hf, key_equal(), a)
|
|
1833
|
+
{
|
|
1834
|
+
this->insert_range(std::forward<R>(rg));
|
|
1835
|
+
}
|
|
1836
|
+
#endif
|
|
1837
|
+
|
|
1516
1838
|
template <class T, class H, class P, class A>
|
|
1517
1839
|
unordered_multiset<T, H, P, A>::unordered_multiset(
|
|
1518
1840
|
std::initializer_list<value_type> list, const allocator_type& a)
|
|
@@ -1582,6 +1904,16 @@ namespace boost {
|
|
|
1582
1904
|
table_.insert_range_equiv(first, last);
|
|
1583
1905
|
}
|
|
1584
1906
|
|
|
1907
|
+
#if !defined(BOOST_UNORDERED_NO_RANGES)
|
|
1908
|
+
template <class T, class H, class P, class A>
|
|
1909
|
+
template <detail::container_compatible_range<T> R>
|
|
1910
|
+
void unordered_multiset<T, H, P, A>::insert_range(R&& rg)
|
|
1911
|
+
{
|
|
1912
|
+
table_.insert_range_equiv(
|
|
1913
|
+
std::ranges::begin(rg), std::ranges::end(rg));
|
|
1914
|
+
}
|
|
1915
|
+
#endif
|
|
1916
|
+
|
|
1585
1917
|
template <class T, class H, class P, class A>
|
|
1586
1918
|
void unordered_multiset<T, H, P, A>::insert(
|
|
1587
1919
|
std::initializer_list<value_type> list)
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// BOOST_VERSION / 100 % 1000 is the minor version
|
|
20
20
|
// BOOST_VERSION / 100000 is the major version
|
|
21
21
|
|
|
22
|
-
#define BOOST_VERSION
|
|
22
|
+
#define BOOST_VERSION 109200
|
|
23
23
|
|
|
24
24
|
//
|
|
25
25
|
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
// number, y is the minor version number, and z is the patch level if not 0.
|
|
28
28
|
// This is used by <config/auto_link.hpp> to select which library version to link to.
|
|
29
29
|
|
|
30
|
-
#define BOOST_LIB_VERSION "
|
|
30
|
+
#define BOOST_LIB_VERSION "1_92"
|
|
31
31
|
|
|
32
32
|
#endif
|