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
@@ -49,7 +49,8 @@ struct make_set_base_hook
|
|
49
49
|
>::type packed_options;
|
50
50
|
|
51
51
|
typedef generic_hook
|
52
|
-
<
|
52
|
+
< RbTreeAlgorithms
|
53
|
+
, rbtree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size>
|
53
54
|
, typename packed_options::tag
|
54
55
|
, packed_options::link_mode
|
55
56
|
, RbTreeBaseHookId
|
@@ -180,7 +181,8 @@ struct make_set_member_hook
|
|
180
181
|
>::type packed_options;
|
181
182
|
|
182
183
|
typedef generic_hook
|
183
|
-
<
|
184
|
+
< RbTreeAlgorithms
|
185
|
+
, rbtree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size>
|
184
186
|
, member_tag
|
185
187
|
, packed_options::link_mode
|
186
188
|
, NoBaseHookId
|
@@ -26,6 +26,11 @@
|
|
26
26
|
namespace boost {
|
27
27
|
namespace intrusive {
|
28
28
|
|
29
|
+
#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
30
|
+
template<class ValueTraits, class VoidOrKeyOfValue, class Compare, class SizeType, bool ConstantTimeSize, typename HeaderHolder>
|
31
|
+
class sg_multiset_impl;
|
32
|
+
#endif
|
33
|
+
|
29
34
|
//! The class template sg_set is an intrusive container, that mimics most of
|
30
35
|
//! the interface of std::sg_set as described in the C++ standard.
|
31
36
|
//!
|
@@ -81,9 +86,13 @@ class sg_set_impl
|
|
81
86
|
static const bool constant_time_size = tree_type::constant_time_size;
|
82
87
|
|
83
88
|
public:
|
89
|
+
//! @copydoc ::boost::intrusive::sgtree::sgtree()
|
90
|
+
sg_set_impl()
|
91
|
+
: tree_type()
|
92
|
+
{}
|
93
|
+
|
84
94
|
//! @copydoc ::boost::intrusive::sgtree::sgtree(const key_compare &,const value_traits &)
|
85
|
-
explicit sg_set_impl( const key_compare &cmp =
|
86
|
-
, const value_traits &v_traits = value_traits())
|
95
|
+
explicit sg_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 sg_set_impl
|
|
144
153
|
//! @copydoc ::boost::intrusive::sgtree::crend()const
|
145
154
|
const_reverse_iterator crend() const;
|
146
155
|
|
156
|
+
//! @copydoc ::boost::intrusive::sgtree::root()
|
157
|
+
iterator root();
|
158
|
+
|
159
|
+
//! @copydoc ::boost::intrusive::sgtree::root()const
|
160
|
+
const_iterator root() const;
|
161
|
+
|
162
|
+
//! @copydoc ::boost::intrusive::sgtree::croot()const
|
163
|
+
const_iterator croot() const;
|
164
|
+
|
147
165
|
//! @copydoc ::boost::intrusive::sgtree::container_from_end_iterator(iterator)
|
148
166
|
static sg_set_impl &container_from_end_iterator(iterator end_iterator);
|
149
167
|
|
@@ -194,6 +212,17 @@ class sg_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::sgtree::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::sgtree::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::sgtree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
198
227
|
template<class KeyType, class KeyTypeKeyCompare>
|
199
228
|
std::pair<iterator, bool> insert_check
|
@@ -319,21 +348,21 @@ class sg_set_impl
|
|
319
348
|
|
320
349
|
#endif // #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
321
350
|
|
322
|
-
//! @copydoc ::boost::intrusive::
|
351
|
+
//! @copydoc ::boost::intrusive::sgtree::equal_range(const key_type &)
|
323
352
|
std::pair<iterator,iterator> equal_range(const key_type &key)
|
324
353
|
{ return this->tree_type::lower_bound_range(key); }
|
325
354
|
|
326
|
-
//! @copydoc ::boost::intrusive::
|
355
|
+
//! @copydoc ::boost::intrusive::sgtree::equal_range(const KeyType&,KeyTypeKeyCompare)
|
327
356
|
template<class KeyType, class KeyTypeKeyCompare>
|
328
357
|
std::pair<iterator,iterator> equal_range(const KeyType& key, KeyTypeKeyCompare comp)
|
329
358
|
{ return this->tree_type::equal_range(key, comp); }
|
330
359
|
|
331
|
-
//! @copydoc ::boost::intrusive::
|
360
|
+
//! @copydoc ::boost::intrusive::sgtree::equal_range(const key_type &)const
|
332
361
|
std::pair<const_iterator, const_iterator>
|
333
362
|
equal_range(const key_type &key) const
|
334
363
|
{ return this->tree_type::lower_bound_range(key); }
|
335
364
|
|
336
|
-
//! @copydoc ::boost::intrusive::
|
365
|
+
//! @copydoc ::boost::intrusive::sgtree::equal_range(const KeyType&,KeyTypeKeyCompare)const
|
337
366
|
template<class KeyType, class KeyTypeKeyCompare>
|
338
367
|
std::pair<const_iterator, const_iterator>
|
339
368
|
equal_range(const KeyType& key, KeyTypeKeyCompare comp) const
|
@@ -395,6 +424,24 @@ class sg_set_impl
|
|
395
424
|
//! @copydoc ::boost::intrusive::sgtree::balance_factor(float)
|
396
425
|
void balance_factor(float new_alpha);
|
397
426
|
|
427
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_unique
|
428
|
+
template<class ...Options2>
|
429
|
+
void merge(sg_set<T, Options2...> &source);
|
430
|
+
|
431
|
+
//! @copydoc ::boost::intrusive::rbtree::merge_unique
|
432
|
+
template<class ...Options2>
|
433
|
+
void merge(sg_multiset<T, Options2...> &source);
|
434
|
+
|
435
|
+
#else
|
436
|
+
|
437
|
+
template<class Compare2>
|
438
|
+
void merge(sg_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
439
|
+
{ return tree_type::merge_unique(source); }
|
440
|
+
|
441
|
+
template<class Compare2>
|
442
|
+
void merge(sg_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
443
|
+
{ return tree_type::merge_unique(source); }
|
444
|
+
|
398
445
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
399
446
|
};
|
400
447
|
|
@@ -487,8 +534,11 @@ class sg_set
|
|
487
534
|
//Assert if passed value traits are compatible with the type
|
488
535
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
489
536
|
|
490
|
-
|
491
|
-
|
537
|
+
sg_set()
|
538
|
+
: Base()
|
539
|
+
{}
|
540
|
+
|
541
|
+
explicit sg_set( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
492
542
|
: Base(cmp, v_traits)
|
493
543
|
{}
|
494
544
|
|
@@ -584,9 +634,13 @@ class sg_multiset_impl
|
|
584
634
|
static const bool constant_time_size = tree_type::constant_time_size;
|
585
635
|
|
586
636
|
public:
|
637
|
+
//! @copydoc ::boost::intrusive::sgtree::sgtree()
|
638
|
+
sg_multiset_impl()
|
639
|
+
: tree_type()
|
640
|
+
{}
|
641
|
+
|
587
642
|
//! @copydoc ::boost::intrusive::sgtree::sgtree(const key_compare &,const value_traits &)
|
588
|
-
explicit sg_multiset_impl( const key_compare &cmp =
|
589
|
-
, const value_traits &v_traits = value_traits())
|
643
|
+
explicit sg_multiset_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
590
644
|
: tree_type(cmp, v_traits)
|
591
645
|
{}
|
592
646
|
|
@@ -647,6 +701,15 @@ class sg_multiset_impl
|
|
647
701
|
//! @copydoc ::boost::intrusive::sgtree::crend()const
|
648
702
|
const_reverse_iterator crend() const;
|
649
703
|
|
704
|
+
//! @copydoc ::boost::intrusive::sgtree::root()
|
705
|
+
iterator root();
|
706
|
+
|
707
|
+
//! @copydoc ::boost::intrusive::sgtree::root()const
|
708
|
+
const_iterator root() const;
|
709
|
+
|
710
|
+
//! @copydoc ::boost::intrusive::sgtree::croot()const
|
711
|
+
const_iterator croot() const;
|
712
|
+
|
650
713
|
//! @copydoc ::boost::intrusive::sgtree::container_from_end_iterator(iterator)
|
651
714
|
static sg_multiset_impl &container_from_end_iterator(iterator end_iterator);
|
652
715
|
|
@@ -867,6 +930,24 @@ class sg_multiset_impl
|
|
867
930
|
//! @copydoc ::boost::intrusive::sgtree::balance_factor(float)
|
868
931
|
void balance_factor(float new_alpha);
|
869
932
|
|
933
|
+
//! @copydoc ::boost::intrusive::treap::merge_unique
|
934
|
+
template<class ...Options2>
|
935
|
+
void merge(sg_multiset<T, Options2...> &source);
|
936
|
+
|
937
|
+
//! @copydoc ::boost::intrusive::treap::merge_unique
|
938
|
+
template<class ...Options2>
|
939
|
+
void merge(sg_set<T, Options2...> &source);
|
940
|
+
|
941
|
+
#else
|
942
|
+
|
943
|
+
template<class Compare2>
|
944
|
+
void merge(sg_multiset_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
945
|
+
{ return tree_type::merge_equal(source); }
|
946
|
+
|
947
|
+
template<class Compare2>
|
948
|
+
void merge(sg_set_impl<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
949
|
+
{ return tree_type::merge_equal(source); }
|
950
|
+
|
870
951
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
871
952
|
};
|
872
953
|
|
@@ -960,8 +1041,11 @@ class sg_multiset
|
|
960
1041
|
//Assert if passed value traits are compatible with the type
|
961
1042
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
962
1043
|
|
963
|
-
sg_multiset(
|
964
|
-
|
1044
|
+
sg_multiset()
|
1045
|
+
: Base()
|
1046
|
+
{}
|
1047
|
+
|
1048
|
+
explicit sg_multiset( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
965
1049
|
: Base(cmp, v_traits)
|
966
1050
|
{}
|
967
1051
|
|
@@ -156,6 +156,9 @@ struct alpha_holder
|
|
156
156
|
multiply_by_alpha_t get_multiply_by_alpha_t() const
|
157
157
|
{ return multiply_by_alpha_t(alpha_); }
|
158
158
|
|
159
|
+
SizeType &get_max_tree_size()
|
160
|
+
{ return max_tree_size_; }
|
161
|
+
|
159
162
|
protected:
|
160
163
|
float alpha_;
|
161
164
|
float inv_minus_logalpha_;
|
@@ -189,6 +192,10 @@ struct alpha_holder<false, SizeType>
|
|
189
192
|
multiply_by_alpha_t get_multiply_by_alpha_t() const
|
190
193
|
{ return multiply_by_alpha_t(); }
|
191
194
|
|
195
|
+
SizeType &get_max_tree_size()
|
196
|
+
{ return max_tree_size_; }
|
197
|
+
|
198
|
+
protected:
|
192
199
|
SizeType max_tree_size_;
|
193
200
|
};
|
194
201
|
|
@@ -281,9 +288,13 @@ class sgtree_impl
|
|
281
288
|
|
282
289
|
typedef BOOST_INTRUSIVE_IMPDEF(typename node_algorithms::insert_commit_data) insert_commit_data;
|
283
290
|
|
291
|
+
//! @copydoc ::boost::intrusive::bstree::bstree()
|
292
|
+
sgtree_impl()
|
293
|
+
: tree_type()
|
294
|
+
{}
|
295
|
+
|
284
296
|
//! @copydoc ::boost::intrusive::bstree::bstree(const key_compare &,const value_traits &)
|
285
|
-
explicit sgtree_impl( const key_compare &cmp =
|
286
|
-
, const value_traits &v_traits = value_traits())
|
297
|
+
explicit sgtree_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
287
298
|
: tree_type(cmp, v_traits)
|
288
299
|
{}
|
289
300
|
|
@@ -371,6 +382,15 @@ class sgtree_impl
|
|
371
382
|
//! @copydoc ::boost::intrusive::bstree::crend()const
|
372
383
|
const_reverse_iterator crend() const;
|
373
384
|
|
385
|
+
//! @copydoc ::boost::intrusive::bstree::root()
|
386
|
+
iterator root();
|
387
|
+
|
388
|
+
//! @copydoc ::boost::intrusive::bstree::root()const
|
389
|
+
const_iterator root() const;
|
390
|
+
|
391
|
+
//! @copydoc ::boost::intrusive::bstree::croot()const
|
392
|
+
const_iterator croot() const;
|
393
|
+
|
374
394
|
//! @copydoc ::boost::intrusive::bstree::container_from_end_iterator(iterator)
|
375
395
|
static sgtree_impl &container_from_end_iterator(iterator end_iterator);
|
376
396
|
|
@@ -486,7 +506,11 @@ class sgtree_impl
|
|
486
506
|
|
487
507
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const KeyType&,KeyTypeKeyCompare,insert_commit_data&)
|
488
508
|
template<class KeyType, class KeyTypeKeyCompare>
|
489
|
-
std::pair<iterator
|
509
|
+
BOOST_INTRUSIVE_DOC1ST(std::pair<iterator BOOST_INTRUSIVE_I bool>
|
510
|
+
, typename detail::disable_if_convertible
|
511
|
+
<KeyType BOOST_INTRUSIVE_I const_iterator BOOST_INTRUSIVE_I
|
512
|
+
std::pair<iterator BOOST_INTRUSIVE_I bool> >::type)
|
513
|
+
insert_unique_check
|
490
514
|
(const KeyType &key, KeyTypeKeyCompare comp, insert_commit_data &commit_data)
|
491
515
|
{
|
492
516
|
std::pair<node_ptr, bool> ret =
|
@@ -507,6 +531,16 @@ class sgtree_impl
|
|
507
531
|
return std::pair<iterator, bool>(iterator(ret.first, this->priv_value_traits_ptr()), ret.second);
|
508
532
|
}
|
509
533
|
|
534
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const key_type&,insert_commit_data&)
|
535
|
+
std::pair<iterator, bool> insert_unique_check
|
536
|
+
(const key_type &key, insert_commit_data &commit_data)
|
537
|
+
{ return this->insert_unique_check(key, this->key_comp(), commit_data); }
|
538
|
+
|
539
|
+
//! @copydoc ::boost::intrusive::bstree::insert_unique_check(const_iterator,const key_type&,insert_commit_data&)
|
540
|
+
std::pair<iterator, bool> insert_unique_check
|
541
|
+
(const_iterator hint, const key_type &key, insert_commit_data &commit_data)
|
542
|
+
{ return this->insert_unique_check(hint, key, this->key_comp(), commit_data); }
|
543
|
+
|
510
544
|
//! @copydoc ::boost::intrusive::bstree::insert_unique_commit
|
511
545
|
iterator insert_unique_commit(reference value, const insert_commit_data &commit_data)
|
512
546
|
{
|
@@ -678,6 +712,66 @@ class sgtree_impl
|
|
678
712
|
this->max_tree_size_ = 0;
|
679
713
|
}
|
680
714
|
|
715
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
716
|
+
//! @copydoc ::boost::intrusive::bstree::merge_unique
|
717
|
+
template<class T, class ...Options2> void merge_unique(sgtree<T, Options2...> &);
|
718
|
+
#else
|
719
|
+
template<class Compare2>
|
720
|
+
void merge_unique(sgtree_impl
|
721
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
722
|
+
#endif
|
723
|
+
{
|
724
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
725
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
726
|
+
|
727
|
+
while(it != itend){
|
728
|
+
node_ptr const p(it);
|
729
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
730
|
+
it = node_algorithms::next_node(it);
|
731
|
+
|
732
|
+
std::size_t max_tree1_size = this->max_tree_size_;
|
733
|
+
std::size_t max_tree2_size = source.get_max_tree_size();
|
734
|
+
if( node_algorithms::transfer_unique
|
735
|
+
( this->header_ptr(), this->key_node_comp(this->key_comp()), this->size(), max_tree1_size
|
736
|
+
, source.header_ptr(), p, source.size(), max_tree2_size
|
737
|
+
, this->get_h_alpha_func(), this->get_alpha_by_max_size_func()) ){
|
738
|
+
this->max_tree_size_ = (size_type)max_tree1_size;
|
739
|
+
this->sz_traits().increment();
|
740
|
+
source.get_max_tree_size() = (size_type)max_tree2_size;
|
741
|
+
source.sz_traits().decrement();
|
742
|
+
}
|
743
|
+
}
|
744
|
+
}
|
745
|
+
|
746
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
747
|
+
//! @copydoc ::boost::intrusive::bstree::merge_equal
|
748
|
+
template<class T, class ...Options2> void merge_equal(sgtree<T, Options2...> &);
|
749
|
+
#else
|
750
|
+
template<class Compare2>
|
751
|
+
void merge_equal(sgtree_impl
|
752
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, FloatingPoint, HeaderHolder> &source)
|
753
|
+
#endif
|
754
|
+
{
|
755
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
756
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
757
|
+
|
758
|
+
while(it != itend){
|
759
|
+
node_ptr const p(it);
|
760
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
761
|
+
it = node_algorithms::next_node(it);
|
762
|
+
std::size_t max_tree1_size = this->max_tree_size_;
|
763
|
+
std::size_t max_tree2_size = source.get_max_tree_size();
|
764
|
+
node_algorithms::transfer_equal
|
765
|
+
( this->header_ptr(), this->key_node_comp(this->key_comp()), this->size(), max_tree1_size
|
766
|
+
, source.header_ptr(), p, source.size(), max_tree2_size
|
767
|
+
, this->get_h_alpha_func(), this->get_alpha_by_max_size_func());
|
768
|
+
this->max_tree_size_ = (size_type)max_tree1_size;
|
769
|
+
this->sz_traits().increment();
|
770
|
+
source.get_max_tree_size() = (size_type)max_tree2_size;
|
771
|
+
source.sz_traits().decrement();
|
772
|
+
}
|
773
|
+
}
|
774
|
+
|
681
775
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
682
776
|
//! @copydoc ::boost::intrusive::bstree::count(const key_type &)const
|
683
777
|
size_type count(const key_type &key) const;
|
@@ -934,8 +1028,11 @@ class sgtree
|
|
934
1028
|
//Assert if passed value traits are compatible with the type
|
935
1029
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
936
1030
|
|
937
|
-
|
938
|
-
|
1031
|
+
sgtree()
|
1032
|
+
: Base()
|
1033
|
+
{}
|
1034
|
+
|
1035
|
+
explicit sgtree(const key_compare &cmp, const value_traits &v_traits = value_traits())
|
939
1036
|
: Base(cmp, v_traits)
|
940
1037
|
{}
|
941
1038
|
|
@@ -138,7 +138,6 @@ class sgtree_algorithms
|
|
138
138
|
template<class AlphaByMaxSize>
|
139
139
|
static node_ptr erase(const node_ptr & header, const node_ptr & z, std::size_t tree_size, std::size_t &max_tree_size, AlphaByMaxSize alpha_by_maxsize)
|
140
140
|
{
|
141
|
-
//typename bstree_algo::data_for_rebalance info;
|
142
141
|
bstree_algo::erase(header, z);
|
143
142
|
--tree_size;
|
144
143
|
if (tree_size > 0 &&
|
@@ -288,12 +287,38 @@ class sgtree_algorithms
|
|
288
287
|
|
289
288
|
//! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_commit(const node_ptr&,const node_ptr&,const insert_commit_data&)
|
290
289
|
template<class H_Alpha>
|
291
|
-
static void insert_unique_commit
|
290
|
+
BOOST_INTRUSIVE_FORCEINLINE static void insert_unique_commit
|
292
291
|
(const node_ptr & header, const node_ptr & new_value, const insert_commit_data &commit_data
|
293
292
|
,std::size_t tree_size, H_Alpha h_alpha, std::size_t &max_tree_size)
|
293
|
+
{ return insert_commit(header, new_value, commit_data, tree_size, h_alpha, max_tree_size); }
|
294
|
+
|
295
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
296
|
+
template<class NodePtrCompare, class H_Alpha, class AlphaByMaxSize>
|
297
|
+
static bool transfer_unique
|
298
|
+
( const node_ptr & header1, NodePtrCompare comp, std::size_t tree1_size, std::size_t &max_tree1_size
|
299
|
+
, const node_ptr &header2, const node_ptr & z, std::size_t tree2_size, std::size_t &max_tree2_size
|
300
|
+
,H_Alpha h_alpha, AlphaByMaxSize alpha_by_maxsize)
|
294
301
|
{
|
295
|
-
|
296
|
-
|
302
|
+
insert_commit_data commit_data;
|
303
|
+
bool const transferable = insert_unique_check(header1, z, comp, commit_data).second;
|
304
|
+
if(transferable){
|
305
|
+
erase(header2, z, tree2_size, max_tree2_size, alpha_by_maxsize);
|
306
|
+
insert_commit(header1, z, commit_data, tree1_size, h_alpha, max_tree1_size);
|
307
|
+
}
|
308
|
+
return transferable;
|
309
|
+
}
|
310
|
+
|
311
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
312
|
+
template<class NodePtrCompare, class H_Alpha, class AlphaByMaxSize>
|
313
|
+
static void transfer_equal
|
314
|
+
( const node_ptr & header1, NodePtrCompare comp, std::size_t tree1_size, std::size_t &max_tree1_size
|
315
|
+
, const node_ptr &header2, const node_ptr & z, std::size_t tree2_size, std::size_t &max_tree2_size
|
316
|
+
,H_Alpha h_alpha, AlphaByMaxSize alpha_by_maxsize)
|
317
|
+
{
|
318
|
+
insert_commit_data commit_data;
|
319
|
+
insert_equal_upper_bound_check(header1, z, comp, commit_data);
|
320
|
+
erase(header2, z, tree2_size, max_tree2_size, alpha_by_maxsize);
|
321
|
+
insert_commit(header1, z, commit_data, tree1_size, h_alpha, max_tree1_size);
|
297
322
|
}
|
298
323
|
|
299
324
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
@@ -310,6 +335,25 @@ class sgtree_algorithms
|
|
310
335
|
/// @cond
|
311
336
|
private:
|
312
337
|
|
338
|
+
template<class KeyType, class KeyNodePtrCompare>
|
339
|
+
static void insert_equal_upper_bound_check
|
340
|
+
(const node_ptr & header, const KeyType &key
|
341
|
+
,KeyNodePtrCompare comp, insert_commit_data &commit_data)
|
342
|
+
{
|
343
|
+
std::size_t depth;
|
344
|
+
bstree_algo::insert_equal_upper_bound_check(header, key, comp, commit_data, &depth);
|
345
|
+
commit_data.depth = depth;
|
346
|
+
}
|
347
|
+
|
348
|
+
template<class H_Alpha>
|
349
|
+
static void insert_commit
|
350
|
+
(const node_ptr & header, const node_ptr & new_value, const insert_commit_data &commit_data
|
351
|
+
,std::size_t tree_size, H_Alpha h_alpha, std::size_t &max_tree_size)
|
352
|
+
{
|
353
|
+
bstree_algo::insert_unique_commit(header, new_value, commit_data);
|
354
|
+
rebalance_after_insertion(new_value, commit_data.depth, tree_size+1, h_alpha, max_tree_size);
|
355
|
+
}
|
356
|
+
|
313
357
|
template<class H_Alpha>
|
314
358
|
static void rebalance_after_insertion
|
315
359
|
(const node_ptr &x, std::size_t depth
|
@@ -307,7 +307,17 @@ class slist_impl
|
|
307
307
|
//!
|
308
308
|
//! <b>Throws</b>: If value_traits::node_traits::node
|
309
309
|
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks).
|
310
|
-
|
310
|
+
slist_impl()
|
311
|
+
: data_(value_traits())
|
312
|
+
{ this->set_default_constructed_state(); }
|
313
|
+
|
314
|
+
//! <b>Effects</b>: constructs an empty list.
|
315
|
+
//!
|
316
|
+
//! <b>Complexity</b>: Constant
|
317
|
+
//!
|
318
|
+
//! <b>Throws</b>: If value_traits::node_traits::node
|
319
|
+
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks).
|
320
|
+
explicit slist_impl(const value_traits &v_traits)
|
311
321
|
: data_(v_traits)
|
312
322
|
{ this->set_default_constructed_state(); }
|
313
323
|
|
@@ -333,8 +343,7 @@ class slist_impl
|
|
333
343
|
slist_impl(BOOST_RV_REF(slist_impl) x)
|
334
344
|
: data_(::boost::move(x.priv_value_traits()))
|
335
345
|
{
|
336
|
-
this->
|
337
|
-
node_algorithms::init_header(this->get_root_node());
|
346
|
+
this->set_default_constructed_state();
|
338
347
|
//nothrow, no need to rollback to release elements on exception
|
339
348
|
this->swap(x);
|
340
349
|
}
|
@@ -707,11 +716,7 @@ class slist_impl
|
|
707
716
|
else{
|
708
717
|
this->priv_swap_lists(this->get_root_node(), other.get_root_node(), detail::bool_<linear>());
|
709
718
|
}
|
710
|
-
|
711
|
-
size_type backup = this->priv_size_traits().get_size();
|
712
|
-
this->priv_size_traits().set_size(other.priv_size_traits().get_size());
|
713
|
-
other.priv_size_traits().set_size(backup);
|
714
|
-
}
|
719
|
+
this->priv_size_traits().swap(other.priv_size_traits());
|
715
720
|
}
|
716
721
|
|
717
722
|
//! <b>Effects</b>: Moves backwards all the elements, so that the first
|
@@ -1110,7 +1115,7 @@ class slist_impl
|
|
1110
1115
|
//!
|
1111
1116
|
//! <b>Throws</b>: Nothing.
|
1112
1117
|
//!
|
1113
|
-
//! <b>Complexity</b>:
|
1118
|
+
//! <b>Complexity</b>: Linear to the elements (l - before_f + 1).
|
1114
1119
|
//!
|
1115
1120
|
//! <b>Note</b>: Invalidates the iterators to the erased element.
|
1116
1121
|
template<class Disposer>
|
@@ -1255,7 +1260,7 @@ class slist_impl
|
|
1255
1260
|
if(l) *l = this->previous(this->cend());
|
1256
1261
|
}
|
1257
1262
|
else{
|
1258
|
-
const_iterator last_x(x.previous(x.end()));
|
1263
|
+
const_iterator last_x(x.previous(x.end())); //constant time if cache_last is active
|
1259
1264
|
node_ptr prev_n(prev.pointed_node());
|
1260
1265
|
node_ptr last_x_n(last_x.pointed_node());
|
1261
1266
|
if(cache_last){
|
@@ -2190,7 +2195,11 @@ class slist
|
|
2190
2195
|
typedef typename Base::size_type size_type;
|
2191
2196
|
typedef typename Base::node_ptr node_ptr;
|
2192
2197
|
|
2193
|
-
|
2198
|
+
slist()
|
2199
|
+
: Base()
|
2200
|
+
{}
|
2201
|
+
|
2202
|
+
explicit slist(const value_traits &v_traits)
|
2194
2203
|
: Base(v_traits)
|
2195
2204
|
{}
|
2196
2205
|
|