passenger 6.0.16 → 6.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +22 -1
- data/build/integration_tests.rb +6 -6
- data/build/ruby_tests.rb +1 -1
- data/build/test_basics.rb +0 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +686 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +81 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +68 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +46 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +30 -305
- data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +17 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +98 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +81 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +19 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +14 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +4 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +22 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +447 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +51 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +41 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +6 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +146 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +35 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +89 -66
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +66 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1134 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +130 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +377 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +168 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +149 -203
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +256 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +76 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +40 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +34 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +28 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +21 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +40 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +27 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +104 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +70 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +38 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +27 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +17 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +80 -95
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +738 -34
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +38 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1150 -1213
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +104 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +31 -331
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +461 -566
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +32 -4
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +159 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +45 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +37 -38
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +145 -90
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +38 -43
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +37 -7
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +1921 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +66 -82
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +732 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +586 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +166 -66
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +145 -28
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
- data/src/ruby_native_extension/extconf.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- metadata +36 -19
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
- data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
@@ -45,7 +45,7 @@
|
|
45
45
|
|
46
46
|
namespace boost { namespace container { namespace dtl {
|
47
47
|
|
48
|
-
template<class Allocator, class FwdIt
|
48
|
+
template<class Allocator, class FwdIt>
|
49
49
|
struct move_insert_range_proxy
|
50
50
|
{
|
51
51
|
typedef typename allocator_traits<Allocator>::value_type value_type;
|
@@ -54,12 +54,14 @@ struct move_insert_range_proxy
|
|
54
54
|
: first_(first)
|
55
55
|
{}
|
56
56
|
|
57
|
+
template<class Iterator>
|
57
58
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
|
58
59
|
{
|
59
60
|
this->first_ = ::boost::container::uninitialized_move_alloc_n_source
|
60
61
|
(a, this->first_, n, p);
|
61
62
|
}
|
62
63
|
|
64
|
+
template<class Iterator>
|
63
65
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n)
|
64
66
|
{
|
65
67
|
this->first_ = ::boost::container::move_n_source(this->first_, n, p);
|
@@ -69,7 +71,7 @@ struct move_insert_range_proxy
|
|
69
71
|
};
|
70
72
|
|
71
73
|
|
72
|
-
template<class Allocator, class FwdIt
|
74
|
+
template<class Allocator, class FwdIt>
|
73
75
|
struct insert_range_proxy
|
74
76
|
{
|
75
77
|
typedef typename allocator_traits<Allocator>::value_type value_type;
|
@@ -78,11 +80,13 @@ struct insert_range_proxy
|
|
78
80
|
: first_(first)
|
79
81
|
{}
|
80
82
|
|
83
|
+
template<class Iterator>
|
81
84
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
|
82
85
|
{
|
83
86
|
this->first_ = ::boost::container::uninitialized_copy_alloc_n_source(a, this->first_, n, p);
|
84
87
|
}
|
85
88
|
|
89
|
+
template<class Iterator>
|
86
90
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n)
|
87
91
|
{
|
88
92
|
this->first_ = ::boost::container::copy_n_source(this->first_, n, p);
|
@@ -92,7 +96,7 @@ struct insert_range_proxy
|
|
92
96
|
};
|
93
97
|
|
94
98
|
|
95
|
-
template<class Allocator
|
99
|
+
template<class Allocator>
|
96
100
|
struct insert_n_copies_proxy
|
97
101
|
{
|
98
102
|
typedef typename allocator_traits<Allocator>::value_type value_type;
|
@@ -101,9 +105,11 @@ struct insert_n_copies_proxy
|
|
101
105
|
: v_(v)
|
102
106
|
{}
|
103
107
|
|
108
|
+
template<class Iterator>
|
104
109
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
105
110
|
{ boost::container::uninitialized_fill_alloc_n(a, v_, n, p); }
|
106
111
|
|
112
|
+
template<class Iterator>
|
107
113
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
|
108
114
|
{
|
109
115
|
while (n){
|
@@ -116,16 +122,18 @@ struct insert_n_copies_proxy
|
|
116
122
|
const value_type &v_;
|
117
123
|
};
|
118
124
|
|
119
|
-
template<class Allocator
|
125
|
+
template<class Allocator>
|
120
126
|
struct insert_value_initialized_n_proxy
|
121
127
|
{
|
122
128
|
typedef ::boost::container::allocator_traits<Allocator> alloc_traits;
|
123
129
|
typedef typename allocator_traits<Allocator>::value_type value_type;
|
124
130
|
typedef typename dtl::aligned_storage<sizeof(value_type), dtl::alignment_of<value_type>::value>::type storage_t;
|
125
131
|
|
132
|
+
template<class Iterator>
|
126
133
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
127
134
|
{ boost::container::uninitialized_value_init_alloc_n(a, n, p); }
|
128
135
|
|
136
|
+
template<class Iterator>
|
129
137
|
void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
130
138
|
{
|
131
139
|
while (n){
|
@@ -140,16 +148,18 @@ struct insert_value_initialized_n_proxy
|
|
140
148
|
}
|
141
149
|
};
|
142
150
|
|
143
|
-
template<class Allocator
|
151
|
+
template<class Allocator>
|
144
152
|
struct insert_default_initialized_n_proxy
|
145
153
|
{
|
146
154
|
typedef ::boost::container::allocator_traits<Allocator> alloc_traits;
|
147
155
|
typedef typename allocator_traits<Allocator>::value_type value_type;
|
148
156
|
typedef typename dtl::aligned_storage<sizeof(value_type), dtl::alignment_of<value_type>::value>::type storage_t;
|
149
157
|
|
158
|
+
template<class Iterator>
|
150
159
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
151
160
|
{ boost::container::uninitialized_default_init_alloc_n(a, n, p); }
|
152
161
|
|
162
|
+
template<class Iterator>
|
153
163
|
void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
154
164
|
{
|
155
165
|
if(!is_pod<value_type>::value){
|
@@ -166,7 +176,7 @@ struct insert_default_initialized_n_proxy
|
|
166
176
|
}
|
167
177
|
};
|
168
178
|
|
169
|
-
template<class Allocator
|
179
|
+
template<class Allocator>
|
170
180
|
struct insert_copy_proxy
|
171
181
|
{
|
172
182
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;
|
@@ -178,12 +188,14 @@ struct insert_copy_proxy
|
|
178
188
|
: v_(v)
|
179
189
|
{}
|
180
190
|
|
191
|
+
template<class Iterator>
|
181
192
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
182
193
|
{
|
183
194
|
BOOST_ASSERT(n == 1); (void)n;
|
184
195
|
alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), v_);
|
185
196
|
}
|
186
197
|
|
198
|
+
template<class Iterator>
|
187
199
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
|
188
200
|
{
|
189
201
|
BOOST_ASSERT(n == 1); (void)n;
|
@@ -194,7 +206,7 @@ struct insert_copy_proxy
|
|
194
206
|
};
|
195
207
|
|
196
208
|
|
197
|
-
template<class Allocator
|
209
|
+
template<class Allocator>
|
198
210
|
struct insert_move_proxy
|
199
211
|
{
|
200
212
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;
|
@@ -206,12 +218,14 @@ struct insert_move_proxy
|
|
206
218
|
: v_(v)
|
207
219
|
{}
|
208
220
|
|
221
|
+
template<class Iterator>
|
209
222
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const
|
210
223
|
{
|
211
224
|
BOOST_ASSERT(n == 1); (void)n;
|
212
225
|
alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::move(v_) );
|
213
226
|
}
|
214
227
|
|
228
|
+
template<class Iterator>
|
215
229
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const
|
216
230
|
{
|
217
231
|
BOOST_ASSERT(n == 1); (void)n;
|
@@ -222,15 +236,15 @@ struct insert_move_proxy
|
|
222
236
|
};
|
223
237
|
|
224
238
|
template<class It, class Allocator>
|
225
|
-
BOOST_CONTAINER_FORCEINLINE insert_move_proxy<Allocator
|
239
|
+
BOOST_CONTAINER_FORCEINLINE insert_move_proxy<Allocator> get_insert_value_proxy(BOOST_RV_REF(typename boost::container::iterator_traits<It>::value_type) v)
|
226
240
|
{
|
227
|
-
return insert_move_proxy<Allocator
|
241
|
+
return insert_move_proxy<Allocator>(v);
|
228
242
|
}
|
229
243
|
|
230
244
|
template<class It, class Allocator>
|
231
|
-
BOOST_CONTAINER_FORCEINLINE insert_copy_proxy<Allocator
|
245
|
+
BOOST_CONTAINER_FORCEINLINE insert_copy_proxy<Allocator> get_insert_value_proxy(const typename boost::container::iterator_traits<It>::value_type &v)
|
232
246
|
{
|
233
|
-
return insert_copy_proxy<Allocator
|
247
|
+
return insert_copy_proxy<Allocator>(v);
|
234
248
|
}
|
235
249
|
|
236
250
|
}}} //namespace boost { namespace container { namespace dtl {
|
@@ -244,7 +258,7 @@ namespace boost {
|
|
244
258
|
namespace container {
|
245
259
|
namespace dtl {
|
246
260
|
|
247
|
-
template<class Allocator, class
|
261
|
+
template<class Allocator, class ...Args>
|
248
262
|
struct insert_nonmovable_emplace_proxy
|
249
263
|
{
|
250
264
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;
|
@@ -257,11 +271,12 @@ struct insert_nonmovable_emplace_proxy
|
|
257
271
|
: args_(args...)
|
258
272
|
{}
|
259
273
|
|
274
|
+
template<class Iterator>
|
260
275
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
|
261
276
|
{ this->priv_uninitialized_copy_some_and_update(a, index_tuple_t(), p, n); }
|
262
277
|
|
263
278
|
private:
|
264
|
-
template<std::size_t ...IdxPack>
|
279
|
+
template<std::size_t ...IdxPack, class Iterator>
|
265
280
|
BOOST_CONTAINER_FORCEINLINE void priv_uninitialized_copy_some_and_update(Allocator &a, const index_tuple<IdxPack...>&, Iterator p, std::size_t n)
|
266
281
|
{
|
267
282
|
BOOST_ASSERT(n == 1); (void)n;
|
@@ -272,11 +287,11 @@ struct insert_nonmovable_emplace_proxy
|
|
272
287
|
tuple<Args&...> args_;
|
273
288
|
};
|
274
289
|
|
275
|
-
template<class Allocator, class
|
290
|
+
template<class Allocator, class ...Args>
|
276
291
|
struct insert_emplace_proxy
|
277
|
-
: public insert_nonmovable_emplace_proxy<Allocator,
|
292
|
+
: public insert_nonmovable_emplace_proxy<Allocator, Args...>
|
278
293
|
{
|
279
|
-
typedef insert_nonmovable_emplace_proxy<Allocator,
|
294
|
+
typedef insert_nonmovable_emplace_proxy<Allocator, Args...> base_t;
|
280
295
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;
|
281
296
|
typedef typename base_t::value_type value_type;
|
282
297
|
typedef typename base_t::index_tuple_t index_tuple_t;
|
@@ -287,12 +302,13 @@ struct insert_emplace_proxy
|
|
287
302
|
: base_t(::boost::forward<Args>(args)...)
|
288
303
|
{}
|
289
304
|
|
305
|
+
template<class Iterator>
|
290
306
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n)
|
291
307
|
{ this->priv_copy_some_and_update(a, index_tuple_t(), p, n); }
|
292
308
|
|
293
309
|
private:
|
294
310
|
|
295
|
-
template<std::size_t ...IdxPack>
|
311
|
+
template<std::size_t ...IdxPack, class Iterator>
|
296
312
|
BOOST_CONTAINER_FORCEINLINE void priv_copy_some_and_update(Allocator &a, const index_tuple<IdxPack...>&, Iterator p, std::size_t n)
|
297
313
|
{
|
298
314
|
BOOST_ASSERT(n ==1); (void)n;
|
@@ -312,55 +328,55 @@ struct insert_emplace_proxy
|
|
312
328
|
};
|
313
329
|
|
314
330
|
//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
|
315
|
-
template<class Allocator
|
316
|
-
struct insert_emplace_proxy<Allocator,
|
317
|
-
: public insert_move_proxy<Allocator
|
331
|
+
template<class Allocator>
|
332
|
+
struct insert_emplace_proxy<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
|
333
|
+
: public insert_move_proxy<Allocator>
|
318
334
|
{
|
319
335
|
static const bool single_value = true;
|
320
336
|
|
321
337
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(typename boost::container::allocator_traits<Allocator>::value_type &&v)
|
322
|
-
: insert_move_proxy<Allocator
|
338
|
+
: insert_move_proxy<Allocator>(v)
|
323
339
|
{}
|
324
340
|
};
|
325
341
|
|
326
342
|
//We use "add_const" here as adding "const" only confuses MSVC12(and maybe later) provoking
|
327
343
|
//compiler error C2752 ("more than one partial specialization matches").
|
328
344
|
//Any problem is solvable with an extra layer of indirection? ;-)
|
329
|
-
template<class Allocator
|
330
|
-
struct insert_emplace_proxy<Allocator
|
345
|
+
template<class Allocator>
|
346
|
+
struct insert_emplace_proxy<Allocator
|
331
347
|
, typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type
|
332
348
|
>
|
333
|
-
: public insert_copy_proxy<Allocator
|
349
|
+
: public insert_copy_proxy<Allocator>
|
334
350
|
{
|
335
351
|
|
336
352
|
static const bool single_value = true;
|
337
353
|
|
338
354
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
339
|
-
: insert_copy_proxy<Allocator
|
355
|
+
: insert_copy_proxy<Allocator>(v)
|
340
356
|
{}
|
341
357
|
};
|
342
358
|
|
343
|
-
template<class Allocator
|
344
|
-
struct insert_emplace_proxy<Allocator,
|
345
|
-
: public insert_copy_proxy<Allocator
|
359
|
+
template<class Allocator>
|
360
|
+
struct insert_emplace_proxy<Allocator, typename boost::container::allocator_traits<Allocator>::value_type &>
|
361
|
+
: public insert_copy_proxy<Allocator>
|
346
362
|
{
|
347
363
|
static const bool single_value = true;
|
348
364
|
|
349
365
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
350
|
-
: insert_copy_proxy<Allocator
|
366
|
+
: insert_copy_proxy<Allocator>(v)
|
351
367
|
{}
|
352
368
|
};
|
353
369
|
|
354
|
-
template<class Allocator
|
355
|
-
struct insert_emplace_proxy<Allocator
|
370
|
+
template<class Allocator>
|
371
|
+
struct insert_emplace_proxy<Allocator
|
356
372
|
, typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type &
|
357
373
|
>
|
358
|
-
: public insert_copy_proxy<Allocator
|
374
|
+
: public insert_copy_proxy<Allocator>
|
359
375
|
{
|
360
376
|
static const bool single_value = true;
|
361
377
|
|
362
378
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
363
|
-
: insert_copy_proxy<Allocator
|
379
|
+
: insert_copy_proxy<Allocator>(v)
|
364
380
|
{}
|
365
381
|
};
|
366
382
|
|
@@ -375,7 +391,7 @@ namespace container {
|
|
375
391
|
namespace dtl {
|
376
392
|
|
377
393
|
#define BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE(N) \
|
378
|
-
template< class Allocator
|
394
|
+
template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
379
395
|
struct insert_nonmovable_emplace_proxy##N\
|
380
396
|
{\
|
381
397
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;\
|
@@ -386,12 +402,14 @@ struct insert_nonmovable_emplace_proxy##N\
|
|
386
402
|
BOOST_CONTAINER_FORCEINLINE explicit insert_nonmovable_emplace_proxy##N(BOOST_MOVE_UREF##N)\
|
387
403
|
BOOST_MOVE_COLON##N BOOST_MOVE_FWD_INIT##N {}\
|
388
404
|
\
|
405
|
+
template<class Iterator>\
|
389
406
|
BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\
|
390
407
|
{\
|
391
408
|
BOOST_ASSERT(n == 1); (void)n;\
|
392
409
|
alloc_traits::construct(a, boost::movelib::iterator_to_raw_pointer(p) BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\
|
393
410
|
}\
|
394
411
|
\
|
412
|
+
template<class Iterator>\
|
395
413
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator, std::size_t)\
|
396
414
|
{ BOOST_ASSERT(false); }\
|
397
415
|
\
|
@@ -399,12 +417,12 @@ struct insert_nonmovable_emplace_proxy##N\
|
|
399
417
|
BOOST_MOVE_MREF##N\
|
400
418
|
};\
|
401
419
|
\
|
402
|
-
template< class Allocator
|
420
|
+
template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
|
403
421
|
struct insert_emplace_proxy_arg##N\
|
404
|
-
: insert_nonmovable_emplace_proxy##N< Allocator
|
422
|
+
: insert_nonmovable_emplace_proxy##N< Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N >\
|
405
423
|
{\
|
406
424
|
typedef insert_nonmovable_emplace_proxy##N\
|
407
|
-
< Allocator
|
425
|
+
< Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N > base_t;\
|
408
426
|
typedef typename base_t::value_type value_type;\
|
409
427
|
typedef boost::container::allocator_traits<Allocator> alloc_traits;\
|
410
428
|
\
|
@@ -413,6 +431,7 @@ struct insert_emplace_proxy_arg##N\
|
|
413
431
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg##N(BOOST_MOVE_UREF##N)\
|
414
432
|
: base_t(BOOST_MOVE_FWD##N){}\
|
415
433
|
\
|
434
|
+
template<class Iterator>\
|
416
435
|
BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\
|
417
436
|
{\
|
418
437
|
BOOST_ASSERT(n == 1); (void)n;\
|
@@ -437,79 +456,79 @@ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE)
|
|
437
456
|
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
438
457
|
|
439
458
|
//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
|
440
|
-
template<class Allocator
|
441
|
-
struct insert_emplace_proxy_arg1<Allocator,
|
442
|
-
: public insert_move_proxy<Allocator
|
459
|
+
template<class Allocator>
|
460
|
+
struct insert_emplace_proxy_arg1<Allocator, ::boost::rv<typename boost::container::allocator_traits<Allocator>::value_type> >
|
461
|
+
: public insert_move_proxy<Allocator>
|
443
462
|
{
|
444
463
|
static const bool single_value = true;
|
445
464
|
|
446
465
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits<Allocator>::value_type &v)
|
447
|
-
: insert_move_proxy<Allocator
|
466
|
+
: insert_move_proxy<Allocator>(v)
|
448
467
|
{}
|
449
468
|
};
|
450
469
|
|
451
|
-
template<class Allocator
|
452
|
-
struct insert_emplace_proxy_arg1<Allocator,
|
453
|
-
: public insert_copy_proxy<Allocator
|
470
|
+
template<class Allocator>
|
471
|
+
struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
|
472
|
+
: public insert_copy_proxy<Allocator>
|
454
473
|
{
|
455
474
|
static const bool single_value = true;
|
456
475
|
|
457
476
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
458
|
-
: insert_copy_proxy<Allocator
|
477
|
+
: insert_copy_proxy<Allocator>(v)
|
459
478
|
{}
|
460
479
|
};
|
461
480
|
|
462
481
|
#else //e.g. MSVC10 & MSVC11
|
463
482
|
|
464
483
|
//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type
|
465
|
-
template<class Allocator
|
466
|
-
struct insert_emplace_proxy_arg1<Allocator,
|
467
|
-
: public insert_move_proxy<Allocator
|
484
|
+
template<class Allocator>
|
485
|
+
struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type>
|
486
|
+
: public insert_move_proxy<Allocator>
|
468
487
|
{
|
469
488
|
static const bool single_value = true;
|
470
489
|
|
471
490
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits<Allocator>::value_type &&v)
|
472
|
-
: insert_move_proxy<Allocator
|
491
|
+
: insert_move_proxy<Allocator>(v)
|
473
492
|
{}
|
474
493
|
};
|
475
494
|
|
476
495
|
//We use "add_const" here as adding "const" only confuses MSVC10&11 provoking
|
477
496
|
//compiler error C2752 ("more than one partial specialization matches").
|
478
497
|
//Any problem is solvable with an extra layer of indirection? ;-)
|
479
|
-
template<class Allocator
|
480
|
-
struct insert_emplace_proxy_arg1<Allocator
|
498
|
+
template<class Allocator>
|
499
|
+
struct insert_emplace_proxy_arg1<Allocator
|
481
500
|
, typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type
|
482
501
|
>
|
483
|
-
: public insert_copy_proxy<Allocator
|
502
|
+
: public insert_copy_proxy<Allocator>
|
484
503
|
{
|
485
504
|
static const bool single_value = true;
|
486
505
|
|
487
506
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
488
|
-
: insert_copy_proxy<Allocator
|
507
|
+
: insert_copy_proxy<Allocator>(v)
|
489
508
|
{}
|
490
509
|
};
|
491
510
|
|
492
|
-
template<class Allocator
|
493
|
-
struct insert_emplace_proxy_arg1<Allocator,
|
494
|
-
: public insert_copy_proxy<Allocator
|
511
|
+
template<class Allocator>
|
512
|
+
struct insert_emplace_proxy_arg1<Allocator, typename boost::container::allocator_traits<Allocator>::value_type &>
|
513
|
+
: public insert_copy_proxy<Allocator>
|
495
514
|
{
|
496
515
|
static const bool single_value = true;
|
497
516
|
|
498
517
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
499
|
-
: insert_copy_proxy<Allocator
|
518
|
+
: insert_copy_proxy<Allocator>(v)
|
500
519
|
{}
|
501
520
|
};
|
502
521
|
|
503
|
-
template<class Allocator
|
504
|
-
struct insert_emplace_proxy_arg1<Allocator
|
522
|
+
template<class Allocator>
|
523
|
+
struct insert_emplace_proxy_arg1<Allocator
|
505
524
|
, typename boost::container::dtl::add_const<typename boost::container::allocator_traits<Allocator>::value_type>::type &
|
506
525
|
>
|
507
|
-
: public insert_copy_proxy<Allocator
|
526
|
+
: public insert_copy_proxy<Allocator>
|
508
527
|
{
|
509
528
|
static const bool single_value = true;
|
510
529
|
|
511
530
|
BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits<Allocator>::value_type &v)
|
512
|
-
: insert_copy_proxy<Allocator
|
531
|
+
: insert_copy_proxy<Allocator>(v)
|
513
532
|
{}
|
514
533
|
};
|
515
534
|
|
@@ -519,40 +538,6 @@ struct insert_emplace_proxy_arg1<Allocator, Iterator
|
|
519
538
|
|
520
539
|
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
521
540
|
|
522
|
-
namespace boost { namespace container { namespace dtl {
|
523
|
-
|
524
|
-
template <class T>
|
525
|
-
struct has_single_value
|
526
|
-
{
|
527
|
-
private:
|
528
|
-
struct two {char array_[2];};
|
529
|
-
template<bool Arg> struct wrapper;
|
530
|
-
template <class U> static two test(int, ...);
|
531
|
-
template <class U> static char test(int, const wrapper<U::single_value>*);
|
532
|
-
public:
|
533
|
-
static const bool value = sizeof(test<T>(0, 0)) == 1;
|
534
|
-
void dummy(){}
|
535
|
-
};
|
536
|
-
|
537
|
-
template<class InsertionProxy, bool = has_single_value<InsertionProxy>::value>
|
538
|
-
struct is_single_value_proxy_impl
|
539
|
-
{
|
540
|
-
static const bool value = InsertionProxy::single_value;
|
541
|
-
};
|
542
|
-
|
543
|
-
template<class InsertionProxy>
|
544
|
-
struct is_single_value_proxy_impl<InsertionProxy, false>
|
545
|
-
{
|
546
|
-
static const bool value = false;
|
547
|
-
};
|
548
|
-
|
549
|
-
template<class InsertionProxy>
|
550
|
-
struct is_single_value_proxy
|
551
|
-
: is_single_value_proxy_impl<InsertionProxy>
|
552
|
-
{};
|
553
|
-
|
554
|
-
}}} //namespace boost { namespace container { namespace dtl {
|
555
|
-
|
556
541
|
#include <boost/container/detail/config_end.hpp>
|
557
542
|
|
558
543
|
#endif //#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP
|
@@ -48,3 +48,13 @@
|
|
48
48
|
#pragma warning (disable : 4996) // "function": was declared deprecated
|
49
49
|
|
50
50
|
#endif //BOOST_MSVC
|
51
|
+
|
52
|
+
|
53
|
+
#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
|
54
|
+
#pragma GCC diagnostic push
|
55
|
+
//Sign conversion warnings broken before GCC 9.3
|
56
|
+
//(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87519)
|
57
|
+
#if BOOST_GCC < 90300
|
58
|
+
#pragma GCC diagnostic ignored "-Wsign-conversion"
|
59
|
+
#endif
|
60
|
+
#endif
|