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
|
@@ -69,13 +69,13 @@
|
|
|
69
69
|
{};
|
|
70
70
|
|
|
71
71
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\
|
|
72
|
-
|
|
72
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
73
73
|
{ return FWD_FUNCTION(static_cast<const TYPE&>(x)); }\
|
|
74
74
|
\
|
|
75
|
-
|
|
75
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
76
76
|
{ return FWD_FUNCTION(::boost::move(x)); }\
|
|
77
77
|
\
|
|
78
|
-
|
|
78
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(TYPE &x)\
|
|
79
79
|
{ return FWD_FUNCTION(const_cast<const TYPE &>(x)); }\
|
|
80
80
|
//
|
|
81
81
|
#if defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN)
|
|
@@ -83,12 +83,12 @@
|
|
|
83
83
|
BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\
|
|
84
84
|
\
|
|
85
85
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
86
|
-
|
|
86
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u,\
|
|
87
87
|
typename boost_move_conversion_aware_catch_1< ::boost::move_detail::nat, BOOST_MOVE_TEMPL_PARAM, TYPE>::type* = 0)\
|
|
88
88
|
{ return FWD_FUNCTION(u); }\
|
|
89
89
|
\
|
|
90
90
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
91
|
-
|
|
91
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u,\
|
|
92
92
|
typename boost_move_conversion_aware_catch_2< ::boost::move_detail::nat, BOOST_MOVE_TEMPL_PARAM, TYPE>::type* = 0)\
|
|
93
93
|
{\
|
|
94
94
|
TYPE t((u));\
|
|
@@ -100,12 +100,12 @@
|
|
|
100
100
|
BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\
|
|
101
101
|
\
|
|
102
102
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
103
|
-
|
|
103
|
+
BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1<RETURN_VALUE, BOOST_MOVE_TEMPL_PARAM, TYPE>::type\
|
|
104
104
|
PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\
|
|
105
105
|
{ return FWD_FUNCTION(u); }\
|
|
106
106
|
\
|
|
107
107
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
108
|
-
|
|
108
|
+
BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_2<RETURN_VALUE, BOOST_MOVE_TEMPL_PARAM, TYPE>::type\
|
|
109
109
|
PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\
|
|
110
110
|
{\
|
|
111
111
|
TYPE t((u));\
|
|
@@ -116,14 +116,14 @@
|
|
|
116
116
|
#elif (defined(_MSC_VER) && (_MSC_VER == 1600))
|
|
117
117
|
|
|
118
118
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\
|
|
119
|
-
|
|
119
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
120
120
|
{ return FWD_FUNCTION(static_cast<const TYPE&>(x)); }\
|
|
121
121
|
\
|
|
122
|
-
|
|
122
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
123
123
|
{ return FWD_FUNCTION(::boost::move(x)); }\
|
|
124
124
|
\
|
|
125
125
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
126
|
-
|
|
126
|
+
BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c\
|
|
127
127
|
< !::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM>::value\
|
|
128
128
|
, RETURN_VALUE >::type\
|
|
129
129
|
PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\
|
|
@@ -136,10 +136,10 @@
|
|
|
136
136
|
#else //BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
137
137
|
|
|
138
138
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\
|
|
139
|
-
|
|
139
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
140
140
|
{ return FWD_FUNCTION(x); }\
|
|
141
141
|
\
|
|
142
|
-
|
|
142
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
143
143
|
{ return FWD_FUNCTION(::boost::move(x)); }\
|
|
144
144
|
//
|
|
145
145
|
|
|
@@ -174,13 +174,13 @@
|
|
|
174
174
|
{};
|
|
175
175
|
|
|
176
176
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\
|
|
177
|
-
|
|
177
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
178
178
|
{ return FWD_FUNCTION(arg1, static_cast<const TYPE&>(x)); }\
|
|
179
179
|
\
|
|
180
|
-
|
|
180
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
181
181
|
{ return FWD_FUNCTION(arg1, ::boost::move(x)); }\
|
|
182
182
|
\
|
|
183
|
-
|
|
183
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, TYPE &x)\
|
|
184
184
|
{ return FWD_FUNCTION(arg1, const_cast<const TYPE &>(x)); }\
|
|
185
185
|
//
|
|
186
186
|
#if defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN)
|
|
@@ -188,12 +188,12 @@
|
|
|
188
188
|
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\
|
|
189
189
|
\
|
|
190
190
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
191
|
-
|
|
191
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u,\
|
|
192
192
|
typename boost_move_conversion_aware_catch_1arg_1<void, BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO, TYPE>::type* = 0)\
|
|
193
193
|
{ return FWD_FUNCTION(arg1, u); }\
|
|
194
194
|
\
|
|
195
195
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
196
|
-
|
|
196
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u,\
|
|
197
197
|
typename boost_move_conversion_aware_catch_1arg_2<void, BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO, TYPE>::type* = 0)\
|
|
198
198
|
{\
|
|
199
199
|
TYPE t((u));\
|
|
@@ -205,12 +205,12 @@
|
|
|
205
205
|
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\
|
|
206
206
|
\
|
|
207
207
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
208
|
-
|
|
208
|
+
BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1arg_1<RETURN_VALUE, BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO, TYPE>::type\
|
|
209
209
|
PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\
|
|
210
210
|
{ return FWD_FUNCTION(arg1, u); }\
|
|
211
211
|
\
|
|
212
212
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
213
|
-
|
|
213
|
+
BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1arg_2<RETURN_VALUE, BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO, TYPE>::type\
|
|
214
214
|
PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\
|
|
215
215
|
{\
|
|
216
216
|
TYPE t((u));\
|
|
@@ -222,14 +222,14 @@
|
|
|
222
222
|
#elif (defined(_MSC_VER) && (_MSC_VER == 1600))
|
|
223
223
|
|
|
224
224
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\
|
|
225
|
-
|
|
225
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
226
226
|
{ return FWD_FUNCTION(arg1, static_cast<const TYPE&>(x)); }\
|
|
227
227
|
\
|
|
228
|
-
|
|
228
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
229
229
|
{ return FWD_FUNCTION(arg1, ::boost::move(x)); }\
|
|
230
230
|
\
|
|
231
231
|
template<class BOOST_MOVE_TEMPL_PARAM>\
|
|
232
|
-
|
|
232
|
+
BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::disable_if_or\
|
|
233
233
|
< RETURN_VALUE \
|
|
234
234
|
, ::boost::move_detail::is_same<TYPE, BOOST_MOVE_TEMPL_PARAM> \
|
|
235
235
|
, ::boost::move_detail::is_same_or_convertible<BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO> \
|
|
@@ -244,10 +244,10 @@
|
|
|
244
244
|
#else
|
|
245
245
|
|
|
246
246
|
#define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\
|
|
247
|
-
|
|
247
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\
|
|
248
248
|
{ return FWD_FUNCTION(arg1, static_cast<const TYPE&>(x)); }\
|
|
249
249
|
\
|
|
250
|
-
|
|
250
|
+
BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \
|
|
251
251
|
{ return FWD_FUNCTION(arg1, ::boost::move(x)); }\
|
|
252
252
|
//
|
|
253
253
|
|
|
@@ -115,7 +115,7 @@ struct QPFHolder
|
|
|
115
115
|
template<int Dummy>
|
|
116
116
|
const double QPFHolder<Dummy>::nanosecs_per_tic = get_nsec_per_tic();
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
BOOST_MOVE_FORCEINLINE boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
119
119
|
{
|
|
120
120
|
double nanosecs_per_tic = QPFHolder<0>::nanosecs_per_tic;
|
|
121
121
|
|
|
@@ -132,7 +132,9 @@ inline boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
|
132
132
|
|
|
133
133
|
#include <mach/mach_time.h> // mach_absolute_time, mach_timebase_info_data_t
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
namespace boost { namespace move_detail {
|
|
136
|
+
|
|
137
|
+
BOOST_MOVE_FORCEINLINE boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
136
138
|
{
|
|
137
139
|
boost::uint64_t count = ::mach_absolute_time();
|
|
138
140
|
|
|
@@ -142,6 +144,8 @@ inline boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
|
142
144
|
( static_cast<double>(count)*(static_cast<double>(info.numer) / info.denom) );
|
|
143
145
|
}
|
|
144
146
|
|
|
147
|
+
}} //namespace boost { namespace move_detail {
|
|
148
|
+
|
|
145
149
|
#elif defined(BOOST_MOVE_DETAIL_POSIX_API)
|
|
146
150
|
|
|
147
151
|
#include <time.h>
|
|
@@ -158,7 +162,9 @@ inline boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
|
158
162
|
# error "No high resolution steady clock in your system, please provide a patch"
|
|
159
163
|
# endif
|
|
160
164
|
|
|
161
|
-
|
|
165
|
+
namespace boost { namespace move_detail {
|
|
166
|
+
|
|
167
|
+
BOOST_MOVE_FORCEINLINE boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
162
168
|
{
|
|
163
169
|
struct timespec count;
|
|
164
170
|
::clock_gettime(BOOST_MOVE_DETAIL_CLOCK_MONOTONIC, &count);
|
|
@@ -168,6 +174,8 @@ inline boost::uint64_t nsec_clock() BOOST_NOEXCEPT
|
|
|
168
174
|
return r;
|
|
169
175
|
}
|
|
170
176
|
|
|
177
|
+
}} //namespace boost { namespace move_detail {
|
|
178
|
+
|
|
171
179
|
#endif // POSIX
|
|
172
180
|
|
|
173
181
|
namespace boost { namespace move_detail {
|
|
@@ -198,7 +206,7 @@ class cpu_timer
|
|
|
198
206
|
public:
|
|
199
207
|
|
|
200
208
|
// constructor
|
|
201
|
-
cpu_timer() BOOST_NOEXCEPT
|
|
209
|
+
cpu_timer() BOOST_NOEXCEPT : m_is_stopped(true) {}
|
|
202
210
|
|
|
203
211
|
// observers
|
|
204
212
|
bool is_stopped() const BOOST_NOEXCEPT { return m_is_stopped; }
|
|
@@ -1352,6 +1352,82 @@ struct aligned_storage
|
|
|
1352
1352
|
} //namespace move_detail {
|
|
1353
1353
|
} //namespace boost {
|
|
1354
1354
|
|
|
1355
|
+
|
|
1356
|
+
#include <boost/move/detail/std_ns_begin.hpp>
|
|
1357
|
+
BOOST_MOVE_STD_NS_BEG
|
|
1358
|
+
|
|
1359
|
+
template<class T1, class T2>
|
|
1360
|
+
struct pair;
|
|
1361
|
+
|
|
1362
|
+
BOOST_MOVE_STD_NS_END
|
|
1363
|
+
#include <boost/move/detail/std_ns_end.hpp>
|
|
1364
|
+
|
|
1365
|
+
namespace boost {
|
|
1366
|
+
namespace move_detail {
|
|
1367
|
+
|
|
1368
|
+
template<class A, class B>
|
|
1369
|
+
struct is_trivially_copy_assignable<std::pair<A,B> >
|
|
1370
|
+
{
|
|
1371
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_copy_assignable<A>::value &&
|
|
1372
|
+
boost::move_detail::is_trivially_copy_assignable<B>::value;
|
|
1373
|
+
};
|
|
1374
|
+
|
|
1375
|
+
template<class A, class B>
|
|
1376
|
+
struct is_trivially_move_assignable<std::pair<A,B> >
|
|
1377
|
+
{
|
|
1378
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_move_assignable<A>::value &&
|
|
1379
|
+
boost::move_detail::is_trivially_move_assignable<B>::value;
|
|
1380
|
+
};
|
|
1381
|
+
|
|
1382
|
+
template<class A, class B>
|
|
1383
|
+
struct is_trivially_copy_constructible<std::pair<A,B> >
|
|
1384
|
+
{
|
|
1385
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_copy_constructible<A>::value &&
|
|
1386
|
+
boost::move_detail::is_trivially_copy_constructible<B>::value;
|
|
1387
|
+
};
|
|
1388
|
+
|
|
1389
|
+
template<class A, class B>
|
|
1390
|
+
struct is_trivially_move_constructible<std::pair<A,B> >
|
|
1391
|
+
{
|
|
1392
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_move_constructible<A>::value &&
|
|
1393
|
+
boost::move_detail::is_trivially_move_constructible<B>::value;
|
|
1394
|
+
};
|
|
1395
|
+
|
|
1396
|
+
template<class A, class B>
|
|
1397
|
+
struct is_trivially_destructible<std::pair<A,B> >
|
|
1398
|
+
{
|
|
1399
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::move_detail::is_trivially_destructible<A>::value &&
|
|
1400
|
+
boost::move_detail::is_trivially_destructible<B>::value;
|
|
1401
|
+
};
|
|
1402
|
+
|
|
1403
|
+
template <class T1, class T2>
|
|
1404
|
+
struct is_class< std::pair<T1, T2> >
|
|
1405
|
+
//This specialization is needed to avoid instantiation of pair in
|
|
1406
|
+
//is_class, and allow recursive maps.
|
|
1407
|
+
{
|
|
1408
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
|
1409
|
+
};
|
|
1410
|
+
|
|
1411
|
+
template <class T1, class T2>
|
|
1412
|
+
struct is_union< std::pair<T1, T2> >
|
|
1413
|
+
//This specialization is needed to avoid instantiation of pair in
|
|
1414
|
+
//is_class, and allow recursive maps.
|
|
1415
|
+
{
|
|
1416
|
+
BOOST_STATIC_CONSTEXPR bool value = false;
|
|
1417
|
+
};
|
|
1418
|
+
|
|
1419
|
+
template <class T1, class T2>
|
|
1420
|
+
struct is_class_or_union< std::pair<T1, T2> >
|
|
1421
|
+
//This specialization is needed to avoid instantiation of pair in
|
|
1422
|
+
//is_class, and allow recursive maps.
|
|
1423
|
+
{
|
|
1424
|
+
BOOST_STATIC_CONSTEXPR bool value = true;
|
|
1425
|
+
};
|
|
1426
|
+
|
|
1427
|
+
} //namespace move_detail {
|
|
1428
|
+
} //namespace boost {
|
|
1429
|
+
|
|
1430
|
+
|
|
1355
1431
|
#include <boost/move/detail/config_end.hpp>
|
|
1356
1432
|
|
|
1357
1433
|
#endif //#ifndef BOOST_MOVE_DETAIL_TYPE_TRAITS_HPP
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
#elif defined(BOOST_MSVC) && (_MSC_VER < 1900 || defined(_DEBUG))
|
|
62
62
|
//"__forceinline" and MSVC seems to have some bugs in old versions and in debug mode
|
|
63
63
|
#define BOOST_MOVE_FORCEINLINE inline
|
|
64
|
-
#elif defined(
|
|
64
|
+
#elif defined(BOOST_GCC) && (__GNUC__ <= 5)
|
|
65
65
|
//Older GCCs have problems with forceinline
|
|
66
66
|
//Clang can have code bloat issues with forceinline, see
|
|
67
67
|
//https://lists.boost.org/boost-users/2023/04/91445.php and
|
|
@@ -57,6 +57,17 @@ struct has_nothrow_move
|
|
|
57
57
|
boost::move_detail::is_nothrow_move_assignable<T>::value;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
+
#ifndef BOOST_MOVE_DOXYGEN_INVOKED
|
|
61
|
+
|
|
62
|
+
template<class A, class B>
|
|
63
|
+
struct has_trivial_destructor_after_move<std::pair<A,B> >
|
|
64
|
+
{
|
|
65
|
+
BOOST_STATIC_CONSTEXPR bool value = boost::has_trivial_destructor_after_move<A>::value &&
|
|
66
|
+
boost::has_trivial_destructor_after_move<B>::value;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
#endif
|
|
70
|
+
|
|
60
71
|
namespace move_detail {
|
|
61
72
|
|
|
62
73
|
template <class T>
|
|
@@ -153,13 +153,13 @@ template<class Q, class... L> using mp_transform_q = mp_transform<Q::template fn
|
|
|
153
153
|
namespace detail
|
|
154
154
|
{
|
|
155
155
|
|
|
156
|
+
template<class V, class T> using mp_transform_impl_f = mp_transform<mp_push_back, V, T>;
|
|
157
|
+
|
|
156
158
|
template<template<class...> class F, template<class...> class L1, class... T1, template<class...> class L2, class... T2, template<class...> class L3, class... T3, template<class...> class L4, class... T4, class... L> struct mp_transform_impl<F, L1<T1...>, L2<T2...>, L3<T3...>, L4<T4...>, L...>
|
|
157
159
|
{
|
|
158
160
|
using A1 = L1<mp_list<T1, T2, T3, T4>...>;
|
|
159
161
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
using A2 = mp_fold<mp_list<L...>, A1, _f>;
|
|
162
|
+
using A2 = mp_fold<mp_list<L...>, A1, mp_transform_impl_f>;
|
|
163
163
|
|
|
164
164
|
template<class T> using _g = mp_apply<F, T>;
|
|
165
165
|
|
|
@@ -172,7 +172,7 @@ template<template<class...> class F, template<class...> class L1, class... T1, t
|
|
|
172
172
|
namespace detail
|
|
173
173
|
{
|
|
174
174
|
|
|
175
|
-
template<template<class...> class P, template<class...> class F
|
|
175
|
+
template<template<class...> class P, template<class...> class F> struct mp_transform_if_impl_f
|
|
176
176
|
{
|
|
177
177
|
// the stupid quote-unquote dance avoids "pack expansion used as argument for non-pack parameter of alias template"
|
|
178
178
|
|
|
@@ -181,16 +181,19 @@ template<template<class...> class P, template<class...> class F, class... L> str
|
|
|
181
181
|
|
|
182
182
|
#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1920 )
|
|
183
183
|
|
|
184
|
-
template<class... U> struct
|
|
185
|
-
template<class... U> using
|
|
184
|
+
template<class... U> struct _f { using type = mp_eval_if_q<mp_not<mp_invoke_q<Qp, U...>>, mp_first<mp_list<U...>>, Qf, U...>; };
|
|
185
|
+
template<class... U> using fn = typename _f<U...>::type;
|
|
186
186
|
|
|
187
187
|
#else
|
|
188
188
|
|
|
189
|
-
template<class... U> using
|
|
189
|
+
template<class... U> using fn = mp_eval_if_q<mp_not<mp_invoke_q<Qp, U...>>, mp_first<mp_list<U...>>, Qf, U...>;
|
|
190
190
|
|
|
191
191
|
#endif
|
|
192
|
+
};
|
|
192
193
|
|
|
193
|
-
|
|
194
|
+
template<template<class...> class P, template<class...> class F, class... L> struct mp_transform_if_impl
|
|
195
|
+
{
|
|
196
|
+
using type = mp_transform_q<mp_transform_if_impl_f<P, F>, L...>;
|
|
194
197
|
};
|
|
195
198
|
|
|
196
199
|
} // namespace detail
|
|
@@ -202,13 +205,16 @@ template<class Qp, class Qf, class... L> using mp_transform_if_q = typename deta
|
|
|
202
205
|
namespace detail
|
|
203
206
|
{
|
|
204
207
|
|
|
205
|
-
template<template<class...> class P
|
|
208
|
+
template<template<class...> class P> struct mp_filter_impl_f
|
|
206
209
|
{
|
|
207
210
|
using Qp = mp_quote<P>;
|
|
208
211
|
|
|
209
|
-
template<class T1, class... T> using
|
|
212
|
+
template<class T1, class... T> using fn = mp_if< mp_invoke_q<Qp, T1, T...>, mp_list<T1>, mp_list<> >;
|
|
213
|
+
};
|
|
210
214
|
|
|
211
|
-
|
|
215
|
+
template<template<class...> class P, class L1, class... L> struct mp_filter_impl
|
|
216
|
+
{
|
|
217
|
+
using _t1 = mp_transform_q<mp_filter_impl_f<P>, L1, L...>;
|
|
212
218
|
using _t2 = mp_apply<mp_append, _t1>;
|
|
213
219
|
|
|
214
220
|
using type = mp_assign<L1, _t2>;
|
|
@@ -228,6 +234,8 @@ template<class L, class V> struct mp_fill_impl
|
|
|
228
234
|
// An error "no type named 'type'" here means that the L argument of mp_fill is not a list
|
|
229
235
|
};
|
|
230
236
|
|
|
237
|
+
template<class T, class U> using mp_fill_impl_f = T;
|
|
238
|
+
|
|
231
239
|
template<template<class...> class L, class... T, class V> struct mp_fill_impl<L<T...>, V>
|
|
232
240
|
{
|
|
233
241
|
#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, <= 1900 )
|
|
@@ -237,8 +245,7 @@ template<template<class...> class L, class... T, class V> struct mp_fill_impl<L<
|
|
|
237
245
|
|
|
238
246
|
#else
|
|
239
247
|
|
|
240
|
-
|
|
241
|
-
using type = L<_f<T>...>;
|
|
248
|
+
using type = L< mp_fill_impl_f<V, T>... >;
|
|
242
249
|
|
|
243
250
|
#endif
|
|
244
251
|
};
|
|
@@ -329,11 +336,14 @@ namespace detail
|
|
|
329
336
|
|
|
330
337
|
template<class L, class L2, class En> struct mp_drop_impl;
|
|
331
338
|
|
|
332
|
-
template<template<class...> class L, class...
|
|
339
|
+
template<template<class...> class L, class... U> struct mp_drop_impl_f
|
|
333
340
|
{
|
|
334
341
|
template<class... W> static mp_identity<L<W...>> f( U*..., mp_identity<W>*... );
|
|
342
|
+
};
|
|
335
343
|
|
|
336
|
-
|
|
344
|
+
template<template<class...> class L, class... T, template<class...> class L2, class... U> struct mp_drop_impl<L<T...>, L2<U...>, mp_true>
|
|
345
|
+
{
|
|
346
|
+
using R = decltype( mp_drop_impl_f<L, U...>::f( static_cast<mp_identity<T>*>(0) ... ) );
|
|
337
347
|
|
|
338
348
|
using type = typename R::type;
|
|
339
349
|
};
|
|
@@ -524,8 +534,7 @@ template<template<class...> class L, class... T, class V, class W> struct mp_rep
|
|
|
524
534
|
template<class A> struct _f { using type = mp_if<std::is_same<A, V>, W, A>; };
|
|
525
535
|
using type = L<typename _f<T>::type...>;
|
|
526
536
|
#else
|
|
527
|
-
|
|
528
|
-
using type = L<_f<T>...>;
|
|
537
|
+
using type = L<mp_if<std::is_same<T, V>, W, T>...>;
|
|
529
538
|
#endif
|
|
530
539
|
};
|
|
531
540
|
|
|
@@ -545,8 +554,7 @@ template<template<class...> class L, class... T, template<class...> class P, cla
|
|
|
545
554
|
template<class U> struct _f { using type = mp_if<P<U>, W, U>; };
|
|
546
555
|
using type = L<typename _f<T>::type...>;
|
|
547
556
|
#else
|
|
548
|
-
|
|
549
|
-
using type = L<_f<T>...>;
|
|
557
|
+
using type = L<mp_if<P<T>, W, T>...>;
|
|
550
558
|
#endif
|
|
551
559
|
};
|
|
552
560
|
|
|
@@ -570,8 +578,7 @@ template<template<class...> class L, class... T, class V> struct mp_remove_impl<
|
|
|
570
578
|
template<class U> struct _f { using type = mp_if<std::is_same<U, V>, mp_list<>, mp_list<U>>; };
|
|
571
579
|
using type = mp_append<L<>, typename _f<T>::type...>;
|
|
572
580
|
#else
|
|
573
|
-
|
|
574
|
-
using type = mp_append<L<>, _f<T>...>;
|
|
581
|
+
using type = mp_append<L<>, mp_if<std::is_same<T, V>, mp_list<>, mp_list<T>>...>;
|
|
575
582
|
#endif
|
|
576
583
|
};
|
|
577
584
|
|
|
@@ -639,11 +646,14 @@ template<template<class...> class L, class T1, template<class...> class P> struc
|
|
|
639
646
|
using type = L<T1>;
|
|
640
647
|
};
|
|
641
648
|
|
|
642
|
-
template<
|
|
649
|
+
template<class T1, template<class...> class P> struct mp_sort_impl_f
|
|
643
650
|
{
|
|
644
|
-
template<class U> using
|
|
651
|
+
template<class U> using fn = P<U, T1>;
|
|
652
|
+
};
|
|
645
653
|
|
|
646
|
-
|
|
654
|
+
template<template<class...> class L, class T1, class... T, template<class...> class P> struct mp_sort_impl<L<T1, T...>, P>
|
|
655
|
+
{
|
|
656
|
+
using part = mp_partition_q<L<T...>, mp_sort_impl_f<T1, P>>;
|
|
647
657
|
|
|
648
658
|
using S1 = typename mp_sort_impl<mp_first<part>, P>::type;
|
|
649
659
|
using S2 = typename mp_sort_impl<mp_second<part>, P>::type;
|
|
@@ -672,9 +682,7 @@ template<template<class...> class L, class T1, class... T, std::size_t I, templa
|
|
|
672
682
|
{
|
|
673
683
|
static_assert( I < 1 + sizeof...(T), "mp_nth_element index out of range" );
|
|
674
684
|
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
using part = mp_partition<L<T...>, F>;
|
|
685
|
+
using part = mp_partition_q<L<T...>, mp_sort_impl_f<T1, P>>;
|
|
678
686
|
|
|
679
687
|
using L1 = mp_first<part>;
|
|
680
688
|
static std::size_t const N1 = mp_size<L1>::value;
|
|
@@ -1030,14 +1038,21 @@ template<class L, class Q> using mp_any_of_q = mp_any_of<L, Q::template fn>;
|
|
|
1030
1038
|
namespace detail
|
|
1031
1039
|
{
|
|
1032
1040
|
|
|
1041
|
+
template<class I> struct mp_replace_at_impl_p
|
|
1042
|
+
{
|
|
1043
|
+
template<class T1, class T2> using fn = std::is_same<T2, I>;
|
|
1044
|
+
};
|
|
1045
|
+
|
|
1046
|
+
template<class W> struct mp_replace_at_impl_f
|
|
1047
|
+
{
|
|
1048
|
+
template<class T1, class T2> using fn = W;
|
|
1049
|
+
};
|
|
1050
|
+
|
|
1033
1051
|
template<class L, class I, class W> struct mp_replace_at_impl
|
|
1034
1052
|
{
|
|
1035
1053
|
static_assert( I::value >= 0, "mp_replace_at<L, I, W>: I must not be negative" );
|
|
1036
1054
|
|
|
1037
|
-
|
|
1038
|
-
template<class T1, class T2> using _f = W;
|
|
1039
|
-
|
|
1040
|
-
using type = mp_transform_if<_p, _f, L, mp_iota<mp_size<L> > >;
|
|
1055
|
+
using type = mp_transform_if_q<mp_replace_at_impl_p<mp_size_t<I::value>>, mp_replace_at_impl_f<W>, L, mp_iota<mp_size<L> > >;
|
|
1041
1056
|
};
|
|
1042
1057
|
|
|
1043
1058
|
} // namespace detail
|
|
@@ -1182,13 +1197,16 @@ template<template<class...> class L> struct mp_power_set_impl< L<> >
|
|
|
1182
1197
|
|
|
1183
1198
|
#endif
|
|
1184
1199
|
|
|
1200
|
+
template<class T1> struct mp_power_set_impl_f
|
|
1201
|
+
{
|
|
1202
|
+
template<class L2> using fn = mp_push_front<L2, T1>;
|
|
1203
|
+
};
|
|
1204
|
+
|
|
1185
1205
|
template<template<class...> class L, class T1, class... T> struct mp_power_set_impl< L<T1, T...> >
|
|
1186
1206
|
{
|
|
1187
1207
|
using S1 = mp_power_set< L<T...> >;
|
|
1188
1208
|
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
using S2 = mp_transform<_f, S1>;
|
|
1209
|
+
using S2 = mp_transform_q<mp_power_set_impl_f<T1>, S1>;
|
|
1192
1210
|
|
|
1193
1211
|
using type = mp_append< S1, S2 >;
|
|
1194
1212
|
};
|
|
@@ -1260,15 +1278,18 @@ template<class L, template<class...> class F> using mp_pairwise_fold = mp_pairwi
|
|
|
1260
1278
|
namespace detail
|
|
1261
1279
|
{
|
|
1262
1280
|
|
|
1281
|
+
template<class L, std::size_t M> struct mp_sliding_fold_impl_f
|
|
1282
|
+
{
|
|
1283
|
+
template<class I> using fn = mp_slice_c<L, I::value, I::value + M>;
|
|
1284
|
+
};
|
|
1285
|
+
|
|
1263
1286
|
template<class C, class L, class Q, class S> struct mp_sliding_fold_impl;
|
|
1264
1287
|
|
|
1265
1288
|
template<class L, class N, class Q> struct mp_sliding_fold_impl<mp_true, L, N, Q>
|
|
1266
1289
|
{
|
|
1267
1290
|
static const std::size_t M = mp_size<L>::value - N::value + 1;
|
|
1268
1291
|
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
using J = mp_transform<F, mp_iota<N>>;
|
|
1292
|
+
using J = mp_transform_q<mp_sliding_fold_impl_f<L, M>, mp_iota<N>>;
|
|
1272
1293
|
|
|
1273
1294
|
using type = mp_apply<mp_transform_q, mp_push_front<J, Q>>;
|
|
1274
1295
|
};
|
|
@@ -32,8 +32,7 @@ template<template<class...> class L, class... T, template<class...> class P> str
|
|
|
32
32
|
template<class U> struct _f { using type = mp_if<P<U>, mp_list<U>, mp_list<>>; };
|
|
33
33
|
using type = mp_append<L<>, typename _f<T>::type...>;
|
|
34
34
|
#else
|
|
35
|
-
|
|
36
|
-
using type = mp_append<L<>, _f<T>...>;
|
|
35
|
+
using type = mp_append<L<>, mp_if<P<T>, mp_list<T>, mp_list<>>...>;
|
|
37
36
|
#endif
|
|
38
37
|
};
|
|
39
38
|
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
#include <boost/mp11/utility.hpp>
|
|
12
12
|
#include <boost/mp11/detail/config.hpp>
|
|
13
13
|
|
|
14
|
-
#if BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 140000 )
|
|
14
|
+
#if (BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 140000 ) && BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 140400 )) \
|
|
15
|
+
|| (BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 150000 ) && BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 150200 ))
|
|
15
16
|
|
|
16
17
|
#include <boost/mp11/detail/mp_list.hpp>
|
|
17
18
|
#include <boost/mp11/detail/mp_append.hpp>
|
|
@@ -34,20 +35,24 @@ namespace boost
|
|
|
34
35
|
namespace mp11
|
|
35
36
|
{
|
|
36
37
|
|
|
37
|
-
#if BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 140000 )
|
|
38
|
+
#if (BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 140000 ) && BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 140400 )) \
|
|
39
|
+
|| (BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, >= 150000 ) && BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 150200 ))
|
|
38
40
|
|
|
39
41
|
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120161
|
|
40
42
|
|
|
41
43
|
namespace detail
|
|
42
44
|
{
|
|
43
45
|
|
|
46
|
+
template<class K, class T> struct mp_map_find_impl_k
|
|
47
|
+
{
|
|
48
|
+
using type = mp_if<std::is_same<mp_front<T>, K>, mp_list<T>, mp_list<>>;
|
|
49
|
+
};
|
|
50
|
+
|
|
44
51
|
template<class M, class K> struct mp_map_find_impl;
|
|
45
52
|
|
|
46
53
|
template<template<class...> class M, class... T, class K> struct mp_map_find_impl<M<T...>, K>
|
|
47
54
|
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
using _l = mp_append<_f<T>..., mp_list<void>>;
|
|
55
|
+
using _l = mp_append<typename mp_map_find_impl_k<K, T>::type..., mp_list<void>>;
|
|
51
56
|
|
|
52
57
|
using type = mp_front<_l>;
|
|
53
58
|
};
|
|
@@ -99,14 +104,17 @@ template<class T> using mpmf_unwrap = typename mpmf_unwrap_impl<T>::type;
|
|
|
99
104
|
|
|
100
105
|
template<class M, class K> struct mp_map_find_impl;
|
|
101
106
|
|
|
102
|
-
template<
|
|
107
|
+
template<class K> struct mp_map_find_impl_f
|
|
103
108
|
{
|
|
104
|
-
using U = mp_inherit<mpmf_wrap<T>...>;
|
|
105
|
-
|
|
106
109
|
template<template<class...> class L, class... U> static mp_identity<L<K, U...>> f( mp_identity<L<K, U...>>* );
|
|
107
110
|
static mp_identity<void> f( ... );
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
template<template<class...> class M, class... T, class K> struct mp_map_find_impl<M<T...>, K>
|
|
114
|
+
{
|
|
115
|
+
using U = mp_inherit<mpmf_wrap<T>...>;
|
|
108
116
|
|
|
109
|
-
using type = mpmf_unwrap< decltype( f( static_cast<U*>(0) ) ) >;
|
|
117
|
+
using type = mpmf_unwrap< decltype( mp_map_find_impl_f<K>::f( static_cast<U*>(0) ) ) >;
|
|
110
118
|
};
|
|
111
119
|
|
|
112
120
|
} // namespace detail
|
|
@@ -32,8 +32,7 @@ template<template<class...> class L, class... T, template<class...> class P> str
|
|
|
32
32
|
template<class U> struct _f { using type = mp_if<P<U>, mp_list<>, mp_list<U>>; };
|
|
33
33
|
using type = mp_append<L<>, typename _f<T>::type...>;
|
|
34
34
|
#else
|
|
35
|
-
|
|
36
|
-
using type = mp_append<L<>, _f<T>...>;
|
|
35
|
+
using type = mp_append<L<>, mp_if<P<T>, mp_list<>, mp_list<T>>...>;
|
|
37
36
|
#endif
|
|
38
37
|
};
|
|
39
38
|
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
#if defined(__has_builtin)
|
|
20
20
|
# if __has_builtin(__make_integer_seq)
|
|
21
21
|
# define BOOST_MP11_HAS_MAKE_INTEGER_SEQ
|
|
22
|
+
# elif __has_builtin(__integer_pack)
|
|
23
|
+
# define BOOST_MP11_HAS_INTEGER_PACK
|
|
22
24
|
# endif
|
|
23
25
|
#endif
|
|
24
26
|
|
|
@@ -36,6 +38,10 @@ template<class T, T... I> struct integer_sequence
|
|
|
36
38
|
|
|
37
39
|
template<class T, T N> using make_integer_sequence = __make_integer_seq<integer_sequence, T, N>;
|
|
38
40
|
|
|
41
|
+
#elif defined(BOOST_MP11_HAS_INTEGER_PACK)
|
|
42
|
+
|
|
43
|
+
template<class T, T N> using make_integer_sequence = integer_sequence<T, __integer_pack(N)...>;
|
|
44
|
+
|
|
39
45
|
#else
|
|
40
46
|
|
|
41
47
|
// detail::make_integer_sequence_impl
|