passenger 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +32 -2
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +15 -19
- data/bin/passenger-install-nginx-module +42 -44
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -3
- data/dev/copy_boost_headers +54 -40
- data/dev/ruby_server.rb +1 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
- data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
- data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ContentHandler.c +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +26 -99
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
// See http://www.boost.org/libs/smart_ptr/ for documentation.
|
|
14
14
|
//
|
|
15
15
|
|
|
16
|
+
#include <boost/smart_ptr/detail/sp_cxx20_constexpr.hpp>
|
|
16
17
|
#include <boost/smart_ptr/detail/sp_convertible.hpp>
|
|
17
18
|
#include <boost/smart_ptr/detail/sp_noexcept.hpp>
|
|
18
19
|
#include <boost/assert.hpp>
|
|
@@ -53,29 +54,29 @@ public:
|
|
|
53
54
|
{
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
intrusive_ptr( T * p, bool add_ref = true ): px( p )
|
|
57
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr( T * p, bool add_ref = true ): px( p )
|
|
57
58
|
{
|
|
58
59
|
if( px != 0 && add_ref ) intrusive_ptr_add_ref( px );
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
template<class U>
|
|
62
|
-
intrusive_ptr( intrusive_ptr<U> const & rhs, typename boost::detail::sp_enable_if_convertible<U,T>::type = boost::detail::sp_empty() )
|
|
63
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr( intrusive_ptr<U> const & rhs, typename boost::detail::sp_enable_if_convertible<U,T>::type = boost::detail::sp_empty() )
|
|
63
64
|
: px( rhs.get() )
|
|
64
65
|
{
|
|
65
66
|
if( px != 0 ) intrusive_ptr_add_ref( px );
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )
|
|
69
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )
|
|
69
70
|
{
|
|
70
71
|
if( px != 0 ) intrusive_ptr_add_ref( px );
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
~intrusive_ptr()
|
|
74
|
+
BOOST_SP_CXX20_CONSTEXPR ~intrusive_ptr()
|
|
74
75
|
{
|
|
75
76
|
if( px != 0 ) intrusive_ptr_release( px );
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)
|
|
79
|
+
template<class U> BOOST_SP_CXX20_CONSTEXPR intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)
|
|
79
80
|
{
|
|
80
81
|
this_type(rhs).swap(*this);
|
|
81
82
|
return *this;
|
|
@@ -83,12 +84,12 @@ public:
|
|
|
83
84
|
|
|
84
85
|
// Move support
|
|
85
86
|
|
|
86
|
-
intrusive_ptr(intrusive_ptr && rhs) noexcept : px( rhs.px )
|
|
87
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr(intrusive_ptr && rhs) noexcept : px( rhs.px )
|
|
87
88
|
{
|
|
88
89
|
rhs.px = 0;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
|
-
intrusive_ptr & operator=(intrusive_ptr && rhs) noexcept
|
|
92
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr & operator=(intrusive_ptr && rhs) noexcept
|
|
92
93
|
{
|
|
93
94
|
this_type( static_cast< intrusive_ptr && >( rhs ) ).swap(*this);
|
|
94
95
|
return *this;
|
|
@@ -97,76 +98,76 @@ public:
|
|
|
97
98
|
template<class U> friend class intrusive_ptr;
|
|
98
99
|
|
|
99
100
|
template<class U>
|
|
100
|
-
intrusive_ptr(intrusive_ptr<U> && rhs, typename boost::detail::sp_enable_if_convertible<U,T>::type = boost::detail::sp_empty())
|
|
101
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr(intrusive_ptr<U> && rhs, typename boost::detail::sp_enable_if_convertible<U,T>::type = boost::detail::sp_empty())
|
|
101
102
|
: px( rhs.px )
|
|
102
103
|
{
|
|
103
104
|
rhs.px = 0;
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
template<class U>
|
|
107
|
-
intrusive_ptr & operator=(intrusive_ptr<U> && rhs) noexcept
|
|
108
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr & operator=(intrusive_ptr<U> && rhs) noexcept
|
|
108
109
|
{
|
|
109
110
|
this_type( static_cast< intrusive_ptr<U> && >( rhs ) ).swap(*this);
|
|
110
111
|
return *this;
|
|
111
112
|
}
|
|
112
113
|
|
|
113
|
-
intrusive_ptr & operator=(intrusive_ptr const & rhs)
|
|
114
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr & operator=(intrusive_ptr const & rhs)
|
|
114
115
|
{
|
|
115
116
|
this_type(rhs).swap(*this);
|
|
116
117
|
return *this;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
intrusive_ptr & operator=(T * rhs)
|
|
120
|
+
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr & operator=(T * rhs)
|
|
120
121
|
{
|
|
121
122
|
this_type(rhs).swap(*this);
|
|
122
123
|
return *this;
|
|
123
124
|
}
|
|
124
125
|
|
|
125
|
-
void reset()
|
|
126
|
+
BOOST_SP_CXX20_CONSTEXPR void reset()
|
|
126
127
|
{
|
|
127
128
|
this_type().swap( *this );
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
void reset( T * rhs )
|
|
131
|
+
BOOST_SP_CXX20_CONSTEXPR void reset( T * rhs )
|
|
131
132
|
{
|
|
132
133
|
this_type( rhs ).swap( *this );
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
void reset( T * rhs, bool add_ref )
|
|
136
|
+
BOOST_SP_CXX20_CONSTEXPR void reset( T * rhs, bool add_ref )
|
|
136
137
|
{
|
|
137
138
|
this_type( rhs, add_ref ).swap( *this );
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
T * get() const noexcept
|
|
141
|
+
BOOST_SP_CXX20_CONSTEXPR T * get() const noexcept
|
|
141
142
|
{
|
|
142
143
|
return px;
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
T * detach() noexcept
|
|
146
|
+
BOOST_SP_CXX20_CONSTEXPR T * detach() noexcept
|
|
146
147
|
{
|
|
147
148
|
T * ret = px;
|
|
148
149
|
px = 0;
|
|
149
150
|
return ret;
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
T & operator*() const BOOST_SP_NOEXCEPT_WITH_ASSERT
|
|
153
|
+
BOOST_SP_CXX20_CONSTEXPR T & operator*() const BOOST_SP_NOEXCEPT_WITH_ASSERT
|
|
153
154
|
{
|
|
154
155
|
BOOST_ASSERT( px != 0 );
|
|
155
156
|
return *px;
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
T * operator->() const BOOST_SP_NOEXCEPT_WITH_ASSERT
|
|
159
|
+
BOOST_SP_CXX20_CONSTEXPR T * operator->() const BOOST_SP_NOEXCEPT_WITH_ASSERT
|
|
159
160
|
{
|
|
160
161
|
BOOST_ASSERT( px != 0 );
|
|
161
162
|
return px;
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
explicit operator bool () const noexcept
|
|
165
|
+
BOOST_SP_CXX20_CONSTEXPR explicit operator bool () const noexcept
|
|
165
166
|
{
|
|
166
167
|
return px != 0;
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
void swap(intrusive_ptr & rhs) noexcept
|
|
170
|
+
BOOST_SP_CXX20_CONSTEXPR void swap(intrusive_ptr & rhs) noexcept
|
|
170
171
|
{
|
|
171
172
|
T * tmp = px;
|
|
172
173
|
px = rhs.px;
|
|
@@ -178,101 +179,101 @@ private:
|
|
|
178
179
|
T * px;
|
|
179
180
|
};
|
|
180
181
|
|
|
181
|
-
template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) noexcept
|
|
182
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) noexcept
|
|
182
183
|
{
|
|
183
184
|
return a.get() == b.get();
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) noexcept
|
|
187
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) noexcept
|
|
187
188
|
{
|
|
188
189
|
return a.get() != b.get();
|
|
189
190
|
}
|
|
190
191
|
|
|
191
|
-
template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, U * b) noexcept
|
|
192
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator==(intrusive_ptr<T> const & a, U * b) noexcept
|
|
192
193
|
{
|
|
193
194
|
return a.get() == b;
|
|
194
195
|
}
|
|
195
196
|
|
|
196
|
-
template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, U * b) noexcept
|
|
197
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator!=(intrusive_ptr<T> const & a, U * b) noexcept
|
|
197
198
|
{
|
|
198
199
|
return a.get() != b;
|
|
199
200
|
}
|
|
200
201
|
|
|
201
|
-
template<class T, class U> inline bool operator==(T * a, intrusive_ptr<U> const & b) noexcept
|
|
202
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator==(T * a, intrusive_ptr<U> const & b) noexcept
|
|
202
203
|
{
|
|
203
204
|
return a == b.get();
|
|
204
205
|
}
|
|
205
206
|
|
|
206
|
-
template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const & b) noexcept
|
|
207
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline bool operator!=(T * a, intrusive_ptr<U> const & b) noexcept
|
|
207
208
|
{
|
|
208
209
|
return a != b.get();
|
|
209
210
|
}
|
|
210
211
|
|
|
211
|
-
template<class T> inline bool operator==( intrusive_ptr<T> const & p, std::nullptr_t ) noexcept
|
|
212
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline bool operator==( intrusive_ptr<T> const & p, std::nullptr_t ) noexcept
|
|
212
213
|
{
|
|
213
214
|
return p.get() == 0;
|
|
214
215
|
}
|
|
215
216
|
|
|
216
|
-
template<class T> inline bool operator==( std::nullptr_t, intrusive_ptr<T> const & p ) noexcept
|
|
217
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline bool operator==( std::nullptr_t, intrusive_ptr<T> const & p ) noexcept
|
|
217
218
|
{
|
|
218
219
|
return p.get() == 0;
|
|
219
220
|
}
|
|
220
221
|
|
|
221
|
-
template<class T> inline bool operator!=( intrusive_ptr<T> const & p, std::nullptr_t ) noexcept
|
|
222
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline bool operator!=( intrusive_ptr<T> const & p, std::nullptr_t ) noexcept
|
|
222
223
|
{
|
|
223
224
|
return p.get() != 0;
|
|
224
225
|
}
|
|
225
226
|
|
|
226
|
-
template<class T> inline bool operator!=( std::nullptr_t, intrusive_ptr<T> const & p ) noexcept
|
|
227
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline bool operator!=( std::nullptr_t, intrusive_ptr<T> const & p ) noexcept
|
|
227
228
|
{
|
|
228
229
|
return p.get() != 0;
|
|
229
230
|
}
|
|
230
231
|
|
|
231
|
-
template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) noexcept
|
|
232
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) noexcept
|
|
232
233
|
{
|
|
233
234
|
return std::less<T *>()(a.get(), b.get());
|
|
234
235
|
}
|
|
235
236
|
|
|
236
|
-
template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs) noexcept
|
|
237
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs) noexcept
|
|
237
238
|
{
|
|
238
239
|
lhs.swap(rhs);
|
|
239
240
|
}
|
|
240
241
|
|
|
241
242
|
// mem_fn support
|
|
242
243
|
|
|
243
|
-
template<class T> T * get_pointer(intrusive_ptr<T> const & p) noexcept
|
|
244
|
+
template<class T> BOOST_SP_CXX20_CONSTEXPR inline T * get_pointer(intrusive_ptr<T> const & p) noexcept
|
|
244
245
|
{
|
|
245
246
|
return p.get();
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
// pointer casts
|
|
249
250
|
|
|
250
|
-
template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)
|
|
251
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)
|
|
251
252
|
{
|
|
252
253
|
return static_cast<T *>(p.get());
|
|
253
254
|
}
|
|
254
255
|
|
|
255
|
-
template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)
|
|
256
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)
|
|
256
257
|
{
|
|
257
258
|
return const_cast<T *>(p.get());
|
|
258
259
|
}
|
|
259
260
|
|
|
260
|
-
template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)
|
|
261
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)
|
|
261
262
|
{
|
|
262
263
|
return dynamic_cast<T *>(p.get());
|
|
263
264
|
}
|
|
264
265
|
|
|
265
|
-
template<class T, class U> intrusive_ptr<T> static_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
266
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> static_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
266
267
|
{
|
|
267
268
|
return intrusive_ptr<T>( static_cast<T*>( p.detach() ), false );
|
|
268
269
|
}
|
|
269
270
|
|
|
270
|
-
template<class T, class U> intrusive_ptr<T> const_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
271
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> const_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
271
272
|
{
|
|
272
273
|
return intrusive_ptr<T>( const_cast<T*>( p.detach() ), false );
|
|
273
274
|
}
|
|
274
275
|
|
|
275
|
-
template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
276
|
+
template<class T, class U> BOOST_SP_CXX20_CONSTEXPR inline intrusive_ptr<T> dynamic_pointer_cast( intrusive_ptr<U> && p ) noexcept
|
|
276
277
|
{
|
|
277
278
|
T * p2 = dynamic_cast<T*>( p.get() );
|
|
278
279
|
|
|
@@ -285,7 +286,7 @@ template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast( intrusive_ptr<
|
|
|
285
286
|
|
|
286
287
|
// operator<<
|
|
287
288
|
|
|
288
|
-
template<class Y> std::
|
|
289
|
+
template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
|
|
289
290
|
{
|
|
290
291
|
os << p.get();
|
|
291
292
|
return os;
|
|
@@ -22,15 +22,6 @@
|
|
|
22
22
|
namespace boost
|
|
23
23
|
{
|
|
24
24
|
|
|
25
|
-
// Debug hooks
|
|
26
|
-
|
|
27
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
28
|
-
|
|
29
|
-
void sp_array_constructor_hook(void * p);
|
|
30
|
-
void sp_array_destructor_hook(void * p);
|
|
31
|
-
|
|
32
|
-
#endif
|
|
33
|
-
|
|
34
25
|
// scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to
|
|
35
26
|
// is guaranteed, either on destruction of the scoped_array or via an explicit
|
|
36
27
|
// reset(). Use shared_array or std::vector if your needs are more complex.
|
|
@@ -55,16 +46,10 @@ public:
|
|
|
55
46
|
|
|
56
47
|
explicit scoped_array( T * p = 0 ) noexcept : px( p )
|
|
57
48
|
{
|
|
58
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
59
|
-
boost::sp_array_constructor_hook( px );
|
|
60
|
-
#endif
|
|
61
49
|
}
|
|
62
50
|
|
|
63
51
|
~scoped_array() noexcept
|
|
64
52
|
{
|
|
65
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
66
|
-
boost::sp_array_destructor_hook( px );
|
|
67
|
-
#endif
|
|
68
53
|
boost::checked_array_delete( px );
|
|
69
54
|
}
|
|
70
55
|
|
|
@@ -31,15 +31,6 @@
|
|
|
31
31
|
namespace boost
|
|
32
32
|
{
|
|
33
33
|
|
|
34
|
-
// Debug hooks
|
|
35
|
-
|
|
36
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
37
|
-
|
|
38
|
-
void sp_scalar_constructor_hook(void * p);
|
|
39
|
-
void sp_scalar_destructor_hook(void * p);
|
|
40
|
-
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
34
|
// scoped_ptr mimics a built-in pointer except that it guarantees deletion
|
|
44
35
|
// of the object pointed to, either on destruction of the scoped_ptr or via
|
|
45
36
|
// an explicit reset(). scoped_ptr is a simple solution for simple needs;
|
|
@@ -65,27 +56,18 @@ public:
|
|
|
65
56
|
|
|
66
57
|
explicit scoped_ptr( T * p = 0 ) noexcept : px( p )
|
|
67
58
|
{
|
|
68
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
69
|
-
boost::sp_scalar_constructor_hook( px );
|
|
70
|
-
#endif
|
|
71
59
|
}
|
|
72
60
|
|
|
73
61
|
#ifndef BOOST_NO_AUTO_PTR
|
|
74
62
|
|
|
75
63
|
explicit scoped_ptr( std::auto_ptr<T> p ) noexcept : px( p.release() )
|
|
76
64
|
{
|
|
77
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
78
|
-
boost::sp_scalar_constructor_hook( px );
|
|
79
|
-
#endif
|
|
80
65
|
}
|
|
81
66
|
|
|
82
67
|
#endif
|
|
83
68
|
|
|
84
69
|
~scoped_ptr() noexcept
|
|
85
70
|
{
|
|
86
|
-
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
|
|
87
|
-
boost::sp_scalar_destructor_hook( px );
|
|
88
|
-
#endif
|
|
89
71
|
boost::checked_delete( px );
|
|
90
72
|
}
|
|
91
73
|
|
|
@@ -775,7 +775,7 @@ template<class T> inline typename shared_ptr<T>::element_type * get_pointer(shar
|
|
|
775
775
|
|
|
776
776
|
// operator<<
|
|
777
777
|
|
|
778
|
-
template<class Y> std::
|
|
778
|
+
template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
|
|
779
779
|
{
|
|
780
780
|
os << p.get();
|
|
781
781
|
return os;
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
#include <cstddef> // for std::size_t
|
|
38
38
|
|
|
39
39
|
#include <boost/core/invoke_swap.hpp>
|
|
40
|
+
#include <boost/core/ref.hpp>
|
|
40
41
|
#include <boost/type_traits/cv_traits.hpp>
|
|
41
42
|
#include <boost/type_traits/function_traits.hpp>
|
|
42
43
|
#include <boost/type_traits/integral_constant.hpp>
|
|
@@ -60,10 +60,11 @@ namespace boost{
|
|
|
60
60
|
operator const mpl::integral_c<T, val>& ()const
|
|
61
61
|
{
|
|
62
62
|
static const char data[sizeof(long)] = { 0 };
|
|
63
|
-
|
|
64
|
-
return *
|
|
63
|
+
const void* const pdata = data;
|
|
64
|
+
return *static_cast<const mpl::integral_c<T, val>*>(pdata);
|
|
65
65
|
}
|
|
66
|
-
BOOST_CONSTEXPR operator T()const { return val; }
|
|
66
|
+
BOOST_CONSTEXPR operator T()const BOOST_NOEXCEPT { return val; }
|
|
67
|
+
BOOST_CONSTEXPR T operator()()const BOOST_NOEXCEPT { return val; }
|
|
67
68
|
};
|
|
68
69
|
|
|
69
70
|
template <class T, T val>
|
|
@@ -80,10 +81,11 @@ namespace boost{
|
|
|
80
81
|
operator const mpl::bool_<val>& ()const
|
|
81
82
|
{
|
|
82
83
|
static const char data[sizeof(long)] = { 0 };
|
|
83
|
-
|
|
84
|
-
return *
|
|
84
|
+
const void* const pdata = data;
|
|
85
|
+
return *static_cast<const mpl::bool_<val>*>(pdata);
|
|
85
86
|
}
|
|
86
|
-
BOOST_CONSTEXPR operator bool()const { return val; }
|
|
87
|
+
BOOST_CONSTEXPR operator bool()const BOOST_NOEXCEPT { return val; }
|
|
88
|
+
BOOST_CONSTEXPR bool operator()()const BOOST_NOEXCEPT { return val; }
|
|
87
89
|
};
|
|
88
90
|
|
|
89
91
|
template <bool val>
|
|
@@ -27,11 +27,10 @@
|
|
|
27
27
|
* DO NOT MAKE GENERAL USE OF THIS TRAIT, AS THE COMPLETENESS OF A TYPE
|
|
28
28
|
* VARIES ACROSS TRANSLATION UNITS AS WELL AS WITHIN A SINGLE UNIT.
|
|
29
29
|
*
|
|
30
|
-
*/
|
|
30
|
+
*/
|
|
31
31
|
|
|
32
32
|
namespace boost {
|
|
33
33
|
|
|
34
|
-
|
|
35
34
|
//
|
|
36
35
|
// We will undef this if the trait isn't fully functional:
|
|
37
36
|
//
|
|
@@ -39,7 +38,7 @@ namespace boost {
|
|
|
39
38
|
|
|
40
39
|
#if !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_MSVC, <= 1900) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40600)
|
|
41
40
|
|
|
42
|
-
namespace detail{
|
|
41
|
+
namespace detail {
|
|
43
42
|
|
|
44
43
|
template <std::size_t N>
|
|
45
44
|
struct ok_tag { double d; char c[N]; };
|
|
@@ -48,15 +47,15 @@ namespace boost {
|
|
|
48
47
|
ok_tag<sizeof(T)> check_is_complete(int);
|
|
49
48
|
template <class T>
|
|
50
49
|
char check_is_complete(...);
|
|
51
|
-
|
|
50
|
+
|
|
51
|
+
} // namespace detail
|
|
52
52
|
|
|
53
53
|
template <class T> struct is_complete
|
|
54
54
|
: public integral_constant<bool, ::boost::is_function<typename boost::remove_reference<T>::type>::value || (sizeof(boost::detail::check_is_complete<T>(0)) != sizeof(char))> {};
|
|
55
55
|
|
|
56
56
|
#elif !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500)
|
|
57
57
|
|
|
58
|
-
namespace detail
|
|
59
|
-
{
|
|
58
|
+
namespace detail {
|
|
60
59
|
|
|
61
60
|
template <class T>
|
|
62
61
|
struct is_complete_imp
|
|
@@ -70,7 +69,7 @@ namespace boost {
|
|
|
70
69
|
static const bool value = sizeof(check<T>(0)) == sizeof(type_traits::yes_type);
|
|
71
70
|
};
|
|
72
71
|
|
|
73
|
-
} // namespace detail
|
|
72
|
+
} // namespace detail
|
|
74
73
|
|
|
75
74
|
|
|
76
75
|
template <class T>
|
|
@@ -78,11 +77,33 @@ namespace boost {
|
|
|
78
77
|
{};
|
|
79
78
|
template <class T>
|
|
80
79
|
struct is_complete<T&> : boost::is_complete<T> {};
|
|
81
|
-
|
|
80
|
+
|
|
82
81
|
#else
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
namespace detail {
|
|
84
|
+
|
|
85
|
+
template <class T>
|
|
86
|
+
struct is_complete_impl : public boost::true_type {};
|
|
87
|
+
|
|
88
|
+
template < >
|
|
89
|
+
struct is_complete_impl<void> : public boost::false_type {};
|
|
90
|
+
|
|
91
|
+
template <class T>
|
|
92
|
+
struct is_complete_impl<T[]> : public boost::false_type {};
|
|
93
|
+
|
|
94
|
+
template <class T>
|
|
95
|
+
struct is_complete_impl<T&> : public is_complete_impl<T>::type {};
|
|
96
|
+
|
|
97
|
+
} // namespace detail
|
|
98
|
+
|
|
99
|
+
template <class T>
|
|
100
|
+
struct is_complete : public detail::is_complete_impl<T>::type {};
|
|
101
|
+
template <class T>
|
|
102
|
+
struct is_complete<const T> : public detail::is_complete_impl<T>::type {};
|
|
103
|
+
template <class T>
|
|
104
|
+
struct is_complete<volatile T> : public detail::is_complete_impl<T>::type {};
|
|
105
|
+
template <class T>
|
|
106
|
+
struct is_complete<const volatile T> : public detail::is_complete_impl<T>::type {};
|
|
86
107
|
|
|
87
108
|
#undef BOOST_TT_HAS_WORKING_IS_COMPLETE
|
|
88
109
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (C) 2022-
|
|
1
|
+
// Copyright (C) 2022-2025 Joaquin M Lopez Munoz.
|
|
2
2
|
// Copyright (C) 2022 Christian Mazakas
|
|
3
3
|
//
|
|
4
4
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
@@ -134,11 +134,37 @@ namespace boost {
|
|
|
134
134
|
namespace unordered {
|
|
135
135
|
namespace detail {
|
|
136
136
|
|
|
137
|
-
template <class ValueType, class VoidPtr> struct node
|
|
137
|
+
template <class ValueType, class VoidPtr> struct node;
|
|
138
|
+
|
|
139
|
+
// access to node::value_type and node::pointer for incomplete node
|
|
140
|
+
|
|
141
|
+
template<class Node> struct node_value_type_impl;
|
|
142
|
+
|
|
143
|
+
template <class ValueType, class VoidPtr>
|
|
144
|
+
struct node_value_type_impl<node<ValueType, VoidPtr>>
|
|
145
|
+
{
|
|
146
|
+
typedef ValueType type;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
template<class Node> using node_value_type =
|
|
150
|
+
typename node_value_type_impl<Node>::type;
|
|
151
|
+
|
|
152
|
+
template<class Node> struct node_pointer_impl;
|
|
153
|
+
|
|
154
|
+
template <class ValueType, class VoidPtr>
|
|
155
|
+
struct node_pointer_impl<node<ValueType, VoidPtr>>
|
|
138
156
|
{
|
|
139
|
-
typedef ValueType value_type;
|
|
140
157
|
typedef typename boost::pointer_traits<VoidPtr>::template rebind_to<
|
|
141
|
-
node
|
|
158
|
+
node<ValueType, VoidPtr>>::type type;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
template<class Node> using node_pointer =
|
|
162
|
+
typename node_pointer_impl<Node>::type;
|
|
163
|
+
|
|
164
|
+
template <class ValueType, class VoidPtr> struct node
|
|
165
|
+
{
|
|
166
|
+
typedef node_value_type<node> value_type;
|
|
167
|
+
typedef detail::node_pointer<node> node_pointer;
|
|
142
168
|
|
|
143
169
|
node_pointer next;
|
|
144
170
|
opt_storage<value_type> buf;
|
|
@@ -304,10 +330,10 @@ namespace boost {
|
|
|
304
330
|
|
|
305
331
|
template <class Node> struct grouped_local_bucket_iterator
|
|
306
332
|
{
|
|
307
|
-
typedef
|
|
333
|
+
typedef detail::node_pointer<Node> node_pointer;
|
|
308
334
|
|
|
309
335
|
public:
|
|
310
|
-
typedef
|
|
336
|
+
typedef detail::node_value_type<Node> value_type;
|
|
311
337
|
typedef value_type element_type;
|
|
312
338
|
typedef value_type* pointer;
|
|
313
339
|
typedef value_type& reference;
|
|
@@ -370,10 +396,10 @@ namespace boost {
|
|
|
370
396
|
|
|
371
397
|
template <class Node> struct const_grouped_local_bucket_iterator
|
|
372
398
|
{
|
|
373
|
-
typedef
|
|
399
|
+
typedef detail::node_pointer<Node> node_pointer;
|
|
374
400
|
|
|
375
401
|
public:
|
|
376
|
-
typedef
|
|
402
|
+
typedef detail::node_value_type<Node> const value_type;
|
|
377
403
|
typedef value_type const element_type;
|
|
378
404
|
typedef value_type const* pointer;
|
|
379
405
|
typedef value_type const& reference;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* Common base for Boost.Unordered open-addressing tables.
|
|
2
2
|
*
|
|
3
|
-
* Copyright 2022-
|
|
3
|
+
* Copyright 2022-2025 Joaquin M Lopez Munoz.
|
|
4
4
|
* Copyright 2023 Christian Mazakas.
|
|
5
5
|
* Copyright 2024 Braden Ganetsky.
|
|
6
6
|
* Distributed under the Boost Software License, Version 1.0.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include <boost/assert.hpp>
|
|
17
17
|
#include <boost/config.hpp>
|
|
18
18
|
#include <boost/config/workaround.hpp>
|
|
19
|
+
#include <boost/container_hash/hash_is_avalanching.hpp>
|
|
19
20
|
#include <boost/core/allocator_traits.hpp>
|
|
20
21
|
#include <boost/core/bit.hpp>
|
|
21
22
|
#include <boost/core/empty_value.hpp>
|
|
@@ -28,8 +29,7 @@
|
|
|
28
29
|
#include <boost/unordered/detail/mulx.hpp>
|
|
29
30
|
#include <boost/unordered/detail/static_assert.hpp>
|
|
30
31
|
#include <boost/unordered/detail/type_traits.hpp>
|
|
31
|
-
#include <boost/unordered/
|
|
32
|
-
#include <boost/unordered/unordered_printers.hpp>
|
|
32
|
+
#include <boost/unordered/detail/unordered_printers.hpp>
|
|
33
33
|
#include <climits>
|
|
34
34
|
#include <cmath>
|
|
35
35
|
#include <cstddef>
|
|
@@ -923,6 +923,8 @@ inline unsigned int unchecked_countr_zero(int x)
|
|
|
923
923
|
unsigned long r;
|
|
924
924
|
_BitScanForward(&r,(unsigned long)x);
|
|
925
925
|
return (unsigned int)r;
|
|
926
|
+
#elif defined(BOOST_GCC)||defined(BOOST_CLANG)
|
|
927
|
+
return (unsigned int)__builtin_ctz((unsigned int)x);
|
|
926
928
|
#else
|
|
927
929
|
BOOST_UNORDERED_ASSUME(x!=0);
|
|
928
930
|
return (unsigned int)boost::core::countr_zero((unsigned int)x);
|
|
@@ -1426,7 +1428,7 @@ public:
|
|
|
1426
1428
|
using size_policy=pow2_size_policy;
|
|
1427
1429
|
using prober=pow2_quadratic_prober;
|
|
1428
1430
|
using mix_policy=typename std::conditional<
|
|
1429
|
-
hash_is_avalanching<Hash>::value,
|
|
1431
|
+
boost::hash_is_avalanching<Hash>::value,
|
|
1430
1432
|
no_mix,
|
|
1431
1433
|
mulx_mix
|
|
1432
1434
|
>::type;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* Fast open-addressing hash table.
|
|
2
2
|
*
|
|
3
|
-
* Copyright 2022-
|
|
3
|
+
* Copyright 2022-2025 Joaquin M Lopez Munoz.
|
|
4
4
|
* Copyright 2023 Christian Mazakas.
|
|
5
5
|
* Copyright 2024 Braden Ganetsky.
|
|
6
6
|
* Distributed under the Boost Software License, Version 1.0.
|
|
@@ -495,6 +495,14 @@ public:
|
|
|
495
495
|
else return 0;
|
|
496
496
|
}
|
|
497
497
|
|
|
498
|
+
BOOST_FORCEINLINE init_type pull(const_iterator pos)
|
|
499
|
+
{
|
|
500
|
+
BOOST_ASSERT(pos!=end());
|
|
501
|
+
erase_on_exit e{*this,pos};
|
|
502
|
+
(void)e;
|
|
503
|
+
return type_policy::move(type_policy::value_from(*pos.p()));
|
|
504
|
+
}
|
|
505
|
+
|
|
498
506
|
void swap(table& x)
|
|
499
507
|
noexcept(noexcept(std::declval<super&>().swap(std::declval<super&>())))
|
|
500
508
|
{
|