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
@@ -257,6 +257,22 @@ class flat_set
|
|
257
257
|
: tree_t(ordered_unique_range, first, last, comp, a)
|
258
258
|
{}
|
259
259
|
|
260
|
+
//! <b>Effects</b>: Constructs an empty container using the specified allocator and
|
261
|
+
//! inserts elements from the ordered unique range [first ,last). This function
|
262
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
263
|
+
//!
|
264
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate and must be
|
265
|
+
//! unique values.
|
266
|
+
//!
|
267
|
+
//! <b>Complexity</b>: Linear in N.
|
268
|
+
//!
|
269
|
+
//! <b>Note</b>: Non-standard extension.
|
270
|
+
template <class InputIterator>
|
271
|
+
BOOST_CONTAINER_FORCEINLINE
|
272
|
+
flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, const allocator_type& a)
|
273
|
+
: tree_t(ordered_unique_range, first, last, Compare(), a)
|
274
|
+
{}
|
275
|
+
|
260
276
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
261
277
|
//! <b>Effects</b>: Constructs an empty container and
|
262
278
|
//! inserts elements from the range [il.begin(), il.end()).
|
@@ -823,6 +839,26 @@ class flat_set
|
|
823
839
|
//! <b>Complexity</b>: Logarithmic.
|
824
840
|
const_iterator find(const key_type& x) const;
|
825
841
|
|
842
|
+
//! <b>Requires</b>: This overload is available only if
|
843
|
+
//! key_compare::is_transparent exists.
|
844
|
+
//!
|
845
|
+
//! <b>Returns</b>: An iterator pointing to an element with the key
|
846
|
+
//! equivalent to x, or end() if such an element is not found.
|
847
|
+
//!
|
848
|
+
//! <b>Complexity</b>: Logarithmic.
|
849
|
+
template<typename K>
|
850
|
+
iterator find(const K& x);
|
851
|
+
|
852
|
+
//! <b>Requires</b>: This overload is available only if
|
853
|
+
//! key_compare::is_transparent exists.
|
854
|
+
//!
|
855
|
+
//! <b>Returns</b>: A const_iterator pointing to an element with the key
|
856
|
+
//! equivalent to x, or end() if such an element is not found.
|
857
|
+
//!
|
858
|
+
//! <b>Complexity</b>: Logarithmic.
|
859
|
+
template<typename K>
|
860
|
+
const_iterator find(const K& x) const;
|
861
|
+
|
826
862
|
//! <b>Requires</b>: size() >= n.
|
827
863
|
//!
|
828
864
|
//! <b>Effects</b>: Returns an iterator to the nth element
|
@@ -881,7 +917,34 @@ class flat_set
|
|
881
917
|
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
|
882
918
|
{ return static_cast<size_type>(this->tree_t::find(x) != this->tree_t::cend()); }
|
883
919
|
|
920
|
+
//! <b>Requires</b>: This overload is available only if
|
921
|
+
//! key_compare::is_transparent exists.
|
922
|
+
//!
|
923
|
+
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
924
|
+
//!
|
925
|
+
//! <b>Complexity</b>: log(size())+count(k)
|
926
|
+
template<typename K>
|
927
|
+
BOOST_CONTAINER_FORCEINLINE size_type count(const K& x) const
|
928
|
+
{ return static_cast<size_type>(this->tree_t::find(x) != this->tree_t::cend()); }
|
929
|
+
|
884
930
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
931
|
+
|
932
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
933
|
+
//! equivalent to key in the container, otherwise false.
|
934
|
+
//!
|
935
|
+
//! <b>Complexity</b>: log(size()).
|
936
|
+
bool contains(const key_type& x) const;
|
937
|
+
|
938
|
+
//! <b>Requires</b>: This overload is available only if
|
939
|
+
//! key_compare::is_transparent exists.
|
940
|
+
//!
|
941
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
942
|
+
//! equivalent to key in the container, otherwise false.
|
943
|
+
//!
|
944
|
+
//! <b>Complexity</b>: log(size()).
|
945
|
+
template<typename K>
|
946
|
+
bool contains(const K& x) const;
|
947
|
+
|
885
948
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
886
949
|
//! than k, or a.end() if such an element is not found.
|
887
950
|
//!
|
@@ -894,6 +957,26 @@ class flat_set
|
|
894
957
|
//! <b>Complexity</b>: Logarithmic
|
895
958
|
const_iterator lower_bound(const key_type& x) const;
|
896
959
|
|
960
|
+
//! <b>Requires</b>: This overload is available only if
|
961
|
+
//! key_compare::is_transparent exists.
|
962
|
+
//!
|
963
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
964
|
+
//! than k, or a.end() if such an element is not found.
|
965
|
+
//!
|
966
|
+
//! <b>Complexity</b>: Logarithmic
|
967
|
+
template<typename K>
|
968
|
+
iterator lower_bound(const K& x);
|
969
|
+
|
970
|
+
//! <b>Requires</b>: This overload is available only if
|
971
|
+
//! key_compare::is_transparent exists.
|
972
|
+
//!
|
973
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
974
|
+
//! less than k, or a.end() if such an element is not found.
|
975
|
+
//!
|
976
|
+
//! <b>Complexity</b>: Logarithmic
|
977
|
+
template<typename K>
|
978
|
+
const_iterator lower_bound(const K& x) const;
|
979
|
+
|
897
980
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
898
981
|
//! than x, or end() if such an element is not found.
|
899
982
|
//!
|
@@ -906,6 +989,26 @@ class flat_set
|
|
906
989
|
//! <b>Complexity</b>: Logarithmic
|
907
990
|
const_iterator upper_bound(const key_type& x) const;
|
908
991
|
|
992
|
+
//! <b>Requires</b>: This overload is available only if
|
993
|
+
//! key_compare::is_transparent exists.
|
994
|
+
//!
|
995
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
996
|
+
//! than x, or end() if such an element is not found.
|
997
|
+
//!
|
998
|
+
//! <b>Complexity</b>: Logarithmic
|
999
|
+
template<typename K>
|
1000
|
+
iterator upper_bound(const K& x);
|
1001
|
+
|
1002
|
+
//! <b>Requires</b>: This overload is available only if
|
1003
|
+
//! key_compare::is_transparent exists.
|
1004
|
+
//!
|
1005
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
1006
|
+
//! less than x, or end() if such an element is not found.
|
1007
|
+
//!
|
1008
|
+
//! <b>Complexity</b>: Logarithmic
|
1009
|
+
template<typename K>
|
1010
|
+
const_iterator upper_bound(const K& x) const;
|
1011
|
+
|
909
1012
|
#endif // #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
910
1013
|
|
911
1014
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
@@ -920,6 +1023,26 @@ class flat_set
|
|
920
1023
|
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type& x)
|
921
1024
|
{ return this->tree_t::lower_bound_range(x); }
|
922
1025
|
|
1026
|
+
//! <b>Requires</b>: This overload is available only if
|
1027
|
+
//! key_compare::is_transparent exists.
|
1028
|
+
//!
|
1029
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1030
|
+
//!
|
1031
|
+
//! <b>Complexity</b>: Logarithmic
|
1032
|
+
template<typename K>
|
1033
|
+
std::pair<iterator,iterator> equal_range(const K& x)
|
1034
|
+
{ return this->tree_t::lower_bound_range(x); }
|
1035
|
+
|
1036
|
+
//! <b>Requires</b>: This overload is available only if
|
1037
|
+
//! key_compare::is_transparent exists.
|
1038
|
+
//!
|
1039
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1040
|
+
//!
|
1041
|
+
//! <b>Complexity</b>: Logarithmic
|
1042
|
+
template<typename K>
|
1043
|
+
std::pair<const_iterator,const_iterator> equal_range(const K& x) const
|
1044
|
+
{ return this->tree_t::lower_bound_range(x); }
|
1045
|
+
|
923
1046
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
924
1047
|
|
925
1048
|
//! <b>Effects</b>: Returns true if x and y are equal
|
@@ -1001,6 +1124,65 @@ class flat_set
|
|
1001
1124
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1002
1125
|
};
|
1003
1126
|
|
1127
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
1128
|
+
|
1129
|
+
template <typename InputIterator>
|
1130
|
+
flat_set(InputIterator, InputIterator) ->
|
1131
|
+
flat_set< it_based_value_type_t<InputIterator> >;
|
1132
|
+
|
1133
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1134
|
+
flat_set(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1135
|
+
flat_set< it_based_value_type_t<InputIterator>
|
1136
|
+
, typename dtl::if_c< // Compare
|
1137
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1138
|
+
, std::less<it_based_value_type_t<InputIterator>>
|
1139
|
+
, AllocatorOrCompare
|
1140
|
+
>::type
|
1141
|
+
, typename dtl::if_c< // Allocator
|
1142
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1143
|
+
, AllocatorOrCompare
|
1144
|
+
, new_allocator<it_based_value_type_t<InputIterator>>
|
1145
|
+
>::type
|
1146
|
+
>;
|
1147
|
+
|
1148
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1149
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1150
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1151
|
+
flat_set(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1152
|
+
flat_set< it_based_value_type_t<InputIterator>
|
1153
|
+
, Compare
|
1154
|
+
, Allocator>;
|
1155
|
+
|
1156
|
+
template <typename InputIterator>
|
1157
|
+
flat_set(ordered_unique_range_t, InputIterator, InputIterator) ->
|
1158
|
+
flat_set< it_based_value_type_t<InputIterator>>;
|
1159
|
+
|
1160
|
+
|
1161
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1162
|
+
flat_set(ordered_unique_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1163
|
+
flat_set< it_based_value_type_t<InputIterator>
|
1164
|
+
, typename dtl::if_c< // Compare
|
1165
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1166
|
+
, std::less<it_based_value_type_t<InputIterator>>
|
1167
|
+
, AllocatorOrCompare
|
1168
|
+
>::type
|
1169
|
+
, typename dtl::if_c< // Allocator
|
1170
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1171
|
+
, AllocatorOrCompare
|
1172
|
+
, new_allocator<it_based_value_type_t<InputIterator>>
|
1173
|
+
>::type
|
1174
|
+
>;
|
1175
|
+
|
1176
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1177
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1178
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1179
|
+
flat_set(ordered_unique_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1180
|
+
flat_set< it_based_value_type_t<InputIterator>
|
1181
|
+
, Compare
|
1182
|
+
, Allocator>;
|
1183
|
+
|
1184
|
+
#endif
|
1185
|
+
|
1004
1186
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1005
1187
|
|
1006
1188
|
} //namespace container {
|
@@ -1177,6 +1359,20 @@ class flat_multiset
|
|
1177
1359
|
: tree_t(ordered_range, first, last, comp, a)
|
1178
1360
|
{}
|
1179
1361
|
|
1362
|
+
//! <b>Effects</b>: Constructs an empty flat_multiset using the specified allocator and
|
1363
|
+
//! inserts elements from the ordered range [first ,last ). This function
|
1364
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
1365
|
+
//!
|
1366
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
1367
|
+
//!
|
1368
|
+
//! <b>Complexity</b>: Linear in N.
|
1369
|
+
//!
|
1370
|
+
//! <b>Note</b>: Non-standard extension.
|
1371
|
+
template <class InputIterator>
|
1372
|
+
BOOST_CONTAINER_FORCEINLINE flat_multiset(ordered_range_t, InputIterator first, InputIterator last, const allocator_type &a)
|
1373
|
+
: tree_t(ordered_range, first, last, Compare(), a)
|
1374
|
+
{}
|
1375
|
+
|
1180
1376
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
1181
1377
|
//! @copydoc ::boost::container::flat_set::flat_set(std::initializer_list<value_type)
|
1182
1378
|
BOOST_CONTAINER_FORCEINLINE flat_multiset(std::initializer_list<value_type> il)
|
@@ -1559,6 +1755,13 @@ class flat_multiset
|
|
1559
1755
|
//! @copydoc ::boost::container::flat_set::count(const key_type& ) const
|
1560
1756
|
size_type count(const key_type& x) const;
|
1561
1757
|
|
1758
|
+
//! @copydoc ::boost::container::flat_set::contains(const key_type& ) const
|
1759
|
+
bool contains(const key_type& x) const;
|
1760
|
+
|
1761
|
+
//! @copydoc ::boost::container::flat_set::contains(const K& ) const
|
1762
|
+
template<typename K>
|
1763
|
+
bool contains(const K& x) const;
|
1764
|
+
|
1562
1765
|
//! @copydoc ::boost::container::flat_set::lower_bound(const key_type& )
|
1563
1766
|
iterator lower_bound(const key_type& x);
|
1564
1767
|
|
@@ -1655,6 +1858,65 @@ class flat_multiset
|
|
1655
1858
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1656
1859
|
};
|
1657
1860
|
|
1861
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
1862
|
+
|
1863
|
+
template <typename InputIterator>
|
1864
|
+
flat_multiset(InputIterator, InputIterator) ->
|
1865
|
+
flat_multiset< it_based_value_type_t<InputIterator> >;
|
1866
|
+
|
1867
|
+
|
1868
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1869
|
+
flat_multiset(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1870
|
+
flat_multiset < it_based_value_type_t<InputIterator>
|
1871
|
+
, typename dtl::if_c< // Compare
|
1872
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1873
|
+
, std::less<it_based_value_type_t<InputIterator>>
|
1874
|
+
, AllocatorOrCompare
|
1875
|
+
>::type
|
1876
|
+
, typename dtl::if_c< // Allocator
|
1877
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1878
|
+
, AllocatorOrCompare
|
1879
|
+
, new_allocator<it_based_value_type_t<InputIterator>>
|
1880
|
+
>::type
|
1881
|
+
>;
|
1882
|
+
|
1883
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1884
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1885
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1886
|
+
flat_multiset(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1887
|
+
flat_multiset< it_based_value_type_t<InputIterator>
|
1888
|
+
, Compare
|
1889
|
+
, Allocator>;
|
1890
|
+
|
1891
|
+
template <typename InputIterator>
|
1892
|
+
flat_multiset(ordered_range_t, InputIterator, InputIterator) ->
|
1893
|
+
flat_multiset< it_based_value_type_t<InputIterator>>;
|
1894
|
+
|
1895
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1896
|
+
flat_multiset(ordered_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1897
|
+
flat_multiset < it_based_value_type_t<InputIterator>
|
1898
|
+
, typename dtl::if_c< // Compare
|
1899
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1900
|
+
, std::less<it_based_value_type_t<InputIterator>>
|
1901
|
+
, AllocatorOrCompare
|
1902
|
+
>::type
|
1903
|
+
, typename dtl::if_c< // Allocator
|
1904
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1905
|
+
, AllocatorOrCompare
|
1906
|
+
, new_allocator<it_based_value_type_t<InputIterator>>
|
1907
|
+
>::type
|
1908
|
+
>;
|
1909
|
+
|
1910
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1911
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1912
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1913
|
+
flat_multiset(ordered_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1914
|
+
flat_multiset< it_based_value_type_t<InputIterator>
|
1915
|
+
, Compare
|
1916
|
+
, Allocator>;
|
1917
|
+
|
1918
|
+
#endif
|
1919
|
+
|
1658
1920
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1659
1921
|
|
1660
1922
|
} //namespace container {
|
@@ -71,20 +71,54 @@ template
|
|
71
71
|
struct list_node
|
72
72
|
: public list_hook<VoidPointer>::type
|
73
73
|
{
|
74
|
-
private:
|
75
|
-
list_node();
|
76
|
-
|
77
74
|
public:
|
78
75
|
typedef T value_type;
|
76
|
+
typedef T internal_type;
|
79
77
|
typedef typename list_hook<VoidPointer>::type hook_type;
|
80
78
|
|
81
|
-
T
|
79
|
+
typedef typename aligned_storage<sizeof(T), alignment_of<T>::value>::type storage_t;
|
80
|
+
storage_t m_storage;
|
81
|
+
|
82
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) && (BOOST_GCC < 80000)
|
83
|
+
#pragma GCC diagnostic push
|
84
|
+
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
|
85
|
+
#define BOOST_CONTAINER_DISABLE_ALIASING_WARNING
|
86
|
+
# endif
|
87
|
+
|
88
|
+
BOOST_CONTAINER_FORCEINLINE T &get_data()
|
89
|
+
{ return *reinterpret_cast<T*>(this->m_storage.data); }
|
90
|
+
|
91
|
+
BOOST_CONTAINER_FORCEINLINE const T &get_data() const
|
92
|
+
{ return *reinterpret_cast<const T*>(this->m_storage.data); }
|
93
|
+
|
94
|
+
BOOST_CONTAINER_FORCEINLINE T *get_data_ptr()
|
95
|
+
{ return reinterpret_cast<T*>(this->m_storage.data); }
|
96
|
+
|
97
|
+
BOOST_CONTAINER_FORCEINLINE const T *get_data_ptr() const
|
98
|
+
{ return reinterpret_cast<T*>(this->m_storage.data); }
|
99
|
+
|
100
|
+
BOOST_CONTAINER_FORCEINLINE internal_type &get_real_data()
|
101
|
+
{ return *reinterpret_cast<internal_type*>(this->m_storage.data); }
|
82
102
|
|
83
|
-
|
84
|
-
{ return this->
|
103
|
+
BOOST_CONTAINER_FORCEINLINE const internal_type &get_real_data() const
|
104
|
+
{ return *reinterpret_cast<const internal_type*>(this->m_storage.data); }
|
85
105
|
|
86
|
-
|
87
|
-
{ return this->
|
106
|
+
BOOST_CONTAINER_FORCEINLINE internal_type *get_real_data_ptr()
|
107
|
+
{ return reinterpret_cast<internal_type*>(this->m_storage.data); }
|
108
|
+
|
109
|
+
BOOST_CONTAINER_FORCEINLINE const internal_type *get_real_data_ptr() const
|
110
|
+
{ return reinterpret_cast<internal_type*>(this->m_storage.data); }
|
111
|
+
|
112
|
+
BOOST_CONTAINER_FORCEINLINE ~list_node()
|
113
|
+
{ reinterpret_cast<T*>(this->m_storage.data)->~T(); }
|
114
|
+
|
115
|
+
#if defined(BOOST_CONTAINER_DISABLE_ALIASING_WARNING)
|
116
|
+
#pragma GCC diagnostic pop
|
117
|
+
#undef BOOST_CONTAINER_DISABLE_ALIASING_WARNING
|
118
|
+
# endif
|
119
|
+
|
120
|
+
BOOST_CONTAINER_FORCEINLINE void destroy_header()
|
121
|
+
{ static_cast<hook_type*>(this)->~hook_type(); }
|
88
122
|
};
|
89
123
|
|
90
124
|
template <class T, class VoidPointer>
|
@@ -1464,6 +1498,16 @@ class list
|
|
1464
1498
|
|
1465
1499
|
};
|
1466
1500
|
|
1501
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
1502
|
+
template <typename InputIterator>
|
1503
|
+
list(InputIterator, InputIterator) ->
|
1504
|
+
list<typename iterator_traits<InputIterator>::value_type>;
|
1505
|
+
|
1506
|
+
template <typename InputIterator, typename Allocator>
|
1507
|
+
list(InputIterator, InputIterator, Allocator const&) ->
|
1508
|
+
list<typename iterator_traits<InputIterator>::value_type, Allocator>;
|
1509
|
+
#endif
|
1510
|
+
|
1467
1511
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1468
1512
|
|
1469
1513
|
} //namespace container {
|
@@ -256,6 +256,22 @@ class map
|
|
256
256
|
: base_t(ordered_range, first, last, comp, a)
|
257
257
|
{}
|
258
258
|
|
259
|
+
//! <b>Effects</b>: Constructs an empty map using the specified allocator object and
|
260
|
+
//! inserts elements from the ordered unique range [first ,last). This function
|
261
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
262
|
+
//!
|
263
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate and must be
|
264
|
+
//! unique values.
|
265
|
+
//!
|
266
|
+
//! <b>Complexity</b>: Linear in N.
|
267
|
+
//!
|
268
|
+
//! <b>Note</b>: Non-standard extension.
|
269
|
+
template <class InputIterator>
|
270
|
+
BOOST_CONTAINER_FORCEINLINE map(ordered_unique_range_t, InputIterator first, InputIterator last, const allocator_type& a)
|
271
|
+
: base_t(ordered_range, first, last, Compare(), a)
|
272
|
+
{}
|
273
|
+
|
274
|
+
|
259
275
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
260
276
|
//! <b>Effects</b>: Constructs an empty map and
|
261
277
|
//! inserts elements from the range [il.begin(), il.end()).
|
@@ -1079,6 +1095,26 @@ class map
|
|
1079
1095
|
//! <b>Complexity</b>: Logarithmic.
|
1080
1096
|
const_iterator find(const key_type& x) const;
|
1081
1097
|
|
1098
|
+
//! <b>Requires</b>: This overload is available only if
|
1099
|
+
//! key_compare::is_transparent exists.
|
1100
|
+
//!
|
1101
|
+
//! <b>Returns</b>: An iterator pointing to an element with the key
|
1102
|
+
//! equivalent to x, or end() if such an element is not found.
|
1103
|
+
//!
|
1104
|
+
//! <b>Complexity</b>: Logarithmic.
|
1105
|
+
template<typename K>
|
1106
|
+
iterator find(const K& x);
|
1107
|
+
|
1108
|
+
//! <b>Requires</b>: This overload is available only if
|
1109
|
+
//! key_compare::is_transparent exists.
|
1110
|
+
//!
|
1111
|
+
//! <b>Returns</b>: A const_iterator pointing to an element with the key
|
1112
|
+
//! equivalent to x, or end() if such an element is not found.
|
1113
|
+
//!
|
1114
|
+
//! <b>Complexity</b>: Logarithmic.
|
1115
|
+
template<typename K>
|
1116
|
+
const_iterator find(const K& x) const;
|
1117
|
+
|
1082
1118
|
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1083
1119
|
|
1084
1120
|
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
@@ -1087,8 +1123,34 @@ class map
|
|
1087
1123
|
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
|
1088
1124
|
{ return static_cast<size_type>(this->find(x) != this->cend()); }
|
1089
1125
|
|
1126
|
+
//! <b>Requires</b>: This overload is available only if
|
1127
|
+
//! key_compare::is_transparent exists.
|
1128
|
+
//!
|
1129
|
+
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
1130
|
+
//!
|
1131
|
+
//! <b>Complexity</b>: log(size())+count(k)
|
1132
|
+
template<typename K>
|
1133
|
+
BOOST_CONTAINER_FORCEINLINE size_type count(const K& x) const
|
1134
|
+
{ return static_cast<size_type>(this->find(x) != this->cend()); }
|
1135
|
+
|
1090
1136
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1091
1137
|
|
1138
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
1139
|
+
//! equivalent to key in the container, otherwise false.
|
1140
|
+
//!
|
1141
|
+
//! <b>Complexity</b>: log(size()).
|
1142
|
+
bool contains(const key_type& x) const;
|
1143
|
+
|
1144
|
+
//! <b>Requires</b>: This overload is available only if
|
1145
|
+
//! key_compare::is_transparent exists.
|
1146
|
+
//!
|
1147
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
1148
|
+
//! equivalent to key in the container, otherwise false.
|
1149
|
+
//!
|
1150
|
+
//! <b>Complexity</b>: log(size()).
|
1151
|
+
template<typename K>
|
1152
|
+
bool contains(const K& x) const;
|
1153
|
+
|
1092
1154
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1093
1155
|
//! than k, or a.end() if such an element is not found.
|
1094
1156
|
//!
|
@@ -1101,6 +1163,26 @@ class map
|
|
1101
1163
|
//! <b>Complexity</b>: Logarithmic
|
1102
1164
|
const_iterator lower_bound(const key_type& x) const;
|
1103
1165
|
|
1166
|
+
//! <b>Requires</b>: This overload is available only if
|
1167
|
+
//! key_compare::is_transparent exists.
|
1168
|
+
//!
|
1169
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1170
|
+
//! than k, or a.end() if such an element is not found.
|
1171
|
+
//!
|
1172
|
+
//! <b>Complexity</b>: Logarithmic
|
1173
|
+
template<typename K>
|
1174
|
+
iterator lower_bound(const K& x);
|
1175
|
+
|
1176
|
+
//! <b>Requires</b>: This overload is available only if
|
1177
|
+
//! key_compare::is_transparent exists.
|
1178
|
+
//!
|
1179
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
1180
|
+
//! less than k, or a.end() if such an element is not found.
|
1181
|
+
//!
|
1182
|
+
//! <b>Complexity</b>: Logarithmic
|
1183
|
+
template<typename K>
|
1184
|
+
const_iterator lower_bound(const K& x) const;
|
1185
|
+
|
1104
1186
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1105
1187
|
//! than x, or end() if such an element is not found.
|
1106
1188
|
//!
|
@@ -1113,6 +1195,26 @@ class map
|
|
1113
1195
|
//! <b>Complexity</b>: Logarithmic
|
1114
1196
|
const_iterator upper_bound(const key_type& x) const;
|
1115
1197
|
|
1198
|
+
//! <b>Requires</b>: This overload is available only if
|
1199
|
+
//! key_compare::is_transparent exists.
|
1200
|
+
//!
|
1201
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1202
|
+
//! than x, or end() if such an element is not found.
|
1203
|
+
//!
|
1204
|
+
//! <b>Complexity</b>: Logarithmic
|
1205
|
+
template<typename K>
|
1206
|
+
iterator upper_bound(const K& x);
|
1207
|
+
|
1208
|
+
//! <b>Requires</b>: This overload is available only if
|
1209
|
+
//! key_compare::is_transparent exists.
|
1210
|
+
//!
|
1211
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
1212
|
+
//! less than x, or end() if such an element is not found.
|
1213
|
+
//!
|
1214
|
+
//! <b>Complexity</b>: Logarithmic
|
1215
|
+
template<typename K>
|
1216
|
+
const_iterator upper_bound(const K& x) const;
|
1217
|
+
|
1116
1218
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1117
1219
|
//!
|
1118
1220
|
//! <b>Complexity</b>: Logarithmic
|
@@ -1123,6 +1225,24 @@ class map
|
|
1123
1225
|
//! <b>Complexity</b>: Logarithmic
|
1124
1226
|
std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
|
1125
1227
|
|
1228
|
+
//! <b>Requires</b>: This overload is available only if
|
1229
|
+
//! key_compare::is_transparent exists.
|
1230
|
+
//!
|
1231
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1232
|
+
//!
|
1233
|
+
//! <b>Complexity</b>: Logarithmic
|
1234
|
+
template<typename K>
|
1235
|
+
std::pair<iterator,iterator> equal_range(const K& x);
|
1236
|
+
|
1237
|
+
//! <b>Requires</b>: This overload is available only if
|
1238
|
+
//! key_compare::is_transparent exists.
|
1239
|
+
//!
|
1240
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1241
|
+
//!
|
1242
|
+
//! <b>Complexity</b>: Logarithmic
|
1243
|
+
template<typename K>
|
1244
|
+
std::pair<const_iterator,const_iterator> equal_range(const K& x) const;
|
1245
|
+
|
1126
1246
|
//! <b>Effects</b>: Rebalances the tree. It's a no-op for Red-Black and AVL trees.
|
1127
1247
|
//!
|
1128
1248
|
//! <b>Complexity</b>: Linear
|
@@ -1175,6 +1295,70 @@ class map
|
|
1175
1295
|
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1176
1296
|
};
|
1177
1297
|
|
1298
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
1299
|
+
|
1300
|
+
template <typename InputIterator>
|
1301
|
+
map(InputIterator, InputIterator) ->
|
1302
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1303
|
+
, it_based_second_type_t<InputIterator>>;
|
1304
|
+
|
1305
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1306
|
+
map(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1307
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1308
|
+
, it_based_second_type_t<InputIterator>
|
1309
|
+
, typename dtl::if_c< // Compare
|
1310
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1311
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
1312
|
+
, AllocatorOrCompare
|
1313
|
+
>::type
|
1314
|
+
, typename dtl::if_c< // Allocator
|
1315
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1316
|
+
, AllocatorOrCompare
|
1317
|
+
, new_allocator<std::pair<it_based_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
1318
|
+
>::type
|
1319
|
+
>;
|
1320
|
+
|
1321
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1322
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1323
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1324
|
+
map(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1325
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1326
|
+
, it_based_second_type_t<InputIterator>
|
1327
|
+
, Compare
|
1328
|
+
, Allocator>;
|
1329
|
+
|
1330
|
+
template <typename InputIterator>
|
1331
|
+
map(ordered_unique_range_t, InputIterator, InputIterator) ->
|
1332
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1333
|
+
, it_based_second_type_t<InputIterator>>;
|
1334
|
+
|
1335
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
1336
|
+
map(ordered_unique_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
1337
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1338
|
+
, it_based_second_type_t<InputIterator>
|
1339
|
+
, typename dtl::if_c< // Compare
|
1340
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1341
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
1342
|
+
, AllocatorOrCompare
|
1343
|
+
>::type
|
1344
|
+
, typename dtl::if_c< // Allocator
|
1345
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
1346
|
+
, AllocatorOrCompare
|
1347
|
+
, new_allocator<std::pair<it_based_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
1348
|
+
>::type
|
1349
|
+
>;
|
1350
|
+
|
1351
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
1352
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
1353
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
1354
|
+
map(ordered_unique_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
1355
|
+
map< it_based_non_const_first_type_t<InputIterator>
|
1356
|
+
, it_based_second_type_t<InputIterator>
|
1357
|
+
, Compare
|
1358
|
+
, Allocator>;
|
1359
|
+
|
1360
|
+
#endif
|
1361
|
+
|
1178
1362
|
|
1179
1363
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1180
1364
|
|
@@ -1394,6 +1578,20 @@ class multimap
|
|
1394
1578
|
: base_t(ordered_range, first, last, comp, a)
|
1395
1579
|
{}
|
1396
1580
|
|
1581
|
+
//! <b>Effects</b>: Constructs an empty multimap using the specified allocator and
|
1582
|
+
//! inserts elements from the ordered range [first ,last). This function
|
1583
|
+
//! is more efficient than the normal range creation for ordered ranges.
|
1584
|
+
//!
|
1585
|
+
//! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
|
1586
|
+
//!
|
1587
|
+
//! <b>Complexity</b>: Linear in N.
|
1588
|
+
//!
|
1589
|
+
//! <b>Note</b>: Non-standard extension.
|
1590
|
+
template <class InputIterator>
|
1591
|
+
BOOST_CONTAINER_FORCEINLINE multimap(ordered_range_t, InputIterator first, InputIterator last, const allocator_type& a)
|
1592
|
+
: base_t(ordered_range, first, last, Compare(), a)
|
1593
|
+
{}
|
1594
|
+
|
1397
1595
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
1398
1596
|
//! <b>Effects</b>: Constructs an empty multimap and
|
1399
1597
|
//! and inserts elements from the range [il.begin(), il.end()).
|
@@ -1841,11 +2039,56 @@ class multimap
|
|
1841
2039
|
//! <b>Complexity</b>: Logarithmic.
|
1842
2040
|
const_iterator find(const key_type& x) const;
|
1843
2041
|
|
2042
|
+
//! <b>Requires</b>: This overload is available only if
|
2043
|
+
//! key_compare::is_transparent exists.
|
2044
|
+
//!
|
2045
|
+
//! <b>Returns</b>: An iterator pointing to an element with the key
|
2046
|
+
//! equivalent to x, or end() if such an element is not found.
|
2047
|
+
//!
|
2048
|
+
//! <b>Complexity</b>: Logarithmic.
|
2049
|
+
template<typename K>
|
2050
|
+
iterator find(const K& x);
|
2051
|
+
|
2052
|
+
//! <b>Requires</b>: This overload is available only if
|
2053
|
+
//! key_compare::is_transparent exists.
|
2054
|
+
//!
|
2055
|
+
//! <b>Returns</b>: A const_iterator pointing to an element with the key
|
2056
|
+
//! equivalent to x, or end() if such an element is not found.
|
2057
|
+
//!
|
2058
|
+
//! <b>Complexity</b>: Logarithmic.
|
2059
|
+
template<typename K>
|
2060
|
+
const_iterator find(const K& x) const;
|
2061
|
+
|
1844
2062
|
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
1845
2063
|
//!
|
1846
2064
|
//! <b>Complexity</b>: log(size())+count(k)
|
1847
2065
|
size_type count(const key_type& x) const;
|
1848
2066
|
|
2067
|
+
//! <b>Requires</b>: This overload is available only if
|
2068
|
+
//! key_compare::is_transparent exists.
|
2069
|
+
//!
|
2070
|
+
//! <b>Returns</b>: The number of elements with key equivalent to x.
|
2071
|
+
//!
|
2072
|
+
//! <b>Complexity</b>: log(size())+count(k)
|
2073
|
+
template<typename K>
|
2074
|
+
size_type count(const K& x) const;
|
2075
|
+
|
2076
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
2077
|
+
//! equivalent to key in the container, otherwise false.
|
2078
|
+
//!
|
2079
|
+
//! <b>Complexity</b>: log(size()).
|
2080
|
+
bool contains(const key_type& x) const;
|
2081
|
+
|
2082
|
+
//! <b>Requires</b>: This overload is available only if
|
2083
|
+
//! key_compare::is_transparent exists.
|
2084
|
+
//!
|
2085
|
+
//! <b>Returns</b>: Returns true if there is an element with key
|
2086
|
+
//! equivalent to key in the container, otherwise false.
|
2087
|
+
//!
|
2088
|
+
//! <b>Complexity</b>: log(size()).
|
2089
|
+
template<typename K>
|
2090
|
+
bool contains(const K& x) const;
|
2091
|
+
|
1849
2092
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1850
2093
|
//! than k, or a.end() if such an element is not found.
|
1851
2094
|
//!
|
@@ -1858,6 +2101,26 @@ class multimap
|
|
1858
2101
|
//! <b>Complexity</b>: Logarithmic
|
1859
2102
|
const_iterator lower_bound(const key_type& x) const;
|
1860
2103
|
|
2104
|
+
//! <b>Requires</b>: This overload is available only if
|
2105
|
+
//! key_compare::is_transparent exists.
|
2106
|
+
//!
|
2107
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2108
|
+
//! than k, or a.end() if such an element is not found.
|
2109
|
+
//!
|
2110
|
+
//! <b>Complexity</b>: Logarithmic
|
2111
|
+
template<typename K>
|
2112
|
+
iterator lower_bound(const K& x);
|
2113
|
+
|
2114
|
+
//! <b>Requires</b>: This overload is available only if
|
2115
|
+
//! key_compare::is_transparent exists.
|
2116
|
+
//!
|
2117
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
2118
|
+
//! less than k, or a.end() if such an element is not found.
|
2119
|
+
//!
|
2120
|
+
//! <b>Complexity</b>: Logarithmic
|
2121
|
+
template<typename K>
|
2122
|
+
const_iterator lower_bound(const K& x) const;
|
2123
|
+
|
1861
2124
|
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
1862
2125
|
//! than x, or end() if such an element is not found.
|
1863
2126
|
//!
|
@@ -1870,6 +2133,26 @@ class multimap
|
|
1870
2133
|
//! <b>Complexity</b>: Logarithmic
|
1871
2134
|
const_iterator upper_bound(const key_type& x) const;
|
1872
2135
|
|
2136
|
+
//! <b>Requires</b>: This overload is available only if
|
2137
|
+
//! key_compare::is_transparent exists.
|
2138
|
+
//!
|
2139
|
+
//! <b>Returns</b>: An iterator pointing to the first element with key not less
|
2140
|
+
//! than x, or end() if such an element is not found.
|
2141
|
+
//!
|
2142
|
+
//! <b>Complexity</b>: Logarithmic
|
2143
|
+
template<typename K>
|
2144
|
+
iterator upper_bound(const K& x);
|
2145
|
+
|
2146
|
+
//! <b>Requires</b>: This overload is available only if
|
2147
|
+
//! key_compare::is_transparent exists.
|
2148
|
+
//!
|
2149
|
+
//! <b>Returns</b>: A const iterator pointing to the first element with key not
|
2150
|
+
//! less than x, or end() if such an element is not found.
|
2151
|
+
//!
|
2152
|
+
//! <b>Complexity</b>: Logarithmic
|
2153
|
+
template<typename K>
|
2154
|
+
const_iterator upper_bound(const K& x) const;
|
2155
|
+
|
1873
2156
|
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
1874
2157
|
//!
|
1875
2158
|
//! <b>Complexity</b>: Logarithmic
|
@@ -1880,6 +2163,24 @@ class multimap
|
|
1880
2163
|
//! <b>Complexity</b>: Logarithmic
|
1881
2164
|
std::pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
|
1882
2165
|
|
2166
|
+
//! <b>Requires</b>: This overload is available only if
|
2167
|
+
//! key_compare::is_transparent exists.
|
2168
|
+
//!
|
2169
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
2170
|
+
//!
|
2171
|
+
//! <b>Complexity</b>: Logarithmic
|
2172
|
+
template<typename K>
|
2173
|
+
std::pair<iterator,iterator> equal_range(const K& x);
|
2174
|
+
|
2175
|
+
//! <b>Requires</b>: This overload is available only if
|
2176
|
+
//! key_compare::is_transparent exists.
|
2177
|
+
//!
|
2178
|
+
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
|
2179
|
+
//!
|
2180
|
+
//! <b>Complexity</b>: Logarithmic
|
2181
|
+
template<typename K>
|
2182
|
+
std::pair<const_iterator,const_iterator> equal_range(const K& x) const;
|
2183
|
+
|
1883
2184
|
//! <b>Effects</b>: Rebalances the tree. It's a no-op for Red-Black and AVL trees.
|
1884
2185
|
//!
|
1885
2186
|
//! <b>Complexity</b>: Linear
|
@@ -1923,6 +2224,69 @@ class multimap
|
|
1923
2224
|
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1924
2225
|
};
|
1925
2226
|
|
2227
|
+
#ifndef BOOST_CONTAINER_NO_CXX17_CTAD
|
2228
|
+
|
2229
|
+
template <typename InputIterator>
|
2230
|
+
multimap(InputIterator, InputIterator) ->
|
2231
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2232
|
+
, it_based_second_type_t<InputIterator>>;
|
2233
|
+
|
2234
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
2235
|
+
multimap(InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
2236
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2237
|
+
, it_based_second_type_t<InputIterator>
|
2238
|
+
, typename dtl::if_c< // Compare
|
2239
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2240
|
+
, std::less<it_based_non_const_first_type_t<InputIterator>>
|
2241
|
+
, AllocatorOrCompare
|
2242
|
+
>::type
|
2243
|
+
, typename dtl::if_c< // Allocator
|
2244
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2245
|
+
, AllocatorOrCompare
|
2246
|
+
, new_allocator<std::pair<it_based_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
2247
|
+
>::type
|
2248
|
+
>;
|
2249
|
+
|
2250
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
2251
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
2252
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
2253
|
+
multimap(InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
2254
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2255
|
+
, it_based_second_type_t<InputIterator>
|
2256
|
+
, Compare
|
2257
|
+
, Allocator>;
|
2258
|
+
|
2259
|
+
template <typename InputIterator>
|
2260
|
+
multimap(ordered_range_t, InputIterator, InputIterator) ->
|
2261
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2262
|
+
, it_based_second_type_t<InputIterator>>;
|
2263
|
+
|
2264
|
+
template < typename InputIterator, typename AllocatorOrCompare>
|
2265
|
+
multimap(ordered_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
|
2266
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2267
|
+
, it_based_second_type_t<InputIterator>
|
2268
|
+
, typename dtl::if_c< // Compare
|
2269
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2270
|
+
, std::less<it_based_const_first_type_t<InputIterator>>
|
2271
|
+
, AllocatorOrCompare
|
2272
|
+
>::type
|
2273
|
+
, typename dtl::if_c< // Allocator
|
2274
|
+
dtl::is_allocator<AllocatorOrCompare>::value
|
2275
|
+
, AllocatorOrCompare
|
2276
|
+
, new_allocator<std::pair<it_based_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
|
2277
|
+
>::type
|
2278
|
+
>;
|
2279
|
+
|
2280
|
+
template < typename InputIterator, typename Compare, typename Allocator
|
2281
|
+
, typename = dtl::require_nonallocator_t<Compare>
|
2282
|
+
, typename = dtl::require_allocator_t<Allocator>>
|
2283
|
+
multimap(ordered_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
|
2284
|
+
multimap< it_based_non_const_first_type_t<InputIterator>
|
2285
|
+
, it_based_second_type_t<InputIterator>
|
2286
|
+
, Compare
|
2287
|
+
, Allocator>;
|
2288
|
+
#endif
|
2289
|
+
|
1926
2290
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1927
2291
|
|
1928
2292
|
} //namespace container {
|