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
@@ -50,7 +50,8 @@ struct make_slist_base_hook
|
|
50
50
|
>::type packed_options;
|
51
51
|
|
52
52
|
typedef generic_hook
|
53
|
-
<
|
53
|
+
< CircularSListAlgorithms
|
54
|
+
, slist_node_traits<typename packed_options::void_pointer>
|
54
55
|
, typename packed_options::tag
|
55
56
|
, packed_options::link_mode
|
56
57
|
, SlistBaseHookId
|
@@ -178,7 +179,8 @@ struct make_slist_member_hook
|
|
178
179
|
>::type packed_options;
|
179
180
|
|
180
181
|
typedef generic_hook
|
181
|
-
<
|
182
|
+
< CircularSListAlgorithms
|
183
|
+
, slist_node_traits<typename packed_options::void_pointer>
|
182
184
|
, member_tag
|
183
185
|
, packed_options::link_mode
|
184
186
|
, NoBaseHookId
|
@@ -270,6 +272,11 @@ class slist_member_hook
|
|
270
272
|
//! otherwise. This function can be used to test whether \c slist::iterator_to
|
271
273
|
//! will return a valid iterator.
|
272
274
|
//!
|
275
|
+
//! <b>Note</b>: If this member is called when the value is inserted in a
|
276
|
+
//! slist with the option linear<true>, this function will return "false"
|
277
|
+
//! for the last element, as it is not linked to anything (the next element is null),
|
278
|
+
//! so use with care.
|
279
|
+
//!
|
273
280
|
//! <b>Complexity</b>: Constant
|
274
281
|
bool is_linked() const;
|
275
282
|
|
@@ -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 splay_multiset_impl;
|
29
|
+
#endif
|
30
|
+
|
26
31
|
namespace boost {
|
27
32
|
namespace intrusive {
|
28
33
|
|
@@ -81,9 +86,13 @@ class splay_set_impl
|
|
81
86
|
static const bool constant_time_size = tree_type::constant_time_size;
|
82
87
|
|
83
88
|
public:
|
89
|
+
//! @copydoc ::boost::intrusive::splaytree::splaytree()
|
90
|
+
splay_set_impl()
|
91
|
+
: tree_type()
|
92
|
+
{}
|
93
|
+
|
84
94
|
//! @copydoc ::boost::intrusive::splaytree::splaytree(const key_compare &,const value_traits &)
|
85
|
-
explicit splay_set_impl( const key_compare &cmp =
|
86
|
-
, const value_traits &v_traits = value_traits())
|
95
|
+
explicit splay_set_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
87
96
|
: tree_type(cmp, v_traits)
|
88
97
|
{}
|
89
98
|
|
@@ -144,6 +153,15 @@ class splay_set_impl
|
|
144
153
|
//! @copydoc ::boost::intrusive::splaytree::crend()const
|
145
154
|
const_reverse_iterator crend() const;
|
146
155
|
|
156
|
+
//! @copydoc ::boost::intrusive::splaytree::root()
|
157
|
+
iterator root();
|
158
|
+
|
159
|
+
//! @copydoc ::boost::intrusive::splaytree::root()const
|
160
|
+
const_iterator root() const;
|
161
|
+
|
162
|
+
//! @copydoc ::boost::intrusive::splaytree::croot()const
|
163
|
+
const_iterator croot() const;
|
164
|
+
|
147
165
|
//! @copydoc ::boost::intrusive::splaytree::container_from_end_iterator(iterator)
|
148
166
|
static splay_set_impl &container_from_end_iterator(iterator end_iterator);
|
149
167
|
|
@@ -194,6 +212,17 @@ class splay_set_impl
|
|
194
212
|
iterator insert(const_iterator hint, reference value)
|
195
213
|
{ return tree_type::insert_unique(hint, value); }
|
196
214
|
|
215
|
+
//! @copydoc ::boost::intrusive::rbtree::insert_unique_check(const key_type&,insert_commit_data&)
|
216
|
+
std::pair<iterator, bool> insert_check
|
217
|
+
(const key_type &key, insert_commit_data &commit_data)
|
218
|
+
{ return tree_type::insert_unique_check(key, commit_data); }
|
219
|
+
|
220
|
+
//! @copydoc ::boost::intrusive::rbtree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
221
|
+
std::pair<iterator, bool> insert_check
|
222
|
+
(const_iterator hint, const key_type &key
|
223
|
+
,insert_commit_data &commit_data)
|
224
|
+
{ return tree_type::insert_unique_check(hint, key, commit_data); }
|
225
|
+
|
197
226
|
//! @copydoc ::boost::intrusive::splaytree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
198
227
|
template<class KeyType, class KeyTypeKeyCompare>
|
199
228
|
std::pair<iterator, bool> insert_check
|
@@ -405,6 +434,26 @@ class splay_set_impl
|
|
405
434
|
|
406
435
|
//! @copydoc ::boost::intrusive::splaytree::rebalance_subtree
|
407
436
|
iterator rebalance_subtree(iterator root);
|
437
|
+
|
438
|
+
//! @copydoc ::boost::intrusive::splaytree::merge_unique
|
439
|
+
template<class ...Options2>
|
440
|
+
void merge(splay_set<T, Options2...> &source);
|
441
|
+
|
442
|
+
//! @copydoc ::boost::intrusive::splaytree::merge_unique
|
443
|
+
template<class ...Options2>
|
444
|
+
void merge(splay_multiset<T, Options2...> &source);
|
445
|
+
|
446
|
+
#else
|
447
|
+
|
448
|
+
template<class Compare2>
|
449
|
+
void merge(splay_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
450
|
+
{ return tree_type::merge_unique(source); }
|
451
|
+
|
452
|
+
|
453
|
+
template<class Compare2>
|
454
|
+
void merge(splay_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
455
|
+
{ return tree_type::merge_unique(source); }
|
456
|
+
|
408
457
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
409
458
|
};
|
410
459
|
|
@@ -497,8 +546,11 @@ class splay_set
|
|
497
546
|
//Assert if passed value traits are compatible with the type
|
498
547
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
499
548
|
|
500
|
-
|
501
|
-
|
549
|
+
splay_set()
|
550
|
+
: Base()
|
551
|
+
{}
|
552
|
+
|
553
|
+
explicit splay_set( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
502
554
|
: Base(cmp, v_traits)
|
503
555
|
{}
|
504
556
|
|
@@ -594,9 +646,13 @@ class splay_multiset_impl
|
|
594
646
|
static const bool constant_time_size = tree_type::constant_time_size;
|
595
647
|
|
596
648
|
public:
|
649
|
+
//! @copydoc ::boost::intrusive::splaytree::splaytree()
|
650
|
+
splay_multiset_impl()
|
651
|
+
: tree_type()
|
652
|
+
{}
|
653
|
+
|
597
654
|
//! @copydoc ::boost::intrusive::splaytree::splaytree(const key_compare &,const value_traits &)
|
598
|
-
explicit splay_multiset_impl(
|
599
|
-
, const value_traits &v_traits = value_traits())
|
655
|
+
explicit splay_multiset_impl(const key_compare &cmp, const value_traits &v_traits = value_traits())
|
600
656
|
: tree_type(cmp, v_traits)
|
601
657
|
{}
|
602
658
|
|
@@ -657,6 +713,15 @@ class splay_multiset_impl
|
|
657
713
|
//! @copydoc ::boost::intrusive::splaytree::crend()const
|
658
714
|
const_reverse_iterator crend() const;
|
659
715
|
|
716
|
+
//! @copydoc ::boost::intrusive::splaytree::root()
|
717
|
+
iterator root();
|
718
|
+
|
719
|
+
//! @copydoc ::boost::intrusive::splaytree::root()const
|
720
|
+
const_iterator root() const;
|
721
|
+
|
722
|
+
//! @copydoc ::boost::intrusive::splaytree::croot()const
|
723
|
+
const_iterator croot() const;
|
724
|
+
|
660
725
|
//! @copydoc ::boost::intrusive::splaytree::container_from_end_iterator(iterator)
|
661
726
|
static splay_multiset_impl &container_from_end_iterator(iterator end_iterator);
|
662
727
|
|
@@ -880,6 +945,25 @@ class splay_multiset_impl
|
|
880
945
|
|
881
946
|
//! @copydoc ::boost::intrusive::splaytree::rebalance_subtree
|
882
947
|
iterator rebalance_subtree(iterator root);
|
948
|
+
|
949
|
+
//! @copydoc ::boost::intrusive::splaytree::merge_equal
|
950
|
+
template<class ...Options2>
|
951
|
+
void merge(splay_multiset<T, Options2...> &source);
|
952
|
+
|
953
|
+
//! @copydoc ::boost::intrusive::splaytree::merge_equal
|
954
|
+
template<class ...Options2>
|
955
|
+
void merge(splay_set<T, Options2...> &source);
|
956
|
+
|
957
|
+
#else
|
958
|
+
|
959
|
+
template<class Compare2>
|
960
|
+
void merge(splay_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
961
|
+
{ return tree_type::merge_equal(source); }
|
962
|
+
|
963
|
+
template<class Compare2>
|
964
|
+
void merge(splay_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
965
|
+
{ return tree_type::merge_equal(source); }
|
966
|
+
|
883
967
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
884
968
|
};
|
885
969
|
|
@@ -973,8 +1057,11 @@ class splay_multiset
|
|
973
1057
|
//Assert if passed value traits are compatible with the type
|
974
1058
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
975
1059
|
|
976
|
-
|
977
|
-
|
1060
|
+
splay_multiset()
|
1061
|
+
: Base()
|
1062
|
+
{}
|
1063
|
+
|
1064
|
+
explicit splay_multiset( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
978
1065
|
: Base(cmp, v_traits)
|
979
1066
|
{}
|
980
1067
|
|
@@ -111,9 +111,13 @@ class splaytree_impl
|
|
111
111
|
|
112
112
|
typedef typename implementation_defined::insert_commit_data insert_commit_data;
|
113
113
|
|
114
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
115
|
+
splaytree_impl()
|
116
|
+
: tree_type()
|
117
|
+
{}
|
118
|
+
|
114
119
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
115
|
-
explicit splaytree_impl( const key_compare &cmp =
|
116
|
-
, const value_traits &v_traits = value_traits())
|
120
|
+
explicit splaytree_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
117
121
|
: tree_type(cmp, v_traits)
|
118
122
|
{}
|
119
123
|
|
@@ -179,6 +183,15 @@ class splaytree_impl
|
|
179
183
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
180
184
|
const_reverse_iterator crend() const;
|
181
185
|
|
186
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
187
|
+
iterator root();
|
188
|
+
|
189
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
190
|
+
const_iterator root() const;
|
191
|
+
|
192
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
193
|
+
const_iterator croot() const;
|
194
|
+
|
182
195
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
183
196
|
static splaytree_impl &container_from_end_iterator(iterator end_iterator);
|
184
197
|
|
@@ -240,6 +253,14 @@ class splaytree_impl
|
|
240
253
|
//! @copydoc ::boost::intrusive::bstree::insert_unique(const_iterator,reference)
|
241
254
|
iterator insert_unique(const_iterator hint, reference value);
|
242
255
|
|
256
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const key_type&,insert_commit_data&)
|
257
|
+
std::pair<iterator, bool> insert_unique_check
|
258
|
+
(const key_type &key, insert_commit_data &commit_data);
|
259
|
+
|
260
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
261
|
+
std::pair<iterator, bool> insert_unique_check
|
262
|
+
(const_iterator hint, const key_type &key, insert_commit_data &commit_data);
|
263
|
+
|
243
264
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
244
265
|
template<class KeyType, class KeyTypeKeyCompare>
|
245
266
|
std::pair<iterator, bool> insert_unique_check
|
@@ -442,6 +463,14 @@ class splaytree_impl
|
|
442
463
|
//! @copydoc ::boost::intrusive::bstree::remove_node
|
443
464
|
void remove_node(reference value);
|
444
465
|
|
466
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique(bstree<T, Options2...>&)
|
467
|
+
template<class T, class ...Options2>
|
468
|
+
void merge_unique(splaytree<T, Options2...> &);
|
469
|
+
|
470
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal(bstree<T, Options2...>&)
|
471
|
+
template<class T, class ...Options2>
|
472
|
+
void merge_equal(splaytree<T, Options2...> &);
|
473
|
+
|
445
474
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
446
475
|
|
447
476
|
//! <b>Requires</b>: i must be a valid iterator of *this.
|
@@ -584,8 +613,11 @@ class splaytree
|
|
584
613
|
//Assert if passed value traits are compatible with the type
|
585
614
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
586
615
|
|
587
|
-
|
588
|
-
|
616
|
+
splaytree()
|
617
|
+
: Base()
|
618
|
+
{}
|
619
|
+
|
620
|
+
explicit splaytree( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
589
621
|
: Base(cmp, v_traits)
|
590
622
|
{}
|
591
623
|
|
@@ -251,6 +251,33 @@ class splaytree_algorithms
|
|
251
251
|
bstree_algo::erase(header, z);
|
252
252
|
}
|
253
253
|
|
254
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
255
|
+
template<class NodePtrCompare>
|
256
|
+
static bool transfer_unique
|
257
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
258
|
+
{
|
259
|
+
typename bstree_algo::insert_commit_data commit_data;
|
260
|
+
bool const transferable = bstree_algo::insert_unique_check(header1, z, comp, commit_data).second;
|
261
|
+
if(transferable){
|
262
|
+
erase(header2, z);
|
263
|
+
bstree_algo::insert_commit(header1, z, commit_data);
|
264
|
+
splay_up(z, header1);
|
265
|
+
}
|
266
|
+
return transferable;
|
267
|
+
}
|
268
|
+
|
269
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
270
|
+
template<class NodePtrCompare>
|
271
|
+
static void transfer_equal
|
272
|
+
(const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
|
273
|
+
{
|
274
|
+
insert_commit_data commit_data;
|
275
|
+
splay_down(header1, z, comp);
|
276
|
+
bstree_algo::insert_equal_upper_bound_check(header1, z, comp, commit_data);
|
277
|
+
erase(header2, z);
|
278
|
+
bstree_algo::insert_commit(header1, z, commit_data);
|
279
|
+
}
|
280
|
+
|
254
281
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
255
282
|
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,const node_ptr&,Cloner,Disposer)
|
256
283
|
template <class Cloner, class Disposer>
|
@@ -80,7 +80,7 @@ class treap_impl
|
|
80
80
|
< typename get_prio
|
81
81
|
< VoidOrPrioComp
|
82
82
|
, typename bstree_impl
|
83
|
-
<ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms, HeaderHolder>::
|
83
|
+
<ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms, HeaderHolder>::key_type>::type
|
84
84
|
>
|
85
85
|
/// @endcond
|
86
86
|
{
|
@@ -93,7 +93,7 @@ class treap_impl
|
|
93
93
|
typedef tree_type implementation_defined;
|
94
94
|
typedef get_prio
|
95
95
|
< VoidOrPrioComp
|
96
|
-
, typename tree_type::
|
96
|
+
, typename tree_type::key_type> get_prio_type;
|
97
97
|
|
98
98
|
typedef detail::ebo_functor_holder
|
99
99
|
<typename get_prio_type::type> prio_base;
|
@@ -126,14 +126,11 @@ class treap_impl
|
|
126
126
|
static const bool stateful_value_traits = implementation_defined::stateful_value_traits;
|
127
127
|
static const bool safemode_or_autounlink = is_safe_autounlink<value_traits::link_mode>::value;
|
128
128
|
|
129
|
-
typedef detail::key_nodeptr_comp<priority_compare, value_traits>
|
129
|
+
typedef detail::key_nodeptr_comp<priority_compare, value_traits, key_of_value> key_node_prio_comp_t;
|
130
130
|
|
131
131
|
template<class KeyPrioComp>
|
132
|
-
detail::key_nodeptr_comp<KeyPrioComp, value_traits> key_node_prio_comp(KeyPrioComp keypriocomp) const
|
133
|
-
{ return detail::key_nodeptr_comp<KeyPrioComp, value_traits>(keypriocomp, &this->get_value_traits()); }
|
134
|
-
|
135
|
-
value_node_prio_comp_t value_node_prio_comp() const
|
136
|
-
{ return this->key_node_prio_comp(this->priv_pcomp()); }
|
132
|
+
detail::key_nodeptr_comp<KeyPrioComp, value_traits, key_of_value> key_node_prio_comp(KeyPrioComp keypriocomp) const
|
133
|
+
{ return detail::key_nodeptr_comp<KeyPrioComp, value_traits, key_of_value>(keypriocomp, &this->get_value_traits()); }
|
137
134
|
|
138
135
|
/// @cond
|
139
136
|
private:
|
@@ -159,7 +156,18 @@ class treap_impl
|
|
159
156
|
//! <b>Throws</b>: If value_traits::node_traits::node
|
160
157
|
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
|
161
158
|
//! or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee.
|
162
|
-
|
159
|
+
treap_impl()
|
160
|
+
: tree_type(), prio_base(priority_compare())
|
161
|
+
{}
|
162
|
+
|
163
|
+
//! <b>Effects</b>: Constructs an empty container.
|
164
|
+
//!
|
165
|
+
//! <b>Complexity</b>: Constant.
|
166
|
+
//!
|
167
|
+
//! <b>Throws</b>: If value_traits::node_traits::node
|
168
|
+
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
|
169
|
+
//! or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee.
|
170
|
+
explicit treap_impl( const key_compare &cmp
|
163
171
|
, const priority_compare &pcmp = priority_compare()
|
164
172
|
, const value_traits &v_traits = value_traits())
|
165
173
|
: tree_type(cmp, v_traits), prio_base(pcmp)
|
@@ -266,6 +274,16 @@ class treap_impl
|
|
266
274
|
|
267
275
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
268
276
|
const_reverse_iterator crend() const;
|
277
|
+
|
278
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
279
|
+
iterator root();
|
280
|
+
|
281
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
282
|
+
const_iterator root() const;
|
283
|
+
|
284
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
285
|
+
const_iterator croot() const;
|
286
|
+
|
269
287
|
#endif
|
270
288
|
|
271
289
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the highest priority object of the
|
@@ -336,9 +354,9 @@ class treap_impl
|
|
336
354
|
//! <b>Throws</b>: If the comparison functor's swap call throws.
|
337
355
|
void swap(treap_impl& other)
|
338
356
|
{
|
339
|
-
tree_type::swap(other);
|
340
357
|
//This can throw
|
341
358
|
::boost::adl_move_swap(this->priv_pcomp(), other.priv_pcomp());
|
359
|
+
tree_type::swap(other);
|
342
360
|
}
|
343
361
|
|
344
362
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -403,7 +421,7 @@ class treap_impl
|
|
403
421
|
( this->tree_type::header_ptr()
|
404
422
|
, to_insert
|
405
423
|
, this->key_node_comp(this->key_comp())
|
406
|
-
, this->
|
424
|
+
, this->key_node_prio_comp(this->priv_pcomp()))
|
407
425
|
, this->priv_value_traits_ptr());
|
408
426
|
this->tree_type::sz_traits().increment();
|
409
427
|
return ret;
|
@@ -433,7 +451,7 @@ class treap_impl
|
|
433
451
|
, hint.pointed_node()
|
434
452
|
, to_insert
|
435
453
|
, this->key_node_comp(this->key_comp())
|
436
|
-
, this->
|
454
|
+
, this->key_node_prio_comp(this->priv_pcomp()))
|
437
455
|
, this->priv_value_traits_ptr());
|
438
456
|
this->tree_type::sz_traits().increment();
|
439
457
|
return ret;
|
@@ -478,8 +496,7 @@ class treap_impl
|
|
478
496
|
std::pair<iterator, bool> insert_unique(reference value)
|
479
497
|
{
|
480
498
|
insert_commit_data commit_data;
|
481
|
-
std::pair<iterator, bool> ret = this->insert_unique_check
|
482
|
-
(value, this->comp(), this->priv_pcomp(), commit_data);
|
499
|
+
std::pair<iterator, bool> ret = this->insert_unique_check(key_of_value()(value), commit_data);
|
483
500
|
if(!ret.second)
|
484
501
|
return ret;
|
485
502
|
return std::pair<iterator, bool> (this->insert_unique_commit(value, commit_data), true);
|
@@ -503,8 +520,7 @@ class treap_impl
|
|
503
520
|
iterator insert_unique(const_iterator hint, reference value)
|
504
521
|
{
|
505
522
|
insert_commit_data commit_data;
|
506
|
-
std::pair<iterator, bool> ret = this->insert_unique_check
|
507
|
-
(hint, value, this->comp(), this->priv_pcomp(), commit_data);
|
523
|
+
std::pair<iterator, bool> ret = this->insert_unique_check(hint, key_of_value()(value), commit_data);
|
508
524
|
if(!ret.second)
|
509
525
|
return ret.first;
|
510
526
|
return this->insert_unique_commit(value, commit_data);
|
@@ -538,6 +554,68 @@ class treap_impl
|
|
538
554
|
}
|
539
555
|
}
|
540
556
|
|
557
|
+
//! <b>Effects</b>: Checks if a value can be inserted in the container, using
|
558
|
+
//! a user provided key instead of the value itself.
|
559
|
+
//!
|
560
|
+
//! <b>Returns</b>: If there is an equivalent value
|
561
|
+
//! returns a pair containing an iterator to the already present value
|
562
|
+
//! and false. If the value can be inserted returns true in the returned
|
563
|
+
//! pair boolean and fills "commit_data" that is meant to be used with
|
564
|
+
//! the "insert_commit" function.
|
565
|
+
//!
|
566
|
+
//! <b>Complexity</b>: Average complexity is at most logarithmic.
|
567
|
+
//!
|
568
|
+
//! <b>Throws</b>: If the comparison or predicate functions throw. Strong guarantee.
|
569
|
+
//!
|
570
|
+
//! <b>Notes</b>: This function is used to improve performance when constructing
|
571
|
+
//! a value_type is expensive: if there is an equivalent value
|
572
|
+
//! the constructed object must be discarded. Many times, the part of the
|
573
|
+
//! node that is used to impose the order is much cheaper to construct
|
574
|
+
//! than the value_type and this function offers the possibility to use that
|
575
|
+
//! part to check if the insertion will be successful.
|
576
|
+
//!
|
577
|
+
//! If the check is successful, the user can construct the value_type and use
|
578
|
+
//! "insert_commit" to insert the object in constant-time. This gives a total
|
579
|
+
//! logarithmic complexity to the insertion: check(O(log(N)) + commit(O(1)).
|
580
|
+
//!
|
581
|
+
//! "commit_data" remains valid for a subsequent "insert_commit" only if no more
|
582
|
+
//! objects are inserted or erased from the container.
|
583
|
+
std::pair<iterator, bool> insert_unique_check
|
584
|
+
( const key_type &key, insert_commit_data &commit_data)
|
585
|
+
{ return this->insert_unique_check(key, this->key_comp(), this->priv_pcomp(), commit_data); }
|
586
|
+
|
587
|
+
//! <b>Effects</b>: Checks if a value can be inserted in the container, using
|
588
|
+
//! a user provided key instead of the value itself, using "hint"
|
589
|
+
//! as a hint to where it will be inserted.
|
590
|
+
//!
|
591
|
+
//! <b>Returns</b>: If there is an equivalent value
|
592
|
+
//! returns a pair containing an iterator to the already present value
|
593
|
+
//! and false. If the value can be inserted returns true in the returned
|
594
|
+
//! pair boolean and fills "commit_data" that is meant to be used with
|
595
|
+
//! the "insert_commit" function.
|
596
|
+
//!
|
597
|
+
//! <b>Complexity</b>: Logarithmic in general, but it's amortized
|
598
|
+
//! constant time if t is inserted immediately before hint.
|
599
|
+
//!
|
600
|
+
//! <b>Throws</b>: If the comparison or predicate functions throw. Strong guarantee.
|
601
|
+
//!
|
602
|
+
//! <b>Notes</b>: This function is used to improve performance when constructing
|
603
|
+
//! a value_type is expensive: if there is an equivalent value
|
604
|
+
//! the constructed object must be discarded. Many times, the part of the
|
605
|
+
//! constructing that is used to impose the order is much cheaper to construct
|
606
|
+
//! than the value_type and this function offers the possibility to use that key
|
607
|
+
//! to check if the insertion will be successful.
|
608
|
+
//!
|
609
|
+
//! If the check is successful, the user can construct the value_type and use
|
610
|
+
//! "insert_commit" to insert the object in constant-time. This can give a total
|
611
|
+
//! constant-time complexity to the insertion: check(O(1)) + commit(O(1)).
|
612
|
+
//!
|
613
|
+
//! "commit_data" remains valid for a subsequent "insert_commit" only if no more
|
614
|
+
//! objects are inserted or erased from the container.
|
615
|
+
std::pair<iterator, bool> insert_unique_check
|
616
|
+
( const_iterator hint, const key_type &key, insert_commit_data &commit_data)
|
617
|
+
{ return this->insert_unique_check(hint, key, this->key_comp(), this->priv_pcomp(), commit_data); }
|
618
|
+
|
541
619
|
//! <b>Requires</b>: comp must be a comparison function that induces
|
542
620
|
//! the same strict weak ordering as key_compare.
|
543
621
|
//! key_value_pcomp must be a comparison function that induces
|
@@ -572,7 +650,11 @@ class treap_impl
|
|
572
650
|
//! "commit_data" remains valid for a subsequent "insert_commit" only if no more
|
573
651
|
//! objects are inserted or erased from the container.
|
574
652
|
template<class KeyType, class KeyTypeKeyCompare, class KeyValuePrioCompare>
|
575
|
-
std::pair<iterator
|
653
|
+
BOOST_INTRUSIVE_DOC1ST(std::pair<iterator BOOST_INTRUSIVE_I bool>
|
654
|
+
, typename detail::disable_if_convertible
|
655
|
+
<KeyType BOOST_INTRUSIVE_I const_iterator BOOST_INTRUSIVE_I
|
656
|
+
std::pair<iterator BOOST_INTRUSIVE_I bool> >::type)
|
657
|
+
insert_unique_check
|
576
658
|
( const KeyType &key, KeyTypeKeyCompare comp
|
577
659
|
, KeyValuePrioCompare key_value_pcomp, insert_commit_data &commit_data)
|
578
660
|
{
|
@@ -678,7 +760,11 @@ class treap_impl
|
|
678
760
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
|
679
761
|
iterator ret
|
680
762
|
( node_algorithms::insert_before
|
681
|
-
( this->tree_type::header_ptr()
|
763
|
+
( this->tree_type::header_ptr()
|
764
|
+
, pos.pointed_node()
|
765
|
+
, to_insert
|
766
|
+
, this->key_node_prio_comp(this->priv_pcomp())
|
767
|
+
)
|
682
768
|
, this->priv_value_traits_ptr());
|
683
769
|
this->tree_type::sz_traits().increment();
|
684
770
|
return ret;
|
@@ -702,7 +788,8 @@ class treap_impl
|
|
702
788
|
{
|
703
789
|
node_ptr to_insert(this->get_value_traits().to_node_ptr(value));
|
704
790
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
|
705
|
-
node_algorithms::push_back
|
791
|
+
node_algorithms::push_back
|
792
|
+
(this->tree_type::header_ptr(), to_insert, this->key_node_prio_comp(this->priv_pcomp()));
|
706
793
|
this->tree_type::sz_traits().increment();
|
707
794
|
}
|
708
795
|
|
@@ -724,7 +811,8 @@ class treap_impl
|
|
724
811
|
{
|
725
812
|
node_ptr to_insert(this->get_value_traits().to_node_ptr(value));
|
726
813
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
|
727
|
-
node_algorithms::push_front
|
814
|
+
node_algorithms::push_front
|
815
|
+
(this->tree_type::header_ptr(), to_insert, this->key_node_prio_comp(this->priv_pcomp()));
|
728
816
|
this->tree_type::sz_traits().increment();
|
729
817
|
}
|
730
818
|
|
@@ -742,7 +830,8 @@ class treap_impl
|
|
742
830
|
++ret;
|
743
831
|
node_ptr to_erase(i.pointed_node());
|
744
832
|
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(to_erase));
|
745
|
-
node_algorithms::erase
|
833
|
+
node_algorithms::erase
|
834
|
+
(this->tree_type::header_ptr(), to_erase, this->key_node_prio_comp(this->priv_pcomp()));
|
746
835
|
this->tree_type::sz_traits().decrement();
|
747
836
|
if(safemode_or_autounlink)
|
748
837
|
node_algorithms::init(to_erase);
|
@@ -918,12 +1007,64 @@ class treap_impl
|
|
918
1007
|
this->tree_type::sz_traits().set_size(0);
|
919
1008
|
}
|
920
1009
|
|
1010
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
1011
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique
|
1012
|
+
template<class T, class ...Options2> void merge_unique(sgtree<T, Options2...> &);
|
1013
|
+
#else
|
1014
|
+
template<class Compare2>
|
1015
|
+
void merge_unique(treap_impl
|
1016
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, VoidOrPrioComp, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
1017
|
+
#endif
|
1018
|
+
{
|
1019
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
1020
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
1021
|
+
|
1022
|
+
while(it != itend){
|
1023
|
+
node_ptr const p(it);
|
1024
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
1025
|
+
it = node_algorithms::next_node(it);
|
1026
|
+
|
1027
|
+
if( node_algorithms::transfer_unique
|
1028
|
+
( this->header_ptr(), this->key_node_comp(this->key_comp())
|
1029
|
+
, this->key_node_prio_comp(this->priv_pcomp()), source.header_ptr(), p) ){
|
1030
|
+
this->sz_traits().increment();
|
1031
|
+
source.sz_traits().decrement();
|
1032
|
+
}
|
1033
|
+
}
|
1034
|
+
}
|
1035
|
+
|
1036
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
1037
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal(bstree<T, Options2...>&)
|
1038
|
+
template<class T, class ...Options2> void merge_equal(sgtree<T, Options2...> &);
|
1039
|
+
#else
|
1040
|
+
template<class Compare2>
|
1041
|
+
void merge_equal(treap_impl
|
1042
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, VoidOrPrioComp, SizeType, ConstantTimeSize, HeaderHolder> &source)
|
1043
|
+
#endif
|
1044
|
+
{
|
1045
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
1046
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
1047
|
+
|
1048
|
+
while(it != itend){
|
1049
|
+
node_ptr const p(it);
|
1050
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
1051
|
+
it = node_algorithms::next_node(it);
|
1052
|
+
node_algorithms::transfer_equal
|
1053
|
+
( this->header_ptr(), this->key_node_comp(this->key_comp())
|
1054
|
+
, this->key_node_prio_comp(this->priv_pcomp()), source.header_ptr(), p);
|
1055
|
+
this->sz_traits().increment();
|
1056
|
+
source.sz_traits().decrement();
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
|
921
1060
|
//! @copydoc ::boost::intrusive::bstree::check(ExtraChecker)const
|
922
1061
|
template <class ExtraChecker>
|
923
1062
|
void check(ExtraChecker extra_checker) const
|
924
1063
|
{
|
1064
|
+
typedef detail::key_nodeptr_comp<priority_compare, value_traits, key_of_value> nodeptr_prio_comp_t;
|
925
1065
|
tree_type::check(detail::treap_node_extra_checker
|
926
|
-
<ValueTraits,
|
1066
|
+
<ValueTraits, nodeptr_prio_comp_t, ExtraChecker>
|
1067
|
+
(this->key_node_prio_comp(this->priv_pcomp()), extra_checker));
|
927
1068
|
}
|
928
1069
|
|
929
1070
|
//! @copydoc ::boost::intrusive::bstree::check()const
|
@@ -1147,8 +1288,11 @@ class treap
|
|
1147
1288
|
|
1148
1289
|
//Assert if passed value traits are compatible with the type
|
1149
1290
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
1291
|
+
treap()
|
1292
|
+
: Base()
|
1293
|
+
{}
|
1150
1294
|
|
1151
|
-
explicit treap( const key_compare &cmp
|
1295
|
+
explicit treap( const key_compare &cmp
|
1152
1296
|
, const priority_compare &pcmp = priority_compare()
|
1153
1297
|
, const value_traits &v_traits = value_traits())
|
1154
1298
|
: Base(cmp, pcmp, v_traits)
|