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
@@ -30,8 +30,8 @@ namespace container {
|
|
30
30
|
static ::std::allocator_arg_t *dummy;
|
31
31
|
};
|
32
32
|
|
33
|
-
template <int Dummy>
|
34
|
-
::std::allocator_arg_t *std_allocator_arg_holder<Dummy>::dummy;
|
33
|
+
template <int Dummy> //Silence null-reference compiler warnings
|
34
|
+
::std::allocator_arg_t *std_allocator_arg_holder<Dummy>::dummy = reinterpret_cast< ::std::allocator_arg_t * >(0x1234);
|
35
35
|
|
36
36
|
typedef const std::allocator_arg_t & allocator_arg_t;
|
37
37
|
|
@@ -96,13 +96,13 @@ class vec_iterator
|
|
96
96
|
Pointer m_ptr;
|
97
97
|
|
98
98
|
public:
|
99
|
-
const Pointer &get_ptr() const BOOST_NOEXCEPT_OR_NOTHROW
|
99
|
+
BOOST_CONTAINER_FORCEINLINE const Pointer &get_ptr() const BOOST_NOEXCEPT_OR_NOTHROW
|
100
100
|
{ return m_ptr; }
|
101
101
|
|
102
|
-
Pointer &get_ptr() BOOST_NOEXCEPT_OR_NOTHROW
|
102
|
+
BOOST_CONTAINER_FORCEINLINE Pointer &get_ptr() BOOST_NOEXCEPT_OR_NOTHROW
|
103
103
|
{ return m_ptr; }
|
104
104
|
|
105
|
-
explicit vec_iterator(Pointer ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
105
|
+
BOOST_CONTAINER_FORCEINLINE explicit vec_iterator(Pointer ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
106
106
|
: m_ptr(ptr)
|
107
107
|
{}
|
108
108
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
@@ -110,73 +110,73 @@ class vec_iterator
|
|
110
110
|
public:
|
111
111
|
|
112
112
|
//Constructors
|
113
|
-
vec_iterator() BOOST_NOEXCEPT_OR_NOTHROW
|
113
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator() BOOST_NOEXCEPT_OR_NOTHROW
|
114
114
|
: m_ptr() //Value initialization to achieve "null iterators" (N3644)
|
115
115
|
{}
|
116
116
|
|
117
|
-
vec_iterator(vec_iterator<Pointer, false> const& other) BOOST_NOEXCEPT_OR_NOTHROW
|
117
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator(vec_iterator<Pointer, false> const& other) BOOST_NOEXCEPT_OR_NOTHROW
|
118
118
|
: m_ptr(other.get_ptr())
|
119
119
|
{}
|
120
120
|
|
121
121
|
//Pointer like operators
|
122
|
-
reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
|
122
|
+
BOOST_CONTAINER_FORCEINLINE reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
|
123
123
|
{ return *m_ptr; }
|
124
124
|
|
125
|
-
pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
|
125
|
+
BOOST_CONTAINER_FORCEINLINE pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
|
126
126
|
{ return ::boost::intrusive::pointer_traits<pointer>::pointer_to(this->operator*()); }
|
127
127
|
|
128
|
-
reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
|
128
|
+
BOOST_CONTAINER_FORCEINLINE reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
|
129
129
|
{ return m_ptr[off]; }
|
130
130
|
|
131
131
|
//Increment / Decrement
|
132
|
-
vec_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
|
132
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
|
133
133
|
{ ++m_ptr; return *this; }
|
134
134
|
|
135
|
-
vec_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
|
135
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
|
136
136
|
{ return vec_iterator(m_ptr++); }
|
137
137
|
|
138
|
-
vec_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
|
138
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
|
139
139
|
{ --m_ptr; return *this; }
|
140
140
|
|
141
|
-
vec_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
|
141
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
|
142
142
|
{ return vec_iterator(m_ptr--); }
|
143
143
|
|
144
144
|
//Arithmetic
|
145
|
-
vec_iterator& operator+=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
145
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator+=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
146
146
|
{ m_ptr += off; return *this; }
|
147
147
|
|
148
|
-
vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
148
|
+
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
149
149
|
{ m_ptr -= off; return *this; }
|
150
150
|
|
151
|
-
friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
151
|
+
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
152
152
|
{ return vec_iterator(x.m_ptr+off); }
|
153
153
|
|
154
|
-
friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
|
154
|
+
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
|
155
155
|
{ right.m_ptr += off; return right; }
|
156
156
|
|
157
|
-
friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
157
|
+
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
158
158
|
{ left.m_ptr -= off; return left; }
|
159
159
|
|
160
|
-
friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
|
160
|
+
BOOST_CONTAINER_FORCEINLINE friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
|
161
161
|
{ return left.m_ptr - right.m_ptr; }
|
162
162
|
|
163
163
|
//Comparison operators
|
164
|
-
friend bool operator== (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
164
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator== (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
165
165
|
{ return l.m_ptr == r.m_ptr; }
|
166
166
|
|
167
|
-
friend bool operator!= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
167
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator!= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
168
168
|
{ return l.m_ptr != r.m_ptr; }
|
169
169
|
|
170
|
-
friend bool operator< (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
170
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator< (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
171
171
|
{ return l.m_ptr < r.m_ptr; }
|
172
172
|
|
173
|
-
friend bool operator<= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
173
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator<= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
174
174
|
{ return l.m_ptr <= r.m_ptr; }
|
175
175
|
|
176
|
-
friend bool operator> (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
176
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator> (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
177
177
|
{ return l.m_ptr > r.m_ptr; }
|
178
178
|
|
179
|
-
friend bool operator>= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
179
|
+
BOOST_CONTAINER_FORCEINLINE friend bool operator>= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
180
180
|
{ return l.m_ptr >= r.m_ptr; }
|
181
181
|
};
|
182
182
|
|
@@ -186,7 +186,7 @@ struct vector_insert_ordered_cursor
|
|
186
186
|
typedef typename iterator_traits<BiDirPosConstIt>::value_type size_type;
|
187
187
|
typedef typename iterator_traits<BiDirValueIt>::reference reference;
|
188
188
|
|
189
|
-
vector_insert_ordered_cursor(BiDirPosConstIt posit, BiDirValueIt valueit)
|
189
|
+
BOOST_CONTAINER_FORCEINLINE vector_insert_ordered_cursor(BiDirPosConstIt posit, BiDirValueIt valueit)
|
190
190
|
: last_position_it(posit), last_value_it(valueit)
|
191
191
|
{}
|
192
192
|
|
@@ -200,10 +200,10 @@ struct vector_insert_ordered_cursor
|
|
200
200
|
}
|
201
201
|
}
|
202
202
|
|
203
|
-
size_type get_pos() const
|
203
|
+
BOOST_CONTAINER_FORCEINLINE size_type get_pos() const
|
204
204
|
{ return *last_position_it; }
|
205
205
|
|
206
|
-
reference get_val()
|
206
|
+
BOOST_CONTAINER_FORCEINLINE reference get_val()
|
207
207
|
{ return *last_value_it; }
|
208
208
|
|
209
209
|
BiDirPosConstIt last_position_it;
|
@@ -216,7 +216,7 @@ struct vector_merge_cursor
|
|
216
216
|
typedef SizeType size_type;
|
217
217
|
typedef typename iterator_traits<BiDirValueIt>::reference reference;
|
218
218
|
|
219
|
-
vector_merge_cursor(T *pbeg, T *plast, BiDirValueIt valueit, Comp &cmp)
|
219
|
+
BOOST_CONTAINER_FORCEINLINE vector_merge_cursor(T *pbeg, T *plast, BiDirValueIt valueit, Comp &cmp)
|
220
220
|
: m_pbeg(pbeg), m_pcur(--plast), m_valueit(valueit), m_cmp(cmp)
|
221
221
|
{}
|
222
222
|
|
@@ -232,10 +232,10 @@ struct vector_merge_cursor
|
|
232
232
|
}
|
233
233
|
}
|
234
234
|
|
235
|
-
size_type get_pos() const
|
235
|
+
BOOST_CONTAINER_FORCEINLINE size_type get_pos() const
|
236
236
|
{ return static_cast<size_type>((m_pcur + 1) - m_pbeg); }
|
237
237
|
|
238
|
-
reference get_val()
|
238
|
+
BOOST_CONTAINER_FORCEINLINE reference get_val()
|
239
239
|
{ return *m_valueit; }
|
240
240
|
|
241
241
|
T *const m_pbeg;
|
@@ -247,11 +247,11 @@ struct vector_merge_cursor
|
|
247
247
|
} //namespace container_detail {
|
248
248
|
|
249
249
|
template<class Pointer, bool IsConst>
|
250
|
-
const Pointer &vector_iterator_get_ptr(const container_detail::vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
|
250
|
+
BOOST_CONTAINER_FORCEINLINE const Pointer &vector_iterator_get_ptr(const container_detail::vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
|
251
251
|
{ return it.get_ptr(); }
|
252
252
|
|
253
253
|
template<class Pointer, bool IsConst>
|
254
|
-
Pointer &get_ptr(container_detail::vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
|
254
|
+
BOOST_CONTAINER_FORCEINLINE Pointer &get_ptr(container_detail::vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
|
255
255
|
{ return it.get_ptr(); }
|
256
256
|
|
257
257
|
namespace container_detail {
|
@@ -270,7 +270,7 @@ struct vector_get_ptr_pointer_to_non_const
|
|
270
270
|
typedef typename pointer_traits_t
|
271
271
|
::template rebind_pointer<non_const_element_type>::type return_type;
|
272
272
|
|
273
|
-
static return_type get_ptr(const const_pointer &ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
273
|
+
BOOST_CONTAINER_FORCEINLINE static return_type get_ptr(const const_pointer &ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
274
274
|
{ return boost::intrusive::pointer_traits<return_type>::const_cast_from(ptr); }
|
275
275
|
};
|
276
276
|
|
@@ -278,14 +278,14 @@ template<class Pointer>
|
|
278
278
|
struct vector_get_ptr_pointer_to_non_const<Pointer, false>
|
279
279
|
{
|
280
280
|
typedef const Pointer & return_type;
|
281
|
-
static return_type get_ptr(const Pointer &ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
281
|
+
BOOST_CONTAINER_FORCEINLINE static return_type get_ptr(const Pointer &ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
282
282
|
{ return ptr; }
|
283
283
|
};
|
284
284
|
|
285
285
|
} //namespace container_detail {
|
286
286
|
|
287
287
|
template<class MaybeConstPointer>
|
288
|
-
typename container_detail::vector_get_ptr_pointer_to_non_const<MaybeConstPointer>::return_type
|
288
|
+
BOOST_CONTAINER_FORCEINLINE typename container_detail::vector_get_ptr_pointer_to_non_const<MaybeConstPointer>::return_type
|
289
289
|
vector_iterator_get_ptr(const MaybeConstPointer &ptr) BOOST_NOEXCEPT_OR_NOTHROW
|
290
290
|
{
|
291
291
|
return container_detail::vector_get_ptr_pointer_to_non_const<MaybeConstPointer>::get_ptr(ptr);
|
@@ -380,7 +380,7 @@ struct vector_alloc_holder
|
|
380
380
|
, m_capacity()
|
381
381
|
{
|
382
382
|
if(initial_size){
|
383
|
-
pointer reuse =
|
383
|
+
pointer reuse = pointer();
|
384
384
|
m_start = this->allocation_command(allocate_new, initial_size, m_capacity = initial_size, reuse);
|
385
385
|
}
|
386
386
|
}
|
@@ -393,7 +393,7 @@ struct vector_alloc_holder
|
|
393
393
|
, m_capacity()
|
394
394
|
{
|
395
395
|
if(initial_size){
|
396
|
-
pointer reuse =
|
396
|
+
pointer reuse = pointer();
|
397
397
|
m_start = this->allocation_command(allocate_new, initial_size, m_capacity = initial_size, reuse);
|
398
398
|
}
|
399
399
|
}
|
@@ -451,14 +451,14 @@ struct vector_alloc_holder
|
|
451
451
|
, m_capacity(n)
|
452
452
|
{}
|
453
453
|
|
454
|
-
~vector_alloc_holder() BOOST_NOEXCEPT_OR_NOTHROW
|
454
|
+
BOOST_CONTAINER_FORCEINLINE ~vector_alloc_holder() BOOST_NOEXCEPT_OR_NOTHROW
|
455
455
|
{
|
456
456
|
if(this->m_capacity){
|
457
457
|
this->alloc().deallocate(this->m_start, this->m_capacity);
|
458
458
|
}
|
459
459
|
}
|
460
460
|
|
461
|
-
pointer allocation_command(boost::container::allocation_type command,
|
461
|
+
BOOST_CONTAINER_FORCEINLINE pointer allocation_command(boost::container::allocation_type command,
|
462
462
|
size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse)
|
463
463
|
{
|
464
464
|
typedef typename container_detail::version<Allocator>::type alloc_version;
|
@@ -482,7 +482,7 @@ struct vector_alloc_holder
|
|
482
482
|
return success;
|
483
483
|
}
|
484
484
|
|
485
|
-
size_type next_capacity(size_type additional_objects) const
|
485
|
+
BOOST_CONTAINER_FORCEINLINE size_type next_capacity(size_type additional_objects) const
|
486
486
|
{
|
487
487
|
return next_capacity_calculator
|
488
488
|
<size_type, NextCapacityDouble //NextCapacity60Percent
|
@@ -510,10 +510,10 @@ struct vector_alloc_holder
|
|
510
510
|
x.m_size = x.m_capacity = 0;
|
511
511
|
}
|
512
512
|
|
513
|
-
Allocator &alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
513
|
+
BOOST_CONTAINER_FORCEINLINE Allocator &alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
514
514
|
{ return *this; }
|
515
515
|
|
516
|
-
const Allocator &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
516
|
+
BOOST_CONTAINER_FORCEINLINE const Allocator &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
517
517
|
{ return *this; }
|
518
518
|
|
519
519
|
const pointer &start() const BOOST_NOEXCEPT_OR_NOTHROW { return m_start; }
|
@@ -525,7 +525,7 @@ struct vector_alloc_holder
|
|
525
525
|
void priv_first_allocation(size_type cap)
|
526
526
|
{
|
527
527
|
if(cap){
|
528
|
-
pointer reuse =
|
528
|
+
pointer reuse = pointer();
|
529
529
|
m_start = this->allocation_command(allocate_new, cap, cap, reuse);
|
530
530
|
m_capacity = cap;
|
531
531
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
@@ -534,7 +534,7 @@ struct vector_alloc_holder
|
|
534
534
|
}
|
535
535
|
}
|
536
536
|
|
537
|
-
pointer priv_allocation_command(version_1, boost::container::allocation_type command,
|
537
|
+
BOOST_CONTAINER_FORCEINLINE pointer priv_allocation_command(version_1, boost::container::allocation_type command,
|
538
538
|
size_type ,
|
539
539
|
size_type &prefer_in_recvd_out_size,
|
540
540
|
pointer &reuse)
|
@@ -624,14 +624,14 @@ struct vector_alloc_holder<Allocator, version_0>
|
|
624
624
|
(this->alloc(), container_detail::to_raw_pointer(holder.start()), n, container_detail::to_raw_pointer(this->start()));
|
625
625
|
}
|
626
626
|
|
627
|
-
void priv_first_allocation(size_type cap)
|
627
|
+
BOOST_CONTAINER_FORCEINLINE void priv_first_allocation(size_type cap)
|
628
628
|
{
|
629
629
|
if(cap > Allocator::internal_capacity){
|
630
630
|
throw_bad_alloc();
|
631
631
|
}
|
632
632
|
}
|
633
633
|
|
634
|
-
void deep_swap(vector_alloc_holder &x)
|
634
|
+
BOOST_CONTAINER_FORCEINLINE void deep_swap(vector_alloc_holder &x)
|
635
635
|
{
|
636
636
|
this->priv_deep_swap(x);
|
637
637
|
}
|
@@ -645,28 +645,28 @@ struct vector_alloc_holder<Allocator, version_0>
|
|
645
645
|
this->priv_deep_swap(x);
|
646
646
|
}
|
647
647
|
|
648
|
-
void swap_resources(vector_alloc_holder &) BOOST_NOEXCEPT_OR_NOTHROW
|
648
|
+
BOOST_CONTAINER_FORCEINLINE void swap_resources(vector_alloc_holder &) BOOST_NOEXCEPT_OR_NOTHROW
|
649
649
|
{ //Containers with version 0 allocators can't be moved without moving elements one by one
|
650
650
|
throw_bad_alloc();
|
651
651
|
}
|
652
652
|
|
653
653
|
|
654
|
-
void steal_resources(vector_alloc_holder &)
|
654
|
+
BOOST_CONTAINER_FORCEINLINE void steal_resources(vector_alloc_holder &)
|
655
655
|
{ //Containers with version 0 allocators can't be moved without moving elements one by one
|
656
656
|
throw_bad_alloc();
|
657
657
|
}
|
658
658
|
|
659
|
-
Allocator &alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
659
|
+
BOOST_CONTAINER_FORCEINLINE Allocator &alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
660
660
|
{ return *this; }
|
661
661
|
|
662
|
-
const Allocator &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
662
|
+
BOOST_CONTAINER_FORCEINLINE const Allocator &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
663
663
|
{ return *this; }
|
664
664
|
|
665
|
-
bool try_expand_fwd(size_type at_least)
|
665
|
+
BOOST_CONTAINER_FORCEINLINE bool try_expand_fwd(size_type at_least)
|
666
666
|
{ return !at_least; }
|
667
667
|
|
668
|
-
pointer start() const BOOST_NOEXCEPT_OR_NOTHROW { return Allocator::internal_storage(); }
|
669
|
-
size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return Allocator::internal_capacity; }
|
668
|
+
BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW { return Allocator::internal_storage(); }
|
669
|
+
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return Allocator::internal_capacity; }
|
670
670
|
size_type m_size;
|
671
671
|
|
672
672
|
private:
|
@@ -765,16 +765,16 @@ class vector
|
|
765
765
|
|
766
766
|
protected:
|
767
767
|
|
768
|
-
void steal_resources(vector &x)
|
768
|
+
BOOST_CONTAINER_FORCEINLINE void steal_resources(vector &x)
|
769
769
|
{ return this->m_holder.steal_resources(x.m_holder); }
|
770
770
|
|
771
771
|
struct initial_capacity_t{};
|
772
772
|
template<class AllocFwd>
|
773
|
-
vector(initial_capacity_t, pointer initial_memory, size_type capacity, BOOST_FWD_REF(AllocFwd) a)
|
773
|
+
BOOST_CONTAINER_FORCEINLINE vector(initial_capacity_t, pointer initial_memory, size_type capacity, BOOST_FWD_REF(AllocFwd) a)
|
774
774
|
: m_holder(initial_memory, capacity, ::boost::forward<AllocFwd>(a))
|
775
775
|
{}
|
776
776
|
|
777
|
-
vector(initial_capacity_t, pointer initial_memory, size_type capacity)
|
777
|
+
BOOST_CONTAINER_FORCEINLINE vector(initial_capacity_t, pointer initial_memory, size_type capacity)
|
778
778
|
: m_holder(initial_memory, capacity)
|
779
779
|
{}
|
780
780
|
|
@@ -792,7 +792,7 @@ class vector
|
|
792
792
|
//! <b>Throws</b>: Nothing.
|
793
793
|
//!
|
794
794
|
//! <b>Complexity</b>: Constant.
|
795
|
-
vector()
|
795
|
+
vector() BOOST_NOEXCEPT_IF(container_detail::is_nothrow_default_constructible<Allocator>::value)
|
796
796
|
: m_holder()
|
797
797
|
{}
|
798
798
|
|
@@ -822,38 +822,38 @@ class vector
|
|
822
822
|
}
|
823
823
|
|
824
824
|
//! <b>Effects</b>: Constructs a vector that will use a copy of allocator a
|
825
|
-
//! and inserts n
|
825
|
+
//! and inserts n value initialized values.
|
826
826
|
//!
|
827
827
|
//! <b>Throws</b>: If allocator_type's allocation
|
828
|
-
//! throws or T's
|
828
|
+
//! throws or T's value initialization throws.
|
829
829
|
//!
|
830
830
|
//! <b>Complexity</b>: Linear to n.
|
831
|
-
|
832
|
-
|
833
|
-
vector(size_type n, default_init_t)
|
834
|
-
: m_holder(container_detail::uninitialized_size, n)
|
831
|
+
explicit vector(size_type n, const allocator_type &a)
|
832
|
+
: m_holder(container_detail::uninitialized_size, a, n)
|
835
833
|
{
|
836
834
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
837
835
|
this->num_alloc += n != 0;
|
838
836
|
#endif
|
839
|
-
boost::container::
|
837
|
+
boost::container::uninitialized_value_init_alloc_n
|
840
838
|
(this->m_holder.alloc(), n, this->priv_raw_begin());
|
841
839
|
}
|
842
840
|
|
843
841
|
//! <b>Effects</b>: Constructs a vector that will use a copy of allocator a
|
844
|
-
//! and inserts n
|
842
|
+
//! and inserts n default initialized values.
|
845
843
|
//!
|
846
844
|
//! <b>Throws</b>: If allocator_type's allocation
|
847
|
-
//! throws or T's
|
845
|
+
//! throws or T's default initialization throws.
|
848
846
|
//!
|
849
847
|
//! <b>Complexity</b>: Linear to n.
|
850
|
-
|
851
|
-
|
848
|
+
//!
|
849
|
+
//! <b>Note</b>: Non-standard extension
|
850
|
+
vector(size_type n, default_init_t)
|
851
|
+
: m_holder(container_detail::uninitialized_size, n)
|
852
852
|
{
|
853
853
|
#ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
|
854
854
|
this->num_alloc += n != 0;
|
855
855
|
#endif
|
856
|
-
boost::container::
|
856
|
+
boost::container::uninitialized_default_init_alloc_n
|
857
857
|
(this->m_holder.alloc(), n, this->priv_raw_begin());
|
858
858
|
}
|
859
859
|
|
@@ -918,7 +918,11 @@ class vector
|
|
918
918
|
//!
|
919
919
|
//! <b>Complexity</b>: Linear to the range [first, last).
|
920
920
|
template <class InIt>
|
921
|
-
vector(InIt first, InIt last
|
921
|
+
vector(InIt first, InIt last
|
922
|
+
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename container_detail::disable_if_c
|
923
|
+
< container_detail::is_convertible<InIt BOOST_MOVE_I size_type>::value
|
924
|
+
BOOST_MOVE_I container_detail::nat >::type * = 0)
|
925
|
+
)
|
922
926
|
: m_holder()
|
923
927
|
{ this->assign(first, last); }
|
924
928
|
|
@@ -930,7 +934,11 @@ class vector
|
|
930
934
|
//!
|
931
935
|
//! <b>Complexity</b>: Linear to the range [first, last).
|
932
936
|
template <class InIt>
|
933
|
-
vector(InIt first, InIt last, const allocator_type& a
|
937
|
+
vector(InIt first, InIt last, const allocator_type& a
|
938
|
+
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename container_detail::disable_if_c
|
939
|
+
< container_detail::is_convertible<InIt BOOST_MOVE_I size_type>::value
|
940
|
+
BOOST_MOVE_I container_detail::nat >::type * = 0)
|
941
|
+
)
|
934
942
|
: m_holder(a)
|
935
943
|
{ this->assign(first, last); }
|
936
944
|
|
@@ -1063,7 +1071,7 @@ class vector
|
|
1063
1071
|
//! <b>Throws</b>: If memory allocation throws or T's copy/move constructor/assignment throws.
|
1064
1072
|
//!
|
1065
1073
|
//! <b>Complexity</b>: Linear to the number of elements in x.
|
1066
|
-
vector& operator=(BOOST_COPY_ASSIGN_REF(vector) x)
|
1074
|
+
BOOST_CONTAINER_FORCEINLINE vector& operator=(BOOST_COPY_ASSIGN_REF(vector) x)
|
1067
1075
|
{
|
1068
1076
|
if (&x != this){
|
1069
1077
|
this->priv_copy_assign(x);
|
@@ -1075,7 +1083,7 @@ class vector
|
|
1075
1083
|
//! <b>Effects</b>: Make *this container contains elements from il.
|
1076
1084
|
//!
|
1077
1085
|
//! <b>Complexity</b>: Linear to the range [il.begin(), il.end()).
|
1078
|
-
vector& operator=(std::initializer_list<value_type> il)
|
1086
|
+
BOOST_CONTAINER_FORCEINLINE vector& operator=(std::initializer_list<value_type> il)
|
1079
1087
|
{
|
1080
1088
|
this->assign(il.begin(), il.end());
|
1081
1089
|
return *this;
|
@@ -1093,9 +1101,9 @@ class vector
|
|
1093
1101
|
//! <b>Complexity</b>: Constant if allocator_traits_type::
|
1094
1102
|
//! propagate_on_container_move_assignment is true or
|
1095
1103
|
//! this->get>allocator() == x.get_allocator(). Linear otherwise.
|
1096
|
-
vector& operator=(BOOST_RV_REF(vector) x)
|
1104
|
+
BOOST_CONTAINER_FORCEINLINE vector& operator=(BOOST_RV_REF(vector) x)
|
1097
1105
|
BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment::value
|
1098
|
-
|
1106
|
+
|| allocator_traits_type::is_always_equal::value)
|
1099
1107
|
{
|
1100
1108
|
BOOST_ASSERT(&x != this);
|
1101
1109
|
this->priv_move_assign(boost::move(x));
|
@@ -1115,7 +1123,7 @@ class vector
|
|
1115
1123
|
//!
|
1116
1124
|
//! <b>Note</b>: Non-standard extension to support static_vector
|
1117
1125
|
template<class OtherAllocator>
|
1118
|
-
typename container_detail::enable_if_and
|
1126
|
+
BOOST_CONTAINER_FORCEINLINE typename container_detail::enable_if_and
|
1119
1127
|
< vector&
|
1120
1128
|
, container_detail::is_version<OtherAllocator, 0>
|
1121
1129
|
, container_detail::is_different<OtherAllocator, allocator_type>
|
@@ -1137,7 +1145,7 @@ class vector
|
|
1137
1145
|
//!
|
1138
1146
|
//! <b>Note</b>: Non-standard extension to support static_vector
|
1139
1147
|
template<class OtherAllocator>
|
1140
|
-
typename container_detail::enable_if_and
|
1148
|
+
BOOST_CONTAINER_FORCEINLINE typename container_detail::enable_if_and
|
1141
1149
|
< vector&
|
1142
1150
|
, container_detail::is_version<OtherAllocator, 0>
|
1143
1151
|
, container_detail::is_different<OtherAllocator, allocator_type>
|
@@ -1193,7 +1201,7 @@ class vector
|
|
1193
1201
|
//! <b>Throws</b>: If memory allocation throws or
|
1194
1202
|
//! T's constructor from dereferencing iniializer_list iterator throws.
|
1195
1203
|
//!
|
1196
|
-
void assign(std::initializer_list<T> il)
|
1204
|
+
BOOST_CONTAINER_FORCEINLINE void assign(std::initializer_list<T> il)
|
1197
1205
|
{
|
1198
1206
|
this->assign(il.begin(), il.end());
|
1199
1207
|
}
|
@@ -1269,7 +1277,7 @@ class vector
|
|
1269
1277
|
//! T's copy/move constructor/assignment throws.
|
1270
1278
|
//!
|
1271
1279
|
//! <b>Complexity</b>: Linear to n.
|
1272
|
-
void assign(size_type n, const value_type& val)
|
1280
|
+
BOOST_CONTAINER_FORCEINLINE void assign(size_type n, const value_type& val)
|
1273
1281
|
{ this->assign(cvalue_iterator(val, n), cvalue_iterator()); }
|
1274
1282
|
|
1275
1283
|
//! <b>Effects</b>: Returns a copy of the internal allocator.
|
@@ -1287,7 +1295,7 @@ class vector
|
|
1287
1295
|
//! <b>Complexity</b>: Constant.
|
1288
1296
|
//!
|
1289
1297
|
//! <b>Note</b>: Non-standard extension.
|
1290
|
-
stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
|
1298
|
+
BOOST_CONTAINER_FORCEINLINE stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
|
1291
1299
|
{ return this->m_holder.alloc(); }
|
1292
1300
|
|
1293
1301
|
//! <b>Effects</b>: Returns a reference to the internal allocator.
|
@@ -1297,7 +1305,7 @@ class vector
|
|
1297
1305
|
//! <b>Complexity</b>: Constant.
|
1298
1306
|
//!
|
1299
1307
|
//! <b>Note</b>: Non-standard extension.
|
1300
|
-
const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
1308
|
+
BOOST_CONTAINER_FORCEINLINE const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
1301
1309
|
{ return this->m_holder.alloc(); }
|
1302
1310
|
|
1303
1311
|
//////////////////////////////////////////////
|
@@ -1311,7 +1319,7 @@ class vector
|
|
1311
1319
|
//! <b>Throws</b>: Nothing.
|
1312
1320
|
//!
|
1313
1321
|
//! <b>Complexity</b>: Constant.
|
1314
|
-
iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
|
1322
|
+
BOOST_CONTAINER_FORCEINLINE iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
|
1315
1323
|
{ return iterator(this->m_holder.start()); }
|
1316
1324
|
|
1317
1325
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
|
@@ -1319,7 +1327,7 @@ class vector
|
|
1319
1327
|
//! <b>Throws</b>: Nothing.
|
1320
1328
|
//!
|
1321
1329
|
//! <b>Complexity</b>: Constant.
|
1322
|
-
const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1330
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1323
1331
|
{ return const_iterator(this->m_holder.start()); }
|
1324
1332
|
|
1325
1333
|
//! <b>Effects</b>: Returns an iterator to the end of the vector.
|
@@ -1327,7 +1335,7 @@ class vector
|
|
1327
1335
|
//! <b>Throws</b>: Nothing.
|
1328
1336
|
//!
|
1329
1337
|
//! <b>Complexity</b>: Constant.
|
1330
|
-
iterator end() BOOST_NOEXCEPT_OR_NOTHROW
|
1338
|
+
BOOST_CONTAINER_FORCEINLINE iterator end() BOOST_NOEXCEPT_OR_NOTHROW
|
1331
1339
|
{ return iterator(this->m_holder.start() + this->m_holder.m_size); }
|
1332
1340
|
|
1333
1341
|
//! <b>Effects</b>: Returns a const_iterator to the end of the vector.
|
@@ -1335,7 +1343,7 @@ class vector
|
|
1335
1343
|
//! <b>Throws</b>: Nothing.
|
1336
1344
|
//!
|
1337
1345
|
//! <b>Complexity</b>: Constant.
|
1338
|
-
const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
|
1346
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
|
1339
1347
|
{ return this->cend(); }
|
1340
1348
|
|
1341
1349
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
|
@@ -1344,7 +1352,7 @@ class vector
|
|
1344
1352
|
//! <b>Throws</b>: Nothing.
|
1345
1353
|
//!
|
1346
1354
|
//! <b>Complexity</b>: Constant.
|
1347
|
-
reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
|
1355
|
+
BOOST_CONTAINER_FORCEINLINE reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
|
1348
1356
|
{ return reverse_iterator(this->end()); }
|
1349
1357
|
|
1350
1358
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
@@ -1353,7 +1361,7 @@ class vector
|
|
1353
1361
|
//! <b>Throws</b>: Nothing.
|
1354
1362
|
//!
|
1355
1363
|
//! <b>Complexity</b>: Constant.
|
1356
|
-
const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1364
|
+
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1357
1365
|
{ return this->crbegin(); }
|
1358
1366
|
|
1359
1367
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the end
|
@@ -1362,7 +1370,7 @@ class vector
|
|
1362
1370
|
//! <b>Throws</b>: Nothing.
|
1363
1371
|
//!
|
1364
1372
|
//! <b>Complexity</b>: Constant.
|
1365
|
-
reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
|
1373
|
+
BOOST_CONTAINER_FORCEINLINE reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
|
1366
1374
|
{ return reverse_iterator(this->begin()); }
|
1367
1375
|
|
1368
1376
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
@@ -1371,7 +1379,7 @@ class vector
|
|
1371
1379
|
//! <b>Throws</b>: Nothing.
|
1372
1380
|
//!
|
1373
1381
|
//! <b>Complexity</b>: Constant.
|
1374
|
-
const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1382
|
+
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1375
1383
|
{ return this->crend(); }
|
1376
1384
|
|
1377
1385
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
|
@@ -1379,7 +1387,7 @@ class vector
|
|
1379
1387
|
//! <b>Throws</b>: Nothing.
|
1380
1388
|
//!
|
1381
1389
|
//! <b>Complexity</b>: Constant.
|
1382
|
-
const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1390
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1383
1391
|
{ return const_iterator(this->m_holder.start()); }
|
1384
1392
|
|
1385
1393
|
//! <b>Effects</b>: Returns a const_iterator to the end of the vector.
|
@@ -1387,7 +1395,7 @@ class vector
|
|
1387
1395
|
//! <b>Throws</b>: Nothing.
|
1388
1396
|
//!
|
1389
1397
|
//! <b>Complexity</b>: Constant.
|
1390
|
-
const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1398
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1391
1399
|
{ return const_iterator(this->m_holder.start() + this->m_holder.m_size); }
|
1392
1400
|
|
1393
1401
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
@@ -1396,7 +1404,7 @@ class vector
|
|
1396
1404
|
//! <b>Throws</b>: Nothing.
|
1397
1405
|
//!
|
1398
1406
|
//! <b>Complexity</b>: Constant.
|
1399
|
-
const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1407
|
+
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
1400
1408
|
{ return const_reverse_iterator(this->end());}
|
1401
1409
|
|
1402
1410
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
@@ -1405,7 +1413,7 @@ class vector
|
|
1405
1413
|
//! <b>Throws</b>: Nothing.
|
1406
1414
|
//!
|
1407
1415
|
//! <b>Complexity</b>: Constant.
|
1408
|
-
const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1416
|
+
BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
|
1409
1417
|
{ return const_reverse_iterator(this->begin()); }
|
1410
1418
|
|
1411
1419
|
//////////////////////////////////////////////
|
@@ -1419,7 +1427,7 @@ class vector
|
|
1419
1427
|
//! <b>Throws</b>: Nothing.
|
1420
1428
|
//!
|
1421
1429
|
//! <b>Complexity</b>: Constant.
|
1422
|
-
bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
|
1430
|
+
BOOST_CONTAINER_FORCEINLINE bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
|
1423
1431
|
{ return !this->m_holder.m_size; }
|
1424
1432
|
|
1425
1433
|
//! <b>Effects</b>: Returns the number of the elements contained in the vector.
|
@@ -1427,7 +1435,7 @@ class vector
|
|
1427
1435
|
//! <b>Throws</b>: Nothing.
|
1428
1436
|
//!
|
1429
1437
|
//! <b>Complexity</b>: Constant.
|
1430
|
-
size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
|
1438
|
+
BOOST_CONTAINER_FORCEINLINE size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
|
1431
1439
|
{ return this->m_holder.m_size; }
|
1432
1440
|
|
1433
1441
|
//! <b>Effects</b>: Returns the largest possible size of the vector.
|
@@ -1435,7 +1443,7 @@ class vector
|
|
1435
1443
|
//! <b>Throws</b>: Nothing.
|
1436
1444
|
//!
|
1437
1445
|
//! <b>Complexity</b>: Constant.
|
1438
|
-
size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
1446
|
+
BOOST_CONTAINER_FORCEINLINE size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
1439
1447
|
{ return allocator_traits_type::max_size(this->m_holder.alloc()); }
|
1440
1448
|
|
1441
1449
|
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
@@ -1473,7 +1481,7 @@ class vector
|
|
1473
1481
|
//! <b>Throws</b>: Nothing.
|
1474
1482
|
//!
|
1475
1483
|
//! <b>Complexity</b>: Constant.
|
1476
|
-
size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
1484
|
+
BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
|
1477
1485
|
{ return this->m_holder.capacity(); }
|
1478
1486
|
|
1479
1487
|
//! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
|
@@ -1482,7 +1490,7 @@ class vector
|
|
1482
1490
|
//! n; otherwise, capacity() is unchanged. In either case, size() is unchanged.
|
1483
1491
|
//!
|
1484
1492
|
//! <b>Throws</b>: If memory allocation allocation throws or T's copy/move constructor throws.
|
1485
|
-
void reserve(size_type new_cap)
|
1493
|
+
BOOST_CONTAINER_FORCEINLINE void reserve(size_type new_cap)
|
1486
1494
|
{
|
1487
1495
|
if (this->capacity() < new_cap){
|
1488
1496
|
this->priv_reserve_no_capacity(new_cap, alloc_version());
|
@@ -1495,7 +1503,7 @@ class vector
|
|
1495
1503
|
//! <b>Throws</b>: If memory allocation throws, or T's copy/move constructor throws.
|
1496
1504
|
//!
|
1497
1505
|
//! <b>Complexity</b>: Linear to size().
|
1498
|
-
void shrink_to_fit()
|
1506
|
+
BOOST_CONTAINER_FORCEINLINE void shrink_to_fit()
|
1499
1507
|
{ this->priv_shrink_to_fit(alloc_version()); }
|
1500
1508
|
|
1501
1509
|
//////////////////////////////////////////////
|
@@ -1622,11 +1630,10 @@ class vector
|
|
1622
1630
|
return const_iterator(this->m_holder.start()+n);
|
1623
1631
|
}
|
1624
1632
|
|
1625
|
-
//! <b>Requires</b>:
|
1633
|
+
//! <b>Requires</b>: begin() <= p <= end().
|
1626
1634
|
//!
|
1627
|
-
//! <b>Effects</b>: Returns
|
1628
|
-
//!
|
1629
|
-
//! if n == size().
|
1635
|
+
//! <b>Effects</b>: Returns the index of the element pointed by p
|
1636
|
+
//! and size() if p == end().
|
1630
1637
|
//!
|
1631
1638
|
//! <b>Throws</b>: Nothing.
|
1632
1639
|
//!
|
@@ -1717,21 +1724,25 @@ class vector
|
|
1717
1724
|
//! <b>Effects</b>: Inserts an object of type T constructed with
|
1718
1725
|
//! std::forward<Args>(args)... in the end of the vector.
|
1719
1726
|
//!
|
1727
|
+
//! <b>Returns</b>: A reference to the created object.
|
1728
|
+
//!
|
1720
1729
|
//! <b>Throws</b>: If memory allocation throws or the in-place constructor throws or
|
1721
1730
|
//! T's copy/move constructor throws.
|
1722
1731
|
//!
|
1723
1732
|
//! <b>Complexity</b>: Amortized constant time.
|
1724
1733
|
template<class ...Args>
|
1725
|
-
|
1734
|
+
BOOST_CONTAINER_FORCEINLINE reference emplace_back(BOOST_FWD_REF(Args)...args)
|
1726
1735
|
{
|
1727
1736
|
if (BOOST_LIKELY(this->room_enough())){
|
1728
1737
|
//There is more memory, just construct a new object at the end
|
1729
|
-
|
1738
|
+
T* const p = this->priv_raw_end();
|
1739
|
+
allocator_traits_type::construct(this->m_holder.alloc(), p, ::boost::forward<Args>(args)...);
|
1730
1740
|
++this->m_holder.m_size;
|
1741
|
+
return *p;
|
1731
1742
|
}
|
1732
1743
|
else{
|
1733
1744
|
typedef container_detail::insert_emplace_proxy<Allocator, T*, Args...> type;
|
1734
|
-
this->priv_forward_range_insert_no_capacity
|
1745
|
+
return *this->priv_forward_range_insert_no_capacity
|
1735
1746
|
(this->back_ptr(), 1, type(::boost::forward<Args>(args)...), alloc_version());
|
1736
1747
|
}
|
1737
1748
|
}
|
@@ -1745,7 +1756,7 @@ class vector
|
|
1745
1756
|
//!
|
1746
1757
|
//! <b>Note</b>: Non-standard extension.
|
1747
1758
|
template<class ...Args>
|
1748
|
-
bool stable_emplace_back(BOOST_FWD_REF(Args)...args)
|
1759
|
+
BOOST_CONTAINER_FORCEINLINE bool stable_emplace_back(BOOST_FWD_REF(Args)...args)
|
1749
1760
|
{
|
1750
1761
|
const bool is_room_enough = this->room_enough() || (alloc_version::value == 2 && this->m_holder.try_expand_fwd(1u));
|
1751
1762
|
if (BOOST_LIKELY(is_room_enough)){
|
@@ -1780,22 +1791,24 @@ class vector
|
|
1780
1791
|
|
1781
1792
|
#define BOOST_CONTAINER_VECTOR_EMPLACE_CODE(N) \
|
1782
1793
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
1783
|
-
|
1794
|
+
BOOST_CONTAINER_FORCEINLINE reference emplace_back(BOOST_MOVE_UREF##N)\
|
1784
1795
|
{\
|
1785
1796
|
if (BOOST_LIKELY(this->room_enough())){\
|
1797
|
+
T* const p = this->priv_raw_end();\
|
1786
1798
|
allocator_traits_type::construct (this->m_holder.alloc()\
|
1787
1799
|
, this->priv_raw_end() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1788
1800
|
++this->m_holder.m_size;\
|
1801
|
+
return *p;\
|
1789
1802
|
}\
|
1790
1803
|
else{\
|
1791
1804
|
typedef container_detail::insert_emplace_proxy_arg##N<Allocator, T* BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
|
1792
|
-
this->priv_forward_range_insert_no_capacity\
|
1805
|
+
return *this->priv_forward_range_insert_no_capacity\
|
1793
1806
|
( this->back_ptr(), 1, type(BOOST_MOVE_FWD##N), alloc_version());\
|
1794
1807
|
}\
|
1795
1808
|
}\
|
1796
1809
|
\
|
1797
1810
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
1798
|
-
bool stable_emplace_back(BOOST_MOVE_UREF##N)\
|
1811
|
+
BOOST_CONTAINER_FORCEINLINE bool stable_emplace_back(BOOST_MOVE_UREF##N)\
|
1799
1812
|
{\
|
1800
1813
|
const bool is_room_enough = this->room_enough() || (alloc_version::value == 2 && this->m_holder.try_expand_fwd(1u));\
|
1801
1814
|
if (BOOST_LIKELY(is_room_enough)){\
|
@@ -2239,12 +2252,12 @@ class vector
|
|
2239
2252
|
size_type *indexes = 0;
|
2240
2253
|
while(remaining){
|
2241
2254
|
//Query for room to store indexes in the remaining buffer
|
2242
|
-
uintptr_t const szt_align_mask = container_detail::alignment_of<size_type>::value - 1;
|
2255
|
+
boost::uintptr_t const szt_align_mask = container_detail::alignment_of<size_type>::value - 1;
|
2243
2256
|
boost::uintptr_t const addr = boost::uintptr_t(this->priv_raw_begin() + s + n);
|
2244
2257
|
boost::uintptr_t const capaddr = boost::uintptr_t(this->priv_raw_begin() + c);
|
2245
2258
|
boost::uintptr_t const aligned_addr = (addr + szt_align_mask) & ~szt_align_mask;
|
2246
2259
|
indexes = reinterpret_cast<size_type *>(aligned_addr);
|
2247
|
-
std::size_t index_capacity = (aligned_addr >= capaddr) ? 0u : (capaddr -
|
2260
|
+
std::size_t index_capacity = (aligned_addr >= capaddr) ? 0u : (capaddr - aligned_addr)/sizeof(size_type);
|
2248
2261
|
|
2249
2262
|
//Capacity is constant, we're not going to change it
|
2250
2263
|
if(index_capacity < PosCount){
|
@@ -2536,7 +2549,7 @@ class vector
|
|
2536
2549
|
//buffer or expand the old one.
|
2537
2550
|
bool same_buffer_start;
|
2538
2551
|
size_type real_cap = 0;
|
2539
|
-
pointer reuse
|
2552
|
+
pointer reuse(this->m_holder.start());
|
2540
2553
|
pointer const ret(this->m_holder.allocation_command(allocate_new | expand_fwd | expand_bwd, new_cap, real_cap = new_cap, reuse));
|
2541
2554
|
|
2542
2555
|
//Check for forward expansion
|
@@ -3098,7 +3111,10 @@ class vector
|
|
3098
3111
|
old_values_destroyer.shrink_forward(new_size-s_before);
|
3099
3112
|
this->m_holder.m_size = new_size;
|
3100
3113
|
//Now move remaining last objects in the old buffer begin
|
3101
|
-
|
3114
|
+
T * const remaining_pos = pos + raw_gap;
|
3115
|
+
if(remaining_pos != old_start){ //Make sure data has to be moved
|
3116
|
+
::boost::container::move(remaining_pos, old_finish, old_start);
|
3117
|
+
}
|
3102
3118
|
//Once moved, avoid calling the destructors if trivial after move
|
3103
3119
|
if(value_traits::trivial_dctr_after_move){
|
3104
3120
|
old_values_destroyer.release();
|
@@ -3106,7 +3122,7 @@ class vector
|
|
3106
3122
|
}
|
3107
3123
|
else{ //If trivial destructor, we can uninitialized copy + copy in a single uninitialized copy
|
3108
3124
|
::boost::container::uninitialized_move_alloc_n
|
3109
|
-
(this->m_holder.alloc(), pos, old_finish - pos, new_start + before_plus_new);
|
3125
|
+
(this->m_holder.alloc(), pos, static_cast<size_type>(old_finish - pos), new_start + before_plus_new);
|
3110
3126
|
this->m_holder.m_size = new_size;
|
3111
3127
|
old_values_destroyer.release();
|
3112
3128
|
}
|
@@ -3238,8 +3254,9 @@ class vector
|
|
3238
3254
|
const size_type rest_new = n - mid_n;
|
3239
3255
|
insert_range_proxy.copy_n_and_update(this->m_holder.alloc(), old_start, rest_new);
|
3240
3256
|
T* const move_start = old_start + rest_new;
|
3241
|
-
//Displace old_end
|
3242
|
-
T* const move_end = ::boost::container::move(pos, old_finish, move_start)
|
3257
|
+
//Displace old_end, but make sure data has to be moved
|
3258
|
+
T* const move_end = move_start != pos ? ::boost::container::move(pos, old_finish, move_start)
|
3259
|
+
: old_finish;
|
3243
3260
|
//Destroy remaining moved elements from old_end except if they
|
3244
3261
|
//have trivial destructor after being moved
|
3245
3262
|
size_type n_destroy = s_before - n;
|