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
@@ -550,6 +550,61 @@ struct is_class< std::pair
|
|
550
550
|
static const bool value = true;
|
551
551
|
};
|
552
552
|
|
553
|
+
|
554
|
+
//Triviality of pair
|
555
|
+
template<class T>
|
556
|
+
struct is_trivially_copy_constructible;
|
557
|
+
|
558
|
+
template<class A, class B>
|
559
|
+
struct is_trivially_copy_assignable
|
560
|
+
<boost::container::dtl::pair<A,B> >
|
561
|
+
{
|
562
|
+
static const bool value = boost::move_detail::is_trivially_copy_assignable<A>::value &&
|
563
|
+
boost::move_detail::is_trivially_copy_assignable<B>::value ;
|
564
|
+
};
|
565
|
+
|
566
|
+
template<class T>
|
567
|
+
struct is_trivially_move_constructible;
|
568
|
+
|
569
|
+
template<class A, class B>
|
570
|
+
struct is_trivially_move_assignable
|
571
|
+
<boost::container::dtl::pair<A,B> >
|
572
|
+
{
|
573
|
+
static const bool value = boost::move_detail::is_trivially_move_assignable<A>::value &&
|
574
|
+
boost::move_detail::is_trivially_move_assignable<B>::value ;
|
575
|
+
};
|
576
|
+
|
577
|
+
template<class T>
|
578
|
+
struct is_trivially_copy_assignable;
|
579
|
+
|
580
|
+
template<class A, class B>
|
581
|
+
struct is_trivially_copy_constructible<boost::container::dtl::pair<A,B> >
|
582
|
+
{
|
583
|
+
static const bool value = boost::move_detail::is_trivially_copy_constructible<A>::value &&
|
584
|
+
boost::move_detail::is_trivially_copy_constructible<B>::value ;
|
585
|
+
};
|
586
|
+
|
587
|
+
template<class T>
|
588
|
+
struct is_trivially_move_assignable;
|
589
|
+
|
590
|
+
template<class A, class B>
|
591
|
+
struct is_trivially_move_constructible<boost::container::dtl::pair<A,B> >
|
592
|
+
{
|
593
|
+
static const bool value = boost::move_detail::is_trivially_move_constructible<A>::value &&
|
594
|
+
boost::move_detail::is_trivially_move_constructible<B>::value ;
|
595
|
+
};
|
596
|
+
|
597
|
+
template<class T>
|
598
|
+
struct is_trivially_destructible;
|
599
|
+
|
600
|
+
template<class A, class B>
|
601
|
+
struct is_trivially_destructible<boost::container::dtl::pair<A,B> >
|
602
|
+
{
|
603
|
+
static const bool value = boost::move_detail::is_trivially_destructible<A>::value &&
|
604
|
+
boost::move_detail::is_trivially_destructible<B>::value ;
|
605
|
+
};
|
606
|
+
|
607
|
+
|
553
608
|
} //namespace move_detail{
|
554
609
|
|
555
610
|
} //namespace boost {
|
@@ -0,0 +1,181 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
2
|
+
//
|
3
|
+
// (C) Copyright Ion Gaztanaga 2018-2018. Distributed under the Boost
|
4
|
+
// Software License, Version 1.0. (See accompanying file
|
5
|
+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
+
//
|
7
|
+
// See http://www.boost.org/libs/interprocess for documentation.
|
8
|
+
//
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
10
|
+
//////////////////////////////////////////////////////////////////////////////
|
11
|
+
//
|
12
|
+
// This code is partially based on the lightweight mutex implemented
|
13
|
+
// by Boost.SmartPtr:
|
14
|
+
//
|
15
|
+
// Copyright (c) 2002, 2003 Peter Dimov
|
16
|
+
// Copyright (c) Microsoft Corporation 2014
|
17
|
+
//
|
18
|
+
// Distributed under the Boost Software License, Version 1.0. (See
|
19
|
+
// accompanying file LICENSE_1_0.txt or copy at
|
20
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
21
|
+
//
|
22
|
+
//////////////////////////////////////////////////////////////////////////////
|
23
|
+
|
24
|
+
#ifndef BOOST_CONFIG_HPP
|
25
|
+
# include <boost/config.hpp>
|
26
|
+
#endif
|
27
|
+
#
|
28
|
+
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
29
|
+
# pragma once
|
30
|
+
#endif
|
31
|
+
|
32
|
+
#ifndef BOOST_CONTAINER_DETAIL_THREAD_MUTEX_HPP
|
33
|
+
#define BOOST_CONTAINER_DETAIL_THREAD_MUTEX_HPP
|
34
|
+
|
35
|
+
#include <boost/container/detail/config_begin.hpp>
|
36
|
+
#include <boost/container/detail/workaround.hpp>
|
37
|
+
|
38
|
+
#if defined(BOOST_HAS_PTHREADS)
|
39
|
+
|
40
|
+
#include <pthread.h>
|
41
|
+
#include <boost/assert.hpp>
|
42
|
+
|
43
|
+
namespace boost{
|
44
|
+
namespace container {
|
45
|
+
namespace dtl {
|
46
|
+
|
47
|
+
class thread_mutex
|
48
|
+
{
|
49
|
+
public:
|
50
|
+
thread_mutex()
|
51
|
+
{
|
52
|
+
BOOST_VERIFY(pthread_mutex_init(&m_mut, 0) == 0);
|
53
|
+
}
|
54
|
+
|
55
|
+
~thread_mutex()
|
56
|
+
{
|
57
|
+
BOOST_VERIFY(pthread_mutex_destroy(&m_mut) == 0);
|
58
|
+
}
|
59
|
+
|
60
|
+
void lock()
|
61
|
+
{
|
62
|
+
BOOST_VERIFY(pthread_mutex_lock( &m_mut) == 0);
|
63
|
+
}
|
64
|
+
|
65
|
+
void unlock()
|
66
|
+
{
|
67
|
+
BOOST_VERIFY(pthread_mutex_unlock(&m_mut) == 0);
|
68
|
+
}
|
69
|
+
|
70
|
+
private:
|
71
|
+
thread_mutex(thread_mutex const &);
|
72
|
+
thread_mutex & operator=(thread_mutex const &);
|
73
|
+
|
74
|
+
pthread_mutex_t m_mut;
|
75
|
+
};
|
76
|
+
|
77
|
+
} // namespace dtl {
|
78
|
+
} // namespace container {
|
79
|
+
} // namespace boost {
|
80
|
+
|
81
|
+
#else //!BOOST_HAS_PTHREADS (Windows implementation)
|
82
|
+
|
83
|
+
#ifdef BOOST_USE_WINDOWS_H
|
84
|
+
|
85
|
+
#include <windows.h>
|
86
|
+
|
87
|
+
namespace boost{
|
88
|
+
namespace container {
|
89
|
+
namespace dtl {
|
90
|
+
|
91
|
+
typedef ::CRITICAL_SECTION win_critical_section;
|
92
|
+
|
93
|
+
} // namespace dtl {
|
94
|
+
} // namespace container {
|
95
|
+
} // namespace boost {
|
96
|
+
|
97
|
+
#else //! BOOST_USE_WINDOWS_H
|
98
|
+
|
99
|
+
struct _RTL_CRITICAL_SECTION_DEBUG;
|
100
|
+
struct _RTL_CRITICAL_SECTION;
|
101
|
+
|
102
|
+
namespace boost{
|
103
|
+
namespace container {
|
104
|
+
namespace dtl {
|
105
|
+
|
106
|
+
#ifdef BOOST_PLAT_WINDOWS_UWP
|
107
|
+
extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSectionEx(::_RTL_CRITICAL_SECTION *, unsigned long, unsigned long);
|
108
|
+
#else
|
109
|
+
extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(::_RTL_CRITICAL_SECTION *);
|
110
|
+
#endif
|
111
|
+
extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(::_RTL_CRITICAL_SECTION *);
|
112
|
+
extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(::_RTL_CRITICAL_SECTION *);
|
113
|
+
extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(::_RTL_CRITICAL_SECTION *);
|
114
|
+
|
115
|
+
struct win_critical_section
|
116
|
+
{
|
117
|
+
struct _RTL_CRITICAL_SECTION_DEBUG * DebugInfo;
|
118
|
+
long LockCount;
|
119
|
+
long RecursionCount;
|
120
|
+
void * OwningThread;
|
121
|
+
void * LockSemaphore;
|
122
|
+
#if defined(_WIN64)
|
123
|
+
unsigned __int64 SpinCount;
|
124
|
+
#else
|
125
|
+
unsigned long SpinCount;
|
126
|
+
#endif
|
127
|
+
};
|
128
|
+
|
129
|
+
} // namespace dtl {
|
130
|
+
} // namespace container {
|
131
|
+
} // namespace boost {
|
132
|
+
|
133
|
+
#endif //BOOST_USE_WINDOWS_H
|
134
|
+
|
135
|
+
namespace boost{
|
136
|
+
namespace container {
|
137
|
+
namespace dtl {
|
138
|
+
|
139
|
+
class thread_mutex
|
140
|
+
{
|
141
|
+
public:
|
142
|
+
thread_mutex()
|
143
|
+
{
|
144
|
+
#ifdef BOOST_PLAT_WINDOWS_UWP
|
145
|
+
InitializeCriticalSectionEx(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect), 4000, 0);
|
146
|
+
#else
|
147
|
+
InitializeCriticalSection(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect));
|
148
|
+
#endif
|
149
|
+
}
|
150
|
+
|
151
|
+
void lock()
|
152
|
+
{
|
153
|
+
EnterCriticalSection(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect));
|
154
|
+
}
|
155
|
+
|
156
|
+
void unlock()
|
157
|
+
{
|
158
|
+
LeaveCriticalSection(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect));
|
159
|
+
}
|
160
|
+
|
161
|
+
~thread_mutex()
|
162
|
+
{
|
163
|
+
DeleteCriticalSection(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect));
|
164
|
+
}
|
165
|
+
|
166
|
+
private:
|
167
|
+
thread_mutex(thread_mutex const &);
|
168
|
+
thread_mutex & operator=(thread_mutex const &);
|
169
|
+
|
170
|
+
win_critical_section m_crit_sect;
|
171
|
+
};
|
172
|
+
|
173
|
+
} // namespace dtl {
|
174
|
+
} // namespace container {
|
175
|
+
} // namespace boost {
|
176
|
+
|
177
|
+
#endif //BOOST_HAS_PTHREADS
|
178
|
+
|
179
|
+
#include <boost/container/detail/config_end.hpp>
|
180
|
+
|
181
|
+
#endif // #ifndef BOOST_CONTAINER_DETAIL_THREAD_MUTEX_HPP
|
@@ -125,10 +125,6 @@ template |
|
125
125
|
struct tree_node
|
126
126
|
: public intrusive_tree_hook<VoidPointer, tree_type_value, OptimizeSize>::type
|
127
127
|
{
|
128
|
-
private:
|
129
|
-
//BOOST_COPYABLE_AND_MOVABLE(tree_node)
|
130
|
-
tree_node();
|
131
|
-
|
132
128
|
public:
|
133
129
|
typedef typename intrusive_tree_hook
|
134
130
|
<VoidPointer, tree_type_value, OptimizeSize>::type hook_type;
|
@@ -138,55 +134,86 @@ struct tree_node
|
|
138
134
|
typedef tree_node< T, VoidPointer
|
139
135
|
, tree_type_value, OptimizeSize> node_t;
|
140
136
|
|
137
|
+
typedef typename boost::container::dtl::aligned_storage
|
138
|
+
<sizeof(T), boost::container::dtl::alignment_of<T>::value>::type storage_t;
|
139
|
+
storage_t m_storage;
|
140
|
+
|
141
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) && (BOOST_GCC < 80000)
|
142
|
+
#pragma GCC diagnostic push
|
143
|
+
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
|
144
|
+
#define BOOST_CONTAINER_DISABLE_ALIASING_WARNING
|
145
|
+
# endif
|
146
|
+
|
141
147
|
BOOST_CONTAINER_FORCEINLINE T &get_data()
|
142
|
-
{
|
143
|
-
T* ptr = reinterpret_cast<T*>(&this->m_data);
|
144
|
-
return *ptr;
|
145
|
-
}
|
148
|
+
{ return *reinterpret_cast<T*>(this->m_storage.data); }
|
146
149
|
|
147
150
|
BOOST_CONTAINER_FORCEINLINE const T &get_data() const
|
148
|
-
{
|
149
|
-
|
150
|
-
|
151
|
-
}
|
151
|
+
{ return *reinterpret_cast<const T*>(this->m_storage.data); }
|
152
|
+
|
153
|
+
BOOST_CONTAINER_FORCEINLINE T *get_data_ptr()
|
154
|
+
{ return reinterpret_cast<T*>(this->m_storage.data); }
|
152
155
|
|
153
|
-
|
156
|
+
BOOST_CONTAINER_FORCEINLINE const T *get_data_ptr() const
|
157
|
+
{ return reinterpret_cast<T*>(this->m_storage.data); }
|
158
|
+
|
159
|
+
BOOST_CONTAINER_FORCEINLINE internal_type &get_real_data()
|
160
|
+
{ return *reinterpret_cast<internal_type*>(this->m_storage.data); }
|
161
|
+
|
162
|
+
BOOST_CONTAINER_FORCEINLINE const internal_type &get_real_data() const
|
163
|
+
{ return *reinterpret_cast<const internal_type*>(this->m_storage.data); }
|
164
|
+
|
165
|
+
BOOST_CONTAINER_FORCEINLINE internal_type *get_real_data_ptr()
|
166
|
+
{ return reinterpret_cast<internal_type*>(this->m_storage.data); }
|
167
|
+
|
168
|
+
BOOST_CONTAINER_FORCEINLINE const internal_type *get_real_data_ptr() const
|
169
|
+
{ return reinterpret_cast<internal_type*>(this->m_storage.data); }
|
170
|
+
|
171
|
+
BOOST_CONTAINER_FORCEINLINE ~tree_node()
|
172
|
+
{ reinterpret_cast<internal_type*>(this->m_storage.data)->~internal_type(); }
|
173
|
+
|
174
|
+
#if defined(BOOST_CONTAINER_DISABLE_ALIASING_WARNING)
|
175
|
+
#pragma GCC diagnostic pop
|
176
|
+
#undef BOOST_CONTAINER_DISABLE_ALIASING_WARNING
|
177
|
+
# endif
|
178
|
+
|
179
|
+
BOOST_CONTAINER_FORCEINLINE void destroy_header()
|
180
|
+
{ static_cast<hook_type*>(this)->~hook_type(); }
|
154
181
|
|
155
182
|
template<class T1, class T2>
|
156
183
|
BOOST_CONTAINER_FORCEINLINE void do_assign(const std::pair<const T1, T2> &p)
|
157
184
|
{
|
158
|
-
const_cast<T1&>(
|
159
|
-
|
185
|
+
const_cast<T1&>(this->get_real_data().first) = p.first;
|
186
|
+
this->get_real_data().second = p.second;
|
160
187
|
}
|
161
188
|
|
162
189
|
template<class T1, class T2>
|
163
190
|
BOOST_CONTAINER_FORCEINLINE void do_assign(const pair<const T1, T2> &p)
|
164
191
|
{
|
165
|
-
const_cast<T1&>(
|
166
|
-
|
192
|
+
const_cast<T1&>(this->get_real_data().first) = p.first;
|
193
|
+
this->get_real_data().second = p.second;
|
167
194
|
}
|
168
195
|
|
169
196
|
template<class V>
|
170
197
|
BOOST_CONTAINER_FORCEINLINE void do_assign(const V &v)
|
171
|
-
{
|
198
|
+
{ this->get_real_data() = v; }
|
172
199
|
|
173
200
|
template<class T1, class T2>
|
174
201
|
BOOST_CONTAINER_FORCEINLINE void do_move_assign(std::pair<const T1, T2> &p)
|
175
202
|
{
|
176
|
-
const_cast<T1&>(
|
177
|
-
|
203
|
+
const_cast<T1&>(this->get_real_data().first) = ::boost::move(p.first);
|
204
|
+
this->get_real_data().second = ::boost::move(p.second);
|
178
205
|
}
|
179
206
|
|
180
207
|
template<class T1, class T2>
|
181
208
|
BOOST_CONTAINER_FORCEINLINE void do_move_assign(pair<const T1, T2> &p)
|
182
209
|
{
|
183
|
-
const_cast<T1&>(
|
184
|
-
|
210
|
+
const_cast<T1&>(this->get_real_data().first) = ::boost::move(p.first);
|
211
|
+
this->get_real_data().second = ::boost::move(p.second);
|
185
212
|
}
|
186
213
|
|
187
214
|
template<class V>
|
188
215
|
BOOST_CONTAINER_FORCEINLINE void do_move_assign(V &v)
|
189
|
-
{
|
216
|
+
{ this->get_real_data() = ::boost::move(v); }
|
190
217
|
};
|
191
218
|
|
192
219
|
template <class T, class VoidPointer, boost::container::tree_type_enum tree_type_value, bool OptimizeSize>
|
@@ -361,10 +388,10 @@ class RecyclingCloner
|
|
361
388
|
{}
|
362
389
|
|
363
390
|
BOOST_CONTAINER_FORCEINLINE static void do_assign(node_ptr_type &p, const node_t &other, bool_<true>)
|
364
|
-
{ p->do_move_assign(const_cast<node_t &>(other).
|
391
|
+
{ p->do_move_assign(const_cast<node_t &>(other).get_real_data()); }
|
365
392
|
|
366
393
|
BOOST_CONTAINER_FORCEINLINE static void do_assign(node_ptr_type &p, const node_t &other, bool_<false>)
|
367
|
-
{ p->do_assign(other.
|
394
|
+
{ p->do_assign(other.get_real_data()); }
|
368
395
|
|
369
396
|
node_ptr_type operator()(const node_t &other) const
|
370
397
|
{
|
@@ -386,7 +413,7 @@ class RecyclingCloner
|
|
386
413
|
BOOST_CATCH_END
|
387
414
|
}
|
388
415
|
else{
|
389
|
-
return m_holder.create_node(other.
|
416
|
+
return m_holder.create_node(other.get_real_data());
|
390
417
|
}
|
391
418
|
}
|
392
419
|
|
@@ -394,6 +421,7 @@ class RecyclingCloner
|
|
394
421
|
intrusive_container &m_icont;
|
395
422
|
};
|
396
423
|
|
424
|
+
|
397
425
|
template<class KeyCompare, class KeyOfValue>
|
398
426
|
struct key_node_compare
|
399
427
|
: public boost::intrusive::detail::ebo_functor_holder<KeyCompare>
|
@@ -407,6 +435,21 @@ struct key_node_compare
|
|
407
435
|
typedef KeyOfValue key_of_value;
|
408
436
|
typedef typename KeyOfValue::type key_type;
|
409
437
|
|
438
|
+
|
439
|
+
template <class T, class VoidPointer, boost::container::tree_type_enum tree_type_value, bool OptimizeSize>
|
440
|
+
BOOST_CONTAINER_FORCEINLINE static const key_type &
|
441
|
+
key_from(const tree_node<T, VoidPointer, tree_type_value, OptimizeSize> &n)
|
442
|
+
{
|
443
|
+
return key_of_value()(n.get_data());
|
444
|
+
}
|
445
|
+
|
446
|
+
template <class T>
|
447
|
+
BOOST_CONTAINER_FORCEINLINE static const T &
|
448
|
+
key_from(const T &t)
|
449
|
+
{
|
450
|
+
return t;
|
451
|
+
}
|
452
|
+
|
410
453
|
BOOST_CONTAINER_FORCEINLINE const key_compare &key_comp() const
|
411
454
|
{ return static_cast<const key_compare &>(*this); }
|
412
455
|
|
@@ -418,15 +461,15 @@ struct key_node_compare
|
|
418
461
|
|
419
462
|
template<class U>
|
420
463
|
BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const U &nonkey2) const
|
421
|
-
{ return this->key_comp()(key1,
|
464
|
+
{ return this->key_comp()(key1, this->key_from(nonkey2)); }
|
422
465
|
|
423
466
|
template<class U>
|
424
467
|
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const key_type &key2) const
|
425
|
-
{ return this->key_comp()(
|
468
|
+
{ return this->key_comp()(this->key_from(nonkey1), key2); }
|
426
469
|
|
427
470
|
template<class U, class V>
|
428
471
|
BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const V &nonkey2) const
|
429
|
-
{ return this->key_comp()(
|
472
|
+
{ return this->key_comp()(this->key_from(nonkey1), this->key_from(nonkey2)); }
|
430
473
|
};
|
431
474
|
|
432
475
|
template<class Options>
|
@@ -1260,21 +1303,72 @@ class tree
|
|
1260
1303
|
BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& k) const
|
1261
1304
|
{ return const_iterator(this->non_const_icont().find(k, KeyNodeCompare(key_comp()))); }
|
1262
1305
|
|
1306
|
+
template <class K>
|
1307
|
+
BOOST_CONTAINER_FORCEINLINE
|
1308
|
+
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1309
|
+
find(const K& k)
|
1310
|
+
{ return iterator(this->icont().find(k, KeyNodeCompare(key_comp()))); }
|
1311
|
+
|
1312
|
+
template <class K>
|
1313
|
+
BOOST_CONTAINER_FORCEINLINE
|
1314
|
+
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1315
|
+
find(const K& k) const
|
1316
|
+
{ return const_iterator(this->non_const_icont().find(k, KeyNodeCompare(key_comp()))); }
|
1317
|
+
|
1263
1318
|
BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& k) const
|
1264
1319
|
{ return size_type(this->icont().count(k, KeyNodeCompare(key_comp()))); }
|
1265
1320
|
|
1321
|
+
template <class K>
|
1322
|
+
BOOST_CONTAINER_FORCEINLINE
|
1323
|
+
typename dtl::enable_if_transparent<key_compare, K, size_type>::type
|
1324
|
+
count(const K& k) const
|
1325
|
+
{ return size_type(this->icont().count(k, KeyNodeCompare(key_comp()))); }
|
1326
|
+
|
1327
|
+
BOOST_CONTAINER_FORCEINLINE bool contains(const key_type& x) const
|
1328
|
+
{ return this->find(x) != this->cend(); }
|
1329
|
+
|
1330
|
+
template<typename K>
|
1331
|
+
BOOST_CONTAINER_FORCEINLINE
|
1332
|
+
typename dtl::enable_if_transparent<key_compare, K, bool>::type
|
1333
|
+
contains(const K& x) const
|
1334
|
+
{ return this->find(x) != this->cend(); }
|
1335
|
+
|
1266
1336
|
BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const key_type& k)
|
1267
1337
|
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1268
1338
|
|
1269
1339
|
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& k) const
|
1270
1340
|
{ return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1271
1341
|
|
1342
|
+
template <class K>
|
1343
|
+
BOOST_CONTAINER_FORCEINLINE
|
1344
|
+
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1345
|
+
lower_bound(const K& k)
|
1346
|
+
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1347
|
+
|
1348
|
+
template <class K>
|
1349
|
+
BOOST_CONTAINER_FORCEINLINE
|
1350
|
+
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1351
|
+
lower_bound(const K& k) const
|
1352
|
+
{ return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
|
1353
|
+
|
1272
1354
|
BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const key_type& k)
|
1273
1355
|
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1274
1356
|
|
1275
1357
|
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& k) const
|
1276
1358
|
{ return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1277
1359
|
|
1360
|
+
template <class K>
|
1361
|
+
BOOST_CONTAINER_FORCEINLINE
|
1362
|
+
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
|
1363
|
+
upper_bound(const K& k)
|
1364
|
+
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1365
|
+
|
1366
|
+
template <class K>
|
1367
|
+
BOOST_CONTAINER_FORCEINLINE
|
1368
|
+
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::type
|
1369
|
+
upper_bound(const K& k) const
|
1370
|
+
{ return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
|
1371
|
+
|
1278
1372
|
std::pair<iterator,iterator> equal_range(const key_type& k)
|
1279
1373
|
{
|
1280
1374
|
std::pair<iiterator, iiterator> ret =
|
@@ -1290,6 +1384,27 @@ class tree
|
|
1290
1384
|
(const_iterator(ret.first), const_iterator(ret.second));
|
1291
1385
|
}
|
1292
1386
|
|
1387
|
+
template <class K>
|
1388
|
+
BOOST_CONTAINER_FORCEINLINE
|
1389
|
+
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
|
1390
|
+
equal_range(const K& k)
|
1391
|
+
{
|
1392
|
+
std::pair<iiterator, iiterator> ret =
|
1393
|
+
this->icont().equal_range(k, KeyNodeCompare(key_comp()));
|
1394
|
+
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
1395
|
+
}
|
1396
|
+
|
1397
|
+
template <class K>
|
1398
|
+
BOOST_CONTAINER_FORCEINLINE
|
1399
|
+
typename dtl::enable_if_transparent<key_compare, K, std::pair<const_iterator, const_iterator> >::type
|
1400
|
+
equal_range(const K& k) const
|
1401
|
+
{
|
1402
|
+
std::pair<iiterator, iiterator> ret =
|
1403
|
+
this->non_const_icont().equal_range(k, KeyNodeCompare(key_comp()));
|
1404
|
+
return std::pair<const_iterator,const_iterator>
|
1405
|
+
(const_iterator(ret.first), const_iterator(ret.second));
|
1406
|
+
}
|
1407
|
+
|
1293
1408
|
std::pair<iterator,iterator> lower_bound_range(const key_type& k)
|
1294
1409
|
{
|
1295
1410
|
std::pair<iiterator, iiterator> ret =
|
@@ -1305,6 +1420,27 @@ class tree
|
|
1305
1420
|
(const_iterator(ret.first), const_iterator(ret.second));
|
1306
1421
|
}
|
1307
1422
|
|
1423
|
+
template <class K>
|
1424
|
+
BOOST_CONTAINER_FORCEINLINE
|
1425
|
+
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
|
1426
|
+
lower_bound_range(const K& k)
|
1427
|
+
{
|
1428
|
+
std::pair<iiterator, iiterator> ret =
|
1429
|
+
this->icont().lower_bound_range(k, KeyNodeCompare(key_comp()));
|
1430
|
+
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
1431
|
+
}
|
1432
|
+
|
1433
|
+
template <class K>
|
1434
|
+
BOOST_CONTAINER_FORCEINLINE
|
1435
|
+
typename dtl::enable_if_transparent<key_compare, K, std::pair<const_iterator, const_iterator> >::type
|
1436
|
+
lower_bound_range(const K& k) const
|
1437
|
+
{
|
1438
|
+
std::pair<iiterator, iiterator> ret =
|
1439
|
+
this->non_const_icont().lower_bound_range(k, KeyNodeCompare(key_comp()));
|
1440
|
+
return std::pair<const_iterator,const_iterator>
|
1441
|
+
(const_iterator(ret.first), const_iterator(ret.second));
|
1442
|
+
}
|
1443
|
+
|
1308
1444
|
BOOST_CONTAINER_FORCEINLINE void rebalance()
|
1309
1445
|
{ intrusive_tree_proxy_t::rebalance(this->icont()); }
|
1310
1446
|
|
@@ -1327,6 +1463,8 @@ class tree
|
|
1327
1463
|
{ return !(x < y); }
|
1328
1464
|
|
1329
1465
|
BOOST_CONTAINER_FORCEINLINE friend void swap(tree& x, tree& y)
|
1466
|
+
BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
|
1467
|
+
&& boost::container::dtl::is_nothrow_swappable<Compare>::value )
|
1330
1468
|
{ x.swap(y); }
|
1331
1469
|
};
|
1332
1470
|
|