passenger 5.1.4 → 5.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.editorconfig +9 -0
- data/CHANGELOG +9 -0
- data/build/cxx_tests.rb +11 -1
- data/build/documentation.rb +0 -32
- data/build/support/cxx_dependency_map.rb +602 -2
- data/build/test_basics.rb +3 -3
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
- data/dev/ci/README.md +121 -0
- data/dev/ci/lib/functions.sh +129 -0
- data/dev/ci/lib/set-container-envvars.sh +46 -0
- data/dev/ci/lib/setup-container.sh +43 -0
- data/dev/ci/run-tests-natively +24 -0
- data/dev/ci/run-tests-with-docker +42 -0
- data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
- data/dev/ci/scripts/docker-entrypoint.sh +17 -0
- data/dev/ci/scripts/inituidgid +17 -0
- data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
- data/dev/ci/scripts/setup-host-natively.sh +11 -0
- data/dev/ci/setup-host +50 -0
- data/dev/ci/tests/apache2/run +6 -0
- data/dev/ci/tests/apache2/setup +4 -0
- data/dev/ci/tests/cxx/run +9 -0
- data/dev/ci/tests/cxx/setup +4 -0
- data/dev/ci/tests/nginx-dynamic/run +20 -0
- data/dev/ci/tests/nginx-dynamic/setup +4 -0
- data/dev/ci/tests/nginx/run +5 -0
- data/dev/ci/tests/nginx/setup +4 -0
- data/dev/ci/tests/nodejs/run +4 -0
- data/dev/ci/tests/nodejs/setup +4 -0
- data/dev/ci/tests/ruby/run +4 -0
- data/dev/ci/tests/ruby/setup +4 -0
- data/dev/ci/tests/source-packaging/run +4 -0
- data/dev/ci/tests/source-packaging/setup +4 -0
- data/dev/ci/tests/standalone/run +4 -0
- data/dev/ci/tests/standalone/setup +4 -0
- data/dev/copy_boost_headers +8 -2
- data/src/agent/Core/ApiServer.h +11 -5
- data/src/agent/Core/Controller.h +12 -46
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +369 -0
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
- data/src/agent/Core/Controller/Hooks.cpp +15 -3
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +28 -39
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
- data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
- data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
- data/src/agent/Core/Controller/Request.h +2 -0
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
- data/src/agent/Core/Controller/TurboCaching.h +11 -10
- data/src/agent/Core/CoreMain.cpp +16 -6
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
- data/src/agent/Core/SpawningKit/Spawner.h +7 -3
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Controller.h +66 -32
- data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
- data/src/apache2_module/ConfigurationCommands.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
- data/src/cxx_supportlib/ConfigKit/README.md +895 -0
- data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
- data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
- data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Logging.h +0 -35
- data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
- data/src/cxx_supportlib/ServerKit/Server.h +65 -25
- data/src/cxx_supportlib/oxt/macros.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/crash-watch.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
- metadata +77 -38
- data/dev/ci/inituidgid +0 -24
- data/dev/ci/run_jenkins.sh +0 -70
- data/dev/ci/run_travis.sh +0 -314
- data/doc/Design and Architecture.html +0 -2421
- data/doc/Design and Architecture.txt +0 -511
- data/doc/Security of user switching support.html +0 -1833
- data/doc/Users guide Apache.html +0 -3101
- data/doc/Users guide Apache.idmap.txt +0 -451
- data/doc/Users guide Apache.txt +0 -534
- data/doc/Users guide Nginx.html +0 -3026
- data/doc/Users guide Nginx.idmap.txt +0 -431
- data/doc/Users guide Nginx.txt +0 -451
- data/doc/Users guide Standalone.html +0 -2092
- data/doc/Users guide Standalone.idmap.txt +0 -137
- data/doc/Users guide Standalone.txt +0 -81
- data/doc/Users guide.html +0 -1606
- data/doc/Users guide.txt +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -48,7 +48,8 @@ struct make_any_base_hook
|
|
48
48
|
>::type packed_options;
|
49
49
|
|
50
50
|
typedef generic_hook
|
51
|
-
<
|
51
|
+
< AnyAlgorithm
|
52
|
+
, any_node_traits<typename packed_options::void_pointer>
|
52
53
|
, typename packed_options::tag
|
53
54
|
, packed_options::link_mode
|
54
55
|
, AnyBaseHookId
|
@@ -153,7 +154,8 @@ struct make_any_member_hook
|
|
153
154
|
>::type packed_options;
|
154
155
|
|
155
156
|
typedef generic_hook
|
156
|
-
<
|
157
|
+
< AnyAlgorithm
|
158
|
+
, any_node_traits<typename packed_options::void_pointer>
|
157
159
|
, member_tag
|
158
160
|
, packed_options::link_mode
|
159
161
|
, NoBaseHookId
|
@@ -26,6 +26,11 @@
|
|
26
26
|
namespace boost {
|
27
27
|
namespace intrusive {
|
28
28
|
|
29
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
30
|
+
template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
|
31
|
+
class avl_multiset_impl;
|
32
|
+
#endif
|
33
|
+
|
29
34
|
//! The class template avl_set is an intrusive container, that mimics most of
|
30
35
|
//! the interface of std::set as described in the C++ standard.
|
31
36
|
//!
|
@@ -82,9 +87,13 @@ class avl_set_impl
|
|
82
87
|
|
83
88
|
public:
|
84
89
|
|
90
|
+
//! @copydoc ::boost::intrusive::avltree::avltree()
|
91
|
+
avl_set_impl()
|
92
|
+
: tree_type()
|
93
|
+
{}
|
94
|
+
|
85
95
|
//! @copydoc ::boost::intrusive::avltree::avltree(const key_compare &,const value_traits &)
|
86
|
-
explicit avl_set_impl( const key_compare &cmp =
|
87
|
-
, const value_traits &v_traits = value_traits())
|
96
|
+
explicit avl_set_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
88
97
|
: tree_type(cmp, v_traits)
|
89
98
|
{}
|
90
99
|
|
@@ -146,6 +155,15 @@ class avl_set_impl
|
|
146
155
|
//! @copydoc ::boost::intrusive::avltree::crend()const
|
147
156
|
const_reverse_iterator crend() const;
|
148
157
|
|
158
|
+
//! @copydoc ::boost::intrusive::avltree::root()
|
159
|
+
iterator root();
|
160
|
+
|
161
|
+
//! @copydoc ::boost::intrusive::avltree::root()const
|
162
|
+
const_iterator root() const;
|
163
|
+
|
164
|
+
//! @copydoc ::boost::intrusive::avltree::croot()const
|
165
|
+
const_iterator croot() const;
|
166
|
+
|
149
167
|
//! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(iterator)
|
150
168
|
static avl_set_impl &container_from_end_iterator(iterator end_iterator);
|
151
169
|
|
@@ -196,6 +214,17 @@ class avl_set_impl
|
|
196
214
|
iterator insert(const_iterator hint, reference value)
|
197
215
|
{ return tree_type::insert_unique(hint, value); }
|
198
216
|
|
217
|
+
//! @copydoc ::boost::intrusive::avltree::insert_unique_check(const key_type&,insert_commit_data&)
|
218
|
+
std::pair<iterator, bool> insert_check
|
219
|
+
(const key_type &key, insert_commit_data &commit_data)
|
220
|
+
{ return tree_type::insert_unique_check(key, commit_data); }
|
221
|
+
|
222
|
+
//! @copydoc ::boost::intrusive::avltree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
223
|
+
std::pair<iterator, bool> insert_check
|
224
|
+
(const_iterator hint, const key_type &key
|
225
|
+
,insert_commit_data &commit_data)
|
226
|
+
{ return tree_type::insert_unique_check(hint, key, commit_data); }
|
227
|
+
|
199
228
|
//! @copydoc ::boost::intrusive::avltree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
200
229
|
template<class KeyType, class KeyTypeKeyCompare>
|
201
230
|
std::pair<iterator, bool> insert_check
|
@@ -321,21 +350,21 @@ class avl_set_impl
|
|
321
350
|
|
322
351
|
#endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
323
352
|
|
324
|
-
//! @copydoc ::boost::intrusive::
|
353
|
+
//! @copydoc ::boost::intrusive::avltree::equal_range(const key_type &)
|
325
354
|
std::pair<iterator,iterator> equal_range(const key_type &key)
|
326
355
|
{ return this->tree_type::lower_bound_range(key); }
|
327
356
|
|
328
|
-
//! @copydoc ::boost::intrusive::
|
357
|
+
//! @copydoc ::boost::intrusive::avltree::equal_range(const KeyType&,KeyTypeKeyCompare)
|
329
358
|
template<class KeyType, class KeyTypeKeyCompare>
|
330
359
|
std::pair<iterator,iterator> equal_range(const KeyType& key, KeyTypeKeyCompare comp)
|
331
360
|
{ return this->tree_type::equal_range(key, comp); }
|
332
361
|
|
333
|
-
//! @copydoc ::boost::intrusive::
|
362
|
+
//! @copydoc ::boost::intrusive::avltree::equal_range(const key_type &)const
|
334
363
|
std::pair<const_iterator, const_iterator>
|
335
364
|
equal_range(const key_type &key) const
|
336
365
|
{ return this->tree_type::lower_bound_range(key); }
|
337
366
|
|
338
|
-
//! @copydoc ::boost::intrusive::
|
367
|
+
//! @copydoc ::boost::intrusive::avltree::equal_range(const KeyType&,KeyTypeKeyCompare)const
|
339
368
|
template<class KeyType, class KeyTypeKeyCompare>
|
340
369
|
std::pair<const_iterator, const_iterator>
|
341
370
|
equal_range(const KeyType& key, KeyTypeKeyCompare comp) const
|
@@ -384,6 +413,26 @@ class avl_set_impl
|
|
384
413
|
|
385
414
|
//! @copydoc ::boost::intrusive::avltree::remove_node
|
386
415
|
void remove_node(reference value);
|
416
|
+
|
417
|
+
//! @copydoc ::boost::intrusive::avltree::merge_unique
|
418
|
+
template<class ...Options2>
|
419
|
+
void merge(avl_set<T, Options2...> &source);
|
420
|
+
|
421
|
+
//! @copydoc ::boost::intrusive::avltree::merge_unique
|
422
|
+
template<class ...Options2>
|
423
|
+
void merge(avl_multiset<T, Options2...> &source);
|
424
|
+
|
425
|
+
#else
|
426
|
+
|
427
|
+
template<class Compare2>
|
428
|
+
void merge(avl_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
429
|
+
{ return tree_type::merge_unique(source); }
|
430
|
+
|
431
|
+
|
432
|
+
template<class Compare2>
|
433
|
+
void merge(avl_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
434
|
+
{ return tree_type::merge_unique(source); }
|
435
|
+
|
387
436
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
388
437
|
};
|
389
438
|
|
@@ -476,8 +525,11 @@ class avl_set
|
|
476
525
|
//Assert if passed value traits are compatible with the type
|
477
526
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
478
527
|
|
479
|
-
|
480
|
-
|
528
|
+
avl_set()
|
529
|
+
: Base()
|
530
|
+
{}
|
531
|
+
|
532
|
+
explicit avl_set( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
481
533
|
: Base(cmp, v_traits)
|
482
534
|
{}
|
483
535
|
|
@@ -573,9 +625,13 @@ class avl_multiset_impl
|
|
573
625
|
static const bool constant_time_size = tree_type::constant_time_size;
|
574
626
|
|
575
627
|
public:
|
628
|
+
//! @copydoc ::boost::intrusive::avltree::avltree()
|
629
|
+
avl_multiset_impl()
|
630
|
+
: tree_type()
|
631
|
+
{}
|
632
|
+
|
576
633
|
//! @copydoc ::boost::intrusive::avltree::avltree(const key_compare &,const value_traits &)
|
577
|
-
explicit avl_multiset_impl( const key_compare &cmp =
|
578
|
-
, const value_traits &v_traits = value_traits())
|
634
|
+
explicit avl_multiset_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
579
635
|
: tree_type(cmp, v_traits)
|
580
636
|
{}
|
581
637
|
|
@@ -636,6 +692,15 @@ class avl_multiset_impl
|
|
636
692
|
//! @copydoc ::boost::intrusive::avltree::crend()const
|
637
693
|
const_reverse_iterator crend() const;
|
638
694
|
|
695
|
+
//! @copydoc ::boost::intrusive::avltree::root()
|
696
|
+
iterator root();
|
697
|
+
|
698
|
+
//! @copydoc ::boost::intrusive::avltree::root()const
|
699
|
+
const_iterator root() const;
|
700
|
+
|
701
|
+
//! @copydoc ::boost::intrusive::avltree::croot()const
|
702
|
+
const_iterator croot() const;
|
703
|
+
|
639
704
|
//! @copydoc ::boost::intrusive::avltree::container_from_end_iterator(iterator)
|
640
705
|
static avl_multiset_impl &container_from_end_iterator(iterator end_iterator);
|
641
706
|
|
@@ -843,6 +908,25 @@ class avl_multiset_impl
|
|
843
908
|
|
844
909
|
//! @copydoc ::boost::intrusive::avltree::remove_node
|
845
910
|
void remove_node(reference value);
|
911
|
+
|
912
|
+
//! @copydoc ::boost::intrusive::avltree::merge_equal
|
913
|
+
template<class ...Options2>
|
914
|
+
void merge(avl_multiset<T, Options2...> &source);
|
915
|
+
|
916
|
+
//! @copydoc ::boost::intrusive::avltree::merge_equal
|
917
|
+
template<class ...Options2>
|
918
|
+
void merge(avl_set<T, Options2...> &source);
|
919
|
+
|
920
|
+
#else
|
921
|
+
|
922
|
+
template<class Compare2>
|
923
|
+
void merge(avl_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
924
|
+
{ return tree_type::merge_equal(source); }
|
925
|
+
|
926
|
+
template<class Compare2>
|
927
|
+
void merge(avl_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
928
|
+
{ return tree_type::merge_equal(source); }
|
929
|
+
|
846
930
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
847
931
|
};
|
848
932
|
|
@@ -936,8 +1020,11 @@ class avl_multiset
|
|
936
1020
|
//Assert if passed value traits are compatible with the type
|
937
1021
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
938
1022
|
|
939
|
-
|
940
|
-
|
1023
|
+
avl_multiset()
|
1024
|
+
: Base()
|
1025
|
+
{}
|
1026
|
+
|
1027
|
+
explicit avl_multiset( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
941
1028
|
: Base(cmp, v_traits)
|
942
1029
|
{}
|
943
1030
|
|
@@ -47,7 +47,8 @@ struct make_avl_set_base_hook
|
|
47
47
|
::type packed_options;
|
48
48
|
|
49
49
|
typedef generic_hook
|
50
|
-
<
|
50
|
+
< AvlTreeAlgorithms
|
51
|
+
, avltree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size>
|
51
52
|
, typename packed_options::tag
|
52
53
|
, packed_options::link_mode
|
53
54
|
, AvlTreeBaseHookId
|
@@ -177,7 +178,8 @@ struct make_avl_set_member_hook
|
|
177
178
|
::type packed_options;
|
178
179
|
|
179
180
|
typedef generic_hook
|
180
|
-
<
|
181
|
+
< AvlTreeAlgorithms
|
182
|
+
, avltree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size>
|
181
183
|
, member_tag
|
182
184
|
, packed_options::link_mode
|
183
185
|
, NoBaseHookId
|
@@ -121,10 +121,13 @@ class avltree_impl
|
|
121
121
|
|
122
122
|
typedef typename implementation_defined::insert_commit_data insert_commit_data;
|
123
123
|
|
124
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
125
|
+
avltree_impl()
|
126
|
+
: tree_type()
|
127
|
+
{}
|
124
128
|
|
125
129
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
126
|
-
explicit avltree_impl( const key_compare &cmp =
|
127
|
-
, const value_traits &v_traits = value_traits())
|
130
|
+
explicit avltree_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
128
131
|
: tree_type(cmp, v_traits)
|
129
132
|
{}
|
130
133
|
|
@@ -186,6 +189,15 @@ class avltree_impl
|
|
186
189
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
187
190
|
const_reverse_iterator crend() const;
|
188
191
|
|
192
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
193
|
+
iterator root();
|
194
|
+
|
195
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
196
|
+
const_iterator root() const;
|
197
|
+
|
198
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
199
|
+
const_iterator croot() const;
|
200
|
+
|
189
201
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
190
202
|
static avltree_impl &container_from_end_iterator(iterator end_iterator);
|
191
203
|
|
@@ -257,6 +269,14 @@ class avltree_impl
|
|
257
269
|
(const_iterator hint, const KeyType &key
|
258
270
|
,KeyTypeKeyCompare comp, insert_commit_data &commit_data);
|
259
271
|
|
272
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const key_type&,insert_commit_data&)
|
273
|
+
std::pair<iterator, bool> insert_unique_check
|
274
|
+
(const key_type &key, insert_commit_data &commit_data);
|
275
|
+
|
276
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
277
|
+
std::pair<iterator, bool> insert_unique_check
|
278
|
+
(const_iterator hint, const key_type &key, insert_commit_data &commit_data);
|
279
|
+
|
260
280
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_commit
|
261
281
|
iterator insert_unique_commit(reference value, const insert_commit_data &commit_data);
|
262
282
|
|
@@ -416,6 +436,14 @@ class avltree_impl
|
|
416
436
|
//! @copydoc ::boost::intrusive::bstree::remove_node
|
417
437
|
void remove_node(reference value);
|
418
438
|
|
439
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique(bstree<T, Options2...>&)
|
440
|
+
template<class T, class ...Options2>
|
441
|
+
void merge_unique(avltree<T, Options2...> &);
|
442
|
+
|
443
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal(bstree<T, Options2...>&)
|
444
|
+
template<class T, class ...Options2>
|
445
|
+
void merge_equal(avltree<T, Options2...> &);
|
446
|
+
|
419
447
|
friend bool operator< (const avltree_impl &x, const avltree_impl &y);
|
420
448
|
|
421
449
|
friend bool operator==(const avltree_impl &x, const avltree_impl &y);
|
@@ -507,8 +535,11 @@ class avltree
|
|
507
535
|
//Assert if passed value traits are compatible with the type
|
508
536
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
509
537
|
|
510
|
-
|
511
|
-
|
538
|
+
avltree()
|
539
|
+
: Base()
|
540
|
+
{}
|
541
|
+
|
542
|
+
explicit avltree( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
512
543
|
: Base(cmp, v_traits)
|
513
544
|
{}
|
514
545
|
|
@@ -269,14 +269,35 @@ class avltree_algorithms
|
|
269
269
|
{
|
270
270
|
typename bstree_algo::data_for_rebalance info;
|
271
271
|
bstree_algo::erase(header, z, info);
|
272
|
-
|
273
|
-
NodeTraits::set_balance(info.y, NodeTraits::get_balance(z));
|
274
|
-
}
|
275
|
-
//Rebalance avltree
|
276
|
-
rebalance_after_erasure(header, info.x, info.x_parent);
|
272
|
+
rebalance_after_erasure(header, z, info);
|
277
273
|
return z;
|
278
274
|
}
|
279
275
|
|
276
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
277
|
+
template<class NodePtrCompare>
|
278
|
+
static bool transfer_unique
|
279
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
280
|
+
{
|
281
|
+
typename bstree_algo::data_for_rebalance info;
|
282
|
+
bool const transferred = bstree_algo::transfer_unique(header1, comp, header2, z, info);
|
283
|
+
if(transferred){
|
284
|
+
rebalance_after_erasure(header2, z, info);
|
285
|
+
rebalance_after_insertion(header1, z);
|
286
|
+
}
|
287
|
+
return transferred;
|
288
|
+
}
|
289
|
+
|
290
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
291
|
+
template<class NodePtrCompare>
|
292
|
+
static void transfer_equal
|
293
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
294
|
+
{
|
295
|
+
typename bstree_algo::data_for_rebalance info;
|
296
|
+
bstree_algo::transfer_equal(header1, comp, header2, z, info);
|
297
|
+
rebalance_after_erasure(header2, z, info);
|
298
|
+
rebalance_after_insertion(header1, z);
|
299
|
+
}
|
300
|
+
|
280
301
|
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,const node_ptr&,Cloner,Disposer)
|
281
302
|
template <class Cloner, class Disposer>
|
282
303
|
static void clone
|
@@ -461,7 +482,17 @@ class avltree_algorithms
|
|
461
482
|
return true;
|
462
483
|
}
|
463
484
|
|
464
|
-
static void rebalance_after_erasure
|
485
|
+
static void rebalance_after_erasure
|
486
|
+
( const node_ptr & header, const node_ptr &z, const typename bstree_algo::data_for_rebalance &info)
|
487
|
+
{
|
488
|
+
if(info.y != z){
|
489
|
+
NodeTraits::set_balance(info.y, NodeTraits::get_balance(z));
|
490
|
+
}
|
491
|
+
//Rebalance avltree
|
492
|
+
rebalance_after_erasure_restore_invariants(header, info.x, info.x_parent);
|
493
|
+
}
|
494
|
+
|
495
|
+
static void rebalance_after_erasure_restore_invariants(const node_ptr & header, node_ptr x, node_ptr x_parent)
|
465
496
|
{
|
466
497
|
for ( node_ptr root = NodeTraits::get_parent(header)
|
467
498
|
; x != root
|
@@ -23,6 +23,11 @@
|
|
23
23
|
# pragma once
|
24
24
|
#endif
|
25
25
|
|
26
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
27
|
+
template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
|
28
|
+
class bs_multiset_impl;
|
29
|
+
#endif
|
30
|
+
|
26
31
|
namespace boost {
|
27
32
|
namespace intrusive {
|
28
33
|
|
@@ -80,9 +85,13 @@ class bs_set_impl
|
|
80
85
|
static const bool constant_time_size = tree_type::constant_time_size;
|
81
86
|
|
82
87
|
public:
|
88
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
89
|
+
bs_set_impl()
|
90
|
+
: tree_type()
|
91
|
+
{}
|
92
|
+
|
83
93
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
84
|
-
explicit bs_set_impl( const key_compare &cmp =
|
85
|
-
, const value_traits &v_traits = value_traits())
|
94
|
+
explicit bs_set_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
86
95
|
: tree_type(cmp, v_traits)
|
87
96
|
{}
|
88
97
|
|
@@ -143,6 +152,15 @@ class bs_set_impl
|
|
143
152
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
144
153
|
const_reverse_iterator crend() const;
|
145
154
|
|
155
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
156
|
+
iterator root();
|
157
|
+
|
158
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
159
|
+
const_iterator root() const;
|
160
|
+
|
161
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
162
|
+
const_iterator croot() const;
|
163
|
+
|
146
164
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
147
165
|
static bs_set_impl &container_from_end_iterator(iterator end_iterator);
|
148
166
|
|
@@ -193,6 +211,17 @@ class bs_set_impl
|
|
193
211
|
iterator insert(const_iterator hint, reference value)
|
194
212
|
{ return tree_type::insert_unique(hint, value); }
|
195
213
|
|
214
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const key_type&,insert_commit_data&)
|
215
|
+
std::pair<iterator, bool> insert_check
|
216
|
+
(const key_type &key, insert_commit_data &commit_data)
|
217
|
+
{ return tree_type::insert_unique_check(key, commit_data); }
|
218
|
+
|
219
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
220
|
+
std::pair<iterator, bool> insert_check
|
221
|
+
(const_iterator hint, const key_type &key
|
222
|
+
,insert_commit_data &commit_data)
|
223
|
+
{ return tree_type::insert_unique_check(hint, key, commit_data); }
|
224
|
+
|
196
225
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
197
226
|
template<class KeyType, class KeyTypeKeyCompare>
|
198
227
|
std::pair<iterator, bool> insert_check
|
@@ -381,6 +410,26 @@ class bs_set_impl
|
|
381
410
|
|
382
411
|
//! @copydoc ::boost::intrusive::bstree::remove_node
|
383
412
|
void remove_node(reference value);
|
413
|
+
|
414
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique
|
415
|
+
template<class ...Options2>
|
416
|
+
void merge(bs_set<T, Options2...> &source);
|
417
|
+
|
418
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique
|
419
|
+
template<class ...Options2>
|
420
|
+
void merge(bs_multiset<T, Options2...> &source);
|
421
|
+
|
422
|
+
#else
|
423
|
+
|
424
|
+
template<class Compare2>
|
425
|
+
void merge(bs_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
426
|
+
{ return tree_type::merge_unique(source); }
|
427
|
+
|
428
|
+
|
429
|
+
template<class Compare2>
|
430
|
+
void merge(bs_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
431
|
+
{ return tree_type::merge_unique(source); }
|
432
|
+
|
384
433
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
385
434
|
};
|
386
435
|
|
@@ -473,8 +522,11 @@ class bs_set
|
|
473
522
|
//Assert if passed value traits are compatible with the type
|
474
523
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
475
524
|
|
476
|
-
|
477
|
-
|
525
|
+
bs_set()
|
526
|
+
: Base()
|
527
|
+
{}
|
528
|
+
|
529
|
+
explicit bs_set( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
478
530
|
: Base(cmp, v_traits)
|
479
531
|
{}
|
480
532
|
|
@@ -569,9 +621,13 @@ class bs_multiset_impl
|
|
569
621
|
static const bool constant_time_size = tree_type::constant_time_size;
|
570
622
|
|
571
623
|
public:
|
624
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
625
|
+
bs_multiset_impl()
|
626
|
+
: tree_type()
|
627
|
+
{}
|
628
|
+
|
572
629
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
573
|
-
explicit bs_multiset_impl( const key_compare &cmp =
|
574
|
-
, const value_traits &v_traits = value_traits())
|
630
|
+
explicit bs_multiset_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
575
631
|
: tree_type(cmp, v_traits)
|
576
632
|
{}
|
577
633
|
|
@@ -632,6 +688,15 @@ class bs_multiset_impl
|
|
632
688
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
633
689
|
const_reverse_iterator crend() const;
|
634
690
|
|
691
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
692
|
+
iterator root();
|
693
|
+
|
694
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
695
|
+
const_iterator root() const;
|
696
|
+
|
697
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
698
|
+
const_iterator croot() const;
|
699
|
+
|
635
700
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
636
701
|
static bs_multiset_impl &container_from_end_iterator(iterator end_iterator);
|
637
702
|
|
@@ -839,6 +904,25 @@ class bs_multiset_impl
|
|
839
904
|
|
840
905
|
//! @copydoc ::boost::intrusive::bstree::remove_node
|
841
906
|
void remove_node(reference value);
|
907
|
+
|
908
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal
|
909
|
+
template<class ...Options2>
|
910
|
+
void merge(bs_multiset<T, Options2...> &source);
|
911
|
+
|
912
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal
|
913
|
+
template<class ...Options2>
|
914
|
+
void merge(bs_set<T, Options2...> &source);
|
915
|
+
|
916
|
+
#else
|
917
|
+
|
918
|
+
template<class Compare2>
|
919
|
+
void merge(bs_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
920
|
+
{ return tree_type::merge_equal(source); }
|
921
|
+
|
922
|
+
template<class Compare2>
|
923
|
+
void merge(bs_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
924
|
+
{ return tree_type::merge_equal(source); }
|
925
|
+
|
842
926
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
843
927
|
};
|
844
928
|
|
@@ -932,8 +1016,11 @@ class bs_multiset
|
|
932
1016
|
//Assert if passed value traits are compatible with the type
|
933
1017
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
934
1018
|
|
935
|
-
|
936
|
-
|
1019
|
+
bs_multiset()
|
1020
|
+
: Base()
|
1021
|
+
{}
|
1022
|
+
|
1023
|
+
explicit bs_multiset( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
937
1024
|
: Base(cmp, v_traits)
|
938
1025
|
{}
|
939
1026
|
|