passenger 6.0.1 → 6.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +145 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +9 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +14 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +15 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- 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 +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +6 -2
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +42 -8
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -125,8 +125,16 @@ struct insert_value_initialized_n_proxy
|
|
125
125
|
void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const
|
126
126
|
{ boost::container::uninitialized_value_init_alloc_n(a, n, p); }
|
127
127
|
|
128
|
-
void copy_n_and_update(Allocator
|
129
|
-
{
|
128
|
+
void copy_n_and_update(Allocator &a, Iterator p, size_type n) const
|
129
|
+
{
|
130
|
+
for (; 0 < n; --n, ++p){
|
131
|
+
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
132
|
+
value_type *vp = reinterpret_cast<value_type *>(v.data);
|
133
|
+
alloc_traits::construct(a, vp);
|
134
|
+
value_destructor<Allocator> on_exit(a, *vp); (void)on_exit;
|
135
|
+
*p = ::boost::move(*vp);
|
136
|
+
}
|
137
|
+
}
|
130
138
|
};
|
131
139
|
|
132
140
|
template<class Allocator, class Iterator>
|
@@ -139,8 +147,18 @@ struct insert_default_initialized_n_proxy
|
|
139
147
|
void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const
|
140
148
|
{ boost::container::uninitialized_default_init_alloc_n(a, n, p); }
|
141
149
|
|
142
|
-
void copy_n_and_update(Allocator
|
143
|
-
{
|
150
|
+
void copy_n_and_update(Allocator &a, Iterator p, size_type n) const
|
151
|
+
{
|
152
|
+
if(!is_pod<value_type>::value){
|
153
|
+
for (; 0 < n; --n, ++p){
|
154
|
+
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
155
|
+
value_type *vp = reinterpret_cast<value_type *>(v.data);
|
156
|
+
alloc_traits::construct(a, vp, default_init);
|
157
|
+
value_destructor<Allocator> on_exit(a, *vp); (void)on_exit;
|
158
|
+
*p = ::boost::move(*vp);
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
144
162
|
};
|
145
163
|
|
146
164
|
template<class Allocator, class Iterator>
|
@@ -271,7 +289,7 @@ struct insert_emplace_proxy
|
|
271
289
|
{
|
272
290
|
BOOST_ASSERT(n ==1); (void)n;
|
273
291
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
274
|
-
value_type *vp =
|
292
|
+
value_type *vp = reinterpret_cast<value_type *>(v.data);
|
275
293
|
alloc_traits::construct(a, vp,
|
276
294
|
::boost::forward<Args>(get<IdxPack>(this->args_))...);
|
277
295
|
BOOST_TRY{
|
@@ -382,7 +400,7 @@ struct insert_emplace_proxy_arg##N\
|
|
382
400
|
BOOST_ASSERT(n == 1); (void)n;\
|
383
401
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;\
|
384
402
|
BOOST_ASSERT((((size_type)(&v)) % alignment_of<value_type>::value) == 0);\
|
385
|
-
value_type *vp =
|
403
|
+
value_type *vp = reinterpret_cast<value_type *>(v.data);\
|
386
404
|
alloc_traits::construct(a, vp BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\
|
387
405
|
BOOST_TRY{\
|
388
406
|
*p = ::boost::move(*vp);\
|
@@ -93,7 +93,8 @@ struct allocator_version_traits
|
|
93
93
|
{
|
94
94
|
size_type n = holder.size();
|
95
95
|
typename multiallocation_chain::iterator it = holder.begin();
|
96
|
-
while(n
|
96
|
+
while(n){
|
97
|
+
--n;
|
97
98
|
pointer p = boost::intrusive::pointer_traits<pointer>::pointer_to(*it);
|
98
99
|
++it;
|
99
100
|
a.deallocate(p, 1);
|
@@ -19,6 +19,8 @@
|
|
19
19
|
# pragma once
|
20
20
|
#endif
|
21
21
|
|
22
|
+
#include <boost/intrusive/detail/ebo_functor_holder.hpp>
|
23
|
+
|
22
24
|
namespace boost {
|
23
25
|
namespace container {
|
24
26
|
|
@@ -37,7 +39,7 @@ class equal_to_value
|
|
37
39
|
{ return t_ == t; }
|
38
40
|
};
|
39
41
|
|
40
|
-
template<class Node, class Pred>
|
42
|
+
template<class Node, class Pred, class Ret = bool>
|
41
43
|
struct value_to_node_compare
|
42
44
|
: Pred
|
43
45
|
{
|
@@ -52,22 +54,76 @@ struct value_to_node_compare
|
|
52
54
|
: Pred(pred)
|
53
55
|
{}
|
54
56
|
|
55
|
-
|
57
|
+
Ret operator()(const Node &a, const Node &b) const
|
56
58
|
{ return static_cast<const Pred&>(*this)(a.get_data(), b.get_data()); }
|
57
59
|
|
58
|
-
|
60
|
+
Ret operator()(const Node &a) const
|
59
61
|
{ return static_cast<const Pred&>(*this)(a.get_data()); }
|
60
62
|
|
61
|
-
|
63
|
+
Ret operator()(const Node &a, const Node &b)
|
62
64
|
{ return static_cast<Pred&>(*this)(a.get_data(), b.get_data()); }
|
63
65
|
|
64
|
-
|
66
|
+
Ret operator()(const Node &a)
|
65
67
|
{ return static_cast<Pred&>(*this)(a.get_data()); }
|
66
68
|
|
67
69
|
predicate_type & predicate() { return static_cast<predicate_type&>(*this); }
|
68
70
|
const predicate_type & predicate() const { return static_cast<predicate_type&>(*this); }
|
69
71
|
};
|
70
72
|
|
73
|
+
template<class KeyPred, class KeyOfValue, class Node, class Ret = bool>
|
74
|
+
struct key_node_pred
|
75
|
+
: public boost::intrusive::detail::ebo_functor_holder<KeyPred>
|
76
|
+
{
|
77
|
+
BOOST_CONTAINER_FORCEINLINE explicit key_node_pred(const KeyPred &comp)
|
78
|
+
: base_t(comp)
|
79
|
+
{}
|
80
|
+
|
81
|
+
typedef boost::intrusive::detail::ebo_functor_holder<KeyPred> base_t;
|
82
|
+
typedef KeyPred key_predicate;
|
83
|
+
typedef KeyOfValue key_of_value;
|
84
|
+
typedef typename KeyOfValue::type key_type;
|
85
|
+
|
86
|
+
|
87
|
+
BOOST_CONTAINER_FORCEINLINE static const key_type &key_from(const Node &n)
|
88
|
+
{
|
89
|
+
return key_of_value()(n.get_data());
|
90
|
+
}
|
91
|
+
|
92
|
+
template <class T>
|
93
|
+
BOOST_CONTAINER_FORCEINLINE static const T &
|
94
|
+
key_from(const T &t)
|
95
|
+
{ return t; }
|
96
|
+
|
97
|
+
BOOST_CONTAINER_FORCEINLINE const key_predicate &key_pred() const
|
98
|
+
{ return static_cast<const key_predicate &>(*this); }
|
99
|
+
|
100
|
+
BOOST_CONTAINER_FORCEINLINE key_predicate &key_pred()
|
101
|
+
{ return static_cast<key_predicate &>(*this); }
|
102
|
+
|
103
|
+
BOOST_CONTAINER_FORCEINLINE Ret operator()(const key_type &key) const
|
104
|
+
{ return this->key_pred()(key); }
|
105
|
+
|
106
|
+
template<class U>
|
107
|
+
BOOST_CONTAINER_FORCEINLINE Ret operator()(const U &nonkey) const
|
108
|
+
{ return this->key_pred()(this->key_from(nonkey)); }
|
109
|
+
|
110
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const key_type &key2) const
|
111
|
+
{ return this->key_pred()(key1, key2); }
|
112
|
+
|
113
|
+
template<class U>
|
114
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const U &nonkey2) const
|
115
|
+
{ return this->key_pred()(key1, this->key_from(nonkey2)); }
|
116
|
+
|
117
|
+
template<class U>
|
118
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const key_type &key2) const
|
119
|
+
{ return this->key_pred()(this->key_from(nonkey1), key2); }
|
120
|
+
|
121
|
+
template<class U, class V>
|
122
|
+
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const V &nonkey2) const
|
123
|
+
{ return this->key_pred()(this->key_from(nonkey1), this->key_from(nonkey2)); }
|
124
|
+
};
|
125
|
+
|
126
|
+
|
71
127
|
} //namespace container {
|
72
128
|
} //namespace boost {
|
73
129
|
|
@@ -34,7 +34,21 @@
|
|
34
34
|
// other
|
35
35
|
#include <boost/core/no_exceptions_support.hpp>
|
36
36
|
// std
|
37
|
-
#include <cstring> //for
|
37
|
+
#include <cstring> //for memmove/memcpy
|
38
|
+
|
39
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
|
40
|
+
#pragma GCC diagnostic push
|
41
|
+
//pair memcpy optimizations rightfully detected by GCC
|
42
|
+
# if defined(BOOST_GCC) && (BOOST_GCC >= 80000)
|
43
|
+
# pragma GCC diagnostic ignored "-Wclass-memaccess"
|
44
|
+
# endif
|
45
|
+
//GCC 8 seems a bit confused about array access error with static_vector
|
46
|
+
//when out of bound exceptions are being thrown.
|
47
|
+
# if defined(BOOST_GCC) && (BOOST_GCC >= 80000) && (BOOST_GCC < 80200)
|
48
|
+
# pragma GCC diagnostic ignored "-Wstringop-overflow"
|
49
|
+
# endif
|
50
|
+
# pragma GCC diagnostic ignored "-Warray-bounds"
|
51
|
+
#endif
|
38
52
|
|
39
53
|
namespace boost {
|
40
54
|
namespace container {
|
@@ -160,9 +174,13 @@ template
|
|
160
174
|
inline F memmove(I f, I l, F r) BOOST_NOEXCEPT_OR_NOTHROW
|
161
175
|
{
|
162
176
|
typedef typename boost::container::iterator_traits<I>::value_type value_type;
|
163
|
-
|
164
|
-
|
165
|
-
|
177
|
+
value_type *const dest_raw = boost::movelib::iterator_to_raw_pointer(r);
|
178
|
+
const value_type *const beg_raw = boost::movelib::iterator_to_raw_pointer(f);
|
179
|
+
const value_type *const end_raw = boost::movelib::iterator_to_raw_pointer(l);
|
180
|
+
if(BOOST_LIKELY(beg_raw != end_raw)){
|
181
|
+
BOOST_ASSERT(beg_raw != 0);
|
182
|
+
const typename boost::container::iterator_traits<I>::difference_type n = end_raw - beg_raw;
|
183
|
+
std::memmove(dest_raw, beg_raw, sizeof(value_type)*n);
|
166
184
|
boost::container::iterator_advance(r, n);
|
167
185
|
}
|
168
186
|
return r;
|
@@ -175,10 +193,11 @@ template
|
|
175
193
|
F memmove_n(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW
|
176
194
|
{
|
177
195
|
typedef typename boost::container::iterator_traits<I>::value_type value_type;
|
178
|
-
if(n){
|
196
|
+
if(BOOST_LIKELY(n)){
|
179
197
|
std::memmove(boost::movelib::iterator_to_raw_pointer(r), boost::movelib::iterator_to_raw_pointer(f), sizeof(value_type)*n);
|
180
198
|
boost::container::iterator_advance(r, n);
|
181
199
|
}
|
200
|
+
|
182
201
|
return r;
|
183
202
|
}
|
184
203
|
|
@@ -188,7 +207,7 @@ template
|
|
188
207
|
typename F> // F models ForwardIterator
|
189
208
|
I memmove_n_source(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW
|
190
209
|
{
|
191
|
-
if(n){
|
210
|
+
if(BOOST_LIKELY(n)){
|
192
211
|
typedef typename boost::container::iterator_traits<I>::value_type value_type;
|
193
212
|
std::memmove(boost::movelib::iterator_to_raw_pointer(r), boost::movelib::iterator_to_raw_pointer(f), sizeof(value_type)*n);
|
194
213
|
boost::container::iterator_advance(f, n);
|
@@ -203,7 +222,7 @@ template
|
|
203
222
|
I memmove_n_source_dest(I f, U n, F &r) BOOST_NOEXCEPT_OR_NOTHROW
|
204
223
|
{
|
205
224
|
typedef typename boost::container::iterator_traits<I>::value_type value_type;
|
206
|
-
if(n){
|
225
|
+
if(BOOST_LIKELY(n)){
|
207
226
|
std::memmove(boost::movelib::iterator_to_raw_pointer(r), boost::movelib::iterator_to_raw_pointer(f), sizeof(value_type)*n);
|
208
227
|
boost::container::iterator_advance(f, n);
|
209
228
|
boost::container::iterator_advance(r, n);
|
@@ -720,7 +739,8 @@ typename F> // F models ForwardIterator
|
|
720
739
|
inline typename dtl::disable_if_memtransfer_copy_assignable<I, F, F>::type
|
721
740
|
copy_n(I f, U n, F r)
|
722
741
|
{
|
723
|
-
while (n
|
742
|
+
while (n) {
|
743
|
+
--n;
|
724
744
|
*r = *f;
|
725
745
|
++f; ++r;
|
726
746
|
}
|
@@ -1141,4 +1161,9 @@ void move_assign_range_alloc_n( Allocator &a, I inp_start, typename allocator_tr
|
|
1141
1161
|
} //namespace container {
|
1142
1162
|
} //namespace boost {
|
1143
1163
|
|
1164
|
+
//#pragma GCC diagnostic ignored "-Wclass-memaccess"
|
1165
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
|
1166
|
+
#pragma GCC diagnostic pop
|
1167
|
+
#endif
|
1168
|
+
|
1144
1169
|
#endif //#ifndef BOOST_CONTAINER_DETAIL_COPY_MOVE_ALGO_HPP
|
@@ -921,11 +921,11 @@ class flat_tree
|
|
921
921
|
std::pair<iterator, bool> emplace_unique(BOOST_FWD_REF(Args)... args)
|
922
922
|
{
|
923
923
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
924
|
-
value_type
|
924
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);
|
925
925
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();
|
926
|
-
stored_allocator_traits::construct(a,
|
927
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
928
|
-
return this->insert_unique(::boost::move(
|
926
|
+
stored_allocator_traits::construct(a, pval, ::boost::forward<Args>(args)... );
|
927
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);
|
928
|
+
return this->insert_unique(::boost::move(*pval));
|
929
929
|
}
|
930
930
|
|
931
931
|
template <class... Args>
|
@@ -933,22 +933,22 @@ class flat_tree
|
|
933
933
|
{
|
934
934
|
//hint checked in insert_unique
|
935
935
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
936
|
-
value_type
|
936
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);
|
937
937
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();
|
938
|
-
stored_allocator_traits::construct(a,
|
939
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
940
|
-
return this->insert_unique(hint, ::boost::move(
|
938
|
+
stored_allocator_traits::construct(a, pval, ::boost::forward<Args>(args)... );
|
939
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);
|
940
|
+
return this->insert_unique(hint, ::boost::move(*pval));
|
941
941
|
}
|
942
942
|
|
943
943
|
template <class... Args>
|
944
944
|
iterator emplace_equal(BOOST_FWD_REF(Args)... args)
|
945
945
|
{
|
946
946
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
947
|
-
value_type
|
947
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);
|
948
948
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();
|
949
|
-
stored_allocator_traits::construct(a,
|
950
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
951
|
-
return this->insert_equal(::boost::move(
|
949
|
+
stored_allocator_traits::construct(a, pval, ::boost::forward<Args>(args)... );
|
950
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);
|
951
|
+
return this->insert_equal(::boost::move(*pval));
|
952
952
|
}
|
953
953
|
|
954
954
|
template <class... Args>
|
@@ -956,11 +956,11 @@ class flat_tree
|
|
956
956
|
{
|
957
957
|
//hint checked in insert_equal
|
958
958
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;
|
959
|
-
value_type
|
959
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);
|
960
960
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();
|
961
|
-
stored_allocator_traits::construct(a,
|
962
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
963
|
-
return this->insert_equal(hint, ::boost::move(
|
961
|
+
stored_allocator_traits::construct(a, pval, ::boost::forward<Args>(args)... );
|
962
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);
|
963
|
+
return this->insert_equal(hint, ::boost::move(*pval));
|
964
964
|
}
|
965
965
|
|
966
966
|
template <class KeyType, class... Args>
|
@@ -993,44 +993,44 @@ class flat_tree
|
|
993
993
|
std::pair<iterator, bool> emplace_unique(BOOST_MOVE_UREF##N)\
|
994
994
|
{\
|
995
995
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;\
|
996
|
-
value_type
|
996
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);\
|
997
997
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\
|
998
|
-
stored_allocator_traits::construct(a,
|
999
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
1000
|
-
return this->insert_unique(::boost::move(
|
998
|
+
stored_allocator_traits::construct(a, pval BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
999
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);\
|
1000
|
+
return this->insert_unique(::boost::move(*pval));\
|
1001
1001
|
}\
|
1002
1002
|
\
|
1003
1003
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
1004
1004
|
iterator emplace_hint_unique(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
1005
1005
|
{\
|
1006
1006
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;\
|
1007
|
-
value_type
|
1007
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);\
|
1008
1008
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\
|
1009
|
-
stored_allocator_traits::construct(a,
|
1010
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
1011
|
-
return this->insert_unique(hint, ::boost::move(
|
1009
|
+
stored_allocator_traits::construct(a, pval BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1010
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);\
|
1011
|
+
return this->insert_unique(hint, ::boost::move(*pval));\
|
1012
1012
|
}\
|
1013
1013
|
\
|
1014
1014
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
1015
1015
|
iterator emplace_equal(BOOST_MOVE_UREF##N)\
|
1016
1016
|
{\
|
1017
1017
|
typename aligned_storage<sizeof(value_type), alignment_of<value_type>::value>::type v;\
|
1018
|
-
value_type
|
1018
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);\
|
1019
1019
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\
|
1020
|
-
stored_allocator_traits::construct(a,
|
1021
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
1022
|
-
return this->insert_equal(::boost::move(
|
1020
|
+
stored_allocator_traits::construct(a, pval BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1021
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);\
|
1022
|
+
return this->insert_equal(::boost::move(*pval));\
|
1023
1023
|
}\
|
1024
1024
|
\
|
1025
1025
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
1026
1026
|
iterator emplace_hint_equal(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
1027
1027
|
{\
|
1028
1028
|
typename aligned_storage <sizeof(value_type), alignment_of<value_type>::value>::type v;\
|
1029
|
-
value_type
|
1029
|
+
value_type *pval = reinterpret_cast<value_type *>(v.data);\
|
1030
1030
|
get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\
|
1031
|
-
stored_allocator_traits::construct(a,
|
1032
|
-
value_destructor<stored_allocator_type, value_type> d(a,
|
1033
|
-
return this->insert_equal(hint, ::boost::move(
|
1031
|
+
stored_allocator_traits::construct(a, pval BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1032
|
+
value_destructor<stored_allocator_type, value_type> d(a, *pval);\
|
1033
|
+
return this->insert_equal(hint, ::boost::move(*pval));\
|
1034
1034
|
}\
|
1035
1035
|
template <class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
1036
1036
|
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool>\
|
@@ -1160,7 +1160,31 @@ class flat_tree
|
|
1160
1160
|
return i;
|
1161
1161
|
}
|
1162
1162
|
|
1163
|
-
|
1163
|
+
template<class K>
|
1164
|
+
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1165
|
+
find(const K& k)
|
1166
|
+
{
|
1167
|
+
iterator i = this->lower_bound(k);
|
1168
|
+
iterator end_it = this->end();
|
1169
|
+
if (i != end_it && this->m_data.get_comp()(k, KeyOfValue()(*i))){
|
1170
|
+
i = end_it;
|
1171
|
+
}
|
1172
|
+
return i;
|
1173
|
+
}
|
1174
|
+
|
1175
|
+
template<class K>
|
1176
|
+
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1177
|
+
find(const K& k) const
|
1178
|
+
{
|
1179
|
+
const_iterator i = this->lower_bound(k);
|
1180
|
+
|
1181
|
+
const_iterator end_it = this->cend();
|
1182
|
+
if (i != end_it && this->m_data.get_comp()(k, KeyOfValue()(*i))){
|
1183
|
+
i = end_it;
|
1184
|
+
}
|
1185
|
+
return i;
|
1186
|
+
}
|
1187
|
+
|
1164
1188
|
size_type count(const key_type& k) const
|
1165
1189
|
{
|
1166
1190
|
std::pair<const_iterator, const_iterator> p = this->equal_range(k);
|
@@ -1168,6 +1192,24 @@ class flat_tree
|
|
1168
1192
|
return n;
|
1169
1193
|
}
|
1170
1194
|
|
1195
|
+
template<class K>
|
1196
|
+
typename dtl::enable_if_transparent<key_compare, K, size_type>::type
|
1197
|
+
count(const K& k) const
|
1198
|
+
{
|
1199
|
+
std::pair<const_iterator, const_iterator> p = this->equal_range(k);
|
1200
|
+
size_type n = p.second - p.first;
|
1201
|
+
return n;
|
1202
|
+
}
|
1203
|
+
|
1204
|
+
BOOST_CONTAINER_FORCEINLINE bool contains(const key_type& x) const
|
1205
|
+
{ return this->find(x) != this->cend(); }
|
1206
|
+
|
1207
|
+
template<typename K>
|
1208
|
+
BOOST_CONTAINER_FORCEINLINE
|
1209
|
+
typename dtl::enable_if_transparent<key_compare, K, bool>::type
|
1210
|
+
contains(const K& x) const
|
1211
|
+
{ return this->find(x) != this->cend(); }
|
1212
|
+
|
1171
1213
|
template<class C2>
|
1172
1214
|
BOOST_CONTAINER_FORCEINLINE void merge_unique(flat_tree<Value, KeyOfValue, C2, AllocatorOrContainer>& source)
|
1173
1215
|
{
|
@@ -1212,24 +1254,73 @@ class flat_tree
|
|
1212
1254
|
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& k) const
|
1213
1255
|
{ return this->priv_lower_bound(this->cbegin(), this->cend(), k); }
|
1214
1256
|
|
1257
|
+
template<class K>
|
1258
|
+
BOOST_CONTAINER_FORCEINLINE
|
1259
|
+
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1260
|
+
lower_bound(const K& k)
|
1261
|
+
{ return this->priv_lower_bound(this->begin(), this->end(), k); }
|
1262
|
+
|
1263
|
+
template<class K>
|
1264
|
+
BOOST_CONTAINER_FORCEINLINE
|
1265
|
+
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1266
|
+
lower_bound(const K& k) const
|
1267
|
+
{ return this->priv_lower_bound(this->cbegin(), this->cend(), k); }
|
1268
|
+
|
1215
1269
|
BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const key_type& k)
|
1216
1270
|
{ return this->priv_upper_bound(this->begin(), this->end(), k); }
|
1217
1271
|
|
1218
1272
|
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& k) const
|
1219
1273
|
{ return this->priv_upper_bound(this->cbegin(), this->cend(), k); }
|
1220
1274
|
|
1275
|
+
template<class K>
|
1276
|
+
BOOST_CONTAINER_FORCEINLINE
|
1277
|
+
typename dtl::enable_if_transparent<key_compare, K,iterator>::type
|
1278
|
+
upper_bound(const K& k)
|
1279
|
+
{ return this->priv_upper_bound(this->begin(), this->end(), k); }
|
1280
|
+
|
1281
|
+
template<class K>
|
1282
|
+
BOOST_CONTAINER_FORCEINLINE
|
1283
|
+
typename dtl::enable_if_transparent<key_compare, K,const_iterator>::type
|
1284
|
+
upper_bound(const K& k) const
|
1285
|
+
{ return this->priv_upper_bound(this->cbegin(), this->cend(), k); }
|
1286
|
+
|
1221
1287
|
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type& k)
|
1222
1288
|
{ return this->priv_equal_range(this->begin(), this->end(), k); }
|
1223
1289
|
|
1224
1290
|
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
|
1225
1291
|
{ return this->priv_equal_range(this->cbegin(), this->cend(), k); }
|
1226
1292
|
|
1293
|
+
template<class K>
|
1294
|
+
BOOST_CONTAINER_FORCEINLINE
|
1295
|
+
typename dtl::enable_if_transparent<key_compare, K,std::pair<iterator,iterator> >::type
|
1296
|
+
equal_range(const K& k)
|
1297
|
+
{ return this->priv_equal_range(this->begin(), this->end(), k); }
|
1298
|
+
|
1299
|
+
template<class K>
|
1300
|
+
BOOST_CONTAINER_FORCEINLINE
|
1301
|
+
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::type
|
1302
|
+
equal_range(const K& k) const
|
1303
|
+
{ return this->priv_equal_range(this->cbegin(), this->cend(), k); }
|
1304
|
+
|
1305
|
+
|
1227
1306
|
BOOST_CONTAINER_FORCEINLINE std::pair<iterator, iterator> lower_bound_range(const key_type& k)
|
1228
1307
|
{ return this->priv_lower_bound_range(this->begin(), this->end(), k); }
|
1229
1308
|
|
1230
1309
|
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> lower_bound_range(const key_type& k) const
|
1231
1310
|
{ return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); }
|
1232
1311
|
|
1312
|
+
template<class K>
|
1313
|
+
BOOST_CONTAINER_FORCEINLINE
|
1314
|
+
typename dtl::enable_if_transparent<key_compare, K,std::pair<iterator,iterator> >::type
|
1315
|
+
lower_bound_range(const K& k)
|
1316
|
+
{ return this->priv_lower_bound_range(this->begin(), this->end(), k); }
|
1317
|
+
|
1318
|
+
template<class K>
|
1319
|
+
BOOST_CONTAINER_FORCEINLINE
|
1320
|
+
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::type
|
1321
|
+
lower_bound_range(const K& k) const
|
1322
|
+
{ return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); }
|
1323
|
+
|
1233
1324
|
BOOST_CONTAINER_FORCEINLINE size_type capacity() const
|
1234
1325
|
{
|
1235
1326
|
const bool value = boost::container::dtl::
|
@@ -1419,9 +1510,9 @@ class flat_tree
|
|
1419
1510
|
, boost::forward<Convertible>(convertible));
|
1420
1511
|
}
|
1421
1512
|
|
1422
|
-
template <class RanIt>
|
1513
|
+
template <class RanIt, class K>
|
1423
1514
|
RanIt priv_lower_bound(RanIt first, const RanIt last,
|
1424
|
-
const
|
1515
|
+
const K & key) const
|
1425
1516
|
{
|
1426
1517
|
const Compare &key_cmp = this->m_data.get_comp();
|
1427
1518
|
KeyOfValue key_extract;
|
@@ -1444,9 +1535,9 @@ class flat_tree
|
|
1444
1535
|
return first;
|
1445
1536
|
}
|
1446
1537
|
|
1447
|
-
template <class RanIt>
|
1538
|
+
template <class RanIt, class K>
|
1448
1539
|
RanIt priv_upper_bound
|
1449
|
-
(RanIt first, const RanIt last,const
|
1540
|
+
(RanIt first, const RanIt last,const K & key) const
|
1450
1541
|
{
|
1451
1542
|
const Compare &key_cmp = this->m_data.get_comp();
|
1452
1543
|
KeyOfValue key_extract;
|
@@ -1469,9 +1560,9 @@ class flat_tree
|
|
1469
1560
|
return first;
|
1470
1561
|
}
|
1471
1562
|
|
1472
|
-
template <class RanIt>
|
1563
|
+
template <class RanIt, class K>
|
1473
1564
|
std::pair<RanIt, RanIt>
|
1474
|
-
priv_equal_range(RanIt first, RanIt last, const
|
1565
|
+
priv_equal_range(RanIt first, RanIt last, const K& key) const
|
1475
1566
|
{
|
1476
1567
|
const Compare &key_cmp = this->m_data.get_comp();
|
1477
1568
|
KeyOfValue key_extract;
|
@@ -1502,8 +1593,8 @@ class flat_tree
|
|
1502
1593
|
return std::pair<RanIt, RanIt>(first, first);
|
1503
1594
|
}
|
1504
1595
|
|
1505
|
-
template<class RanIt>
|
1506
|
-
std::pair<RanIt, RanIt> priv_lower_bound_range(RanIt first, RanIt last, const
|
1596
|
+
template<class RanIt, class K>
|
1597
|
+
std::pair<RanIt, RanIt> priv_lower_bound_range(RanIt first, RanIt last, const K& k) const
|
1507
1598
|
{
|
1508
1599
|
const Compare &key_cmp = this->m_data.get_comp();
|
1509
1600
|
KeyOfValue key_extract;
|