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
@@ -47,7 +47,8 @@ struct make_bs_set_base_hook
|
|
47
47
|
::type packed_options;
|
48
48
|
|
49
49
|
typedef generic_hook
|
50
|
-
<
|
50
|
+
< BsTreeAlgorithms
|
51
|
+
, tree_node_traits<typename packed_options::void_pointer>
|
51
52
|
, typename packed_options::tag
|
52
53
|
, packed_options::link_mode
|
53
54
|
, BsTreeBaseHookId
|
@@ -176,7 +177,8 @@ struct make_bs_set_member_hook
|
|
176
177
|
::type packed_options;
|
177
178
|
|
178
179
|
typedef generic_hook
|
179
|
-
<
|
180
|
+
< BsTreeAlgorithms
|
181
|
+
, tree_node_traits<typename packed_options::void_pointer>
|
180
182
|
, member_tag
|
181
183
|
, packed_options::link_mode
|
182
184
|
, NoBaseHookId
|
@@ -105,7 +105,7 @@ struct bstbase3
|
|
105
105
|
|
106
106
|
struct holder_t : public ValueTraits
|
107
107
|
{
|
108
|
-
explicit holder_t(const ValueTraits &vtraits)
|
108
|
+
BOOST_INTRUSIVE_FORCEINLINE explicit holder_t(const ValueTraits &vtraits)
|
109
109
|
: ValueTraits(vtraits)
|
110
110
|
{}
|
111
111
|
header_holder_type root;
|
@@ -121,34 +121,34 @@ struct bstbase3
|
|
121
121
|
return *base;
|
122
122
|
}
|
123
123
|
|
124
|
-
bstbase3(const ValueTraits &vtraits)
|
124
|
+
BOOST_INTRUSIVE_FORCEINLINE bstbase3(const ValueTraits &vtraits)
|
125
125
|
: holder(vtraits)
|
126
126
|
{
|
127
127
|
node_algorithms::init_header(this->header_ptr());
|
128
128
|
}
|
129
129
|
|
130
|
-
node_ptr header_ptr()
|
130
|
+
BOOST_INTRUSIVE_FORCEINLINE node_ptr header_ptr()
|
131
131
|
{ return holder.root.get_node(); }
|
132
132
|
|
133
|
-
const_node_ptr header_ptr() const
|
133
|
+
BOOST_INTRUSIVE_FORCEINLINE const_node_ptr header_ptr() const
|
134
134
|
{ return holder.root.get_node(); }
|
135
135
|
|
136
|
-
const value_traits &get_value_traits() const
|
136
|
+
BOOST_INTRUSIVE_FORCEINLINE const value_traits &get_value_traits() const
|
137
137
|
{ return this->holder; }
|
138
138
|
|
139
|
-
value_traits &get_value_traits()
|
139
|
+
BOOST_INTRUSIVE_FORCEINLINE value_traits &get_value_traits()
|
140
140
|
{ return this->holder; }
|
141
141
|
|
142
142
|
typedef typename boost::intrusive::value_traits_pointers
|
143
143
|
<ValueTraits>::const_value_traits_ptr const_value_traits_ptr;
|
144
144
|
|
145
|
-
const_value_traits_ptr priv_value_traits_ptr() const
|
145
|
+
BOOST_INTRUSIVE_FORCEINLINE const_value_traits_ptr priv_value_traits_ptr() const
|
146
146
|
{ return pointer_traits<const_value_traits_ptr>::pointer_to(this->get_value_traits()); }
|
147
147
|
|
148
148
|
iterator begin()
|
149
149
|
{ return iterator(node_algorithms::begin_node(this->header_ptr()), this->priv_value_traits_ptr()); }
|
150
150
|
|
151
|
-
const_iterator begin() const
|
151
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator begin() const
|
152
152
|
{ return cbegin(); }
|
153
153
|
|
154
154
|
const_iterator cbegin() const
|
@@ -157,37 +157,37 @@ struct bstbase3
|
|
157
157
|
iterator end()
|
158
158
|
{ return iterator(node_algorithms::end_node(this->header_ptr()), this->priv_value_traits_ptr()); }
|
159
159
|
|
160
|
-
const_iterator end() const
|
160
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator end() const
|
161
161
|
{ return cend(); }
|
162
162
|
|
163
|
-
const_iterator cend() const
|
163
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator cend() const
|
164
164
|
{ return const_iterator(node_algorithms::end_node(this->header_ptr()), this->priv_value_traits_ptr()); }
|
165
165
|
|
166
|
-
iterator root()
|
166
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator root()
|
167
167
|
{ return iterator(node_algorithms::root_node(this->header_ptr()), this->priv_value_traits_ptr()); }
|
168
168
|
|
169
|
-
const_iterator root() const
|
169
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator root() const
|
170
170
|
{ return croot(); }
|
171
171
|
|
172
|
-
const_iterator croot() const
|
172
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator croot() const
|
173
173
|
{ return const_iterator(node_algorithms::root_node(this->header_ptr()), this->priv_value_traits_ptr()); }
|
174
174
|
|
175
|
-
reverse_iterator rbegin()
|
175
|
+
BOOST_INTRUSIVE_FORCEINLINE reverse_iterator rbegin()
|
176
176
|
{ return reverse_iterator(end()); }
|
177
177
|
|
178
|
-
const_reverse_iterator rbegin() const
|
178
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reverse_iterator rbegin() const
|
179
179
|
{ return const_reverse_iterator(end()); }
|
180
180
|
|
181
|
-
const_reverse_iterator crbegin() const
|
181
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reverse_iterator crbegin() const
|
182
182
|
{ return const_reverse_iterator(end()); }
|
183
183
|
|
184
|
-
reverse_iterator rend()
|
184
|
+
BOOST_INTRUSIVE_FORCEINLINE reverse_iterator rend()
|
185
185
|
{ return reverse_iterator(begin()); }
|
186
186
|
|
187
|
-
const_reverse_iterator rend() const
|
187
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reverse_iterator rend() const
|
188
188
|
{ return const_reverse_iterator(begin()); }
|
189
189
|
|
190
|
-
const_reverse_iterator crend() const
|
190
|
+
BOOST_INTRUSIVE_FORCEINLINE const_reverse_iterator crend() const
|
191
191
|
{ return const_reverse_iterator(begin()); }
|
192
192
|
|
193
193
|
void replace_node(iterator replace_this, reference with_this)
|
@@ -199,7 +199,7 @@ struct bstbase3
|
|
199
199
|
node_algorithms::init(replace_this.pointed_node());
|
200
200
|
}
|
201
201
|
|
202
|
-
void rebalance()
|
202
|
+
BOOST_INTRUSIVE_FORCEINLINE void rebalance()
|
203
203
|
{ node_algorithms::rebalance(this->header_ptr()); }
|
204
204
|
|
205
205
|
iterator rebalance_subtree(iterator root)
|
@@ -223,7 +223,7 @@ struct bstbase3
|
|
223
223
|
const_iterator iterator_to(const_reference value) const
|
224
224
|
{ return const_iterator (this->get_value_traits().to_node_ptr(*pointer_traits<pointer>::const_cast_from(pointer_traits<const_pointer>::pointer_to(value))), this->priv_value_traits_ptr()); }
|
225
225
|
|
226
|
-
static void init_node(reference value)
|
226
|
+
BOOST_INTRUSIVE_FORCEINLINE static void init_node(reference value)
|
227
227
|
{ node_algorithms::init(value_traits::to_node_ptr(value)); }
|
228
228
|
|
229
229
|
};
|
@@ -252,17 +252,18 @@ struct get_key_of_value<void, T>
|
|
252
252
|
typedef ::boost::intrusive::detail::identity<T> type;
|
253
253
|
};
|
254
254
|
|
255
|
-
template<class
|
255
|
+
template<class ValuePtr, class VoidOrKeyOfValue, class VoidOrKeyComp>
|
256
256
|
struct bst_key_types
|
257
257
|
{
|
258
|
+
typedef typename pointer_element<ValuePtr>::type value_type;
|
258
259
|
typedef typename get_key_of_value
|
259
|
-
< VoidOrKeyOfValue,
|
260
|
-
typedef typename key_of_value::type
|
260
|
+
< VoidOrKeyOfValue, value_type>::type key_of_value;
|
261
|
+
typedef typename key_of_value::type key_type;
|
261
262
|
typedef typename get_compare< VoidOrKeyComp
|
262
263
|
, key_type
|
263
|
-
>::type
|
264
|
+
>::type key_compare;
|
264
265
|
typedef tree_value_compare
|
265
|
-
<
|
266
|
+
<ValuePtr, key_compare, key_of_value> value_compare;
|
266
267
|
};
|
267
268
|
|
268
269
|
template<class ValueTraits, class VoidOrKeyOfValue, class VoidOrKeyComp, algo_types AlgoType, typename HeaderHolder>
|
@@ -271,15 +272,16 @@ struct bstbase2
|
|
271
272
|
//Use public inheritance to avoid MSVC bugs with closures
|
272
273
|
: public detail::ebo_functor_holder
|
273
274
|
< typename bst_key_types
|
274
|
-
< typename ValueTraits::
|
275
|
+
< typename ValueTraits::pointer
|
275
276
|
, VoidOrKeyOfValue
|
276
277
|
, VoidOrKeyComp
|
278
|
+
|
277
279
|
>::value_compare
|
278
280
|
>
|
279
281
|
, public bstbase3<ValueTraits, AlgoType, HeaderHolder>
|
280
282
|
{
|
281
283
|
typedef bstbase3<ValueTraits, AlgoType, HeaderHolder> treeheader_t;
|
282
|
-
typedef bst_key_types< typename ValueTraits::
|
284
|
+
typedef bst_key_types< typename ValueTraits::pointer
|
283
285
|
, VoidOrKeyOfValue
|
284
286
|
, VoidOrKeyComp> key_types;
|
285
287
|
typedef typename treeheader_t::value_traits value_traits;
|
@@ -311,17 +313,17 @@ struct bstbase2
|
|
311
313
|
typedef BOOST_INTRUSIVE_IMPDEF(typename pointer_traits<const_pointer>::difference_type) difference_type;
|
312
314
|
typedef typename node_algorithms::insert_commit_data insert_commit_data;
|
313
315
|
|
314
|
-
value_compare value_comp() const
|
316
|
+
BOOST_INTRUSIVE_FORCEINLINE value_compare value_comp() const
|
315
317
|
{ return this->comp(); }
|
316
318
|
|
317
|
-
key_compare key_comp() const
|
319
|
+
BOOST_INTRUSIVE_FORCEINLINE key_compare key_comp() const
|
318
320
|
{ return this->comp().key_comp(); }
|
319
321
|
|
320
322
|
//lower_bound
|
321
|
-
iterator lower_bound(const key_type &key)
|
323
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator lower_bound(const key_type &key)
|
322
324
|
{ return this->lower_bound(key, this->key_comp()); }
|
323
325
|
|
324
|
-
const_iterator lower_bound(const key_type &key) const
|
326
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator lower_bound(const key_type &key) const
|
325
327
|
{ return this->lower_bound(key, this->key_comp()); }
|
326
328
|
|
327
329
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -339,7 +341,7 @@ struct bstbase2
|
|
339
341
|
}
|
340
342
|
|
341
343
|
//upper_bound
|
342
|
-
iterator upper_bound(const key_type &key)
|
344
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator upper_bound(const key_type &key)
|
343
345
|
{ return this->upper_bound(key, this->key_comp()); }
|
344
346
|
|
345
347
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -349,7 +351,7 @@ struct bstbase2
|
|
349
351
|
(this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
|
350
352
|
}
|
351
353
|
|
352
|
-
const_iterator upper_bound(const key_type &key) const
|
354
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator upper_bound(const key_type &key) const
|
353
355
|
{ return this->upper_bound(key, this->key_comp()); }
|
354
356
|
|
355
357
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -364,13 +366,13 @@ struct bstbase2
|
|
364
366
|
{ typedef detail::key_nodeptr_comp<KeyTypeKeyCompare, value_traits, key_of_value> type; };
|
365
367
|
|
366
368
|
template<class KeyTypeKeyCompare>
|
367
|
-
typename key_node_comp_ret<KeyTypeKeyCompare>::type key_node_comp(KeyTypeKeyCompare comp) const
|
369
|
+
BOOST_INTRUSIVE_FORCEINLINE typename key_node_comp_ret<KeyTypeKeyCompare>::type key_node_comp(KeyTypeKeyCompare comp) const
|
368
370
|
{
|
369
371
|
return detail::key_nodeptr_comp<KeyTypeKeyCompare, value_traits, key_of_value>(comp, &this->get_value_traits());
|
370
372
|
}
|
371
373
|
|
372
374
|
//find
|
373
|
-
iterator find(const key_type &key)
|
375
|
+
BOOST_INTRUSIVE_FORCEINLINE iterator find(const key_type &key)
|
374
376
|
{ return this->find(key, this->key_comp()); }
|
375
377
|
|
376
378
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -380,7 +382,7 @@ struct bstbase2
|
|
380
382
|
(node_algorithms::find(this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
|
381
383
|
}
|
382
384
|
|
383
|
-
const_iterator find(const key_type &key) const
|
385
|
+
BOOST_INTRUSIVE_FORCEINLINE const_iterator find(const key_type &key) const
|
384
386
|
{ return this->find(key, this->key_comp()); }
|
385
387
|
|
386
388
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -391,7 +393,7 @@ struct bstbase2
|
|
391
393
|
}
|
392
394
|
|
393
395
|
//equal_range
|
394
|
-
std::pair<iterator,iterator> equal_range(const key_type &key)
|
396
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type &key)
|
395
397
|
{ return this->equal_range(key, this->key_comp()); }
|
396
398
|
|
397
399
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -403,7 +405,7 @@ struct bstbase2
|
|
403
405
|
, iterator(ret.second, this->priv_value_traits_ptr()));
|
404
406
|
}
|
405
407
|
|
406
|
-
std::pair<const_iterator, const_iterator>
|
408
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<const_iterator, const_iterator>
|
407
409
|
equal_range(const key_type &key) const
|
408
410
|
{ return this->equal_range(key, this->key_comp()); }
|
409
411
|
|
@@ -418,7 +420,7 @@ struct bstbase2
|
|
418
420
|
}
|
419
421
|
|
420
422
|
//lower_bound_range
|
421
|
-
std::pair<iterator,iterator> lower_bound_range(const key_type &key)
|
423
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator,iterator> lower_bound_range(const key_type &key)
|
422
424
|
{ return this->lower_bound_range(key, this->key_comp()); }
|
423
425
|
|
424
426
|
template<class KeyType, class KeyTypeKeyCompare>
|
@@ -430,7 +432,7 @@ struct bstbase2
|
|
430
432
|
, iterator(ret.second, this->priv_value_traits_ptr()));
|
431
433
|
}
|
432
434
|
|
433
|
-
std::pair<const_iterator, const_iterator>
|
435
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<const_iterator, const_iterator>
|
434
436
|
lower_bound_range(const key_type &key) const
|
435
437
|
{ return this->lower_bound_range(key, this->key_comp()); }
|
436
438
|
|
@@ -445,7 +447,7 @@ struct bstbase2
|
|
445
447
|
}
|
446
448
|
|
447
449
|
//bounded_range
|
448
|
-
std::pair<iterator,iterator> bounded_range
|
450
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator,iterator> bounded_range
|
449
451
|
(const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed)
|
450
452
|
{ return this->bounded_range(lower_key, upper_key, this->key_comp(), left_closed, right_closed); }
|
451
453
|
|
@@ -460,7 +462,7 @@ struct bstbase2
|
|
460
462
|
, iterator(ret.second, this->priv_value_traits_ptr()));
|
461
463
|
}
|
462
464
|
|
463
|
-
std::pair<const_iterator,const_iterator> bounded_range
|
465
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<const_iterator,const_iterator> bounded_range
|
464
466
|
(const key_type &lower_key, const key_type &upper_key, bool left_closed, bool right_closed) const
|
465
467
|
{ return this->bounded_range(lower_key, upper_key, this->key_comp(), left_closed, right_closed); }
|
466
468
|
|
@@ -476,8 +478,20 @@ struct bstbase2
|
|
476
478
|
}
|
477
479
|
|
478
480
|
//insert_unique_check
|
481
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator, bool> insert_unique_check
|
482
|
+
(const key_type &key, insert_commit_data &commit_data)
|
483
|
+
{ return this->insert_unique_check(key, this->key_comp(), commit_data); }
|
484
|
+
|
485
|
+
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator, bool> insert_unique_check
|
486
|
+
(const_iterator hint, const key_type &key, insert_commit_data &commit_data)
|
487
|
+
{ return this->insert_unique_check(hint, key, this->key_comp(), commit_data); }
|
488
|
+
|
479
489
|
template<class KeyType, class KeyTypeKeyCompare>
|
480
|
-
std::pair<iterator
|
490
|
+
BOOST_INTRUSIVE_DOC1ST(std::pair<iterator BOOST_INTRUSIVE_I bool>
|
491
|
+
, typename detail::disable_if_convertible
|
492
|
+
<KeyType BOOST_INTRUSIVE_I const_iterator BOOST_INTRUSIVE_I
|
493
|
+
std::pair<iterator BOOST_INTRUSIVE_I bool> >::type)
|
494
|
+
insert_unique_check
|
481
495
|
(const KeyType &key, KeyTypeKeyCompare comp, insert_commit_data &commit_data)
|
482
496
|
{
|
483
497
|
std::pair<node_ptr, bool> ret =
|
@@ -488,8 +502,7 @@ struct bstbase2
|
|
488
502
|
|
489
503
|
template<class KeyType, class KeyTypeKeyCompare>
|
490
504
|
std::pair<iterator, bool> insert_unique_check
|
491
|
-
(const_iterator hint, const KeyType &key
|
492
|
-
,KeyTypeKeyCompare comp, insert_commit_data &commit_data)
|
505
|
+
(const_iterator hint, const KeyType &key, KeyTypeKeyCompare comp, insert_commit_data &commit_data)
|
493
506
|
{
|
494
507
|
std::pair<node_ptr, bool> ret =
|
495
508
|
(node_algorithms::insert_unique_check
|
@@ -514,7 +527,7 @@ struct bstbase_hack
|
|
514
527
|
typedef typename get_algo
|
515
528
|
<AlgoType, node_traits>::type algo_type;
|
516
529
|
|
517
|
-
bstbase_hack(const key_compare & comp, const ValueTraits &vtraits)
|
530
|
+
BOOST_INTRUSIVE_FORCEINLINE bstbase_hack(const key_compare & comp, const ValueTraits &vtraits)
|
518
531
|
: base_type(comp, vtraits)
|
519
532
|
{
|
520
533
|
this->sz_traits().set_size(size_type(0));
|
@@ -522,10 +535,10 @@ struct bstbase_hack
|
|
522
535
|
|
523
536
|
typedef detail::size_holder<ConstantTimeSize, SizeType> size_traits;
|
524
537
|
|
525
|
-
size_traits &sz_traits()
|
538
|
+
BOOST_INTRUSIVE_FORCEINLINE size_traits &sz_traits()
|
526
539
|
{ return static_cast<size_traits &>(*this); }
|
527
540
|
|
528
|
-
const size_traits &sz_traits() const
|
541
|
+
BOOST_INTRUSIVE_FORCEINLINE const size_traits &sz_traits() const
|
529
542
|
{ return static_cast<const size_traits &>(*this); }
|
530
543
|
};
|
531
544
|
|
@@ -537,24 +550,16 @@ struct bstbase_hack<ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, false, SizeTyp
|
|
537
550
|
typedef bstbase2< ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, AlgoType, HeaderHolder> base_type;
|
538
551
|
typedef typename base_type::value_compare value_compare;
|
539
552
|
typedef typename base_type::key_compare key_compare;
|
540
|
-
bstbase_hack(const key_compare & comp, const ValueTraits &vtraits)
|
553
|
+
BOOST_INTRUSIVE_FORCEINLINE bstbase_hack(const key_compare & comp, const ValueTraits &vtraits)
|
541
554
|
: base_type(comp, vtraits)
|
542
555
|
{}
|
543
556
|
|
544
557
|
typedef detail::size_holder<false, SizeType> size_traits;
|
545
558
|
|
546
|
-
size_traits
|
547
|
-
{ return
|
548
|
-
|
549
|
-
const size_traits &sz_traits() const
|
550
|
-
{ return s_size_traits; }
|
551
|
-
|
552
|
-
static size_traits s_size_traits;
|
559
|
+
BOOST_INTRUSIVE_FORCEINLINE size_traits sz_traits() const
|
560
|
+
{ return size_traits(); }
|
553
561
|
};
|
554
562
|
|
555
|
-
template<class ValueTraits, class VoidOrKeyOfValue, class VoidOrKeyComp, class SizeType, algo_types AlgoType, typename HeaderHolder>
|
556
|
-
detail::size_holder<false, SizeType> bstbase_hack<ValueTraits, VoidOrKeyOfValue, VoidOrKeyComp, false, SizeType, AlgoType, HeaderHolder>::s_size_traits;
|
557
|
-
|
558
563
|
//This class will
|
559
564
|
template<class ValueTraits, class VoidOrKeyOfValue, class VoidOrKeyComp, bool ConstantTimeSize, class SizeType, algo_types AlgoType, typename HeaderHolder>
|
560
565
|
struct bstbase
|
@@ -573,7 +578,7 @@ struct bstbase
|
|
573
578
|
<AlgoType, node_traits>::type node_algorithms;
|
574
579
|
typedef SizeType size_type;
|
575
580
|
|
576
|
-
bstbase(const key_compare & comp, const ValueTraits &vtraits)
|
581
|
+
BOOST_INTRUSIVE_FORCEINLINE bstbase(const key_compare & comp, const ValueTraits &vtraits)
|
577
582
|
: base_type(comp, vtraits)
|
578
583
|
{}
|
579
584
|
|
@@ -679,8 +684,18 @@ class bstree_impl
|
|
679
684
|
//! <b>Throws</b>: If value_traits::node_traits::node
|
680
685
|
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
|
681
686
|
//! or the copy constructor of the key_compare object throws. Basic guarantee.
|
682
|
-
|
683
|
-
|
687
|
+
bstree_impl()
|
688
|
+
: data_type(key_compare(), value_traits())
|
689
|
+
{}
|
690
|
+
|
691
|
+
//! <b>Effects</b>: Constructs an empty container with given comparison and traits.
|
692
|
+
//!
|
693
|
+
//! <b>Complexity</b>: Constant.
|
694
|
+
//!
|
695
|
+
//! <b>Throws</b>: If value_traits::node_traits::node
|
696
|
+
//! constructor throws (this does not happen with predefined Boost.Intrusive hooks)
|
697
|
+
//! or the copy constructor of the key_compare object throws. Basic guarantee.
|
698
|
+
explicit bstree_impl( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
684
699
|
: data_type(cmp, v_traits)
|
685
700
|
{}
|
686
701
|
|
@@ -719,7 +734,7 @@ class bstree_impl
|
|
719
734
|
|
720
735
|
//! <b>Effects</b>: to-do
|
721
736
|
//!
|
722
|
-
bstree_impl& operator=(BOOST_RV_REF(bstree_impl) x)
|
737
|
+
BOOST_INTRUSIVE_FORCEINLINE bstree_impl& operator=(BOOST_RV_REF(bstree_impl) x)
|
723
738
|
{ this->swap(x); return *this; }
|
724
739
|
|
725
740
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
@@ -823,6 +838,27 @@ class bstree_impl
|
|
823
838
|
//! <b>Throws</b>: Nothing.
|
824
839
|
const_reverse_iterator crend() const;
|
825
840
|
|
841
|
+
//! <b>Effects</b>: Returns a iterator pointing to the root node of the container or end() if not present.
|
842
|
+
//!
|
843
|
+
//! <b>Complexity</b>: Constant.
|
844
|
+
//!
|
845
|
+
//! <b>Throws</b>: Nothing.
|
846
|
+
iterator root();
|
847
|
+
|
848
|
+
//! <b>Effects</b>: Returns a const_iterator pointing to the root node of the container or cend() if not present.
|
849
|
+
//!
|
850
|
+
//! <b>Complexity</b>: Constant.
|
851
|
+
//!
|
852
|
+
//! <b>Throws</b>: Nothing.
|
853
|
+
const_iterator root() const;
|
854
|
+
|
855
|
+
//! <b>Effects</b>: Returns a const_iterator pointing to the root node of the container or cend() if not present.
|
856
|
+
//!
|
857
|
+
//! <b>Complexity</b>: Constant.
|
858
|
+
//!
|
859
|
+
//! <b>Throws</b>: Nothing.
|
860
|
+
const_iterator croot() const;
|
861
|
+
|
826
862
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
827
863
|
|
828
864
|
//! <b>Precondition</b>: end_iterator must be a valid end iterator
|
@@ -931,14 +967,10 @@ class bstree_impl
|
|
931
967
|
void swap(bstree_impl& other)
|
932
968
|
{
|
933
969
|
//This can throw
|
934
|
-
::boost::adl_move_swap(this->comp(),
|
970
|
+
::boost::adl_move_swap(this->comp(), other.comp());
|
935
971
|
//These can't throw
|
936
972
|
node_algorithms::swap_tree(this->header_ptr(), node_ptr(other.header_ptr()));
|
937
|
-
|
938
|
-
size_type backup = this->sz_traits().get_size();
|
939
|
-
this->sz_traits().set_size(other.sz_traits().get_size());
|
940
|
-
other.sz_traits().set_size(backup);
|
941
|
-
}
|
973
|
+
this->sz_traits().swap(other.sz_traits());
|
942
974
|
}
|
943
975
|
|
944
976
|
//! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
|
@@ -1154,6 +1186,36 @@ class bstree_impl
|
|
1154
1186
|
|
1155
1187
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
1156
1188
|
|
1189
|
+
//! <b>Effects</b>: Checks if a value can be inserted in the container, using
|
1190
|
+
//! a user provided key instead of the value itself.
|
1191
|
+
//!
|
1192
|
+
//! <b>Returns</b>: If there is an equivalent value
|
1193
|
+
//! returns a pair containing an iterator to the already present value
|
1194
|
+
//! and false. If the value can be inserted returns true in the returned
|
1195
|
+
//! pair boolean and fills "commit_data" that is meant to be used with
|
1196
|
+
//! the "insert_commit" function.
|
1197
|
+
//!
|
1198
|
+
//! <b>Complexity</b>: Average complexity is at most logarithmic.
|
1199
|
+
//!
|
1200
|
+
//! <b>Throws</b>: If the comp ordering function throws. Strong guarantee.
|
1201
|
+
std::pair<iterator, bool> insert_unique_check(const key_type &key, insert_commit_data &commit_data);
|
1202
|
+
|
1203
|
+
//! <b>Effects</b>: Checks if a value can be inserted in the container, using
|
1204
|
+
//! a user provided key instead of the value itself, using "hint"
|
1205
|
+
//! as a hint to where it will be inserted.
|
1206
|
+
//!
|
1207
|
+
//! <b>Returns</b>: If there is an equivalent value
|
1208
|
+
//! returns a pair containing an iterator to the already present value
|
1209
|
+
//! and false. If the value can be inserted returns true in the returned
|
1210
|
+
//! pair boolean and fills "commit_data" that is meant to be used with
|
1211
|
+
//! the "insert_commit" function.
|
1212
|
+
//!
|
1213
|
+
//! <b>Complexity</b>: Logarithmic in general, but it's amortized
|
1214
|
+
//! constant time if t is inserted immediately before hint.
|
1215
|
+
//!
|
1216
|
+
//! <b>Throws</b>: If the comp ordering function throws. Strong guarantee.
|
1217
|
+
std::pair<iterator, bool> insert_unique_check(const_iterator hint, const key_type &key, insert_commit_data &commit_data);
|
1218
|
+
|
1157
1219
|
//! <b>Requires</b>: comp must be a comparison function that induces
|
1158
1220
|
//! the same strict weak ordering as key_compare. The difference is that
|
1159
1221
|
//! comp compares an arbitrary key with the contained values.
|
@@ -1905,6 +1967,78 @@ class bstree_impl
|
|
1905
1967
|
node_algorithms::init(to_remove);
|
1906
1968
|
}
|
1907
1969
|
|
1970
|
+
//! <b>Requires</b>: "source" container's Options can only can differ in the comparison
|
1971
|
+
//! function from *this.
|
1972
|
+
//!
|
1973
|
+
//! <b>Effects</b>: Attempts to extract each element in source and insert it into a using
|
1974
|
+
//! the comparison object of *this. If there is an element in a with key equivalent to the
|
1975
|
+
//! key of an element from source, then that element is not extracted from source.
|
1976
|
+
//!
|
1977
|
+
//! <b>Postcondition</b>: Pointers and references to the transferred elements of source refer
|
1978
|
+
//! to those same elements but as members of *this. Iterators referring to the transferred
|
1979
|
+
//! elements will continue to refer to their elements, but they now behave as iterators into *this,
|
1980
|
+
//! not into source.
|
1981
|
+
//!
|
1982
|
+
//! <b>Throws</b>: Nothing unless the comparison object throws.
|
1983
|
+
//!
|
1984
|
+
//! <b>Complexity</b>: N log(a.size() + N) (N has the value source.size())
|
1985
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
1986
|
+
template<class T, class ...Options2> void merge_unique(bstree<T, Options2...> &);
|
1987
|
+
#else
|
1988
|
+
template<class Compare2>
|
1989
|
+
void merge_unique(bstree_impl
|
1990
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, AlgoType, HeaderHolder> &source)
|
1991
|
+
#endif
|
1992
|
+
{
|
1993
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
1994
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
1995
|
+
|
1996
|
+
while(it != itend){
|
1997
|
+
node_ptr const p(it);
|
1998
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
1999
|
+
it = node_algorithms::next_node(it);
|
2000
|
+
if( node_algorithms::transfer_unique(this->header_ptr(), this->key_node_comp(this->key_comp()), source.header_ptr(), p) ){
|
2001
|
+
source.sz_traits().decrement();
|
2002
|
+
this->sz_traits().increment();
|
2003
|
+
}
|
2004
|
+
}
|
2005
|
+
}
|
2006
|
+
|
2007
|
+
//! <b>Requires</b>: "source" container's Options can only can differ in the comparison
|
2008
|
+
//! function from *this.
|
2009
|
+
//!
|
2010
|
+
//! <b>Effects</b>: Extracts each element in source and insert it into a using
|
2011
|
+
//! the comparison object of *this.
|
2012
|
+
//!
|
2013
|
+
//! <b>Postcondition</b>: Pointers and references to the transferred elements of source refer
|
2014
|
+
//! to those same elements but as members of *this. Iterators referring to the transferred
|
2015
|
+
//! elements will continue to refer to their elements, but they now behave as iterators into *this,
|
2016
|
+
//! not into source.
|
2017
|
+
//!
|
2018
|
+
//! <b>Throws</b>: Nothing unless the comparison object throws.
|
2019
|
+
//!
|
2020
|
+
//! <b>Complexity</b>: N log(a.size() + N) (N has the value source.size())
|
2021
|
+
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
2022
|
+
template<class T, class ...Options2> void merge_equal(bstree<T, Options2...> &);
|
2023
|
+
#else
|
2024
|
+
template<class Compare2>
|
2025
|
+
void merge_equal(bstree_impl
|
2026
|
+
<ValueTraits, VoidOrKeyOfValue, Compare2, SizeType, ConstantTimeSize, AlgoType, HeaderHolder> &source)
|
2027
|
+
#endif
|
2028
|
+
{
|
2029
|
+
node_ptr it (node_algorithms::begin_node(source.header_ptr()))
|
2030
|
+
, itend(node_algorithms::end_node (source.header_ptr()));
|
2031
|
+
|
2032
|
+
while(it != itend){
|
2033
|
+
node_ptr const p(it);
|
2034
|
+
BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || !node_algorithms::unique(p));
|
2035
|
+
it = node_algorithms::next_node(it);
|
2036
|
+
node_algorithms::transfer_equal(this->header_ptr(), this->key_node_comp(this->key_comp()), source.header_ptr(), p);
|
2037
|
+
source.sz_traits().decrement();
|
2038
|
+
this->sz_traits().increment();
|
2039
|
+
}
|
2040
|
+
}
|
2041
|
+
|
1908
2042
|
//! <b>Effects</b>: Asserts the integrity of the container with additional checks provided by the user.
|
1909
2043
|
//!
|
1910
2044
|
//! <b>Complexity</b>: Linear time.
|
@@ -2052,8 +2186,11 @@ class bstree
|
|
2052
2186
|
//Assert if passed value traits are compatible with the type
|
2053
2187
|
BOOST_STATIC_ASSERT((detail::is_same<typename value_traits::value_type, T>::value));
|
2054
2188
|
|
2055
|
-
bstree(
|
2056
|
-
|
2189
|
+
bstree()
|
2190
|
+
: Base()
|
2191
|
+
{}
|
2192
|
+
|
2193
|
+
explicit bstree( const key_compare &cmp, const value_traits &v_traits = value_traits())
|
2057
2194
|
: Base(cmp, v_traits)
|
2058
2195
|
{}
|
2059
2196
|
|