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
@@ -141,7 +141,7 @@ class linear_slist_algorithms
|
|
141
141
|
//! <b>Complexity</b>: Constant
|
142
142
|
//!
|
143
143
|
//! <b>Throws</b>: Nothing.
|
144
|
-
static void init_header(const node_ptr & this_node)
|
144
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_header(const node_ptr & this_node)
|
145
145
|
{ NodeTraits::set_next(this_node, node_ptr ()); }
|
146
146
|
|
147
147
|
//! <b>Requires</b>: this_node and prev_init_node must be in the same linear list.
|
@@ -153,7 +153,7 @@ class linear_slist_algorithms
|
|
153
153
|
//! <b>Complexity</b>: Linear to the number of elements between prev_init_node and this_node.
|
154
154
|
//!
|
155
155
|
//! <b>Throws</b>: Nothing.
|
156
|
-
static node_ptr get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node)
|
156
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node)
|
157
157
|
{ return base_t::get_previous_node(prev_init_node, this_node); }
|
158
158
|
|
159
159
|
//! <b>Requires</b>: this_node must be in a linear list or be an empty linear list.
|
@@ -176,7 +176,20 @@ class list_impl
|
|
176
176
|
//!
|
177
177
|
//! <b>Throws</b>: If value_traits::node_traits::node
|
178
178
|
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks).
|
179
|
-
|
179
|
+
list_impl()
|
180
|
+
: data_(value_traits())
|
181
|
+
{
|
182
|
+
this->priv_size_traits().set_size(size_type(0));
|
183
|
+
node_algorithms::init_header(this->get_root_node());
|
184
|
+
}
|
185
|
+
|
186
|
+
//! <b>Effects</b>: constructs an empty list.
|
187
|
+
//!
|
188
|
+
//! <b>Complexity</b>: Constant
|
189
|
+
//!
|
190
|
+
//! <b>Throws</b>: If value_traits::node_traits::node
|
191
|
+
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks).
|
192
|
+
explicit list_impl(const value_traits &v_traits)
|
180
193
|
: data_(v_traits)
|
181
194
|
{
|
182
195
|
this->priv_size_traits().set_size(size_type(0));
|
@@ -529,11 +542,7 @@ class list_impl
|
|
529
542
|
void swap(list_impl& other)
|
530
543
|
{
|
531
544
|
node_algorithms::swap_nodes(this->get_root_node(), other.get_root_node());
|
532
|
-
|
533
|
-
size_type backup = this->priv_size_traits().get_size();
|
534
|
-
this->priv_size_traits().set_size(other.priv_size_traits().get_size());
|
535
|
-
other.priv_size_traits().set_size(backup);
|
536
|
-
}
|
545
|
+
this->priv_size_traits().swap(other.priv_size_traits());
|
537
546
|
}
|
538
547
|
|
539
548
|
//! <b>Effects</b>: Moves backwards all the elements, so that the first
|
@@ -1455,7 +1464,11 @@ class list
|
|
1455
1464
|
typedef typename Base::iterator iterator;
|
1456
1465
|
typedef typename Base::const_iterator const_iterator;
|
1457
1466
|
|
1458
|
-
|
1467
|
+
list()
|
1468
|
+
: Base()
|
1469
|
+
{}
|
1470
|
+
|
1471
|
+
explicit list(const value_traits &v_traits)
|
1459
1472
|
: Base(v_traits)
|
1460
1473
|
{}
|
1461
1474
|
|
@@ -50,7 +50,8 @@ struct make_list_base_hook
|
|
50
50
|
>::type packed_options;
|
51
51
|
|
52
52
|
typedef generic_hook
|
53
|
-
<
|
53
|
+
< CircularListAlgorithms
|
54
|
+
, list_node_traits<typename packed_options::void_pointer>
|
54
55
|
, typename packed_options::tag
|
55
56
|
, packed_options::link_mode
|
56
57
|
, ListBaseHookId
|
@@ -177,7 +178,8 @@ struct make_list_member_hook
|
|
177
178
|
>::type packed_options;
|
178
179
|
|
179
180
|
typedef generic_hook
|
180
|
-
<
|
181
|
+
< CircularListAlgorithms
|
182
|
+
, list_node_traits<typename packed_options::void_pointer>
|
181
183
|
, member_tag
|
182
184
|
, packed_options::link_mode
|
183
185
|
, NoBaseHookId
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
#include <boost/intrusive/link_mode.hpp>
|
20
20
|
#include <boost/intrusive/detail/parent_from_member.hpp>
|
21
|
+
#include <boost/intrusive/detail/to_raw_pointer.hpp>
|
21
22
|
#include <boost/intrusive/pointer_traits.hpp>
|
22
23
|
|
23
24
|
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
@@ -56,19 +57,19 @@ struct member_value_traits
|
|
56
57
|
typedef const value_type & const_reference;
|
57
58
|
static const link_mode_type link_mode = LinkMode;
|
58
59
|
|
59
|
-
static node_ptr to_node_ptr(reference value)
|
60
|
+
BOOST_INTRUSIVE_FORCEINLINE static node_ptr to_node_ptr(reference value)
|
60
61
|
{ return pointer_traits<node_ptr>::pointer_to(value.*PtrToMember); }
|
61
62
|
|
62
|
-
static const_node_ptr to_node_ptr(const_reference value)
|
63
|
+
BOOST_INTRUSIVE_FORCEINLINE static const_node_ptr to_node_ptr(const_reference value)
|
63
64
|
{ return pointer_traits<const_node_ptr>::pointer_to(value.*PtrToMember); }
|
64
65
|
|
65
|
-
static pointer to_value_ptr(const node_ptr &n)
|
66
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer to_value_ptr(const node_ptr &n)
|
66
67
|
{
|
67
68
|
return pointer_traits<pointer>::pointer_to(*detail::parent_from_member<value_type, node>
|
68
69
|
(boost::intrusive::detail::to_raw_pointer(n), PtrToMember));
|
69
70
|
}
|
70
71
|
|
71
|
-
static const_pointer to_value_ptr(const const_node_ptr &n)
|
72
|
+
BOOST_INTRUSIVE_FORCEINLINE static const_pointer to_value_ptr(const const_node_ptr &n)
|
72
73
|
{
|
73
74
|
return pointer_traits<const_pointer>::pointer_to(*detail::parent_from_member<value_type, node>
|
74
75
|
(boost::intrusive::detail::to_raw_pointer(n), PtrToMember));
|
@@ -61,12 +61,12 @@ BOOST_INTRUSIVE_OPTION_TYPE(size_type, SizeType, SizeType, size_type)
|
|
61
61
|
//!comparison functor for the value type
|
62
62
|
BOOST_INTRUSIVE_OPTION_TYPE(compare, Compare, Compare, compare)
|
63
63
|
|
64
|
-
//!This option setter specifies
|
64
|
+
//!This option setter specifies a function object
|
65
65
|
//!that specifies the type of the key of an associative
|
66
66
|
//!container and an operator to obtain it from a value type.
|
67
67
|
//!
|
68
|
-
//!This function object must the define a `
|
69
|
-
//!a member with signature `const
|
68
|
+
//!This function object must the define a `type` member typedef and
|
69
|
+
//!a member with signature `type [const&] operator()(const value_type &) const`
|
70
70
|
//!that will return the key from a value_type of an associative container
|
71
71
|
BOOST_INTRUSIVE_OPTION_TYPE(key_of_value, KeyOfValue, KeyOfValue, key_of_value)
|
72
72
|
|
@@ -88,7 +88,7 @@ BOOST_INTRUSIVE_OPTION_CONSTANT(floating_point, bool, Enabled, floating_point)
|
|
88
88
|
//!functor for the value type
|
89
89
|
BOOST_INTRUSIVE_OPTION_TYPE(equal, Equal, Equal, equal)
|
90
90
|
|
91
|
-
//!This option setter specifies the
|
91
|
+
//!This option setter specifies the priority comparison
|
92
92
|
//!functor for the value type
|
93
93
|
BOOST_INTRUSIVE_OPTION_TYPE(priority, Priority, Priority, priority)
|
94
94
|
|
@@ -13,6 +13,7 @@
|
|
13
13
|
#define BOOST_INTRUSIVE_PARENT_FROM_MEMBER_HPP
|
14
14
|
|
15
15
|
#include <boost/intrusive/detail/config_begin.hpp>
|
16
|
+
#include <boost/intrusive/detail/workaround.hpp>
|
16
17
|
#include <boost/intrusive/intrusive_fwd.hpp>
|
17
18
|
|
18
19
|
#include <boost/intrusive/detail/parent_from_member.hpp>
|
@@ -29,7 +30,7 @@ namespace intrusive {
|
|
29
30
|
//! Note: this function does not work with pointer to members that rely on
|
30
31
|
//! virtual inheritance.
|
31
32
|
template<class Parent, class Member>
|
32
|
-
|
33
|
+
BOOST_INTRUSIVE_FORCEINLINE Parent *get_parent_from_member(Member *member, const Member Parent::* ptr_to_member)
|
33
34
|
{ return ::boost::intrusive::detail::parent_from_member(member, ptr_to_member); }
|
34
35
|
|
35
36
|
//! Given a const pointer to a member and its corresponding const pointer to data member,
|
@@ -37,7 +38,7 @@ inline Parent *get_parent_from_member(Member *member, const Member Parent::* ptr
|
|
37
38
|
//! Note: this function does not work with pointer to members that rely on
|
38
39
|
//! virtual inheritance.
|
39
40
|
template<class Parent, class Member>
|
40
|
-
|
41
|
+
BOOST_INTRUSIVE_FORCEINLINE const Parent *get_parent_from_member(const Member *member, const Member Parent::* ptr_to_member)
|
41
42
|
{ return ::boost::intrusive::detail::parent_from_member(member, ptr_to_member); }
|
42
43
|
|
43
44
|
} //namespace intrusive {
|
@@ -67,19 +67,19 @@ struct pointer_plus_bits<T*, NumBits>
|
|
67
67
|
static const uintptr_t Mask = uintptr_t((uintptr_t(1u) << NumBits) - 1);
|
68
68
|
typedef T* pointer;
|
69
69
|
|
70
|
-
static pointer get_pointer(pointer n)
|
70
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer get_pointer(pointer n)
|
71
71
|
{ return pointer(uintptr_t(n) & uintptr_t(~Mask)); }
|
72
72
|
|
73
|
-
static void set_pointer(pointer &n, pointer p)
|
73
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_pointer(pointer &n, pointer p)
|
74
74
|
{
|
75
75
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(0 == (uintptr_t(p) & Mask));
|
76
76
|
n = pointer(uintptr_t(p) | (uintptr_t(n) & Mask));
|
77
77
|
}
|
78
78
|
|
79
|
-
static std::size_t get_bits(pointer n)
|
79
|
+
BOOST_INTRUSIVE_FORCEINLINE static std::size_t get_bits(pointer n)
|
80
80
|
{ return std::size_t(uintptr_t(n) & Mask); }
|
81
81
|
|
82
|
-
static void set_bits(pointer &n, std::size_t c)
|
82
|
+
BOOST_INTRUSIVE_FORCEINLINE static void set_bits(pointer &n, std::size_t c)
|
83
83
|
{
|
84
84
|
BOOST_INTRUSIVE_INVARIANT_ASSERT(uintptr_t(c) <= Mask);
|
85
85
|
n = pointer(uintptr_t((get_pointer)(n)) | uintptr_t(c));
|
@@ -288,25 +288,25 @@ struct pointer_traits<T*>
|
|
288
288
|
|
289
289
|
//! <b>Returns</b>: addressof(r)
|
290
290
|
//!
|
291
|
-
static pointer pointer_to(reference r)
|
291
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer pointer_to(reference r)
|
292
292
|
{ return boost::intrusive::detail::addressof(r); }
|
293
293
|
|
294
294
|
//! <b>Returns</b>: static_cast<pointer>(uptr)
|
295
295
|
//!
|
296
296
|
template<class U>
|
297
|
-
static pointer static_cast_from(U *uptr)
|
297
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer static_cast_from(U *uptr)
|
298
298
|
{ return static_cast<pointer>(uptr); }
|
299
299
|
|
300
300
|
//! <b>Returns</b>: const_cast<pointer>(uptr)
|
301
301
|
//!
|
302
302
|
template<class U>
|
303
|
-
static pointer const_cast_from(U *uptr)
|
303
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer const_cast_from(U *uptr)
|
304
304
|
{ return const_cast<pointer>(uptr); }
|
305
305
|
|
306
306
|
//! <b>Returns</b>: dynamic_cast<pointer>(uptr)
|
307
307
|
//!
|
308
308
|
template<class U>
|
309
|
-
static pointer dynamic_cast_from(U *uptr)
|
309
|
+
BOOST_INTRUSIVE_FORCEINLINE static pointer dynamic_cast_from(U *uptr)
|
310
310
|
{ return dynamic_cast<pointer>(uptr); }
|
311
311
|
};
|
312
312
|
|
@@ -14,6 +14,7 @@
|
|
14
14
|
#define BOOST_INTRUSIVE_PRIORITY_COMPARE_HPP
|
15
15
|
|
16
16
|
#include <boost/intrusive/detail/config_begin.hpp>
|
17
|
+
#include <boost/intrusive/detail/workaround.hpp>
|
17
18
|
#include <boost/intrusive/intrusive_fwd.hpp>
|
18
19
|
|
19
20
|
#include <boost/intrusive/detail/minimal_less_equal_header.hpp>
|
@@ -25,7 +26,14 @@
|
|
25
26
|
namespace boost {
|
26
27
|
namespace intrusive {
|
27
28
|
|
28
|
-
|
29
|
+
/// @cond
|
30
|
+
|
31
|
+
template<class U>
|
32
|
+
void priority_order();
|
33
|
+
|
34
|
+
/// @endcond
|
35
|
+
|
36
|
+
template <class T = void>
|
29
37
|
struct priority_compare
|
30
38
|
{
|
31
39
|
//Compatibility with std::binary_function
|
@@ -33,18 +41,28 @@ struct priority_compare
|
|
33
41
|
typedef T second_argument_type;
|
34
42
|
typedef bool result_type;
|
35
43
|
|
36
|
-
bool operator()(const T &val, const T &val2) const
|
44
|
+
BOOST_INTRUSIVE_FORCEINLINE bool operator()(const T &val, const T &val2) const
|
37
45
|
{
|
38
46
|
return priority_order(val, val2);
|
39
47
|
}
|
40
48
|
};
|
41
49
|
|
50
|
+
template <>
|
51
|
+
struct priority_compare<void>
|
52
|
+
{
|
53
|
+
template<class T, class U>
|
54
|
+
BOOST_INTRUSIVE_FORCEINLINE bool operator()(const T &t, const U &u) const
|
55
|
+
{
|
56
|
+
return priority_order(t, u);
|
57
|
+
}
|
58
|
+
};
|
59
|
+
|
42
60
|
/// @cond
|
43
61
|
|
44
|
-
template<class
|
62
|
+
template<class PrioComp, class T>
|
45
63
|
struct get_prio
|
46
64
|
{
|
47
|
-
typedef
|
65
|
+
typedef PrioComp type;
|
48
66
|
};
|
49
67
|
|
50
68
|
|
@@ -121,9 +121,13 @@ class rbtree_impl
|
|
121
121
|
|
122
122
|
typedef typename implementation_defined::insert_commit_data insert_commit_data;
|
123
123
|
|
124
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
125
|
+
rbtree_impl()
|
126
|
+
: tree_type()
|
127
|
+
{}
|
128
|
+
|
124
129
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
125
|
-
explicit rbtree_impl( const key_compare &cmp =
|
126
|
-
, const value_traits &v_traits = value_traits())
|
130
|
+
explicit rbtree_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
127
131
|
: tree_type(cmp, v_traits)
|
128
132
|
{}
|
129
133
|
|
@@ -184,6 +188,15 @@ class rbtree_impl
|
|
184
188
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
185
189
|
const_reverse_iterator crend() const;
|
186
190
|
|
191
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
192
|
+
iterator root();
|
193
|
+
|
194
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
195
|
+
const_iterator root() const;
|
196
|
+
|
197
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
198
|
+
const_iterator croot() const;
|
199
|
+
|
187
200
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
188
201
|
static rbtree_impl &container_from_end_iterator(iterator end_iterator);
|
189
202
|
|
@@ -259,6 +272,14 @@ class rbtree_impl
|
|
259
272
|
(const_iterator hint, const KeyType &key
|
260
273
|
,KeyTypeKeyCompare comp, insert_commit_data &commit_data);
|
261
274
|
|
275
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const key_type&,insert_commit_data&)
|
276
|
+
std::pair<iterator, bool> insert_unique_check
|
277
|
+
(const key_type &key, insert_commit_data &commit_data);
|
278
|
+
|
279
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
280
|
+
std::pair<iterator, bool> insert_unique_check
|
281
|
+
(const_iterator hint, const key_type &key, insert_commit_data &commit_data);
|
282
|
+
|
262
283
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_commit
|
263
284
|
iterator insert_unique_commit(reference value, const insert_commit_data &commit_data);
|
264
285
|
|
@@ -418,6 +439,14 @@ class rbtree_impl
|
|
418
439
|
//! @copydoc ::boost::intrusive::bstree::remove_node
|
419
440
|
void remove_node(reference value);
|
420
441
|
|
442
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique(bstree<T, Options2...>&)
|
443
|
+
template<class T, class ...Options2>
|
444
|
+
void merge_unique(rbtree<T, Options2...> &);
|
445
|
+
|
446
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal(bstree<T, Options2...>&)
|
447
|
+
template<class T, class ...Options2>
|
448
|
+
void merge_equal(rbtree<T, Options2...> &);
|
449
|
+
|
421
450
|
friend bool operator< (const rbtree_impl &x, const rbtree_impl &y);
|
422
451
|
|
423
452
|
friend bool operator==(const rbtree_impl &x, const rbtree_impl &y);
|
@@ -509,8 +538,11 @@ class rbtree
|
|
509
538
|
//Assert if passed value traits are compatible with the type
|
510
539
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
511
540
|
|
512
|
-
|
513
|
-
|
541
|
+
rbtree()
|
542
|
+
: Base()
|
543
|
+
{}
|
544
|
+
|
545
|
+
explicit rbtree( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
514
546
|
: Base(cmp, v_traits)
|
515
547
|
{}
|
516
548
|
|
@@ -284,20 +284,33 @@ class rbtree_algorithms
|
|
284
284
|
{
|
285
285
|
typename bstree_algo::data_for_rebalance info;
|
286
286
|
bstree_algo::erase(header, z, info);
|
287
|
+
rebalance_after_erasure(header, z, info);
|
288
|
+
return z;
|
289
|
+
}
|
287
290
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
rebalance_after_erasure(header, info.x, info.x_parent);
|
291
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
292
|
+
template<class NodePtrCompare>
|
293
|
+
static bool transfer_unique
|
294
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
295
|
+
{
|
296
|
+
typename bstree_algo::data_for_rebalance info;
|
297
|
+
bool const transferred = bstree_algo::transfer_unique(header1, comp, header2, z, info);
|
298
|
+
if(transferred){
|
299
|
+
rebalance_after_erasure(header2, z, info);
|
300
|
+
rebalance_after_insertion(header1, z);
|
299
301
|
}
|
300
|
-
return
|
302
|
+
return transferred;
|
303
|
+
}
|
304
|
+
|
305
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
306
|
+
template<class NodePtrCompare>
|
307
|
+
static void transfer_equal
|
308
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
309
|
+
{
|
310
|
+
typename bstree_algo::data_for_rebalance info;
|
311
|
+
bstree_algo::transfer_equal(header1, comp, header2, z, info);
|
312
|
+
rebalance_after_erasure(header2, z, info);
|
313
|
+
rebalance_after_insertion(header1, z);
|
301
314
|
}
|
302
315
|
|
303
316
|
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,const node_ptr&,Cloner,Disposer)
|
@@ -431,7 +444,24 @@ class rbtree_algorithms
|
|
431
444
|
/// @cond
|
432
445
|
private:
|
433
446
|
|
434
|
-
static void rebalance_after_erasure
|
447
|
+
static void rebalance_after_erasure
|
448
|
+
( const node_ptr & header, const node_ptr &z, const typename bstree_algo::data_for_rebalance &info)
|
449
|
+
{
|
450
|
+
color new_z_color;
|
451
|
+
if(info.y != z){
|
452
|
+
new_z_color = NodeTraits::get_color(info.y);
|
453
|
+
NodeTraits::set_color(info.y, NodeTraits::get_color(z));
|
454
|
+
}
|
455
|
+
else{
|
456
|
+
new_z_color = NodeTraits::get_color(z);
|
457
|
+
}
|
458
|
+
//Rebalance rbtree if needed
|
459
|
+
if(new_z_color != NodeTraits::red()){
|
460
|
+
rebalance_after_erasure_restore_invariants(header, info.x, info.x_parent);
|
461
|
+
}
|
462
|
+
}
|
463
|
+
|
464
|
+
static void rebalance_after_erasure_restore_invariants(const node_ptr & header, node_ptr x, node_ptr x_parent)
|
435
465
|
{
|
436
466
|
while(1){
|
437
467
|
if(x_parent == header || (x && NodeTraits::get_color(x) != NodeTraits::black())){
|
@@ -28,6 +28,11 @@
|
|
28
28
|
namespace boost {
|
29
29
|
namespace intrusive {
|
30
30
|
|
31
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
32
|
+
template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
|
33
|
+
class multiset_impl;
|
34
|
+
#endif
|
35
|
+
|
31
36
|
//! The class template set is an intrusive container, that mimics most of
|
32
37
|
//! the interface of std::set as described in the C++ standard.
|
33
38
|
//!
|
@@ -83,9 +88,13 @@ class set_impl
|
|
83
88
|
static const bool constant_time_size = tree_type::constant_time_size;
|
84
89
|
|
85
90
|
public:
|
91
|
+
//! @copydoc ::boost::intrusive::rbtree::rbtree()
|
92
|
+
set_impl()
|
93
|
+
: tree_type()
|
94
|
+
{}
|
95
|
+
|
86
96
|
//! @copydoc ::boost::intrusive::rbtree::rbtree(const key_compare &,const value_traits &)
|
87
|
-
explicit set_impl( const key_compare &cmp =
|
88
|
-
, const value_traits &v_traits = value_traits())
|
97
|
+
explicit set_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
89
98
|
: tree_type(cmp, v_traits)
|
90
99
|
{}
|
91
100
|
|
@@ -146,6 +155,15 @@ class set_impl
|
|
146
155
|
//! @copydoc ::boost::intrusive::rbtree::crend()const
|
147
156
|
const_reverse_iterator crend() const;
|
148
157
|
|
158
|
+
//! @copydoc ::boost::intrusive::rbtree::root()
|
159
|
+
iterator root();
|
160
|
+
|
161
|
+
//! @copydoc ::boost::intrusive::rbtree::root()const
|
162
|
+
const_iterator root() const;
|
163
|
+
|
164
|
+
//! @copydoc ::boost::intrusive::rbtree::croot()const
|
165
|
+
const_iterator croot() const;
|
166
|
+
|
149
167
|
//! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(iterator)
|
150
168
|
static set_impl &container_from_end_iterator(iterator end_iterator);
|
151
169
|
|
@@ -196,6 +214,17 @@ class 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::rbtree::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::rbtree::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::rbtree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
200
229
|
template<class KeyType, class KeyTypeKeyCompare>
|
201
230
|
std::pair<iterator, bool> insert_check
|
@@ -384,6 +413,26 @@ class set_impl
|
|
384
413
|
|
385
414
|
//! @copydoc ::boost::intrusive::rbtree::remove_node
|
386
415
|
void remove_node(reference value);
|
416
|
+
|
417
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_unique
|
418
|
+
template<class ...Options2>
|
419
|
+
void merge(set<T, Options2...> &source);
|
420
|
+
|
421
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_unique
|
422
|
+
template<class ...Options2>
|
423
|
+
void merge(multiset<T, Options2...> &source);
|
424
|
+
|
425
|
+
#else
|
426
|
+
|
427
|
+
template<class Compare2>
|
428
|
+
void merge(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(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 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
|
+
set()
|
529
|
+
: Base()
|
530
|
+
{}
|
531
|
+
|
532
|
+
explicit 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 multiset_impl
|
|
573
625
|
static const bool constant_time_size = tree_type::constant_time_size;
|
574
626
|
|
575
627
|
public:
|
628
|
+
//! @copydoc ::boost::intrusive::rbtree::rbtree()
|
629
|
+
multiset_impl()
|
630
|
+
: tree_type()
|
631
|
+
{}
|
632
|
+
|
576
633
|
//! @copydoc ::boost::intrusive::rbtree::rbtree(const key_compare &,const value_traits &)
|
577
|
-
explicit multiset_impl( const key_compare &cmp =
|
578
|
-
, const value_traits &v_traits = value_traits())
|
634
|
+
explicit 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 multiset_impl
|
|
636
692
|
//! @copydoc ::boost::intrusive::rbtree::crend()const
|
637
693
|
const_reverse_iterator crend() const;
|
638
694
|
|
695
|
+
//! @copydoc ::boost::intrusive::rbtree::root()
|
696
|
+
iterator root();
|
697
|
+
|
698
|
+
//! @copydoc ::boost::intrusive::rbtree::root()const
|
699
|
+
const_iterator root() const;
|
700
|
+
|
701
|
+
//! @copydoc ::boost::intrusive::rbtree::croot()const
|
702
|
+
const_iterator croot() const;
|
703
|
+
|
639
704
|
//! @copydoc ::boost::intrusive::rbtree::container_from_end_iterator(iterator)
|
640
705
|
static multiset_impl &container_from_end_iterator(iterator end_iterator);
|
641
706
|
|
@@ -843,6 +908,25 @@ class multiset_impl
|
|
843
908
|
|
844
909
|
//! @copydoc ::boost::intrusive::rbtree::remove_node
|
845
910
|
void remove_node(reference value);
|
911
|
+
|
912
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_equal
|
913
|
+
template<class ...Options2>
|
914
|
+
void merge(multiset<T, Options2...> &source);
|
915
|
+
|
916
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_equal
|
917
|
+
template<class ...Options2>
|
918
|
+
void merge(set<T, Options2...> &source);
|
919
|
+
|
920
|
+
#else
|
921
|
+
|
922
|
+
template<class Compare2>
|
923
|
+
void merge(multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
924
|
+
{ return tree_type::merge_equal(source); }
|
925
|
+
|
926
|
+
template<class Compare2>
|
927
|
+
void merge(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 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
|
-
multiset(
|
940
|
-
|
1023
|
+
multiset()
|
1024
|
+
: Base()
|
1025
|
+
{}
|
1026
|
+
|
1027
|
+
explicit multiset( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
941
1028
|
: Base(cmp, v_traits)
|
942
1029
|
{}
|
943
1030
|
|