passenger 6.0.0 → 6.0.5
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 +148 -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 +1 -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 +13 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +4 -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/Perform.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 +14 -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 +57 -2
- 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 +9 -5
- 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 +48 -7
- 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
@@ -61,6 +61,8 @@ using ::boost::move_detail::is_nothrow_swappable;
|
|
61
61
|
using ::boost::move_detail::alignment_of;
|
62
62
|
using ::boost::move_detail::aligned_storage;
|
63
63
|
using ::boost::move_detail::nat;
|
64
|
+
using ::boost::move_detail::nat2;
|
65
|
+
using ::boost::move_detail::nat3;
|
64
66
|
using ::boost::move_detail::max_align_t;
|
65
67
|
|
66
68
|
} //namespace dtl {
|
@@ -78,7 +78,7 @@ class tuple
|
|
78
78
|
|
79
79
|
|
80
80
|
template<typename... Values>
|
81
|
-
tuple<Values&&...>
|
81
|
+
tuple<Values&&...> forward_as_tuple_impl(Values&&... values)
|
82
82
|
{ return tuple<Values&&...>(::boost::forward<Values>(values)...); }
|
83
83
|
|
84
84
|
template<int I, typename Tuple>
|
@@ -108,4 +108,22 @@
|
|
108
108
|
#define BOOST_CONTAINER_FORCEINLINE BOOST_FORCEINLINE
|
109
109
|
#endif
|
110
110
|
|
111
|
+
#if !defined(__has_feature)
|
112
|
+
#define BOOST_CONTAINER_HAS_FEATURE(feature) 0
|
113
|
+
#else
|
114
|
+
#define BOOST_CONTAINER_HAS_FEATURE(feature) __has_feature(feature)
|
115
|
+
#endif
|
116
|
+
|
117
|
+
//Detect address sanitizer
|
118
|
+
#if defined(__SANITIZE_ADDRESS__) || BOOST_CONTAINER_HAS_FEATURE(address_sanitizer)
|
119
|
+
#define BOOST_CONTAINER_ASAN
|
120
|
+
#endif
|
121
|
+
|
122
|
+
|
123
|
+
#if (__cplusplus >= 201703L)
|
124
|
+
//CTAD supported
|
125
|
+
#else
|
126
|
+
#define BOOST_CONTAINER_NO_CXX17_CTAD
|
127
|
+
#endif
|
128
|
+
|
111
129
|
#endif //#ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP
|
@@ -319,6 +319,21 @@ class flat_map
|
|
319
319
|
: m_flat_tree(ordered_range, first, last, comp, dtl::force<const impl_allocator_type>(a))
|
320
320
|
{}
|
321
321
|
|
322
|
+
//! <b>Effects</b>: Constructs an empty flat_map using the specified allocator and
|
323
|
+
//! inserts elements from the ordered range [first ,last). This function
|
324
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
325
|
+
//!
|
326
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
327
|
+
//!
|
328
|
+
//! <b>Complexity</b>: Linear in N.
|
329
|
+
//!
|
330
|
+
//! <b>Note</b>: Non-standard extension.
|
331
|
+
template <class InputIterator>
|
332
|
+
BOOST_CONTAINER_FORCEINLINE
|
333
|
+
flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const allocator_type& a)
|
334
|
+
: m_flat_tree(ordered_range, first, last, Compare(), a)
|
335
|
+
{}
|
336
|
+
|
322
337
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
323
338
|
//! <b>Effects</b>: Constructs an empty flat_map and
|
324
339
|
//! inserts elements from the range [il.begin() ,il.end()).
|
@@ -1302,12 +1317,62 @@ class flat_map
|
|
1302
1317
|
BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& x) const
|
1303
1318
|
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
|
1304
1319
|
|
1320
|
+
//! <b>Requires</b>: This overload is available only if
|
1321
|
+
//! key_compare::is_transparent exists.
|
1322
|
+
//!
|
1323
|
+
//! <b>Returns</b>: An iterator pointing to an element with the key
|
1324
|
+
//! equivalent to x, or end() if such an element is not found.
|
1325
|
+
//!
|
1326
|
+
//! <b>Complexity</b>: Logarithmic.
|
1327
|
+
template<class K>
|
1328
|
+
BOOST_CONTAINER_FORCEINLINE iterator find(const K& x)
|
1329
|
+
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
|
1330
|
+
|
1331
|
+
//! <b>Requires</b>: This overload is available only if
|
1332
|
+
//! key_compare::is_transparent exists.
|
1333
|
+
//!
|
1334
|
+
//! <b>Returns</b>: A const_iterator pointing to an element with the key
|
1335
|
+
//! equivalent to x, or end() if such an element is not found.
|
1336
|
+
//!
|
1337
|
+
//! <b>Complexity</b>: Logarithmic.
|
1338
|
+
template<class K>
|
1339
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator find(const K& x) const
|
1340
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
|
1341
|
+
|
1305
1342
|
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
1306
1343
|
//!
|
1307
1344
|
//! <b>Complexity</b>: log(size())+count(k)
|
1308
1345
|
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
|
1309
1346
|
{ return static_cast<size_type>(m_flat_tree.find(x) != m_flat_tree.end()); }
|
1310
1347
|
|
1348
|
+
//! <b>Requires</b>: This overload is available only if
|
1349
|
+
//! key_compare::is_transparent exists.
|
1350
|
+
//!
|
1351
|
+
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
1352
|
+
//!
|
1353
|
+
//! <b>Complexity</b>: log(size())+count(k)
|
1354
|
+
template<class K>
|
1355
|
+
BOOST_CONTAINER_FORCEINLINE size_type count(const K& x) const
|
1356
|
+
{ return static_cast<size_type>(m_flat_tree.find(x) != m_flat_tree.end()); }
|
1357
|
+
|
1358
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
1359
|
+
//! equivalent to key in the container, otherwise false.
|
1360
|
+
//!
|
1361
|
+
//! <b>Complexity</b>: log(size()).
|
1362
|
+
bool contains(const key_type& x) const
|
1363
|
+
{ return m_flat_tree.find(x) != m_flat_tree.end(); }
|
1364
|
+
|
1365
|
+
//! <b>Requires</b>: This overload is available only if
|
1366
|
+
//! key_compare::is_transparent exists.
|
1367
|
+
//!
|
1368
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
1369
|
+
//! equivalent to key in the container, otherwise false.
|
1370
|
+
//!
|
1371
|
+
//! <b>Complexity</b>: log(size()).
|
1372
|
+
template<typename K>
|
1373
|
+
bool contains(const K& x) const
|
1374
|
+
{ return m_flat_tree.find(x) != m_flat_tree.end(); }
|
1375
|
+
|
1311
1376
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1312
1377
|
//! than k, or a.end() if such an element is not found.
|
1313
1378
|
//!
|
@@ -1322,6 +1387,28 @@ class flat_map
|
|
1322
1387
|
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& x) const
|
1323
1388
|
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
|
1324
1389
|
|
1390
|
+
//! <b>Requires</b>: This overload is available only if
|
1391
|
+
//! key_compare::is_transparent exists.
|
1392
|
+
//!
|
1393
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1394
|
+
//! than k, or a.end() if such an element is not found.
|
1395
|
+
//!
|
1396
|
+
//! <b>Complexity</b>: Logarithmic.
|
1397
|
+
template<class K>
|
1398
|
+
BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const K& x)
|
1399
|
+
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
|
1400
|
+
|
1401
|
+
//! <b>Requires</b>: This overload is available only if
|
1402
|
+
//! key_compare::is_transparent exists.
|
1403
|
+
//!
|
1404
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
1405
|
+
//! less than k, or a.end() if such an element is not found.
|
1406
|
+
//!
|
1407
|
+
//! <b>Complexity</b>: Logarithmic.
|
1408
|
+
template<class K>
|
1409
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const K& x) const
|
1410
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
|
1411
|
+
|
1325
1412
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1326
1413
|
//! than x, or end() if such an element is not found.
|
1327
1414
|
//!
|
@@ -1336,6 +1423,28 @@ class flat_map
|
|
1336
1423
|
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& x) const
|
1337
1424
|
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
|
1338
1425
|
|
1426
|
+
//! <b>Requires</b>: This overload is available only if
|
1427
|
+
//! key_compare::is_transparent exists.
|
1428
|
+
//!
|
1429
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1430
|
+
//! than x, or end() if such an element is not found.
|
1431
|
+
//!
|
1432
|
+
//! <b>Complexity</b>: Logarithmic.
|
1433
|
+
template<class K>
|
1434
|
+
BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const K& x)
|
1435
|
+
{ return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
|
1436
|
+
|
1437
|
+
//! <b>Requires</b>: This overload is available only if
|
1438
|
+
//! key_compare::is_transparent exists.
|
1439
|
+
//!
|
1440
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
1441
|
+
//! less than x, or end() if such an element is not found.
|
1442
|
+
//!
|
1443
|
+
//! <b>Complexity</b>: Logarithmic.
|
1444
|
+
template<class K>
|
1445
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const K& x) const
|
1446
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
|
1447
|
+
|
1339
1448
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1340
1449
|
//!
|
1341
1450
|
//! <b>Complexity</b>: Logarithmic.
|
@@ -1348,6 +1457,26 @@ class flat_map
|
|
1348
1457
|
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
|
1349
1458
|
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range(x)); }
|
1350
1459
|
|
1460
|
+
//! <b>Requires</b>: This overload is available only if
|
1461
|
+
//! key_compare::is_transparent exists.
|
1462
|
+
//!
|
1463
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1464
|
+
//!
|
1465
|
+
//! <b>Complexity</b>: Logarithmic.
|
1466
|
+
template<class K>
|
1467
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const K& x)
|
1468
|
+
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.lower_bound_range(x)); }
|
1469
|
+
|
1470
|
+
//! <b>Requires</b>: This overload is available only if
|
1471
|
+
//! key_compare::is_transparent exists.
|
1472
|
+
//!
|
1473
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1474
|
+
//!
|
1475
|
+
//! <b>Complexity</b>: Logarithmic.
|
1476
|
+
template<class K>
|
1477
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const K& x) const
|
1478
|
+
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range(x)); }
|
1479
|
+
|
1351
1480
|
//! <b>Effects</b>: Extracts the internal sequence container.
|
1352
1481
|
//!
|
1353
1482
|
//! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
|
@@ -1449,6 +1578,70 @@ class flat_map
|
|
1449
1578
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1450
1579
|
};
|
1451
1580
|
|
1581
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
1582
|
+
|
1583
|
+
template <typename InputIterator>
|
1584
|
+
flat_map(InputIterator, InputIterator) ->
|
1585
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1586
|
+
, it_based_second_type_t<InputIterator>>;
|
1587
|
+
|
1588
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1589
|
+
flat_map(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1590
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1591
|
+
, it_based_second_type_t<InputIterator>
|
1592
|
+
, typename dtl::if_c< // Compare
|
1593
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1594
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
1595
|
+
, AllocatorOrCompare
|
1596
|
+
>::type
|
1597
|
+
, typename dtl::if_c< // Allocator
|
1598
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1599
|
+
, AllocatorOrCompare
|
1600
|
+
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
1601
|
+
>::type
|
1602
|
+
>;
|
1603
|
+
|
1604
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1605
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1606
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1607
|
+
flat_map(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1608
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1609
|
+
, it_based_second_type_t<InputIterator>
|
1610
|
+
, Compare
|
1611
|
+
, Allocator>;
|
1612
|
+
|
1613
|
+
template <typename InputIterator>
|
1614
|
+
flat_map(ordered_unique_range_t, InputIterator, InputIterator) ->
|
1615
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1616
|
+
, it_based_second_type_t<InputIterator>>;
|
1617
|
+
|
1618
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1619
|
+
flat_map(ordered_unique_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1620
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1621
|
+
, it_based_second_type_t<InputIterator>
|
1622
|
+
, typename dtl::if_c< // Compare
|
1623
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1624
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
1625
|
+
, AllocatorOrCompare
|
1626
|
+
>::type
|
1627
|
+
, typename dtl::if_c< // Allocator
|
1628
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1629
|
+
, AllocatorOrCompare
|
1630
|
+
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
1631
|
+
>::type
|
1632
|
+
>;
|
1633
|
+
|
1634
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1635
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1636
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1637
|
+
flat_map(ordered_unique_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1638
|
+
flat_map< it_based_non_const_first_type_t<InputIterator>
|
1639
|
+
, it_based_second_type_t<InputIterator>
|
1640
|
+
, Compare
|
1641
|
+
, Allocator>;
|
1642
|
+
|
1643
|
+
#endif
|
1644
|
+
|
1452
1645
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1453
1646
|
|
1454
1647
|
} //namespace container {
|
@@ -1710,6 +1903,21 @@ class flat_multimap
|
|
1710
1903
|
: m_flat_tree(ordered_range, first, last, comp, a)
|
1711
1904
|
{}
|
1712
1905
|
|
1906
|
+
//! <b>Effects</b>: Constructs an empty flat_multimap using the specified comparison object and
|
1907
|
+
//! inserts elements from the ordered range [first ,last). This function
|
1908
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
1909
|
+
//!
|
1910
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
1911
|
+
//!
|
1912
|
+
//! <b>Complexity</b>: Linear in N.
|
1913
|
+
//!
|
1914
|
+
//! <b>Note</b>: Non-standard extension.
|
1915
|
+
template <class InputIterator>
|
1916
|
+
BOOST_CONTAINER_FORCEINLINE
|
1917
|
+
flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const allocator_type &a)
|
1918
|
+
: m_flat_tree(ordered_range, first, last, Compare(), a)
|
1919
|
+
{}
|
1920
|
+
|
1713
1921
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
1714
1922
|
//! <b>Effects</b>: Constructs an empty flat_map and
|
1715
1923
|
//! inserts elements from the range [il.begin(), il.end()).
|
@@ -2443,12 +2651,62 @@ class flat_multimap
|
|
2443
2651
|
BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& x) const
|
2444
2652
|
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
|
2445
2653
|
|
2654
|
+
//! <b>Requires</b>: This overload is available only if
|
2655
|
+
//! key_compare::is_transparent exists.
|
2656
|
+
//!
|
2657
|
+
//! <b>Returns</b>: An iterator pointing to an element with the key
|
2658
|
+
//! equivalent to x, or end() if such an element is not found.
|
2659
|
+
//!
|
2660
|
+
//! <b>Complexity</b>: Logarithmic.
|
2661
|
+
template<class K>
|
2662
|
+
BOOST_CONTAINER_FORCEINLINE iterator find(const K& x)
|
2663
|
+
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
|
2664
|
+
|
2665
|
+
//! <b>Requires</b>: This overload is available only if
|
2666
|
+
//! key_compare::is_transparent exists.
|
2667
|
+
//!
|
2668
|
+
//! <b>Returns</b>: An const_iterator pointing to an element with the key
|
2669
|
+
//! equivalent to x, or end() if such an element is not found.
|
2670
|
+
//!
|
2671
|
+
//! <b>Complexity</b>: Logarithmic.
|
2672
|
+
template<class K>
|
2673
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator find(const K& x) const
|
2674
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
|
2675
|
+
|
2446
2676
|
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
2447
2677
|
//!
|
2448
2678
|
//! <b>Complexity</b>: log(size())+count(k)
|
2449
2679
|
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
|
2450
2680
|
{ return m_flat_tree.count(x); }
|
2451
2681
|
|
2682
|
+
//! <b>Requires</b>: This overload is available only if
|
2683
|
+
//! key_compare::is_transparent exists.
|
2684
|
+
//!
|
2685
|
+
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
2686
|
+
//!
|
2687
|
+
//! <b>Complexity</b>: log(size())+count(k)
|
2688
|
+
template<class K>
|
2689
|
+
BOOST_CONTAINER_FORCEINLINE size_type count(const K& x) const
|
2690
|
+
{ return m_flat_tree.count(x); }
|
2691
|
+
|
2692
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
2693
|
+
//! equivalent to key in the container, otherwise false.
|
2694
|
+
//!
|
2695
|
+
//! <b>Complexity</b>: log(size()).
|
2696
|
+
bool contains(const key_type& x) const
|
2697
|
+
{ return m_flat_tree.find(x) != m_flat_tree.end(); }
|
2698
|
+
|
2699
|
+
//! <b>Requires</b>: This overload is available only if
|
2700
|
+
//! key_compare::is_transparent exists.
|
2701
|
+
//!
|
2702
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
2703
|
+
//! equivalent to key in the container, otherwise false.
|
2704
|
+
//!
|
2705
|
+
//! <b>Complexity</b>: log(size()).
|
2706
|
+
template<typename K>
|
2707
|
+
bool contains(const K& x) const
|
2708
|
+
{ return m_flat_tree.find(x) != m_flat_tree.end(); }
|
2709
|
+
|
2452
2710
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2453
2711
|
//! than k, or a.end() if such an element is not found.
|
2454
2712
|
//!
|
@@ -2456,12 +2714,34 @@ class flat_multimap
|
|
2456
2714
|
BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const key_type& x)
|
2457
2715
|
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
|
2458
2716
|
|
2459
|
-
//! <b>Returns</b>:
|
2460
|
-
//!
|
2717
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2718
|
+
//! than k, or a.end() if such an element is not found.
|
2461
2719
|
//!
|
2462
2720
|
//! <b>Complexity</b>: Logarithmic
|
2463
2721
|
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& x) const
|
2464
|
-
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x));
|
2722
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
|
2723
|
+
|
2724
|
+
//! <b>Requires</b>: This overload is available only if
|
2725
|
+
//! key_compare::is_transparent exists.
|
2726
|
+
//!
|
2727
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2728
|
+
//! than k, or a.end() if such an element is not found.
|
2729
|
+
//!
|
2730
|
+
//! <b>Complexity</b>: Logarithmic
|
2731
|
+
template<class K>
|
2732
|
+
BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const K& x)
|
2733
|
+
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
|
2734
|
+
|
2735
|
+
//! <b>Requires</b>: This overload is available only if
|
2736
|
+
//! key_compare::is_transparent exists.
|
2737
|
+
//!
|
2738
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2739
|
+
//! than k, or a.end() if such an element is not found.
|
2740
|
+
//!
|
2741
|
+
//! <b>Complexity</b>: Logarithmic
|
2742
|
+
template<class K>
|
2743
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const K& x) const
|
2744
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
|
2465
2745
|
|
2466
2746
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2467
2747
|
//! than x, or end() if such an element is not found.
|
@@ -2477,6 +2757,28 @@ class flat_multimap
|
|
2477
2757
|
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& x) const
|
2478
2758
|
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
|
2479
2759
|
|
2760
|
+
//! <b>Requires</b>: This overload is available only if
|
2761
|
+
//! key_compare::is_transparent exists.
|
2762
|
+
//!
|
2763
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2764
|
+
//! than x, or end() if such an element is not found.
|
2765
|
+
//!
|
2766
|
+
//! <b>Complexity</b>: Logarithmic
|
2767
|
+
template<class K>
|
2768
|
+
BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const K& x)
|
2769
|
+
{return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
|
2770
|
+
|
2771
|
+
//! <b>Requires</b>: This overload is available only if
|
2772
|
+
//! key_compare::is_transparent exists.
|
2773
|
+
//!
|
2774
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key
|
2775
|
+
//! not less than x, or end() if such an element is not found.
|
2776
|
+
//!
|
2777
|
+
//! <b>Complexity</b>: Logarithmic
|
2778
|
+
template<class K>
|
2779
|
+
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const K& x) const
|
2780
|
+
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
|
2781
|
+
|
2480
2782
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
2481
2783
|
//!
|
2482
2784
|
//! <b>Complexity</b>: Logarithmic
|
@@ -2489,6 +2791,26 @@ class flat_multimap
|
|
2489
2791
|
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
|
2490
2792
|
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
|
2491
2793
|
|
2794
|
+
//! <b>Requires</b>: This overload is available only if
|
2795
|
+
//! key_compare::is_transparent exists.
|
2796
|
+
//!
|
2797
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
2798
|
+
//!
|
2799
|
+
//! <b>Complexity</b>: Logarithmic
|
2800
|
+
template<class K>
|
2801
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const K& x)
|
2802
|
+
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
|
2803
|
+
|
2804
|
+
//! <b>Requires</b>: This overload is available only if
|
2805
|
+
//! key_compare::is_transparent exists.
|
2806
|
+
//!
|
2807
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
2808
|
+
//!
|
2809
|
+
//! <b>Complexity</b>: Logarithmic
|
2810
|
+
template<class K>
|
2811
|
+
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const K& x) const
|
2812
|
+
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
|
2813
|
+
|
2492
2814
|
//! <b>Effects</b>: Extracts the internal sequence container.
|
2493
2815
|
//!
|
2494
2816
|
//! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
|
@@ -2564,6 +2886,70 @@ class flat_multimap
|
|
2564
2886
|
{ x.swap(y); }
|
2565
2887
|
};
|
2566
2888
|
|
2889
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
2890
|
+
|
2891
|
+
template <typename InputIterator>
|
2892
|
+
flat_multimap(InputIterator, InputIterator) ->
|
2893
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2894
|
+
, it_based_second_type_t<InputIterator>>;
|
2895
|
+
|
2896
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
2897
|
+
flat_multimap(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
2898
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2899
|
+
, it_based_second_type_t<InputIterator>
|
2900
|
+
, typename dtl::if_c< // Compare
|
2901
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2902
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
2903
|
+
, AllocatorOrCompare
|
2904
|
+
>::type
|
2905
|
+
, typename dtl::if_c< // Allocator
|
2906
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2907
|
+
, AllocatorOrCompare
|
2908
|
+
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
2909
|
+
>::type
|
2910
|
+
>;
|
2911
|
+
|
2912
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
2913
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
2914
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
2915
|
+
flat_multimap(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
2916
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2917
|
+
, it_based_second_type_t<InputIterator>
|
2918
|
+
, Compare
|
2919
|
+
, Allocator>;
|
2920
|
+
|
2921
|
+
template <typename InputIterator>
|
2922
|
+
flat_multimap(ordered_range_t, InputIterator, InputIterator) ->
|
2923
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2924
|
+
, it_based_second_type_t<InputIterator>>;
|
2925
|
+
|
2926
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
2927
|
+
flat_multimap(ordered_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
2928
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2929
|
+
, it_based_second_type_t<InputIterator>
|
2930
|
+
, typename dtl::if_c< // Compare
|
2931
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2932
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
2933
|
+
, AllocatorOrCompare
|
2934
|
+
>::type
|
2935
|
+
, typename dtl::if_c< // Allocator
|
2936
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2937
|
+
, AllocatorOrCompare
|
2938
|
+
, new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
2939
|
+
>::type
|
2940
|
+
>;
|
2941
|
+
|
2942
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
2943
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
2944
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
2945
|
+
flat_multimap(ordered_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
2946
|
+
flat_multimap< it_based_non_const_first_type_t<InputIterator>
|
2947
|
+
, it_based_second_type_t<InputIterator>
|
2948
|
+
, Compare
|
2949
|
+
, Allocator>;
|
2950
|
+
|
2951
|
+
#endif
|
2952
|
+
|
2567
2953
|
}}
|
2568
2954
|
|
2569
2955
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|