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
@@ -1,36 +1,36 @@
|
|
1
|
-
|
2
1
|
// Copyright 2005-2009 Daniel James.
|
3
|
-
//
|
4
|
-
//
|
5
|
-
|
6
|
-
// Based on Peter Dimov's proposal
|
7
|
-
// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
|
8
|
-
// issue 6.18.
|
2
|
+
// Copyright 2021, 2022 Peter Dimov.
|
3
|
+
// Distributed under the Boost Software License, Version 1.0.
|
4
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
9
5
|
|
10
|
-
#
|
6
|
+
#ifndef BOOST_FUNCTIONAL_HASH_FWD_HPP
|
11
7
|
#define BOOST_FUNCTIONAL_HASH_FWD_HPP
|
12
8
|
|
13
|
-
#include <boost/config/workaround.hpp>
|
14
9
|
#include <cstddef>
|
15
10
|
|
16
|
-
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
17
|
-
#pragma once
|
18
|
-
#endif
|
19
|
-
|
20
|
-
|
21
11
|
namespace boost
|
22
12
|
{
|
23
|
-
template <class T> struct hash;
|
24
13
|
|
25
|
-
|
14
|
+
namespace container_hash
|
15
|
+
{
|
16
|
+
|
17
|
+
template<class T> struct is_range;
|
18
|
+
template<class T> struct is_contiguous_range;
|
19
|
+
template<class T> struct is_unordered_range;
|
20
|
+
template<class T> struct is_described_class;
|
21
|
+
|
22
|
+
} // namespace container_hash
|
23
|
+
|
24
|
+
template<class T> struct hash;
|
25
|
+
|
26
|
+
template<class T> void hash_combine( std::size_t& seed, T const& v );
|
27
|
+
|
28
|
+
template<class It> void hash_range( std::size_t&, It, It );
|
29
|
+
template<class It> std::size_t hash_range( It, It );
|
26
30
|
|
27
|
-
|
28
|
-
|
31
|
+
template<class It> void hash_unordered_range( std::size_t&, It, It );
|
32
|
+
template<class It> std::size_t hash_unordered_range( It, It );
|
29
33
|
|
30
|
-
|
31
|
-
template <class T> inline std::size_t hash_range(T*, T*);
|
32
|
-
template <class T> inline void hash_range(std::size_t&, T*, T*);
|
33
|
-
#endif
|
34
|
-
}
|
34
|
+
} // namespace boost
|
35
35
|
|
36
|
-
#endif
|
36
|
+
#endif // #ifndef BOOST_FUNCTIONAL_HASH_FWD_HPP
|
@@ -0,0 +1,91 @@
|
|
1
|
+
// Copyright 2017, 2018 Peter Dimov.
|
2
|
+
// Distributed under the Boost Software License, Version 1.0.
|
3
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
4
|
+
|
5
|
+
#ifndef BOOST_HASH_IS_CONTIGUOUS_RANGE_HPP_INCLUDED
|
6
|
+
#define BOOST_HASH_IS_CONTIGUOUS_RANGE_HPP_INCLUDED
|
7
|
+
|
8
|
+
#include <boost/container_hash/is_range.hpp>
|
9
|
+
#include <boost/type_traits/integral_constant.hpp>
|
10
|
+
#include <boost/config.hpp>
|
11
|
+
#include <boost/config/workaround.hpp>
|
12
|
+
|
13
|
+
#if !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_GCC, < 40700) && !BOOST_WORKAROUND(BOOST_MSVC, < 1910)
|
14
|
+
|
15
|
+
#include <boost/type_traits/is_integral.hpp>
|
16
|
+
#include <boost/type_traits/declval.hpp>
|
17
|
+
#include <boost/type_traits/is_same.hpp>
|
18
|
+
#include <iterator>
|
19
|
+
|
20
|
+
namespace boost
|
21
|
+
{
|
22
|
+
namespace hash_detail
|
23
|
+
{
|
24
|
+
|
25
|
+
template<class It, class T, class S>
|
26
|
+
integral_constant< bool, is_same<typename std::iterator_traits<It>::value_type, T>::value && is_integral<S>::value >
|
27
|
+
is_contiguous_range_check( It first, It last, T const*, T const*, S );
|
28
|
+
|
29
|
+
template<class T> decltype( is_contiguous_range_check( declval<T const&>().begin(), declval<T const&>().end(), declval<T const&>().data(), declval<T const&>().data() + declval<T const&>().size(), declval<T const&>().size() ) ) is_contiguous_range_( int );
|
30
|
+
template<class T> false_type is_contiguous_range_( ... );
|
31
|
+
|
32
|
+
template<class T> struct is_contiguous_range: decltype( hash_detail::is_contiguous_range_<T>( 0 ) )
|
33
|
+
{
|
34
|
+
};
|
35
|
+
|
36
|
+
} // namespace hash_detail
|
37
|
+
|
38
|
+
namespace container_hash
|
39
|
+
{
|
40
|
+
|
41
|
+
template<class T> struct is_contiguous_range: integral_constant< bool, is_range<T>::value && hash_detail::is_contiguous_range<T>::value >
|
42
|
+
{
|
43
|
+
};
|
44
|
+
|
45
|
+
} // namespace container_hash
|
46
|
+
} // namespace boost
|
47
|
+
|
48
|
+
#else // !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR)
|
49
|
+
|
50
|
+
#include <cstddef>
|
51
|
+
#include <vector>
|
52
|
+
#include <string>
|
53
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY)
|
54
|
+
#include <array>
|
55
|
+
#endif
|
56
|
+
|
57
|
+
namespace boost
|
58
|
+
{
|
59
|
+
namespace container_hash
|
60
|
+
{
|
61
|
+
|
62
|
+
template<class T> struct is_contiguous_range: false_type
|
63
|
+
{
|
64
|
+
};
|
65
|
+
|
66
|
+
template<class E, class T, class A> struct is_contiguous_range< std::basic_string<E, T, A> >: true_type
|
67
|
+
{
|
68
|
+
};
|
69
|
+
|
70
|
+
template<class E, class T, class A> struct is_contiguous_range< std::basic_string<E, T, A> const >: true_type
|
71
|
+
{
|
72
|
+
};
|
73
|
+
|
74
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY)
|
75
|
+
|
76
|
+
template<class T, std::size_t N> struct is_contiguous_range< std::array<T, N> >: true_type
|
77
|
+
{
|
78
|
+
};
|
79
|
+
|
80
|
+
template<class T, std::size_t N> struct is_contiguous_range< std::array<T, N> const >: true_type
|
81
|
+
{
|
82
|
+
};
|
83
|
+
|
84
|
+
#endif
|
85
|
+
|
86
|
+
} // namespace container_hash
|
87
|
+
} // namespace boost
|
88
|
+
|
89
|
+
#endif // !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR)
|
90
|
+
|
91
|
+
#endif // #ifndef BOOST_HASH_IS_CONTIGUOUS_RANGE_HPP_INCLUDED
|
@@ -0,0 +1,38 @@
|
|
1
|
+
// Copyright 2022 Peter Dimov.
|
2
|
+
// Distributed under the Boost Software License, Version 1.0.
|
3
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
4
|
+
|
5
|
+
#ifndef BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED
|
6
|
+
#define BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED
|
7
|
+
|
8
|
+
#include <boost/type_traits/integral_constant.hpp>
|
9
|
+
#include <boost/type_traits/is_union.hpp>
|
10
|
+
#include <boost/describe/bases.hpp>
|
11
|
+
#include <boost/describe/members.hpp>
|
12
|
+
|
13
|
+
namespace boost
|
14
|
+
{
|
15
|
+
namespace container_hash
|
16
|
+
{
|
17
|
+
|
18
|
+
#if defined(BOOST_DESCRIBE_CXX11)
|
19
|
+
|
20
|
+
template<class T> struct is_described_class: boost::integral_constant<bool,
|
21
|
+
describe::has_describe_bases<T>::value &&
|
22
|
+
describe::has_describe_members<T>::value &&
|
23
|
+
!boost::is_union<T>::value>
|
24
|
+
{
|
25
|
+
};
|
26
|
+
|
27
|
+
#else
|
28
|
+
|
29
|
+
template<class T> struct is_described_class: boost::false_type
|
30
|
+
{
|
31
|
+
};
|
32
|
+
|
33
|
+
#endif
|
34
|
+
|
35
|
+
} // namespace container_hash
|
36
|
+
} // namespace boost
|
37
|
+
|
38
|
+
#endif // #ifndef BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED
|
@@ -0,0 +1,73 @@
|
|
1
|
+
// Copyright 2017 Peter Dimov.
|
2
|
+
// Distributed under the Boost Software License, Version 1.0.
|
3
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
4
|
+
|
5
|
+
#ifndef BOOST_HASH_IS_RANGE_HPP_INCLUDED
|
6
|
+
#define BOOST_HASH_IS_RANGE_HPP_INCLUDED
|
7
|
+
|
8
|
+
#include <boost/type_traits/integral_constant.hpp>
|
9
|
+
#include <boost/type_traits/is_integral.hpp>
|
10
|
+
#include <boost/type_traits/declval.hpp>
|
11
|
+
#include <boost/type_traits/is_same.hpp>
|
12
|
+
#include <boost/type_traits/remove_cv.hpp>
|
13
|
+
#include <boost/config.hpp>
|
14
|
+
#include <boost/config/workaround.hpp>
|
15
|
+
#include <iterator>
|
16
|
+
|
17
|
+
namespace boost
|
18
|
+
{
|
19
|
+
#if !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_GCC, < 40700)
|
20
|
+
|
21
|
+
namespace hash_detail
|
22
|
+
{
|
23
|
+
|
24
|
+
template<class T, class It>
|
25
|
+
integral_constant< bool, !is_same<typename remove_cv<T>::type, typename std::iterator_traits<It>::value_type>::value >
|
26
|
+
is_range_check( It first, It last );
|
27
|
+
|
28
|
+
template<class T> decltype( is_range_check<T>( declval<T const&>().begin(), declval<T const&>().end() ) ) is_range_( int );
|
29
|
+
template<class T> false_type is_range_( ... );
|
30
|
+
|
31
|
+
} // namespace hash_detail
|
32
|
+
|
33
|
+
namespace container_hash
|
34
|
+
{
|
35
|
+
|
36
|
+
template<class T> struct is_range: decltype( hash_detail::is_range_<T>( 0 ) )
|
37
|
+
{
|
38
|
+
};
|
39
|
+
|
40
|
+
} // namespace container_hash
|
41
|
+
|
42
|
+
#else
|
43
|
+
|
44
|
+
namespace hash_detail
|
45
|
+
{
|
46
|
+
|
47
|
+
template<class T, class E = true_type> struct is_range_: false_type
|
48
|
+
{
|
49
|
+
};
|
50
|
+
|
51
|
+
template<class T> struct is_range_< T, integral_constant< bool,
|
52
|
+
is_same<typename T::value_type, typename std::iterator_traits<typename T::const_iterator>::value_type>::value &&
|
53
|
+
is_integral<typename T::size_type>::value
|
54
|
+
> >: true_type
|
55
|
+
{
|
56
|
+
};
|
57
|
+
|
58
|
+
} // namespace hash_detail
|
59
|
+
|
60
|
+
namespace container_hash
|
61
|
+
{
|
62
|
+
|
63
|
+
template<class T> struct is_range: hash_detail::is_range_<T>
|
64
|
+
{
|
65
|
+
};
|
66
|
+
|
67
|
+
} // namespace container_hash
|
68
|
+
|
69
|
+
#endif // !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR)
|
70
|
+
|
71
|
+
} // namespace boost
|
72
|
+
|
73
|
+
#endif // #ifndef BOOST_HASH_IS_RANGE_HPP_INCLUDED
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// Copyright 2017 Peter Dimov.
|
2
|
+
// Distributed under the Boost Software License, Version 1.0.
|
3
|
+
// https://www.boost.org/LICENSE_1_0.txt
|
4
|
+
|
5
|
+
#ifndef BOOST_HASH_IS_UNORDERED_RANGE_HPP_INCLUDED
|
6
|
+
#define BOOST_HASH_IS_UNORDERED_RANGE_HPP_INCLUDED
|
7
|
+
|
8
|
+
#include <boost/container_hash/is_range.hpp>
|
9
|
+
#include <boost/type_traits/integral_constant.hpp>
|
10
|
+
#include <boost/type_traits/is_same.hpp>
|
11
|
+
|
12
|
+
namespace boost
|
13
|
+
{
|
14
|
+
namespace hash_detail
|
15
|
+
{
|
16
|
+
|
17
|
+
template<class T, class E = true_type> struct has_hasher_: false_type
|
18
|
+
{
|
19
|
+
};
|
20
|
+
|
21
|
+
template<class T> struct has_hasher_< T, integral_constant< bool,
|
22
|
+
is_same<typename T::hasher, typename T::hasher>::value
|
23
|
+
> >: true_type
|
24
|
+
{
|
25
|
+
};
|
26
|
+
|
27
|
+
} // namespace hash_detail
|
28
|
+
|
29
|
+
namespace container_hash
|
30
|
+
{
|
31
|
+
|
32
|
+
template<class T> struct is_unordered_range: integral_constant< bool, is_range<T>::value && hash_detail::has_hasher_<T>::value >
|
33
|
+
{
|
34
|
+
};
|
35
|
+
|
36
|
+
} // namespace container_hash
|
37
|
+
} // namespace boost
|
38
|
+
|
39
|
+
#endif // #ifndef BOOST_HASH_IS_UNORDERED_RANGE_HPP_INCLUDED
|
@@ -92,6 +92,8 @@ BOOST_CONSTEXPR inline int countl_impl( boost::ulong_long_type x ) BOOST_NOEXCEP
|
|
92
92
|
template<class T>
|
93
93
|
BOOST_CONSTEXPR int countl_zero( T x ) BOOST_NOEXCEPT
|
94
94
|
{
|
95
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
96
|
+
|
95
97
|
return boost::core::detail::countl_impl( x );
|
96
98
|
}
|
97
99
|
|
@@ -169,6 +171,8 @@ inline int countl_impl( boost::uint16_t x ) BOOST_NOEXCEPT
|
|
169
171
|
template<class T>
|
170
172
|
int countl_zero( T x ) BOOST_NOEXCEPT
|
171
173
|
{
|
174
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
175
|
+
|
172
176
|
BOOST_STATIC_ASSERT( sizeof(T) == sizeof(boost::uint8_t) || sizeof(T) == sizeof(boost::uint16_t) || sizeof(T) == sizeof(boost::uint32_t) || sizeof(T) == sizeof(boost::uint64_t) );
|
173
177
|
|
174
178
|
BOOST_IF_CONSTEXPR ( sizeof(T) == sizeof(boost::uint8_t) )
|
@@ -194,6 +198,8 @@ int countl_zero( T x ) BOOST_NOEXCEPT
|
|
194
198
|
template<class T>
|
195
199
|
BOOST_CONSTEXPR int countl_one( T x ) BOOST_NOEXCEPT
|
196
200
|
{
|
201
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
202
|
+
|
197
203
|
return boost::core::countl_zero( static_cast<T>( ~x ) );
|
198
204
|
}
|
199
205
|
|
@@ -234,6 +240,8 @@ BOOST_CONSTEXPR inline int countr_impl( boost::ulong_long_type x ) BOOST_NOEXCEP
|
|
234
240
|
template<class T>
|
235
241
|
BOOST_CONSTEXPR int countr_zero( T x ) BOOST_NOEXCEPT
|
236
242
|
{
|
243
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
244
|
+
|
237
245
|
return boost::core::detail::countr_impl( x );
|
238
246
|
}
|
239
247
|
|
@@ -304,6 +312,8 @@ inline int countr_impl( boost::uint16_t x ) BOOST_NOEXCEPT
|
|
304
312
|
template<class T>
|
305
313
|
int countr_zero( T x ) BOOST_NOEXCEPT
|
306
314
|
{
|
315
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
316
|
+
|
307
317
|
BOOST_STATIC_ASSERT( sizeof(T) == sizeof(boost::uint8_t) || sizeof(T) == sizeof(boost::uint16_t) || sizeof(T) == sizeof(boost::uint32_t) || sizeof(T) == sizeof(boost::uint64_t) );
|
308
318
|
|
309
319
|
BOOST_IF_CONSTEXPR ( sizeof(T) == sizeof(boost::uint8_t) )
|
@@ -329,6 +339,8 @@ int countr_zero( T x ) BOOST_NOEXCEPT
|
|
329
339
|
template<class T>
|
330
340
|
BOOST_CONSTEXPR int countr_one( T x ) BOOST_NOEXCEPT
|
331
341
|
{
|
342
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
343
|
+
|
332
344
|
return boost::core::countr_zero( static_cast<T>( ~x ) );
|
333
345
|
}
|
334
346
|
|
@@ -377,6 +389,8 @@ BOOST_CORE_POPCOUNT_CONSTEXPR inline int popcount_impl( boost::ulong_long_type x
|
|
377
389
|
template<class T>
|
378
390
|
BOOST_CONSTEXPR int popcount( T x ) BOOST_NOEXCEPT
|
379
391
|
{
|
392
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
393
|
+
|
380
394
|
return boost::core::detail::popcount_impl( x );
|
381
395
|
}
|
382
396
|
|
@@ -408,6 +422,8 @@ BOOST_CXX14_CONSTEXPR inline int popcount_impl( boost::uint64_t x ) BOOST_NOEXCE
|
|
408
422
|
template<class T>
|
409
423
|
BOOST_CXX14_CONSTEXPR int popcount( T x ) BOOST_NOEXCEPT
|
410
424
|
{
|
425
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
426
|
+
|
411
427
|
BOOST_STATIC_ASSERT( sizeof(T) <= sizeof(boost::uint64_t) );
|
412
428
|
|
413
429
|
BOOST_IF_CONSTEXPR ( sizeof(T) <= sizeof(boost::uint32_t) )
|
@@ -427,6 +443,8 @@ BOOST_CXX14_CONSTEXPR int popcount( T x ) BOOST_NOEXCEPT
|
|
427
443
|
template<class T>
|
428
444
|
BOOST_CXX14_CONSTEXPR T rotl( T x, int s ) BOOST_NOEXCEPT
|
429
445
|
{
|
446
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
447
|
+
|
430
448
|
unsigned const mask = std::numeric_limits<T>::digits - 1;
|
431
449
|
return x << (s & mask) | x >> ((-s) & mask);
|
432
450
|
}
|
@@ -434,6 +452,8 @@ BOOST_CXX14_CONSTEXPR T rotl( T x, int s ) BOOST_NOEXCEPT
|
|
434
452
|
template<class T>
|
435
453
|
BOOST_CXX14_CONSTEXPR T rotr( T x, int s ) BOOST_NOEXCEPT
|
436
454
|
{
|
455
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
456
|
+
|
437
457
|
unsigned const mask = std::numeric_limits<T>::digits - 1;
|
438
458
|
return x >> (s & mask) | x << ((-s) & mask);
|
439
459
|
}
|
@@ -443,21 +463,27 @@ BOOST_CXX14_CONSTEXPR T rotr( T x, int s ) BOOST_NOEXCEPT
|
|
443
463
|
template<class T>
|
444
464
|
BOOST_CONSTEXPR bool has_single_bit( T x ) BOOST_NOEXCEPT
|
445
465
|
{
|
466
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
467
|
+
|
446
468
|
return x != 0 && ( x & ( x - 1 ) ) == 0;
|
447
469
|
}
|
448
470
|
|
449
|
-
// bit_width
|
471
|
+
// bit_width returns `int` now, https://cplusplus.github.io/LWG/issue3656
|
472
|
+
// has been applied to C++20 as a DR
|
450
473
|
|
451
474
|
template<class T>
|
452
|
-
BOOST_CONSTEXPR
|
475
|
+
BOOST_CONSTEXPR int bit_width( T x ) BOOST_NOEXCEPT
|
453
476
|
{
|
454
|
-
|
455
|
-
|
477
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
478
|
+
|
479
|
+
return std::numeric_limits<T>::digits - boost::core::countl_zero( x );
|
456
480
|
}
|
457
481
|
|
458
482
|
template<class T>
|
459
483
|
BOOST_CONSTEXPR T bit_floor( T x ) BOOST_NOEXCEPT
|
460
484
|
{
|
485
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
486
|
+
|
461
487
|
return x == 0? 0: T(1) << ( boost::core::bit_width( x ) - 1 );
|
462
488
|
}
|
463
489
|
|
@@ -510,6 +536,8 @@ BOOST_CXX14_CONSTEXPR inline boost::uint64_t bit_ceil_impl( boost::uint64_t x )
|
|
510
536
|
template<class T>
|
511
537
|
BOOST_CXX14_CONSTEXPR T bit_ceil( T x ) BOOST_NOEXCEPT
|
512
538
|
{
|
539
|
+
BOOST_STATIC_ASSERT( std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed );
|
540
|
+
|
513
541
|
BOOST_STATIC_ASSERT( sizeof(T) <= sizeof(boost::uint64_t) );
|
514
542
|
|
515
543
|
BOOST_IF_CONSTEXPR ( sizeof(T) <= sizeof(boost::uint32_t) )
|
@@ -403,6 +403,22 @@ public:
|
|
403
403
|
{
|
404
404
|
}
|
405
405
|
|
406
|
+
#if !defined(BOOST_NO_CXX11_NULLPTR)
|
407
|
+
# if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
|
408
|
+
|
409
|
+
basic_string_view( std::nullptr_t ) = delete;
|
410
|
+
|
411
|
+
# else
|
412
|
+
|
413
|
+
private:
|
414
|
+
|
415
|
+
basic_string_view( std::nullptr_t );
|
416
|
+
|
417
|
+
public:
|
418
|
+
|
419
|
+
# endif
|
420
|
+
#endif
|
421
|
+
|
406
422
|
// BOOST_CONSTEXPR basic_string_view& operator=( basic_string_view const& ) BOOST_NOEXCEPT & = default;
|
407
423
|
|
408
424
|
// conversions
|
@@ -56,37 +56,37 @@ public:
|
|
56
56
|
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
|
57
57
|
empty_value() = default;
|
58
58
|
#else
|
59
|
-
empty_value() { }
|
59
|
+
BOOST_CONSTEXPR empty_value() { }
|
60
60
|
#endif
|
61
61
|
|
62
|
-
empty_value(boost::empty_init_t)
|
62
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t)
|
63
63
|
: value_() { }
|
64
64
|
|
65
65
|
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
66
66
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
67
67
|
template<class U, class... Args>
|
68
|
-
empty_value(boost::empty_init_t, U&& value, Args&&... args)
|
68
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value, Args&&... args)
|
69
69
|
: value_(std::forward<U>(value), std::forward<Args>(args)...) { }
|
70
70
|
#else
|
71
71
|
template<class U>
|
72
|
-
empty_value(boost::empty_init_t, U&& value)
|
72
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value)
|
73
73
|
: value_(std::forward<U>(value)) { }
|
74
74
|
#endif
|
75
75
|
#else
|
76
76
|
template<class U>
|
77
|
-
empty_value(boost::empty_init_t, const U& value)
|
77
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, const U& value)
|
78
78
|
: value_(value) { }
|
79
79
|
|
80
80
|
template<class U>
|
81
|
-
empty_value(boost::empty_init_t, U& value)
|
81
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U& value)
|
82
82
|
: value_(value) { }
|
83
83
|
#endif
|
84
84
|
|
85
|
-
const T& get() const BOOST_NOEXCEPT {
|
85
|
+
BOOST_CONSTEXPR const T& get() const BOOST_NOEXCEPT {
|
86
86
|
return value_;
|
87
87
|
}
|
88
88
|
|
89
|
-
T& get() BOOST_NOEXCEPT {
|
89
|
+
BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
|
90
90
|
return value_;
|
91
91
|
}
|
92
92
|
|
@@ -104,37 +104,37 @@ public:
|
|
104
104
|
#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
|
105
105
|
empty_value() = default;
|
106
106
|
#else
|
107
|
-
empty_value() { }
|
107
|
+
BOOST_CONSTEXPR empty_value() { }
|
108
108
|
#endif
|
109
109
|
|
110
|
-
empty_value(boost::empty_init_t)
|
110
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t)
|
111
111
|
: T() { }
|
112
112
|
|
113
113
|
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
114
114
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
115
115
|
template<class U, class... Args>
|
116
|
-
empty_value(boost::empty_init_t, U&& value, Args&&... args)
|
116
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value, Args&&... args)
|
117
117
|
: T(std::forward<U>(value), std::forward<Args>(args)...) { }
|
118
118
|
#else
|
119
119
|
template<class U>
|
120
|
-
empty_value(boost::empty_init_t, U&& value)
|
120
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value)
|
121
121
|
: T(std::forward<U>(value)) { }
|
122
122
|
#endif
|
123
123
|
#else
|
124
124
|
template<class U>
|
125
|
-
empty_value(boost::empty_init_t, const U& value)
|
125
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, const U& value)
|
126
126
|
: T(value) { }
|
127
127
|
|
128
128
|
template<class U>
|
129
|
-
empty_value(boost::empty_init_t, U& value)
|
129
|
+
BOOST_CONSTEXPR empty_value(boost::empty_init_t, U& value)
|
130
130
|
: T(value) { }
|
131
131
|
#endif
|
132
132
|
|
133
|
-
const T& get() const BOOST_NOEXCEPT {
|
133
|
+
BOOST_CONSTEXPR const T& get() const BOOST_NOEXCEPT {
|
134
134
|
return *this;
|
135
135
|
}
|
136
136
|
|
137
|
-
T& get() BOOST_NOEXCEPT {
|
137
|
+
BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
|
138
138
|
return *this;
|
139
139
|
}
|
140
140
|
};
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright Andrey Semashev 2022.
|
3
|
+
* Distributed under the Boost Software License, Version 1.0.
|
4
|
+
* (See accompanying file LICENSE_1_0.txt or copy at
|
5
|
+
* http://www.boost.org/LICENSE_1_0.txt)
|
6
|
+
*/
|
7
|
+
/*!
|
8
|
+
* \file fclose_deleter.hpp
|
9
|
+
* \author Andrey Semashev
|
10
|
+
* \date 21.09.2022
|
11
|
+
*
|
12
|
+
* This header contains an \c fclose_deleter implementation. This is a deleter
|
13
|
+
* function object that invokes <tt>std::fclose</tt> on the passed pointer to
|
14
|
+
* a <tt>std::FILE</tt> structure.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#ifndef BOOST_CORE_FCLOSE_DELETER_HPP
|
18
|
+
#define BOOST_CORE_FCLOSE_DELETER_HPP
|
19
|
+
|
20
|
+
#include <cstdio>
|
21
|
+
#include <boost/config.hpp>
|
22
|
+
|
23
|
+
#ifdef BOOST_HAS_PRAGMA_ONCE
|
24
|
+
#pragma once
|
25
|
+
#endif
|
26
|
+
|
27
|
+
namespace boost {
|
28
|
+
|
29
|
+
//! A function object that closes a file
|
30
|
+
struct fclose_deleter
|
31
|
+
{
|
32
|
+
//! Function object result type
|
33
|
+
typedef void result_type;
|
34
|
+
/*!
|
35
|
+
* Closes the file handle
|
36
|
+
*/
|
37
|
+
void operator() (std::FILE* p) const BOOST_NOEXCEPT
|
38
|
+
{
|
39
|
+
if (BOOST_LIKELY(!!p))
|
40
|
+
std::fclose(p);
|
41
|
+
}
|
42
|
+
};
|
43
|
+
|
44
|
+
} // namespace boost
|
45
|
+
|
46
|
+
#endif // BOOST_CORE_FCLOSE_DELETER_HPP
|
@@ -21,7 +21,7 @@ namespace date_time {
|
|
21
21
|
/*!
|
22
22
|
The date template represents an interface shell for a date class
|
23
23
|
that is based on a year-month-day system such as the gregorian
|
24
|
-
or
|
24
|
+
or ISO 8601 systems. It provides basic operations to enable calculation
|
25
25
|
and comparisons.
|
26
26
|
|
27
27
|
<b>Theory</b>
|
@@ -65,7 +65,7 @@ namespace gregorian {
|
|
65
65
|
std::basic_string<charT> s(date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d.begin()));
|
66
66
|
return s + sep + date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d.last());
|
67
67
|
}
|
68
|
-
//! Date period to
|
68
|
+
//! Date period to ISO 8601 standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231
|
69
69
|
/*!\ingroup date_format
|
70
70
|
*/
|
71
71
|
inline std::string to_iso_string(const date_period& d) {
|
@@ -78,7 +78,7 @@ namespace gregorian {
|
|
78
78
|
inline std::basic_string<charT> to_iso_extended_string_type(const date& d) {
|
79
79
|
return date_time::date_formatter<date,date_time::iso_extended_format<charT>,charT>::date_to_string(d);
|
80
80
|
}
|
81
|
-
//! Convert to
|
81
|
+
//! Convert to ISO 8601 extended format string CCYY-MM-DD. Example 2002-12-31
|
82
82
|
/*!\ingroup date_format
|
83
83
|
*/
|
84
84
|
inline std::string to_iso_extended_string(const date& d) {
|
@@ -90,7 +90,7 @@ namespace gregorian {
|
|
90
90
|
inline std::basic_string<charT> to_iso_string_type(const date& d) {
|
91
91
|
return date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d);
|
92
92
|
}
|
93
|
-
//! Convert to
|
93
|
+
//! Convert to ISO 8601 standard string YYYYMMDD. Example: 20021231
|
94
94
|
/*!\ingroup date_format
|
95
95
|
*/
|
96
96
|
inline std::string to_iso_string(const date& d) {
|
@@ -35,7 +35,7 @@ namespace gregorian {
|
|
35
35
|
return std::string("[" + d1 + "/" + d2 + "]");
|
36
36
|
}
|
37
37
|
|
38
|
-
//! Date period to
|
38
|
+
//! Date period to ISO 8601 standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231
|
39
39
|
/*!\ingroup date_format
|
40
40
|
*/
|
41
41
|
inline std::string to_iso_string(const date_period& d) {
|
@@ -44,14 +44,14 @@ namespace gregorian {
|
|
44
44
|
}
|
45
45
|
|
46
46
|
|
47
|
-
//! Convert to
|
47
|
+
//! Convert to ISO 8601 extended format string CCYY-MM-DD. Example 2002-12-31
|
48
48
|
/*!\ingroup date_format
|
49
49
|
*/
|
50
50
|
inline std::string to_iso_extended_string(const date& d) {
|
51
51
|
return date_time::date_formatter<date,date_time::iso_extended_format<char> >::date_to_string(d);
|
52
52
|
}
|
53
53
|
|
54
|
-
//! Convert to
|
54
|
+
//! Convert to ISO 8601 standard string YYYYMMDD. Example: 20021231
|
55
55
|
/*!\ingroup date_format
|
56
56
|
*/
|
57
57
|
inline std::string to_iso_string(const date& d) {
|