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
|
@@ -1,797 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
*
|
|
3
|
-
* Copyright (c) 1998-2004 John Maddock
|
|
4
|
-
* Copyright 2011 Garmin Ltd. or its subsidiaries
|
|
5
|
-
*
|
|
6
|
-
* Distributed under the Boost Software License, Version 1.0.
|
|
7
|
-
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
8
|
-
* http://www.boost.org/LICENSE_1_0.txt)
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/*
|
|
13
|
-
* LOCATION: see http://www.boost.org/ for most recent version.
|
|
14
|
-
* FILE basic_regex.cpp
|
|
15
|
-
* VERSION see <boost/version.hpp>
|
|
16
|
-
* DESCRIPTION: Declares template class basic_regex.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
#ifndef BOOST_REGEX_V4_BASIC_REGEX_HPP
|
|
20
|
-
#define BOOST_REGEX_V4_BASIC_REGEX_HPP
|
|
21
|
-
|
|
22
|
-
#include <boost/type_traits/is_same.hpp>
|
|
23
|
-
#include <boost/container_hash/hash.hpp>
|
|
24
|
-
|
|
25
|
-
#ifdef BOOST_MSVC
|
|
26
|
-
#pragma warning(push)
|
|
27
|
-
#pragma warning(disable: 4103)
|
|
28
|
-
#endif
|
|
29
|
-
#ifdef BOOST_HAS_ABI_HEADERS
|
|
30
|
-
# include BOOST_ABI_PREFIX
|
|
31
|
-
#endif
|
|
32
|
-
#ifdef BOOST_MSVC
|
|
33
|
-
#pragma warning(pop)
|
|
34
|
-
#endif
|
|
35
|
-
|
|
36
|
-
namespace boost{
|
|
37
|
-
#ifdef BOOST_MSVC
|
|
38
|
-
#pragma warning(push)
|
|
39
|
-
#pragma warning(disable : 4251)
|
|
40
|
-
#if BOOST_MSVC < 1700
|
|
41
|
-
# pragma warning(disable : 4231)
|
|
42
|
-
#endif
|
|
43
|
-
#if BOOST_MSVC < 1600
|
|
44
|
-
#pragma warning(disable : 4660)
|
|
45
|
-
#endif
|
|
46
|
-
#if BOOST_MSVC < 1910
|
|
47
|
-
#pragma warning(disable:4800)
|
|
48
|
-
#endif
|
|
49
|
-
#endif
|
|
50
|
-
|
|
51
|
-
namespace BOOST_REGEX_DETAIL_NS{
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
// forward declaration, we will need this one later:
|
|
55
|
-
//
|
|
56
|
-
template <class charT, class traits>
|
|
57
|
-
class basic_regex_parser;
|
|
58
|
-
|
|
59
|
-
template <class I>
|
|
60
|
-
void bubble_down_one(I first, I last)
|
|
61
|
-
{
|
|
62
|
-
if(first != last)
|
|
63
|
-
{
|
|
64
|
-
I next = last - 1;
|
|
65
|
-
while((next != first) && (*next < *(next-1)))
|
|
66
|
-
{
|
|
67
|
-
(next-1)->swap(*next);
|
|
68
|
-
--next;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
static const int hash_value_mask = 1 << (std::numeric_limits<int>::digits - 1);
|
|
74
|
-
|
|
75
|
-
template <class Iterator>
|
|
76
|
-
inline int hash_value_from_capture_name(Iterator i, Iterator j)
|
|
77
|
-
{
|
|
78
|
-
std::size_t r = boost::hash_range(i, j);
|
|
79
|
-
r %= ((std::numeric_limits<int>::max)());
|
|
80
|
-
return static_cast<int>(r) | hash_value_mask;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
class named_subexpressions
|
|
84
|
-
{
|
|
85
|
-
public:
|
|
86
|
-
struct name
|
|
87
|
-
{
|
|
88
|
-
template <class charT>
|
|
89
|
-
name(const charT* i, const charT* j, int idx)
|
|
90
|
-
: index(idx)
|
|
91
|
-
{
|
|
92
|
-
hash = hash_value_from_capture_name(i, j);
|
|
93
|
-
}
|
|
94
|
-
name(int h, int idx)
|
|
95
|
-
: index(idx), hash(h)
|
|
96
|
-
{
|
|
97
|
-
}
|
|
98
|
-
int index;
|
|
99
|
-
int hash;
|
|
100
|
-
bool operator < (const name& other)const
|
|
101
|
-
{
|
|
102
|
-
return hash < other.hash;
|
|
103
|
-
}
|
|
104
|
-
bool operator == (const name& other)const
|
|
105
|
-
{
|
|
106
|
-
return hash == other.hash;
|
|
107
|
-
}
|
|
108
|
-
void swap(name& other)
|
|
109
|
-
{
|
|
110
|
-
std::swap(index, other.index);
|
|
111
|
-
std::swap(hash, other.hash);
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
typedef std::vector<name>::const_iterator const_iterator;
|
|
116
|
-
typedef std::pair<const_iterator, const_iterator> range_type;
|
|
117
|
-
|
|
118
|
-
named_subexpressions(){}
|
|
119
|
-
|
|
120
|
-
template <class charT>
|
|
121
|
-
void set_name(const charT* i, const charT* j, int index)
|
|
122
|
-
{
|
|
123
|
-
m_sub_names.push_back(name(i, j, index));
|
|
124
|
-
bubble_down_one(m_sub_names.begin(), m_sub_names.end());
|
|
125
|
-
}
|
|
126
|
-
template <class charT>
|
|
127
|
-
int get_id(const charT* i, const charT* j)const
|
|
128
|
-
{
|
|
129
|
-
name t(i, j, 0);
|
|
130
|
-
typename std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
|
|
131
|
-
if((pos != m_sub_names.end()) && (*pos == t))
|
|
132
|
-
{
|
|
133
|
-
return pos->index;
|
|
134
|
-
}
|
|
135
|
-
return -1;
|
|
136
|
-
}
|
|
137
|
-
template <class charT>
|
|
138
|
-
range_type equal_range(const charT* i, const charT* j)const
|
|
139
|
-
{
|
|
140
|
-
name t(i, j, 0);
|
|
141
|
-
return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
|
|
142
|
-
}
|
|
143
|
-
int get_id(int h)const
|
|
144
|
-
{
|
|
145
|
-
name t(h, 0);
|
|
146
|
-
std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
|
|
147
|
-
if((pos != m_sub_names.end()) && (*pos == t))
|
|
148
|
-
{
|
|
149
|
-
return pos->index;
|
|
150
|
-
}
|
|
151
|
-
return -1;
|
|
152
|
-
}
|
|
153
|
-
range_type equal_range(int h)const
|
|
154
|
-
{
|
|
155
|
-
name t(h, 0);
|
|
156
|
-
return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
|
|
157
|
-
}
|
|
158
|
-
private:
|
|
159
|
-
std::vector<name> m_sub_names;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
//
|
|
163
|
-
// class regex_data:
|
|
164
|
-
// represents the data we wish to expose to the matching algorithms.
|
|
165
|
-
//
|
|
166
|
-
template <class charT, class traits>
|
|
167
|
-
struct regex_data : public named_subexpressions
|
|
168
|
-
{
|
|
169
|
-
typedef regex_constants::syntax_option_type flag_type;
|
|
170
|
-
typedef std::size_t size_type;
|
|
171
|
-
|
|
172
|
-
regex_data(const ::boost::shared_ptr<
|
|
173
|
-
::boost::regex_traits_wrapper<traits> >& t)
|
|
174
|
-
: m_ptraits(t), m_flags(0), m_status(0), m_expression(0), m_expression_len(0),
|
|
175
|
-
m_mark_count(0), m_first_state(0), m_restart_type(0),
|
|
176
|
-
#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !(defined(BOOST_MSVC) && (BOOST_MSVC < 1900))
|
|
177
|
-
m_startmap{ 0 },
|
|
178
|
-
#endif
|
|
179
|
-
m_can_be_null(0), m_word_mask(0), m_has_recursions(false), m_disable_match_any(false) {}
|
|
180
|
-
regex_data()
|
|
181
|
-
: m_ptraits(new ::boost::regex_traits_wrapper<traits>()), m_flags(0), m_status(0), m_expression(0), m_expression_len(0),
|
|
182
|
-
m_mark_count(0), m_first_state(0), m_restart_type(0),
|
|
183
|
-
#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !(defined(BOOST_MSVC) && (BOOST_MSVC < 1900))
|
|
184
|
-
m_startmap{ 0 },
|
|
185
|
-
#endif
|
|
186
|
-
m_can_be_null(0), m_word_mask(0), m_has_recursions(false), m_disable_match_any(false) {}
|
|
187
|
-
|
|
188
|
-
::boost::shared_ptr<
|
|
189
|
-
::boost::regex_traits_wrapper<traits>
|
|
190
|
-
> m_ptraits; // traits class instance
|
|
191
|
-
flag_type m_flags; // flags with which we were compiled
|
|
192
|
-
int m_status; // error code (0 implies OK).
|
|
193
|
-
const charT* m_expression; // the original expression
|
|
194
|
-
std::ptrdiff_t m_expression_len; // the length of the original expression
|
|
195
|
-
size_type m_mark_count; // the number of marked sub-expressions
|
|
196
|
-
BOOST_REGEX_DETAIL_NS::re_syntax_base* m_first_state; // the first state of the machine
|
|
197
|
-
unsigned m_restart_type; // search optimisation type
|
|
198
|
-
unsigned char m_startmap[1 << CHAR_BIT]; // which characters can start a match
|
|
199
|
-
unsigned int m_can_be_null; // whether we can match a null string
|
|
200
|
-
BOOST_REGEX_DETAIL_NS::raw_storage m_data; // the buffer in which our states are constructed
|
|
201
|
-
typename traits::char_class_type m_word_mask; // mask used to determine if a character is a word character
|
|
202
|
-
std::vector<
|
|
203
|
-
std::pair<
|
|
204
|
-
std::size_t, std::size_t> > m_subs; // Position of sub-expressions within the *string*.
|
|
205
|
-
bool m_has_recursions; // whether we have recursive expressions;
|
|
206
|
-
bool m_disable_match_any; // when set we need to disable the match_any flag as it causes different/buggy behaviour.
|
|
207
|
-
};
|
|
208
|
-
//
|
|
209
|
-
// class basic_regex_implementation
|
|
210
|
-
// pimpl implementation class for basic_regex.
|
|
211
|
-
//
|
|
212
|
-
template <class charT, class traits>
|
|
213
|
-
class basic_regex_implementation
|
|
214
|
-
: public regex_data<charT, traits>
|
|
215
|
-
{
|
|
216
|
-
public:
|
|
217
|
-
typedef regex_constants::syntax_option_type flag_type;
|
|
218
|
-
typedef std::ptrdiff_t difference_type;
|
|
219
|
-
typedef std::size_t size_type;
|
|
220
|
-
typedef typename traits::locale_type locale_type;
|
|
221
|
-
typedef const charT* const_iterator;
|
|
222
|
-
|
|
223
|
-
basic_regex_implementation(){}
|
|
224
|
-
basic_regex_implementation(const ::boost::shared_ptr<
|
|
225
|
-
::boost::regex_traits_wrapper<traits> >& t)
|
|
226
|
-
: regex_data<charT, traits>(t) {}
|
|
227
|
-
void assign(const charT* arg_first,
|
|
228
|
-
const charT* arg_last,
|
|
229
|
-
flag_type f)
|
|
230
|
-
{
|
|
231
|
-
regex_data<charT, traits>* pdat = this;
|
|
232
|
-
basic_regex_parser<charT, traits> parser(pdat);
|
|
233
|
-
parser.parse(arg_first, arg_last, f);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
locale_type BOOST_REGEX_CALL imbue(locale_type l)
|
|
237
|
-
{
|
|
238
|
-
return this->m_ptraits->imbue(l);
|
|
239
|
-
}
|
|
240
|
-
locale_type BOOST_REGEX_CALL getloc()const
|
|
241
|
-
{
|
|
242
|
-
return this->m_ptraits->getloc();
|
|
243
|
-
}
|
|
244
|
-
std::basic_string<charT> BOOST_REGEX_CALL str()const
|
|
245
|
-
{
|
|
246
|
-
std::basic_string<charT> result;
|
|
247
|
-
if(this->m_status == 0)
|
|
248
|
-
result = std::basic_string<charT>(this->m_expression, this->m_expression_len);
|
|
249
|
-
return result;
|
|
250
|
-
}
|
|
251
|
-
const_iterator BOOST_REGEX_CALL expression()const
|
|
252
|
-
{
|
|
253
|
-
return this->m_expression;
|
|
254
|
-
}
|
|
255
|
-
std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
|
|
256
|
-
{
|
|
257
|
-
const std::pair<std::size_t, std::size_t>& pi = this->m_subs.at(n);
|
|
258
|
-
std::pair<const_iterator, const_iterator> p(expression() + pi.first, expression() + pi.second);
|
|
259
|
-
return p;
|
|
260
|
-
}
|
|
261
|
-
//
|
|
262
|
-
// begin, end:
|
|
263
|
-
const_iterator BOOST_REGEX_CALL begin()const
|
|
264
|
-
{
|
|
265
|
-
return (this->m_status ? 0 : this->m_expression);
|
|
266
|
-
}
|
|
267
|
-
const_iterator BOOST_REGEX_CALL end()const
|
|
268
|
-
{
|
|
269
|
-
return (this->m_status ? 0 : this->m_expression + this->m_expression_len);
|
|
270
|
-
}
|
|
271
|
-
flag_type BOOST_REGEX_CALL flags()const
|
|
272
|
-
{
|
|
273
|
-
return this->m_flags;
|
|
274
|
-
}
|
|
275
|
-
size_type BOOST_REGEX_CALL size()const
|
|
276
|
-
{
|
|
277
|
-
return this->m_expression_len;
|
|
278
|
-
}
|
|
279
|
-
int BOOST_REGEX_CALL status()const
|
|
280
|
-
{
|
|
281
|
-
return this->m_status;
|
|
282
|
-
}
|
|
283
|
-
size_type BOOST_REGEX_CALL mark_count()const
|
|
284
|
-
{
|
|
285
|
-
return this->m_mark_count - 1;
|
|
286
|
-
}
|
|
287
|
-
const BOOST_REGEX_DETAIL_NS::re_syntax_base* get_first_state()const
|
|
288
|
-
{
|
|
289
|
-
return this->m_first_state;
|
|
290
|
-
}
|
|
291
|
-
unsigned get_restart_type()const
|
|
292
|
-
{
|
|
293
|
-
return this->m_restart_type;
|
|
294
|
-
}
|
|
295
|
-
const unsigned char* get_map()const
|
|
296
|
-
{
|
|
297
|
-
return this->m_startmap;
|
|
298
|
-
}
|
|
299
|
-
const ::boost::regex_traits_wrapper<traits>& get_traits()const
|
|
300
|
-
{
|
|
301
|
-
return *(this->m_ptraits);
|
|
302
|
-
}
|
|
303
|
-
bool can_be_null()const
|
|
304
|
-
{
|
|
305
|
-
return this->m_can_be_null;
|
|
306
|
-
}
|
|
307
|
-
const regex_data<charT, traits>& get_data()const
|
|
308
|
-
{
|
|
309
|
-
basic_regex_implementation<charT, traits> const* p = this;
|
|
310
|
-
return *static_cast<const regex_data<charT, traits>*>(p);
|
|
311
|
-
}
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
} // namespace BOOST_REGEX_DETAIL_NS
|
|
315
|
-
//
|
|
316
|
-
// class basic_regex:
|
|
317
|
-
// represents the compiled
|
|
318
|
-
// regular expression:
|
|
319
|
-
//
|
|
320
|
-
|
|
321
|
-
#ifdef BOOST_REGEX_NO_FWD
|
|
322
|
-
template <class charT, class traits = regex_traits<charT> >
|
|
323
|
-
#else
|
|
324
|
-
template <class charT, class traits >
|
|
325
|
-
#endif
|
|
326
|
-
class basic_regex : public regbase
|
|
327
|
-
{
|
|
328
|
-
public:
|
|
329
|
-
// typedefs:
|
|
330
|
-
typedef std::size_t traits_size_type;
|
|
331
|
-
typedef typename traits::string_type traits_string_type;
|
|
332
|
-
typedef charT char_type;
|
|
333
|
-
typedef traits traits_type;
|
|
334
|
-
|
|
335
|
-
typedef charT value_type;
|
|
336
|
-
typedef charT& reference;
|
|
337
|
-
typedef const charT& const_reference;
|
|
338
|
-
typedef const charT* const_iterator;
|
|
339
|
-
typedef const_iterator iterator;
|
|
340
|
-
typedef std::ptrdiff_t difference_type;
|
|
341
|
-
typedef std::size_t size_type;
|
|
342
|
-
typedef regex_constants::syntax_option_type flag_type;
|
|
343
|
-
// locale_type
|
|
344
|
-
// placeholder for actual locale type used by the
|
|
345
|
-
// traits class to localise *this.
|
|
346
|
-
typedef typename traits::locale_type locale_type;
|
|
347
|
-
|
|
348
|
-
public:
|
|
349
|
-
explicit basic_regex(){}
|
|
350
|
-
explicit basic_regex(const charT* p, flag_type f = regex_constants::normal)
|
|
351
|
-
{
|
|
352
|
-
assign(p, f);
|
|
353
|
-
}
|
|
354
|
-
basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
|
|
355
|
-
{
|
|
356
|
-
assign(p1, p2, f);
|
|
357
|
-
}
|
|
358
|
-
basic_regex(const charT* p, size_type len, flag_type f)
|
|
359
|
-
{
|
|
360
|
-
assign(p, len, f);
|
|
361
|
-
}
|
|
362
|
-
basic_regex(const basic_regex& that)
|
|
363
|
-
: m_pimpl(that.m_pimpl) {}
|
|
364
|
-
~basic_regex(){}
|
|
365
|
-
basic_regex& BOOST_REGEX_CALL operator=(const basic_regex& that)
|
|
366
|
-
{
|
|
367
|
-
return assign(that);
|
|
368
|
-
}
|
|
369
|
-
basic_regex& BOOST_REGEX_CALL operator=(const charT* ptr)
|
|
370
|
-
{
|
|
371
|
-
return assign(ptr);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
//
|
|
375
|
-
// assign:
|
|
376
|
-
basic_regex& assign(const basic_regex& that)
|
|
377
|
-
{
|
|
378
|
-
m_pimpl = that.m_pimpl;
|
|
379
|
-
return *this;
|
|
380
|
-
}
|
|
381
|
-
basic_regex& assign(const charT* p, flag_type f = regex_constants::normal)
|
|
382
|
-
{
|
|
383
|
-
return assign(p, p + traits::length(p), f);
|
|
384
|
-
}
|
|
385
|
-
basic_regex& assign(const charT* p, size_type len, flag_type f)
|
|
386
|
-
{
|
|
387
|
-
return assign(p, p + len, f);
|
|
388
|
-
}
|
|
389
|
-
private:
|
|
390
|
-
basic_regex& do_assign(const charT* p1,
|
|
391
|
-
const charT* p2,
|
|
392
|
-
flag_type f);
|
|
393
|
-
public:
|
|
394
|
-
basic_regex& assign(const charT* p1,
|
|
395
|
-
const charT* p2,
|
|
396
|
-
flag_type f = regex_constants::normal)
|
|
397
|
-
{
|
|
398
|
-
return do_assign(p1, p2, f);
|
|
399
|
-
}
|
|
400
|
-
#if !defined(BOOST_NO_MEMBER_TEMPLATES)
|
|
401
|
-
|
|
402
|
-
template <class ST, class SA>
|
|
403
|
-
unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
|
|
404
|
-
{
|
|
405
|
-
return set_expression(p.data(), p.data() + p.size(), f);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
template <class ST, class SA>
|
|
409
|
-
explicit basic_regex(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
|
|
410
|
-
{
|
|
411
|
-
assign(p, f);
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
template <class InputIterator>
|
|
415
|
-
basic_regex(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
|
|
416
|
-
{
|
|
417
|
-
typedef typename traits::string_type seq_type;
|
|
418
|
-
seq_type a(arg_first, arg_last);
|
|
419
|
-
if(!a.empty())
|
|
420
|
-
assign(static_cast<const charT*>(&*a.begin()), static_cast<const charT*>(&*a.begin() + a.size()), f);
|
|
421
|
-
else
|
|
422
|
-
assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
template <class ST, class SA>
|
|
426
|
-
basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
|
|
427
|
-
{
|
|
428
|
-
return assign(p.data(), p.data() + p.size(), regex_constants::normal);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
template <class string_traits, class A>
|
|
432
|
-
basic_regex& BOOST_REGEX_CALL assign(
|
|
433
|
-
const std::basic_string<charT, string_traits, A>& s,
|
|
434
|
-
flag_type f = regex_constants::normal)
|
|
435
|
-
{
|
|
436
|
-
return assign(s.data(), s.data() + s.size(), f);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
template <class InputIterator>
|
|
440
|
-
basic_regex& BOOST_REGEX_CALL assign(InputIterator arg_first,
|
|
441
|
-
InputIterator arg_last,
|
|
442
|
-
flag_type f = regex_constants::normal)
|
|
443
|
-
{
|
|
444
|
-
typedef typename traits::string_type seq_type;
|
|
445
|
-
seq_type a(arg_first, arg_last);
|
|
446
|
-
if(a.size())
|
|
447
|
-
{
|
|
448
|
-
const charT* p1 = &*a.begin();
|
|
449
|
-
const charT* p2 = &*a.begin() + a.size();
|
|
450
|
-
return assign(p1, p2, f);
|
|
451
|
-
}
|
|
452
|
-
return assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
|
|
453
|
-
}
|
|
454
|
-
#else
|
|
455
|
-
unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
|
|
456
|
-
{
|
|
457
|
-
return set_expression(p.data(), p.data() + p.size(), f);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
basic_regex(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
|
|
461
|
-
{
|
|
462
|
-
assign(p, f);
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
|
|
466
|
-
{
|
|
467
|
-
return assign(p.data(), p.data() + p.size(), regex_constants::normal);
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
basic_regex& BOOST_REGEX_CALL assign(
|
|
471
|
-
const std::basic_string<charT>& s,
|
|
472
|
-
flag_type f = regex_constants::normal)
|
|
473
|
-
{
|
|
474
|
-
return assign(s.data(), s.data() + s.size(), f);
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
#endif
|
|
478
|
-
|
|
479
|
-
//
|
|
480
|
-
// locale:
|
|
481
|
-
locale_type BOOST_REGEX_CALL imbue(locale_type l);
|
|
482
|
-
locale_type BOOST_REGEX_CALL getloc()const
|
|
483
|
-
{
|
|
484
|
-
return m_pimpl.get() ? m_pimpl->getloc() : locale_type();
|
|
485
|
-
}
|
|
486
|
-
//
|
|
487
|
-
// getflags:
|
|
488
|
-
// retained for backwards compatibility only, "flags"
|
|
489
|
-
// is now the preferred name:
|
|
490
|
-
flag_type BOOST_REGEX_CALL getflags()const
|
|
491
|
-
{
|
|
492
|
-
return flags();
|
|
493
|
-
}
|
|
494
|
-
flag_type BOOST_REGEX_CALL flags()const
|
|
495
|
-
{
|
|
496
|
-
return m_pimpl.get() ? m_pimpl->flags() : 0;
|
|
497
|
-
}
|
|
498
|
-
//
|
|
499
|
-
// str:
|
|
500
|
-
std::basic_string<charT> BOOST_REGEX_CALL str()const
|
|
501
|
-
{
|
|
502
|
-
return m_pimpl.get() ? m_pimpl->str() : std::basic_string<charT>();
|
|
503
|
-
}
|
|
504
|
-
//
|
|
505
|
-
// begin, end, subexpression:
|
|
506
|
-
std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
|
|
507
|
-
{
|
|
508
|
-
if(!m_pimpl.get())
|
|
509
|
-
boost::throw_exception(std::logic_error("Can't access subexpressions in an invalid regex."));
|
|
510
|
-
return m_pimpl->subexpression(n);
|
|
511
|
-
}
|
|
512
|
-
const_iterator BOOST_REGEX_CALL begin()const
|
|
513
|
-
{
|
|
514
|
-
return (m_pimpl.get() ? m_pimpl->begin() : 0);
|
|
515
|
-
}
|
|
516
|
-
const_iterator BOOST_REGEX_CALL end()const
|
|
517
|
-
{
|
|
518
|
-
return (m_pimpl.get() ? m_pimpl->end() : 0);
|
|
519
|
-
}
|
|
520
|
-
//
|
|
521
|
-
// swap:
|
|
522
|
-
void BOOST_REGEX_CALL swap(basic_regex& that)throw()
|
|
523
|
-
{
|
|
524
|
-
m_pimpl.swap(that.m_pimpl);
|
|
525
|
-
}
|
|
526
|
-
//
|
|
527
|
-
// size:
|
|
528
|
-
size_type BOOST_REGEX_CALL size()const
|
|
529
|
-
{
|
|
530
|
-
return (m_pimpl.get() ? m_pimpl->size() : 0);
|
|
531
|
-
}
|
|
532
|
-
//
|
|
533
|
-
// max_size:
|
|
534
|
-
size_type BOOST_REGEX_CALL max_size()const
|
|
535
|
-
{
|
|
536
|
-
return UINT_MAX;
|
|
537
|
-
}
|
|
538
|
-
//
|
|
539
|
-
// empty:
|
|
540
|
-
bool BOOST_REGEX_CALL empty()const
|
|
541
|
-
{
|
|
542
|
-
return (m_pimpl.get() ? 0 != m_pimpl->status() : true);
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
size_type BOOST_REGEX_CALL mark_count()const
|
|
546
|
-
{
|
|
547
|
-
return (m_pimpl.get() ? m_pimpl->mark_count() : 0);
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
int status()const
|
|
551
|
-
{
|
|
552
|
-
return (m_pimpl.get() ? m_pimpl->status() : regex_constants::error_empty);
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
int BOOST_REGEX_CALL compare(const basic_regex& that) const
|
|
556
|
-
{
|
|
557
|
-
if(m_pimpl.get() == that.m_pimpl.get())
|
|
558
|
-
return 0;
|
|
559
|
-
if(!m_pimpl.get())
|
|
560
|
-
return -1;
|
|
561
|
-
if(!that.m_pimpl.get())
|
|
562
|
-
return 1;
|
|
563
|
-
if(status() != that.status())
|
|
564
|
-
return status() - that.status();
|
|
565
|
-
if(flags() != that.flags())
|
|
566
|
-
return flags() - that.flags();
|
|
567
|
-
return str().compare(that.str());
|
|
568
|
-
}
|
|
569
|
-
bool BOOST_REGEX_CALL operator==(const basic_regex& e)const
|
|
570
|
-
{
|
|
571
|
-
return compare(e) == 0;
|
|
572
|
-
}
|
|
573
|
-
bool BOOST_REGEX_CALL operator != (const basic_regex& e)const
|
|
574
|
-
{
|
|
575
|
-
return compare(e) != 0;
|
|
576
|
-
}
|
|
577
|
-
bool BOOST_REGEX_CALL operator<(const basic_regex& e)const
|
|
578
|
-
{
|
|
579
|
-
return compare(e) < 0;
|
|
580
|
-
}
|
|
581
|
-
bool BOOST_REGEX_CALL operator>(const basic_regex& e)const
|
|
582
|
-
{
|
|
583
|
-
return compare(e) > 0;
|
|
584
|
-
}
|
|
585
|
-
bool BOOST_REGEX_CALL operator<=(const basic_regex& e)const
|
|
586
|
-
{
|
|
587
|
-
return compare(e) <= 0;
|
|
588
|
-
}
|
|
589
|
-
bool BOOST_REGEX_CALL operator>=(const basic_regex& e)const
|
|
590
|
-
{
|
|
591
|
-
return compare(e) >= 0;
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
//
|
|
595
|
-
// The following are deprecated as public interfaces
|
|
596
|
-
// but are available for compatibility with earlier versions.
|
|
597
|
-
const charT* BOOST_REGEX_CALL expression()const
|
|
598
|
-
{
|
|
599
|
-
return (m_pimpl.get() && !m_pimpl->status() ? m_pimpl->expression() : 0);
|
|
600
|
-
}
|
|
601
|
-
unsigned int BOOST_REGEX_CALL set_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
|
|
602
|
-
{
|
|
603
|
-
assign(p1, p2, f | regex_constants::no_except);
|
|
604
|
-
return status();
|
|
605
|
-
}
|
|
606
|
-
unsigned int BOOST_REGEX_CALL set_expression(const charT* p, flag_type f = regex_constants::normal)
|
|
607
|
-
{
|
|
608
|
-
assign(p, f | regex_constants::no_except);
|
|
609
|
-
return status();
|
|
610
|
-
}
|
|
611
|
-
unsigned int BOOST_REGEX_CALL error_code()const
|
|
612
|
-
{
|
|
613
|
-
return status();
|
|
614
|
-
}
|
|
615
|
-
//
|
|
616
|
-
// private access methods:
|
|
617
|
-
//
|
|
618
|
-
const BOOST_REGEX_DETAIL_NS::re_syntax_base* get_first_state()const
|
|
619
|
-
{
|
|
620
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
621
|
-
return m_pimpl->get_first_state();
|
|
622
|
-
}
|
|
623
|
-
unsigned get_restart_type()const
|
|
624
|
-
{
|
|
625
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
626
|
-
return m_pimpl->get_restart_type();
|
|
627
|
-
}
|
|
628
|
-
const unsigned char* get_map()const
|
|
629
|
-
{
|
|
630
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
631
|
-
return m_pimpl->get_map();
|
|
632
|
-
}
|
|
633
|
-
const ::boost::regex_traits_wrapper<traits>& get_traits()const
|
|
634
|
-
{
|
|
635
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
636
|
-
return m_pimpl->get_traits();
|
|
637
|
-
}
|
|
638
|
-
bool can_be_null()const
|
|
639
|
-
{
|
|
640
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
641
|
-
return m_pimpl->can_be_null();
|
|
642
|
-
}
|
|
643
|
-
const BOOST_REGEX_DETAIL_NS::regex_data<charT, traits>& get_data()const
|
|
644
|
-
{
|
|
645
|
-
BOOST_REGEX_ASSERT(0 != m_pimpl.get());
|
|
646
|
-
return m_pimpl->get_data();
|
|
647
|
-
}
|
|
648
|
-
boost::shared_ptr<BOOST_REGEX_DETAIL_NS::named_subexpressions > get_named_subs()const
|
|
649
|
-
{
|
|
650
|
-
return m_pimpl;
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
private:
|
|
654
|
-
shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > m_pimpl;
|
|
655
|
-
};
|
|
656
|
-
|
|
657
|
-
//
|
|
658
|
-
// out of line members;
|
|
659
|
-
// these are the only members that mutate the basic_regex object,
|
|
660
|
-
// and are designed to provide the strong exception guarantee
|
|
661
|
-
// (in the event of a throw, the state of the object remains unchanged).
|
|
662
|
-
//
|
|
663
|
-
template <class charT, class traits>
|
|
664
|
-
basic_regex<charT, traits>& basic_regex<charT, traits>::do_assign(const charT* p1,
|
|
665
|
-
const charT* p2,
|
|
666
|
-
flag_type f)
|
|
667
|
-
{
|
|
668
|
-
shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > temp;
|
|
669
|
-
if(!m_pimpl.get())
|
|
670
|
-
{
|
|
671
|
-
temp = shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>());
|
|
672
|
-
}
|
|
673
|
-
else
|
|
674
|
-
{
|
|
675
|
-
temp = shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>(m_pimpl->m_ptraits));
|
|
676
|
-
}
|
|
677
|
-
temp->assign(p1, p2, f);
|
|
678
|
-
temp.swap(m_pimpl);
|
|
679
|
-
return *this;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
template <class charT, class traits>
|
|
683
|
-
typename basic_regex<charT, traits>::locale_type BOOST_REGEX_CALL basic_regex<charT, traits>::imbue(locale_type l)
|
|
684
|
-
{
|
|
685
|
-
shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > temp(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>());
|
|
686
|
-
locale_type result = temp->imbue(l);
|
|
687
|
-
temp.swap(m_pimpl);
|
|
688
|
-
return result;
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
//
|
|
692
|
-
// non-members:
|
|
693
|
-
//
|
|
694
|
-
template <class charT, class traits>
|
|
695
|
-
void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2)
|
|
696
|
-
{
|
|
697
|
-
e1.swap(e2);
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
#ifndef BOOST_NO_STD_LOCALE
|
|
701
|
-
template <class charT, class traits, class traits2>
|
|
702
|
-
std::basic_ostream<charT, traits>&
|
|
703
|
-
operator << (std::basic_ostream<charT, traits>& os,
|
|
704
|
-
const basic_regex<charT, traits2>& e)
|
|
705
|
-
{
|
|
706
|
-
return (os << e.str());
|
|
707
|
-
}
|
|
708
|
-
#else
|
|
709
|
-
template <class traits>
|
|
710
|
-
std::ostream& operator << (std::ostream& os, const basic_regex<char, traits>& e)
|
|
711
|
-
{
|
|
712
|
-
return (os << e.str());
|
|
713
|
-
}
|
|
714
|
-
#endif
|
|
715
|
-
|
|
716
|
-
//
|
|
717
|
-
// class reg_expression:
|
|
718
|
-
// this is provided for backwards compatibility only,
|
|
719
|
-
// it is deprecated, no not use!
|
|
720
|
-
//
|
|
721
|
-
#ifdef BOOST_REGEX_NO_FWD
|
|
722
|
-
template <class charT, class traits = regex_traits<charT> >
|
|
723
|
-
#else
|
|
724
|
-
template <class charT, class traits >
|
|
725
|
-
#endif
|
|
726
|
-
class reg_expression : public basic_regex<charT, traits>
|
|
727
|
-
{
|
|
728
|
-
public:
|
|
729
|
-
typedef typename basic_regex<charT, traits>::flag_type flag_type;
|
|
730
|
-
typedef typename basic_regex<charT, traits>::size_type size_type;
|
|
731
|
-
explicit reg_expression(){}
|
|
732
|
-
explicit reg_expression(const charT* p, flag_type f = regex_constants::normal)
|
|
733
|
-
: basic_regex<charT, traits>(p, f){}
|
|
734
|
-
reg_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
|
|
735
|
-
: basic_regex<charT, traits>(p1, p2, f){}
|
|
736
|
-
reg_expression(const charT* p, size_type len, flag_type f)
|
|
737
|
-
: basic_regex<charT, traits>(p, len, f){}
|
|
738
|
-
reg_expression(const reg_expression& that)
|
|
739
|
-
: basic_regex<charT, traits>(that) {}
|
|
740
|
-
~reg_expression(){}
|
|
741
|
-
reg_expression& BOOST_REGEX_CALL operator=(const reg_expression& that)
|
|
742
|
-
{
|
|
743
|
-
return this->assign(that);
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
#if !defined(BOOST_NO_MEMBER_TEMPLATES)
|
|
747
|
-
template <class ST, class SA>
|
|
748
|
-
explicit reg_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
|
|
749
|
-
: basic_regex<charT, traits>(p, f)
|
|
750
|
-
{
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
template <class InputIterator>
|
|
754
|
-
reg_expression(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
|
|
755
|
-
: basic_regex<charT, traits>(arg_first, arg_last, f)
|
|
756
|
-
{
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
template <class ST, class SA>
|
|
760
|
-
reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
|
|
761
|
-
{
|
|
762
|
-
this->assign(p);
|
|
763
|
-
return *this;
|
|
764
|
-
}
|
|
765
|
-
#else
|
|
766
|
-
explicit reg_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
|
|
767
|
-
: basic_regex<charT, traits>(p, f)
|
|
768
|
-
{
|
|
769
|
-
}
|
|
770
|
-
|
|
771
|
-
reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
|
|
772
|
-
{
|
|
773
|
-
this->assign(p);
|
|
774
|
-
return *this;
|
|
775
|
-
}
|
|
776
|
-
#endif
|
|
777
|
-
|
|
778
|
-
};
|
|
779
|
-
|
|
780
|
-
#ifdef BOOST_MSVC
|
|
781
|
-
#pragma warning (pop)
|
|
782
|
-
#endif
|
|
783
|
-
|
|
784
|
-
} // namespace boost
|
|
785
|
-
|
|
786
|
-
#ifdef BOOST_MSVC
|
|
787
|
-
#pragma warning(push)
|
|
788
|
-
#pragma warning(disable: 4103)
|
|
789
|
-
#endif
|
|
790
|
-
#ifdef BOOST_HAS_ABI_HEADERS
|
|
791
|
-
# include BOOST_ABI_SUFFIX
|
|
792
|
-
#endif
|
|
793
|
-
#ifdef BOOST_MSVC
|
|
794
|
-
#pragma warning(pop)
|
|
795
|
-
#endif
|
|
796
|
-
|
|
797
|
-
#endif
|