From f16faf1d7a3881599652791f7d087ed46d33b6e4 Mon Sep 17 00:00:00 2001 From: Frederik Haselmeier Date: Sat, 24 Aug 2019 02:24:02 +0200 Subject: [PATCH] started working on x64 version --- .vscode/settings.json | 5 + BuildProjects.bat | 4 - BuildProjects.lua | 85 +- BuildProjects.sh | 3 - README.md | 57 +- include/boost/algorithm/algorithm.hpp | 8 +- include/boost/algorithm/apply_permutation.hpp | 126 + include/boost/algorithm/clamp.hpp | 22 +- include/boost/algorithm/cxx11/all_of.hpp | 8 +- include/boost/algorithm/cxx11/any_of.hpp | 8 +- include/boost/algorithm/cxx11/copy_if.hpp | 12 +- include/boost/algorithm/cxx11/copy_n.hpp | 2 +- include/boost/algorithm/cxx11/find_if_not.hpp | 4 +- include/boost/algorithm/cxx11/iota.hpp | 6 +- .../boost/algorithm/cxx11/is_partitioned.hpp | 4 +- include/boost/algorithm/cxx11/is_sorted.hpp | 32 +- include/boost/algorithm/cxx11/none_of.hpp | 8 +- include/boost/algorithm/cxx11/one_of.hpp | 29 +- .../boost/algorithm/cxx11/partition_copy.hpp | 5 +- include/boost/algorithm/cxx14/equal.hpp | 15 +- include/boost/algorithm/cxx14/mismatch.hpp | 7 +- .../boost/algorithm/cxx17/exclusive_scan.hpp | 4 +- include/boost/algorithm/cxx17/for_each_n.hpp | 2 +- .../boost/algorithm/cxx17/inclusive_scan.hpp | 6 +- include/boost/algorithm/cxx17/reduce.hpp | 12 +- .../cxx17/transform_exclusive_scan.hpp | 2 +- .../cxx17/transform_inclusive_scan.hpp | 5 +- .../algorithm/cxx17/transform_reduce.hpp | 4 +- include/boost/algorithm/find_backward.hpp | 97 + include/boost/algorithm/find_not.hpp | 39 + include/boost/algorithm/string/finder.hpp | 4 - include/boost/align/aligned_allocator.hpp | 13 +- .../boost/align/aligned_allocator_adaptor.hpp | 32 +- include/boost/align/detail/aligned_alloc.hpp | 2 +- include/boost/any.hpp | 13 +- .../boost/archive/basic_binary_iarchive.hpp | 26 +- include/boost/archive/detail/iserializer.hpp | 6 +- .../archive/impl/archive_serializer_map.ipp | 8 +- .../boost/archive/impl/basic_xml_grammar.hpp | 2 +- .../boost/archive/iterators/xml_unescape.hpp | 8 +- .../archive/polymorphic_binary_iarchive.hpp | 2 +- .../archive/polymorphic_binary_oarchive.hpp | 16 +- .../archive/polymorphic_text_iarchive.hpp | 2 +- .../archive/polymorphic_text_oarchive.hpp | 12 +- .../archive/polymorphic_text_wiarchive.hpp | 2 +- .../archive/polymorphic_text_woarchive.hpp | 12 +- .../archive/polymorphic_xml_iarchive.hpp | 2 +- .../archive/polymorphic_xml_oarchive.hpp | 13 +- .../archive/polymorphic_xml_wiarchive.hpp | 2 +- .../archive/polymorphic_xml_woarchive.hpp | 14 +- include/boost/archive/text_oarchive.hpp | 4 +- include/boost/archive/text_woarchive.hpp | 4 +- include/boost/archive/xml_oarchive.hpp | 4 +- include/boost/archive/xml_woarchive.hpp | 4 +- include/boost/array.hpp | 2 +- include/boost/asio.hpp | 29 +- include/boost/asio/associated_allocator.hpp | 2 +- include/boost/asio/associated_executor.hpp | 2 +- include/boost/asio/async_result.hpp | 267 +- include/boost/asio/awaitable.hpp | 125 + include/boost/asio/basic_datagram_socket.hpp | 535 +- include/boost/asio/basic_deadline_timer.hpp | 258 +- include/boost/asio/basic_io_object.hpp | 2 +- include/boost/asio/basic_raw_socket.hpp | 537 +- .../boost/asio/basic_seq_packet_socket.hpp | 360 +- include/boost/asio/basic_serial_port.hpp | 347 +- include/boost/asio/basic_signal_set.hpp | 272 +- include/boost/asio/basic_socket.hpp | 539 +- include/boost/asio/basic_socket_acceptor.hpp | 1262 +- include/boost/asio/basic_socket_iostream.hpp | 83 +- include/boost/asio/basic_socket_streambuf.hpp | 82 +- include/boost/asio/basic_stream_socket.hpp | 428 +- include/boost/asio/basic_streambuf.hpp | 2 +- include/boost/asio/basic_streambuf_fwd.hpp | 2 +- include/boost/asio/basic_waitable_timer.hpp | 267 +- include/boost/asio/bind_executor.hpp | 33 +- include/boost/asio/buffer.hpp | 578 +- include/boost/asio/buffered_read_stream.hpp | 19 +- .../boost/asio/buffered_read_stream_fwd.hpp | 2 +- include/boost/asio/buffered_stream.hpp | 19 +- include/boost/asio/buffered_stream_fwd.hpp | 2 +- include/boost/asio/buffered_write_stream.hpp | 19 +- .../boost/asio/buffered_write_stream_fwd.hpp | 2 +- include/boost/asio/buffers_iterator.hpp | 2 +- include/boost/asio/co_spawn.hpp | 90 + include/boost/asio/completion_condition.hpp | 2 +- include/boost/asio/compose.hpp | 138 + include/boost/asio/connect.hpp | 196 +- include/boost/asio/coroutine.hpp | 6 +- .../boost/asio/datagram_socket_service.hpp | 468 - include/boost/asio/deadline_timer.hpp | 2 +- include/boost/asio/deadline_timer_service.hpp | 175 - include/boost/asio/defer.hpp | 12 +- include/boost/asio/detached.hpp | 64 + include/boost/asio/detail/array.hpp | 2 +- include/boost/asio/detail/array_fwd.hpp | 2 +- include/boost/asio/detail/assert.hpp | 2 +- include/boost/asio/detail/atomic_count.hpp | 2 +- .../asio/detail/base_from_completion_cond.hpp | 7 +- include/boost/asio/detail/bind_handler.hpp | 2 +- .../boost/asio/detail/buffer_resize_guard.hpp | 2 +- .../asio/detail/buffer_sequence_adapter.hpp | 2 +- .../asio/detail/buffered_stream_storage.hpp | 2 +- include/boost/asio/detail/call_stack.hpp | 2 +- include/boost/asio/detail/chrono.hpp | 2 +- .../boost/asio/detail/chrono_time_traits.hpp | 2 +- .../boost/asio/detail/completion_handler.hpp | 2 +- .../boost/asio/detail/concurrency_hint.hpp | 2 +- .../detail/conditionally_enabled_event.hpp | 2 +- .../detail/conditionally_enabled_mutex.hpp | 2 +- include/boost/asio/detail/config.hpp | 182 +- .../boost/asio/detail/consuming_buffers.hpp | 6 +- include/boost/asio/detail/cstddef.hpp | 2 +- include/boost/asio/detail/cstdint.hpp | 2 +- include/boost/asio/detail/date_time_fwd.hpp | 2 +- .../asio/detail/deadline_timer_service.hpp | 22 +- include/boost/asio/detail/dependent_type.hpp | 2 +- include/boost/asio/detail/descriptor_ops.hpp | 2 +- .../boost/asio/detail/descriptor_read_op.hpp | 16 +- .../boost/asio/detail/descriptor_write_op.hpp | 16 +- .../boost/asio/detail/dev_poll_reactor.hpp | 2 +- include/boost/asio/detail/epoll_reactor.hpp | 6 +- include/boost/asio/detail/event.hpp | 2 +- .../detail/eventfd_select_interrupter.hpp | 2 +- .../boost/asio/detail/executor_function.hpp | 106 + include/boost/asio/detail/executor_op.hpp | 2 +- include/boost/asio/detail/fd_set_adapter.hpp | 2 +- include/boost/asio/detail/fenced_block.hpp | 2 +- include/boost/asio/detail/functional.hpp | 2 +- include/boost/asio/detail/future.hpp | 33 + .../asio/detail/gcc_arm_fenced_block.hpp | 2 +- .../asio/detail/gcc_hppa_fenced_block.hpp | 2 +- .../asio/detail/gcc_sync_fenced_block.hpp | 2 +- .../asio/detail/gcc_x86_fenced_block.hpp | 2 +- include/boost/asio/detail/global.hpp | 2 +- .../asio/detail/handler_alloc_helpers.hpp | 19 +- .../asio/detail/handler_cont_helpers.hpp | 2 +- .../asio/detail/handler_invoke_helpers.hpp | 2 +- .../boost/asio/detail/handler_tracking.hpp | 2 +- .../asio/detail/handler_type_requirements.hpp | 6 +- include/boost/asio/detail/handler_work.hpp | 34 +- include/boost/asio/detail/hash_map.hpp | 2 +- .../detail/impl/buffer_sequence_adapter.ipp | 2 +- .../boost/asio/detail/impl/descriptor_ops.ipp | 2 +- .../asio/detail/impl/dev_poll_reactor.hpp | 2 +- .../asio/detail/impl/dev_poll_reactor.ipp | 2 +- .../boost/asio/detail/impl/epoll_reactor.hpp | 2 +- .../boost/asio/detail/impl/epoll_reactor.ipp | 2 +- .../impl/eventfd_select_interrupter.ipp | 2 +- .../asio/detail/impl/handler_tracking.ipp | 2 +- .../boost/asio/detail/impl/kqueue_reactor.hpp | 2 +- .../boost/asio/detail/impl/kqueue_reactor.ipp | 2 +- include/boost/asio/detail/impl/null_event.ipp | 2 +- .../detail/impl/pipe_select_interrupter.ipp | 2 +- .../boost/asio/detail/impl/posix_event.ipp | 2 +- .../boost/asio/detail/impl/posix_mutex.ipp | 2 +- .../boost/asio/detail/impl/posix_thread.ipp | 2 +- .../boost/asio/detail/impl/posix_tss_ptr.ipp | 2 +- .../impl/reactive_descriptor_service.ipp | 8 +- .../impl/reactive_serial_port_service.ipp | 8 +- .../impl/reactive_socket_service_base.ipp | 7 +- .../detail/impl/resolver_service_base.ipp | 64 +- include/boost/asio/detail/impl/scheduler.ipp | 54 +- .../boost/asio/detail/impl/select_reactor.hpp | 2 +- .../boost/asio/detail/impl/select_reactor.ipp | 2 +- .../asio/detail/impl/service_registry.hpp | 2 +- .../asio/detail/impl/service_registry.ipp | 2 +- .../asio/detail/impl/signal_set_service.ipp | 42 +- include/boost/asio/detail/impl/socket_ops.ipp | 11 +- .../detail/impl/socket_select_interrupter.ipp | 2 +- .../detail/impl/strand_executor_service.hpp | 2 +- .../detail/impl/strand_executor_service.ipp | 14 +- .../boost/asio/detail/impl/strand_service.hpp | 2 +- .../boost/asio/detail/impl/strand_service.ipp | 2 +- .../boost/asio/detail/impl/throw_error.ipp | 2 +- .../asio/detail/impl/timer_queue_ptime.ipp | 2 +- .../asio/detail/impl/timer_queue_set.ipp | 2 +- include/boost/asio/detail/impl/win_event.ipp | 2 +- .../detail/impl/win_iocp_handle_service.ipp | 9 +- .../asio/detail/impl/win_iocp_io_context.hpp | 2 +- .../asio/detail/impl/win_iocp_io_context.ipp | 43 +- .../impl/win_iocp_serial_port_service.ipp | 8 +- .../impl/win_iocp_socket_service_base.ipp | 10 +- include/boost/asio/detail/impl/win_mutex.ipp | 2 +- .../detail/impl/win_object_handle_service.ipp | 35 +- .../asio/detail/impl/win_static_mutex.ipp | 2 +- include/boost/asio/detail/impl/win_thread.ipp | 2 +- .../boost/asio/detail/impl/win_tss_ptr.ipp | 2 +- .../impl/winrt_ssocket_service_base.ipp | 30 +- .../detail/impl/winrt_timer_scheduler.hpp | 8 +- .../detail/impl/winrt_timer_scheduler.ipp | 15 +- .../boost/asio/detail/impl/winsock_init.ipp | 2 +- include/boost/asio/detail/io_control.hpp | 2 +- .../boost/asio/detail/io_object_executor.hpp | 162 + include/boost/asio/detail/io_object_impl.hpp | 195 + .../boost/asio/detail/is_buffer_sequence.hpp | 105 +- include/boost/asio/detail/is_executor.hpp | 2 +- include/boost/asio/detail/keyword_tss_ptr.hpp | 2 +- include/boost/asio/detail/kqueue_reactor.hpp | 2 +- .../asio/detail/local_free_on_block_exit.hpp | 2 +- .../boost/asio/detail/macos_fenced_block.hpp | 2 +- include/boost/asio/detail/memory.hpp | 2 +- include/boost/asio/detail/mutex.hpp | 2 +- .../boost/asio/detail/non_const_lvalue.hpp | 56 + include/boost/asio/detail/noncopyable.hpp | 2 +- include/boost/asio/detail/null_event.hpp | 2 +- .../boost/asio/detail/null_fenced_block.hpp | 2 +- include/boost/asio/detail/null_global.hpp | 2 +- include/boost/asio/detail/null_mutex.hpp | 2 +- include/boost/asio/detail/null_reactor.hpp | 2 +- .../boost/asio/detail/null_signal_blocker.hpp | 2 +- .../boost/asio/detail/null_socket_service.hpp | 115 +- .../boost/asio/detail/null_static_mutex.hpp | 2 +- include/boost/asio/detail/null_thread.hpp | 2 +- include/boost/asio/detail/null_tss_ptr.hpp | 2 +- include/boost/asio/detail/object_pool.hpp | 2 +- .../boost/asio/detail/old_win_sdk_compat.hpp | 2 +- include/boost/asio/detail/op_queue.hpp | 2 +- include/boost/asio/detail/operation.hpp | 2 +- .../asio/detail/pipe_select_interrupter.hpp | 2 +- include/boost/asio/detail/pop_options.hpp | 14 +- include/boost/asio/detail/posix_event.hpp | 13 +- .../asio/detail/posix_fd_set_adapter.hpp | 2 +- include/boost/asio/detail/posix_global.hpp | 2 +- include/boost/asio/detail/posix_mutex.hpp | 2 +- .../asio/detail/posix_signal_blocker.hpp | 2 +- .../boost/asio/detail/posix_static_mutex.hpp | 2 +- include/boost/asio/detail/posix_thread.hpp | 2 +- include/boost/asio/detail/posix_tss_ptr.hpp | 2 +- include/boost/asio/detail/push_options.hpp | 14 +- .../detail/reactive_descriptor_service.hpp | 53 +- .../asio/detail/reactive_null_buffers_op.hpp | 14 +- .../detail/reactive_serial_port_service.hpp | 24 +- .../asio/detail/reactive_socket_accept_op.hpp | 51 +- .../detail/reactive_socket_connect_op.hpp | 15 +- .../asio/detail/reactive_socket_recv_op.hpp | 18 +- .../detail/reactive_socket_recvfrom_op.hpp | 16 +- .../detail/reactive_socket_recvmsg_op.hpp | 15 +- .../asio/detail/reactive_socket_send_op.hpp | 18 +- .../asio/detail/reactive_socket_sendto_op.hpp | 16 +- .../asio/detail/reactive_socket_service.hpp | 115 +- .../detail/reactive_socket_service_base.hpp | 83 +- .../boost/asio/detail/reactive_wait_op.hpp | 14 +- include/boost/asio/detail/reactor.hpp | 2 +- include/boost/asio/detail/reactor_fwd.hpp | 2 +- include/boost/asio/detail/reactor_op.hpp | 2 +- .../boost/asio/detail/reactor_op_queue.hpp | 2 +- .../boost/asio/detail/recycling_allocator.hpp | 30 +- include/boost/asio/detail/regex_fwd.hpp | 2 +- .../boost/asio/detail/resolve_endpoint_op.hpp | 36 +- include/boost/asio/detail/resolve_op.hpp | 2 +- .../boost/asio/detail/resolve_query_op.hpp | 34 +- .../boost/asio/detail/resolver_service.hpp | 36 +- .../asio/detail/resolver_service_base.hpp | 41 +- include/boost/asio/detail/scheduler.hpp | 15 +- .../boost/asio/detail/scheduler_operation.hpp | 2 +- .../asio/detail/scheduler_thread_info.hpp | 2 +- include/boost/asio/detail/scoped_lock.hpp | 2 +- include/boost/asio/detail/scoped_ptr.hpp | 2 +- .../boost/asio/detail/select_interrupter.hpp | 2 +- include/boost/asio/detail/select_reactor.hpp | 2 +- .../boost/asio/detail/service_registry.hpp | 2 +- include/boost/asio/detail/signal_blocker.hpp | 2 +- include/boost/asio/detail/signal_handler.hpp | 14 +- include/boost/asio/detail/signal_init.hpp | 2 +- include/boost/asio/detail/signal_op.hpp | 2 +- .../boost/asio/detail/signal_set_service.hpp | 36 +- include/boost/asio/detail/socket_holder.hpp | 2 +- include/boost/asio/detail/socket_ops.hpp | 2 +- include/boost/asio/detail/socket_option.hpp | 2 +- .../asio/detail/socket_select_interrupter.hpp | 2 +- include/boost/asio/detail/socket_types.hpp | 2 +- .../asio/detail/solaris_fenced_block.hpp | 2 +- include/boost/asio/detail/static_mutex.hpp | 2 +- include/boost/asio/detail/std_event.hpp | 2 +- .../boost/asio/detail/std_fenced_block.hpp | 2 +- include/boost/asio/detail/std_global.hpp | 2 +- include/boost/asio/detail/std_mutex.hpp | 2 +- .../boost/asio/detail/std_static_mutex.hpp | 2 +- include/boost/asio/detail/std_thread.hpp | 2 +- .../asio/detail/strand_executor_service.hpp | 6 +- include/boost/asio/detail/strand_service.hpp | 2 +- include/boost/asio/detail/string_view.hpp | 26 +- include/boost/asio/detail/thread.hpp | 2 +- include/boost/asio/detail/thread_context.hpp | 2 +- include/boost/asio/detail/thread_group.hpp | 8 +- .../boost/asio/detail/thread_info_base.hpp | 54 +- include/boost/asio/detail/throw_error.hpp | 2 +- include/boost/asio/detail/throw_exception.hpp | 2 +- include/boost/asio/detail/timer_queue.hpp | 4 +- .../boost/asio/detail/timer_queue_base.hpp | 2 +- .../boost/asio/detail/timer_queue_ptime.hpp | 2 +- include/boost/asio/detail/timer_queue_set.hpp | 2 +- include/boost/asio/detail/timer_scheduler.hpp | 2 +- .../boost/asio/detail/timer_scheduler_fwd.hpp | 2 +- include/boost/asio/detail/tss_ptr.hpp | 2 +- include/boost/asio/detail/type_traits.hpp | 8 +- .../boost/asio/detail/variadic_templates.hpp | 16 +- include/boost/asio/detail/wait_handler.hpp | 16 +- include/boost/asio/detail/wait_op.hpp | 2 +- include/boost/asio/detail/win_event.hpp | 2 +- .../boost/asio/detail/win_fd_set_adapter.hpp | 2 +- .../boost/asio/detail/win_fenced_block.hpp | 2 +- include/boost/asio/detail/win_global.hpp | 12 +- .../asio/detail/win_iocp_handle_read_op.hpp | 16 +- .../asio/detail/win_iocp_handle_service.hpp | 72 +- .../asio/detail/win_iocp_handle_write_op.hpp | 15 +- .../boost/asio/detail/win_iocp_io_context.hpp | 14 +- .../asio/detail/win_iocp_null_buffers_op.hpp | 14 +- .../boost/asio/detail/win_iocp_operation.hpp | 2 +- .../asio/detail/win_iocp_overlapped_op.hpp | 14 +- .../asio/detail/win_iocp_overlapped_ptr.hpp | 42 +- .../detail/win_iocp_serial_port_service.hpp | 24 +- .../asio/detail/win_iocp_socket_accept_op.hpp | 41 +- .../detail/win_iocp_socket_connect_op.hpp | 15 +- .../asio/detail/win_iocp_socket_recv_op.hpp | 15 +- .../detail/win_iocp_socket_recvfrom_op.hpp | 16 +- .../detail/win_iocp_socket_recvmsg_op.hpp | 15 +- .../asio/detail/win_iocp_socket_send_op.hpp | 15 +- .../asio/detail/win_iocp_socket_service.hpp | 132 +- .../detail/win_iocp_socket_service_base.hpp | 101 +- .../asio/detail/win_iocp_thread_info.hpp | 2 +- .../boost/asio/detail/win_iocp_wait_op.hpp | 14 +- include/boost/asio/detail/win_mutex.hpp | 2 +- .../asio/detail/win_object_handle_service.hpp | 35 +- .../boost/asio/detail/win_static_mutex.hpp | 2 +- include/boost/asio/detail/win_thread.hpp | 2 +- include/boost/asio/detail/win_tss_ptr.hpp | 2 +- include/boost/asio/detail/winapp_thread.hpp | 2 +- include/boost/asio/detail/wince_thread.hpp | 2 +- .../boost/asio/detail/winrt_async_manager.hpp | 39 +- include/boost/asio/detail/winrt_async_op.hpp | 2 +- .../boost/asio/detail/winrt_resolve_op.hpp | 15 +- .../asio/detail/winrt_resolver_service.hpp | 54 +- .../asio/detail/winrt_socket_connect_op.hpp | 14 +- .../asio/detail/winrt_socket_recv_op.hpp | 15 +- .../asio/detail/winrt_socket_send_op.hpp | 15 +- .../asio/detail/winrt_ssocket_service.hpp | 23 +- .../detail/winrt_ssocket_service_base.hpp | 59 +- .../asio/detail/winrt_timer_scheduler.hpp | 26 +- include/boost/asio/detail/winrt_utils.hpp | 2 +- include/boost/asio/detail/winsock_init.hpp | 2 +- include/boost/asio/detail/work_dispatcher.hpp | 7 +- include/boost/asio/detail/wrapped_handler.hpp | 2 +- include/boost/asio/dispatch.hpp | 10 +- include/boost/asio/error.hpp | 2 +- include/boost/asio/execution_context.hpp | 5 +- include/boost/asio/executor.hpp | 2 +- include/boost/asio/executor_work_guard.hpp | 7 +- include/boost/asio/generic/basic_endpoint.hpp | 2 +- .../boost/asio/generic/datagram_protocol.hpp | 2 +- .../boost/asio/generic/detail/endpoint.hpp | 2 +- .../asio/generic/detail/impl/endpoint.ipp | 2 +- include/boost/asio/generic/raw_protocol.hpp | 2 +- .../asio/generic/seq_packet_protocol.hpp | 2 +- .../boost/asio/generic/stream_protocol.hpp | 2 +- include/boost/asio/handler_alloc_hook.hpp | 2 +- .../boost/asio/handler_continuation_hook.hpp | 2 +- include/boost/asio/handler_invoke_hook.hpp | 2 +- include/boost/asio/handler_type.hpp | 52 - include/boost/asio/high_resolution_timer.hpp | 2 +- include/boost/asio/impl/awaitable.hpp | 424 + .../boost/asio/impl/buffered_read_stream.hpp | 107 +- .../boost/asio/impl/buffered_write_stream.hpp | 99 +- include/boost/asio/impl/co_spawn.hpp | 140 + include/boost/asio/impl/compose.hpp | 421 + include/boost/asio/impl/connect.hpp | 410 +- include/boost/asio/impl/defer.hpp | 58 +- include/boost/asio/impl/detached.hpp | 132 + include/boost/asio/impl/dispatch.hpp | 59 +- include/boost/asio/impl/error.ipp | 2 +- include/boost/asio/impl/execution_context.hpp | 14 +- include/boost/asio/impl/execution_context.ipp | 2 +- include/boost/asio/impl/executor.hpp | 31 +- include/boost/asio/impl/executor.ipp | 2 +- .../boost/asio/impl/handler_alloc_hook.ipp | 2 +- include/boost/asio/impl/io_context.hpp | 138 +- include/boost/asio/impl/io_context.ipp | 7 +- include/boost/asio/impl/post.hpp | 58 +- include/boost/asio/impl/read.hpp | 570 +- include/boost/asio/impl/read_at.hpp | 147 +- include/boost/asio/impl/read_until.hpp | 2366 +++- include/boost/asio/impl/redirect_error.hpp | 374 + include/boost/asio/impl/serial_port_base.hpp | 2 +- include/boost/asio/impl/serial_port_base.ipp | 2 +- include/boost/asio/impl/spawn.hpp | 71 +- include/boost/asio/impl/src.cpp | 2 +- include/boost/asio/impl/src.hpp | 2 +- include/boost/asio/impl/system_context.hpp | 2 +- include/boost/asio/impl/system_context.ipp | 11 +- include/boost/asio/impl/system_executor.hpp | 2 +- include/boost/asio/impl/thread_pool.hpp | 2 +- include/boost/asio/impl/thread_pool.ipp | 21 +- include/boost/asio/impl/use_awaitable.hpp | 278 + include/boost/asio/impl/use_future.hpp | 53 +- include/boost/asio/impl/write.hpp | 520 +- include/boost/asio/impl/write_at.hpp | 146 +- include/boost/asio/io_context.hpp | 28 +- include/boost/asio/io_context_strand.hpp | 102 +- include/boost/asio/io_service.hpp | 2 +- include/boost/asio/io_service_strand.hpp | 2 +- include/boost/asio/ip/address.hpp | 66 +- include/boost/asio/ip/address_v4.hpp | 62 +- include/boost/asio/ip/address_v4_iterator.hpp | 2 +- include/boost/asio/ip/address_v4_range.hpp | 2 +- include/boost/asio/ip/address_v6.hpp | 81 +- include/boost/asio/ip/address_v6_iterator.hpp | 2 +- include/boost/asio/ip/address_v6_range.hpp | 2 +- include/boost/asio/ip/bad_address_cast.hpp | 9 +- include/boost/asio/ip/basic_endpoint.hpp | 47 +- include/boost/asio/ip/basic_resolver.hpp | 316 +- .../boost/asio/ip/basic_resolver_entry.hpp | 2 +- .../boost/asio/ip/basic_resolver_iterator.hpp | 2 +- .../boost/asio/ip/basic_resolver_query.hpp | 2 +- .../boost/asio/ip/basic_resolver_results.hpp | 12 +- include/boost/asio/ip/detail/endpoint.hpp | 40 +- .../boost/asio/ip/detail/impl/endpoint.ipp | 20 +- .../boost/asio/ip/detail/socket_option.hpp | 2 +- include/boost/asio/ip/host_name.hpp | 2 +- include/boost/asio/ip/icmp.hpp | 2 +- include/boost/asio/ip/impl/address.hpp | 2 +- include/boost/asio/ip/impl/address.ipp | 45 +- include/boost/asio/ip/impl/address_v4.hpp | 2 +- include/boost/asio/ip/impl/address_v4.ipp | 26 +- include/boost/asio/ip/impl/address_v6.hpp | 2 +- include/boost/asio/ip/impl/address_v6.ipp | 56 +- include/boost/asio/ip/impl/basic_endpoint.hpp | 2 +- include/boost/asio/ip/impl/host_name.ipp | 2 +- include/boost/asio/ip/impl/network_v4.hpp | 2 +- include/boost/asio/ip/impl/network_v4.ipp | 7 +- include/boost/asio/ip/impl/network_v6.hpp | 2 +- include/boost/asio/ip/impl/network_v6.ipp | 7 +- include/boost/asio/ip/multicast.hpp | 16 +- include/boost/asio/ip/network_v4.hpp | 6 +- include/boost/asio/ip/network_v6.hpp | 6 +- include/boost/asio/ip/resolver_base.hpp | 2 +- include/boost/asio/ip/resolver_query_base.hpp | 2 +- include/boost/asio/ip/resolver_service.hpp | 202 - include/boost/asio/ip/tcp.hpp | 6 +- include/boost/asio/ip/udp.hpp | 2 +- include/boost/asio/ip/unicast.hpp | 6 +- include/boost/asio/ip/v6_only.hpp | 6 +- include/boost/asio/is_executor.hpp | 2 +- include/boost/asio/is_read_buffered.hpp | 2 +- include/boost/asio/is_write_buffered.hpp | 2 +- include/boost/asio/local/basic_endpoint.hpp | 10 +- include/boost/asio/local/connect_pair.hpp | 33 +- .../boost/asio/local/datagram_protocol.hpp | 2 +- include/boost/asio/local/detail/endpoint.hpp | 8 +- .../boost/asio/local/detail/impl/endpoint.ipp | 9 +- include/boost/asio/local/stream_protocol.hpp | 2 +- include/boost/asio/packaged_task.hpp | 8 +- include/boost/asio/placeholders.hpp | 2 +- include/boost/asio/posix/basic_descriptor.hpp | 228 +- .../asio/posix/basic_stream_descriptor.hpp | 192 +- include/boost/asio/posix/descriptor.hpp | 617 +- include/boost/asio/posix/descriptor_base.hpp | 4 +- .../boost/asio/posix/stream_descriptor.hpp | 329 +- .../asio/posix/stream_descriptor_service.hpp | 281 - include/boost/asio/post.hpp | 8 +- include/boost/asio/raw_socket_service.hpp | 468 - include/boost/asio/read.hpp | 378 +- include/boost/asio/read_at.hpp | 34 +- include/boost/asio/read_until.hpp | 1785 ++- include/boost/asio/redirect_error.hpp | 68 + .../boost/asio/seq_packet_socket_service.hpp | 418 - include/boost/asio/serial_port.hpp | 739 +- include/boost/asio/serial_port_base.hpp | 2 +- include/boost/asio/serial_port_service.hpp | 251 - include/boost/asio/signal_set.hpp | 425 +- include/boost/asio/signal_set_service.hpp | 144 - .../boost/asio/socket_acceptor_service.hpp | 374 - include/boost/asio/socket_base.hpp | 52 +- include/boost/asio/spawn.hpp | 2 +- include/boost/asio/ssl.hpp | 2 +- include/boost/asio/ssl/context.hpp | 2 +- include/boost/asio/ssl/context_base.hpp | 19 +- .../asio/ssl/detail/buffered_handshake_op.hpp | 2 +- include/boost/asio/ssl/detail/engine.hpp | 2 +- .../boost/asio/ssl/detail/handshake_op.hpp | 2 +- include/boost/asio/ssl/detail/impl/engine.ipp | 28 +- .../asio/ssl/detail/impl/openssl_init.ipp | 6 +- include/boost/asio/ssl/detail/io.hpp | 19 +- .../boost/asio/ssl/detail/openssl_init.hpp | 2 +- .../boost/asio/ssl/detail/openssl_types.hpp | 2 +- .../asio/ssl/detail/password_callback.hpp | 2 +- include/boost/asio/ssl/detail/read_op.hpp | 2 +- include/boost/asio/ssl/detail/shutdown_op.hpp | 14 +- include/boost/asio/ssl/detail/stream_core.hpp | 9 +- .../boost/asio/ssl/detail/verify_callback.hpp | 2 +- include/boost/asio/ssl/detail/write_op.hpp | 2 +- include/boost/asio/ssl/error.hpp | 26 +- include/boost/asio/ssl/impl/context.hpp | 2 +- include/boost/asio/ssl/impl/context.ipp | 76 +- include/boost/asio/ssl/impl/error.ipp | 4 +- .../asio/ssl/impl/rfc2818_verification.ipp | 2 +- include/boost/asio/ssl/impl/src.hpp | 2 +- .../boost/asio/ssl/rfc2818_verification.hpp | 2 +- include/boost/asio/ssl/stream.hpp | 191 +- include/boost/asio/ssl/stream_base.hpp | 2 +- include/boost/asio/ssl/verify_context.hpp | 2 +- include/boost/asio/ssl/verify_mode.hpp | 2 +- include/boost/asio/steady_timer.hpp | 2 +- include/boost/asio/strand.hpp | 29 +- include/boost/asio/stream_socket_service.hpp | 414 - include/boost/asio/streambuf.hpp | 2 +- include/boost/asio/system_context.hpp | 5 +- include/boost/asio/system_executor.hpp | 2 +- include/boost/asio/system_timer.hpp | 2 +- include/boost/asio/this_coro.hpp | 47 + include/boost/asio/thread_pool.hpp | 7 +- include/boost/asio/time_traits.hpp | 2 +- include/boost/asio/ts/buffer.hpp | 2 +- include/boost/asio/ts/executor.hpp | 3 +- include/boost/asio/ts/internet.hpp | 2 +- include/boost/asio/ts/io_context.hpp | 2 +- include/boost/asio/ts/net.hpp | 2 +- include/boost/asio/ts/netfwd.hpp | 74 +- include/boost/asio/ts/socket.hpp | 2 +- include/boost/asio/ts/timer.hpp | 2 +- include/boost/asio/unyield.hpp | 2 +- include/boost/asio/use_awaitable.hpp | 73 + include/boost/asio/use_future.hpp | 7 +- include/boost/asio/uses_executor.hpp | 2 +- include/boost/asio/version.hpp | 4 +- include/boost/asio/wait_traits.hpp | 2 +- include/boost/asio/waitable_timer_service.hpp | 212 - include/boost/asio/windows/basic_handle.hpp | 275 - .../asio/windows/basic_object_handle.hpp | 292 +- .../asio/windows/basic_overlapped_handle.hpp | 355 + .../windows/basic_random_access_handle.hpp | 167 +- .../asio/windows/basic_stream_handle.hpp | 170 +- include/boost/asio/windows/object_handle.hpp | 349 +- .../asio/windows/object_handle_service.hpp | 185 - .../boost/asio/windows/overlapped_handle.hpp | 300 +- include/boost/asio/windows/overlapped_ptr.hpp | 45 +- .../asio/windows/random_access_handle.hpp | 347 +- .../windows/random_access_handle_service.hpp | 216 - include/boost/asio/windows/stream_handle.hpp | 331 +- .../asio/windows/stream_handle_service.hpp | 212 - include/boost/asio/write.hpp | 370 +- include/boost/asio/write_at.hpp | 34 +- include/boost/asio/yield.hpp | 2 +- include/boost/assign/assignment_exception.hpp | 13 +- include/boost/assign/list_inserter.hpp | 168 +- include/boost/assign/list_of.hpp | 312 +- include/boost/assign/ptr_list_inserter.hpp | 26 + include/boost/assign/ptr_list_of.hpp | 108 +- include/boost/assign/ptr_map_inserter.hpp | 27 +- include/boost/assign/std/deque.hpp | 15 +- include/boost/assign/std/list.hpp | 15 +- include/boost/assign/std/queue.hpp | 19 + include/boost/assign/std/set.hpp | 23 +- include/boost/assign/std/slist.hpp | 13 +- include/boost/assign/std/stack.hpp | 14 +- include/boost/assign/std/vector.hpp | 14 +- include/boost/atomic/atomic.hpp | 10 + include/boost/atomic/capabilities.hpp | 49 + include/boost/atomic/detail/addressof.hpp | 58 + include/boost/atomic/detail/atomic_flag.hpp | 1 + .../boost/atomic/detail/atomic_template.hpp | 711 +- include/boost/atomic/detail/bitwise_cast.hpp | 56 +- .../boost/atomic/detail/bitwise_fp_cast.hpp | 86 + .../boost/atomic/detail/caps_gcc_atomic.hpp | 8 +- include/boost/atomic/detail/caps_gcc_sync.hpp | 4 + include/boost/atomic/detail/config.hpp | 112 +- .../atomic/detail/extra_fp_operations.hpp | 28 + .../atomic/detail/extra_fp_operations_fwd.hpp | 35 + .../atomic/detail/extra_fp_ops_emulated.hpp | 107 + .../atomic/detail/extra_fp_ops_generic.hpp | 189 + .../boost/atomic/detail/extra_operations.hpp | 1 + .../atomic/detail/extra_operations_fwd.hpp | 2 +- .../atomic/detail/extra_ops_emulated.hpp | 238 + .../boost/atomic/detail/extra_ops_gcc_arm.hpp | 979 +- .../boost/atomic/detail/extra_ops_gcc_ppc.hpp | 658 +- .../boost/atomic/detail/extra_ops_gcc_x86.hpp | 486 +- .../boost/atomic/detail/extra_ops_generic.hpp | 292 +- .../atomic/detail/extra_ops_msvc_arm.hpp | 2 +- .../atomic/detail/extra_ops_msvc_x86.hpp | 473 +- include/boost/atomic/detail/float_sizes.hpp | 142 + include/boost/atomic/detail/fp_operations.hpp | 28 + .../boost/atomic/detail/fp_operations_fwd.hpp | 35 + .../boost/atomic/detail/fp_ops_emulated.hpp | 72 + .../boost/atomic/detail/fp_ops_generic.hpp | 83 + include/boost/atomic/detail/int_sizes.hpp | 6 +- .../boost/atomic/detail/integral_extend.hpp | 105 + include/boost/atomic/detail/ops_cas_based.hpp | 2 + include/boost/atomic/detail/ops_emulated.hpp | 15 +- .../atomic/detail/ops_extending_cas_based.hpp | 15 +- include/boost/atomic/detail/ops_gcc_alpha.hpp | 13 +- include/boost/atomic/detail/ops_gcc_arm.hpp | 93 +- .../atomic/detail/ops_gcc_arm_common.hpp | 5 +- .../boost/atomic/detail/ops_gcc_atomic.hpp | 109 +- include/boost/atomic/detail/ops_gcc_ppc.hpp | 164 +- .../atomic/detail/ops_gcc_ppc_common.hpp | 7 +- include/boost/atomic/detail/ops_gcc_sparc.hpp | 13 +- include/boost/atomic/detail/ops_gcc_sync.hpp | 105 +- include/boost/atomic/detail/ops_gcc_x86.hpp | 21 +- .../boost/atomic/detail/ops_gcc_x86_dcas.hpp | 583 +- include/boost/atomic/detail/ops_linux_arm.hpp | 9 +- include/boost/atomic/detail/ops_msvc_arm.hpp | 48 +- include/boost/atomic/detail/ops_msvc_x86.hpp | 127 +- include/boost/atomic/detail/ops_windows.hpp | 17 +- include/boost/atomic/detail/platform.hpp | 12 + include/boost/atomic/detail/storage_type.hpp | 101 +- include/boost/atomic/detail/string_ops.hpp | 61 + .../atomic/detail/type_traits/conditional.hpp | 4 +- .../detail/type_traits/integral_constant.hpp | 46 + .../detail/type_traits/is_floating_point.hpp | 42 + .../atomic/detail/type_traits/is_function.hpp | 4 +- .../atomic/detail/type_traits/is_iec559.hpp | 47 + .../atomic/detail/type_traits/is_integral.hpp | 4 +- .../atomic/detail/type_traits/is_signed.hpp | 4 +- .../is_trivially_default_constructible.hpp | 46 + .../atomic/detail/type_traits/make_signed.hpp | 4 +- .../detail/type_traits/make_unsigned.hpp | 43 + include/boost/beast.hpp | 2 +- .../beast/_experimental/http/icy_stream.hpp | 319 + .../_experimental/http/impl/icy_stream.hpp | 334 + .../boost/beast/_experimental/test/error.hpp | 40 + .../beast/_experimental/test/fail_count.hpp | 70 + .../beast/_experimental/test/handler.hpp | 188 + .../beast/_experimental/test/impl/error.hpp | 40 + .../beast/_experimental/test/impl/error.ipp | 65 + .../_experimental/test/impl/fail_count.ipp | 58 + .../beast/_experimental/test/impl/stream.hpp | 453 + .../beast/_experimental/test/impl/stream.ipp | 375 + .../boost/beast/_experimental/test/stream.hpp | 607 + .../boost/beast/_experimental/test/tcp.hpp | 77 + .../beast/_experimental/unit_test/amount.hpp | 59 + .../unit_test/detail/const_container.hpp | 95 + .../beast/_experimental/unit_test/dstream.hpp | 131 + .../_experimental/unit_test/global_suites.hpp | 55 + .../beast/_experimental/unit_test/main.ipp | 87 + .../beast/_experimental/unit_test/match.hpp | 177 + .../_experimental/unit_test/recorder.hpp | 93 + .../_experimental/unit_test/reporter.hpp | 292 + .../beast/_experimental/unit_test/results.hpp | 246 + .../beast/_experimental/unit_test/runner.hpp | 292 + .../beast/_experimental/unit_test/suite.hpp | 707 ++ .../_experimental/unit_test/suite_info.hpp | 126 + .../_experimental/unit_test/suite_list.hpp | 81 + .../beast/_experimental/unit_test/thread.hpp | 128 + include/boost/beast/core.hpp | 18 +- include/boost/beast/core/async_base.hpp | 711 ++ include/boost/beast/core/basic_stream.hpp | 1400 +++ include/boost/beast/core/bind_handler.hpp | 108 +- include/boost/beast/core/buffer_traits.hpp | 164 + .../boost/beast/core/buffered_read_stream.hpp | 118 +- include/boost/beast/core/buffers_adapter.hpp | 149 +- include/boost/beast/core/buffers_adaptor.hpp | 226 + include/boost/beast/core/buffers_cat.hpp | 58 +- include/boost/beast/core/buffers_prefix.hpp | 200 +- include/boost/beast/core/buffers_range.hpp | 128 + include/boost/beast/core/buffers_suffix.hpp | 57 +- .../boost/beast/core/buffers_to_string.hpp | 17 +- include/boost/beast/core/detail/allocator.hpp | 6 +- .../boost/beast/core/detail/async_base.hpp | 46 + include/boost/beast/core/detail/base64.hpp | 182 +- include/boost/beast/core/detail/base64.ipp | 220 + .../beast/core/detail/bind_continuation.hpp | 110 + .../core/detail/bind_default_executor.hpp | 123 + .../boost/beast/core/detail/bind_handler.hpp | 349 +- include/boost/beast/core/detail/buffer.hpp | 83 + .../boost/beast/core/detail/buffer_traits.hpp | 98 + .../boost/beast/core/detail/buffers_pair.hpp | 115 + .../core/detail/buffers_range_adaptor.hpp | 142 + .../boost/beast/core/detail/buffers_ref.hpp | 20 +- include/boost/beast/core/detail/chacha.hpp | 126 + include/boost/beast/core/detail/clamp.hpp | 2 +- include/boost/beast/core/detail/config.hpp | 63 +- .../core/detail/empty_base_optimization.hpp | 100 - .../boost/beast/core/detail/flat_stream.hpp | 73 + .../beast/core/detail/get_io_context.hpp | 107 + include/boost/beast/core/detail/impl/read.hpp | 260 + .../boost/beast/core/detail/in_place_init.hpp | 43 - .../beast/core/detail/integer_sequence.hpp | 143 - .../boost/beast/core/detail/is_invocable.hpp | 58 + include/boost/beast/core/detail/ostream.hpp | 196 +- include/boost/beast/core/detail/pcg.hpp | 65 + include/boost/beast/core/detail/read.hpp | 245 + .../beast/core/detail/remap_post_to_defer.hpp | 109 + .../boost/beast/core/detail/service_base.hpp | 43 + include/boost/beast/core/detail/sha1.hpp | 272 +- include/boost/beast/core/detail/sha1.ipp | 301 + .../boost/beast/core/detail/static_const.hpp | 49 + .../beast/core/detail/static_ostream.hpp | 2 +- .../boost/beast/core/detail/static_string.hpp | 10 +- .../boost/beast/core/detail/stream_base.hpp | 107 + .../boost/beast/core/detail/stream_traits.hpp | 111 + include/boost/beast/core/detail/tuple.hpp | 116 + .../boost/beast/core/detail/type_traits.hpp | 300 +- include/boost/beast/core/detail/variant.hpp | 236 +- include/boost/beast/core/detect_ssl.hpp | 651 + include/boost/beast/core/error.hpp | 32 +- include/boost/beast/core/file.hpp | 5 +- include/boost/beast/core/file_base.hpp | 119 +- include/boost/beast/core/file_posix.hpp | 24 +- include/boost/beast/core/file_stdio.hpp | 15 +- include/boost/beast/core/file_win32.hpp | 19 +- include/boost/beast/core/flat_buffer.hpp | 457 +- .../boost/beast/core/flat_static_buffer.hpp | 237 +- include/boost/beast/core/flat_stream.hpp | 347 + include/boost/beast/core/handler_ptr.hpp | 200 +- include/boost/beast/core/impl/async_base.hpp | 156 + .../boost/beast/core/impl/basic_stream.hpp | 995 ++ .../beast/core/impl/buffered_read_stream.hpp | 242 + .../beast/core/impl/buffered_read_stream.ipp | 248 - .../boost/beast/core/impl/buffers_adapter.ipp | 517 - .../boost/beast/core/impl/buffers_adaptor.hpp | 608 + include/boost/beast/core/impl/buffers_cat.hpp | 443 + include/boost/beast/core/impl/buffers_cat.ipp | 503 - .../boost/beast/core/impl/buffers_prefix.hpp | 326 + .../boost/beast/core/impl/buffers_prefix.ipp | 258 - ...{buffers_suffix.ipp => buffers_suffix.hpp} | 100 +- include/boost/beast/core/impl/error.hpp | 44 + include/boost/beast/core/impl/error.ipp | 99 + include/boost/beast/core/impl/file_posix.ipp | 170 +- include/boost/beast/core/impl/file_stdio.ipp | 127 +- include/boost/beast/core/impl/file_win32.ipp | 75 +- .../impl/{flat_buffer.ipp => flat_buffer.hpp} | 332 +- .../beast/core/impl/flat_static_buffer.hpp | 43 + .../beast/core/impl/flat_static_buffer.ipp | 100 +- include/boost/beast/core/impl/flat_stream.hpp | 276 + include/boost/beast/core/impl/handler_ptr.hpp | 132 + include/boost/beast/core/impl/handler_ptr.ipp | 147 - .../{multi_buffer.ipp => multi_buffer.hpp} | 787 +- .../impl/{read_size.ipp => read_size.hpp} | 22 +- .../boost/beast/core/impl/saved_handler.hpp | 151 + .../boost/beast/core/impl/saved_handler.ipp | 76 + .../boost/beast/core/impl/static_buffer.hpp | 50 + .../boost/beast/core/impl/static_buffer.ipp | 151 +- .../{static_string.ipp => static_string.hpp} | 36 +- .../{string_param.ipp => string_param.hpp} | 6 +- include/boost/beast/core/make_printable.hpp | 107 + include/boost/beast/core/multi_buffer.hpp | 487 +- include/boost/beast/core/ostream.hpp | 74 +- include/boost/beast/core/rate_policy.hpp | 220 + include/boost/beast/core/read_size.hpp | 5 +- include/boost/beast/core/role.hpp | 50 + include/boost/beast/core/saved_handler.hpp | 137 + include/boost/beast/core/span.hpp | 2 +- include/boost/beast/core/static_buffer.hpp | 240 +- include/boost/beast/core/static_string.hpp | 19 +- include/boost/beast/core/stream_traits.hpp | 544 + include/boost/beast/core/string.hpp | 51 +- include/boost/beast/core/string_param.hpp | 4 +- include/boost/beast/core/tcp_stream.hpp | 34 + include/boost/beast/core/type_traits.hpp | 458 +- include/boost/beast/http.hpp | 3 +- .../boost/beast/http/basic_dynamic_body.hpp | 63 +- include/boost/beast/http/basic_file_body.hpp | 54 +- include/boost/beast/http/basic_parser.hpp | 419 +- include/boost/beast/http/buffer_body.hpp | 46 +- include/boost/beast/http/chunk_encode.hpp | 77 +- .../beast/http/detail/basic_parsed_list.hpp | 13 +- .../boost/beast/http/detail/basic_parser.hpp | 800 +- .../boost/beast/http/detail/basic_parser.ipp | 848 ++ .../boost/beast/http/detail/chunk_encode.hpp | 65 +- include/boost/beast/http/detail/rfc7230.hpp | 421 +- include/boost/beast/http/detail/rfc7230.ipp | 388 + .../boost/beast/http/detail/type_traits.hpp | 14 +- include/boost/beast/http/dynamic_body.hpp | 4 +- include/boost/beast/http/empty_body.hpp | 27 +- include/boost/beast/http/error.hpp | 31 +- include/boost/beast/http/field.hpp | 7 +- include/boost/beast/http/fields.hpp | 131 +- include/boost/beast/http/file_body.hpp | 6 +- .../boost/beast/http/impl/basic_parser.hpp | 78 + .../boost/beast/http/impl/basic_parser.ipp | 247 +- .../{chunk_encode.ipp => chunk_encode.hpp} | 27 +- include/boost/beast/http/impl/error.hpp | 37 + include/boost/beast/http/impl/error.ipp | 28 +- include/boost/beast/http/impl/field.ipp | 177 +- .../http/impl/{fields.ipp => fields.hpp} | 237 +- ...ile_body_win32.ipp => file_body_win32.hpp} | 337 +- .../http/impl/{message.ipp => message.hpp} | 44 +- .../http/impl/{parser.ipp => parser.hpp} | 22 +- include/boost/beast/http/impl/read.hpp | 559 + include/boost/beast/http/impl/read.ipp | 821 -- include/boost/beast/http/impl/rfc7230.hpp | 423 + include/boost/beast/http/impl/rfc7230.ipp | 408 +- .../impl/{serializer.ipp => serializer.hpp} | 131 +- include/boost/beast/http/impl/status.ipp | 88 +- include/boost/beast/http/impl/verb.ipp | 35 +- include/boost/beast/http/impl/write.hpp | 950 ++ include/boost/beast/http/impl/write.ipp | 887 -- include/boost/beast/http/message.hpp | 101 +- include/boost/beast/http/parser.hpp | 205 +- include/boost/beast/http/read.hpp | 850 +- include/boost/beast/http/rfc7230.hpp | 10 +- include/boost/beast/http/serializer.hpp | 68 +- include/boost/beast/http/span_body.hpp | 43 +- include/boost/beast/http/status.hpp | 18 +- include/boost/beast/http/string_body.hpp | 68 +- include/boost/beast/http/type_traits.hpp | 127 +- include/boost/beast/http/vector_body.hpp | 63 +- include/boost/beast/http/verb.hpp | 6 +- include/boost/beast/http/write.hpp | 292 +- include/boost/beast/src.hpp | 62 + include/boost/beast/ssl.hpp | 17 + include/boost/beast/ssl/ssl_stream.hpp | 684 + include/boost/beast/version.hpp | 6 +- include/boost/beast/websocket.hpp | 4 +- .../beast/websocket/detail/decorator.hpp | 315 + .../boost/beast/websocket/detail/frame.hpp | 69 +- .../boost/beast/websocket/detail/hybi13.hpp | 49 +- .../boost/beast/websocket/detail/hybi13.ipp | 67 + .../beast/websocket/detail/impl_base.hpp | 487 + include/boost/beast/websocket/detail/mask.hpp | 243 +- .../beast/websocket/detail/pausation.hpp | 229 - .../beast/websocket/detail/pmd_extension.hpp | 373 +- .../beast/websocket/detail/pmd_extension.ipp | 310 + include/boost/beast/websocket/detail/prng.hpp | 123 + include/boost/beast/websocket/detail/prng.ipp | 327 + .../boost/beast/websocket/detail/service.hpp | 78 + .../boost/beast/websocket/detail/service.ipp | 65 + .../beast/websocket/detail/soft_mutex.hpp | 112 + .../beast/websocket/detail/type_traits.hpp | 8 +- .../beast/websocket/detail/utf8_checker.hpp | 288 +- .../beast/websocket/detail/utf8_checker.ipp | 331 + include/boost/beast/websocket/error.hpp | 229 +- include/boost/beast/websocket/impl/accept.hpp | 862 ++ include/boost/beast/websocket/impl/accept.ipp | 757 -- include/boost/beast/websocket/impl/close.hpp | 405 + include/boost/beast/websocket/impl/close.ipp | 459 - include/boost/beast/websocket/impl/error.hpp | 44 + include/boost/beast/websocket/impl/error.ipp | 142 +- .../boost/beast/websocket/impl/handshake.hpp | 540 + .../boost/beast/websocket/impl/handshake.ipp | 407 - include/boost/beast/websocket/impl/ping.hpp | 329 + include/boost/beast/websocket/impl/ping.ipp | 271 - include/boost/beast/websocket/impl/read.hpp | 1286 ++ include/boost/beast/websocket/impl/read.ipp | 1323 -- .../impl/{rfc6455.ipp => rfc6455.hpp} | 10 +- .../beast/websocket/impl/{ssl.ipp => ssl.hpp} | 18 +- include/boost/beast/websocket/impl/stream.hpp | 359 + include/boost/beast/websocket/impl/stream.ipp | 717 -- .../beast/websocket/impl/stream_impl.hpp | 939 ++ .../boost/beast/websocket/impl/teardown.hpp | 198 + .../boost/beast/websocket/impl/teardown.ipp | 187 - include/boost/beast/websocket/impl/write.hpp | 784 ++ include/boost/beast/websocket/impl/write.ipp | 797 -- include/boost/beast/websocket/option.hpp | 2 +- include/boost/beast/websocket/rfc6455.hpp | 14 +- include/boost/beast/websocket/role.hpp | 48 +- include/boost/beast/websocket/ssl.hpp | 36 +- include/boost/beast/websocket/stream.hpp | 3409 ++--- include/boost/beast/websocket/stream_base.hpp | 178 + include/boost/beast/websocket/stream_fwd.hpp | 32 + include/boost/beast/websocket/teardown.hpp | 61 +- include/boost/beast/zlib.hpp | 2 +- include/boost/beast/zlib/deflate_stream.hpp | 2 +- include/boost/beast/zlib/detail/bitstream.hpp | 8 +- .../beast/zlib/detail/deflate_stream.hpp | 2392 +--- .../beast/zlib/detail/deflate_stream.ipp | 2292 ++++ .../beast/zlib/detail/inflate_stream.hpp | 1103 +- .../beast/zlib/detail/inflate_stream.ipp | 1118 ++ include/boost/beast/zlib/detail/ranges.hpp | 6 +- include/boost/beast/zlib/detail/window.hpp | 136 +- include/boost/beast/zlib/error.hpp | 28 +- include/boost/beast/zlib/impl/error.hpp | 63 + include/boost/beast/zlib/impl/error.ipp | 33 +- include/boost/beast/zlib/inflate_stream.hpp | 15 +- include/boost/beast/zlib/zlib.hpp | 17 +- ...nordered_associative_container_adaptor.hpp | 0 include/boost/bind/bind.hpp | 6 +- include/boost/blank.hpp | 8 +- .../add_member_lvalue_reference.hpp | 6 +- .../add_member_rvalue_reference.hpp | 6 +- .../detail/is_invocable_impl.hpp | 20 +- .../chrono/detail/inlined/mac/chrono.hpp | 20 +- .../detail/inlined/mac/process_cpu_clocks.hpp | 68 +- .../detail/inlined/mac/thread_clock.hpp | 8 +- .../chrono/detail/inlined/posix/chrono.hpp | 48 +- .../inlined/posix/process_cpu_clocks.hpp | 54 +- .../detail/inlined/posix/thread_clock.hpp | 8 +- .../chrono/detail/inlined/win/chrono.hpp | 40 +- .../detail/inlined/win/process_cpu_clocks.hpp | 28 +- .../detail/inlined/win/thread_clock.hpp | 8 +- include/boost/chrono/detail/system.hpp | 9 +- include/boost/chrono/io/time_point_io.hpp | 2 +- include/boost/chrono/system_clocks.hpp | 4 +- include/boost/circular_buffer.hpp | 6 +- include/boost/circular_buffer/allocators.hpp | 89 + include/boost/circular_buffer/base.hpp | 157 +- include/boost/circular_buffer/details.hpp | 61 +- .../boost/circular_buffer/space_optimized.hpp | 10 +- .../boost/compute/algorithm/accumulate.hpp | 5 + .../compute/algorithm/adjacent_difference.hpp | 7 + .../boost/compute/algorithm/adjacent_find.hpp | 5 + include/boost/compute/algorithm/all_of.hpp | 4 + include/boost/compute/algorithm/any_of.hpp | 4 + .../boost/compute/algorithm/binary_search.hpp | 4 + include/boost/compute/algorithm/copy.hpp | 71 +- include/boost/compute/algorithm/copy_if.hpp | 7 + include/boost/compute/algorithm/copy_n.hpp | 6 +- include/boost/compute/algorithm/count.hpp | 4 + include/boost/compute/algorithm/count_if.hpp | 4 + .../algorithm/detail/copy_on_device.hpp | 41 +- .../algorithm/detail/copy_to_device.hpp | 35 +- .../compute/algorithm/detail/copy_to_host.hpp | 33 +- .../algorithm/detail/merge_sort_on_gpu.hpp | 8 + .../compute/algorithm/detail/radix_sort.hpp | 2 + .../compute/algorithm/detail/scan_on_gpu.hpp | 2 +- include/boost/compute/algorithm/equal.hpp | 7 + .../boost/compute/algorithm/equal_range.hpp | 4 + .../compute/algorithm/exclusive_scan.hpp | 9 + include/boost/compute/algorithm/fill.hpp | 5 + include/boost/compute/algorithm/fill_n.hpp | 4 + include/boost/compute/algorithm/find.hpp | 4 + include/boost/compute/algorithm/find_end.hpp | 6 + include/boost/compute/algorithm/find_if.hpp | 4 + .../boost/compute/algorithm/find_if_not.hpp | 4 + include/boost/compute/algorithm/for_each.hpp | 5 + .../boost/compute/algorithm/for_each_n.hpp | 4 + include/boost/compute/algorithm/gather.hpp | 7 + include/boost/compute/algorithm/generate.hpp | 4 + include/boost/compute/algorithm/includes.hpp | 6 + .../compute/algorithm/inclusive_scan.hpp | 7 + .../boost/compute/algorithm/inner_product.hpp | 7 + .../boost/compute/algorithm/inplace_merge.hpp | 4 + include/boost/compute/algorithm/iota.hpp | 4 + .../compute/algorithm/is_partitioned.hpp | 4 + .../compute/algorithm/is_permutation.hpp | 5 + include/boost/compute/algorithm/is_sorted.hpp | 5 + .../algorithm/lexicographical_compare.hpp | 6 + .../boost/compute/algorithm/lower_bound.hpp | 4 + .../boost/compute/algorithm/max_element.hpp | 5 + include/boost/compute/algorithm/merge.hpp | 9 + .../boost/compute/algorithm/min_element.hpp | 5 + .../compute/algorithm/minmax_element.hpp | 5 + include/boost/compute/algorithm/mismatch.hpp | 7 + .../compute/algorithm/next_permutation.hpp | 4 + include/boost/compute/algorithm/none_of.hpp | 4 + .../boost/compute/algorithm/nth_element.hpp | 5 + .../boost/compute/algorithm/partial_sum.hpp | 5 + include/boost/compute/algorithm/partition.hpp | 4 + .../compute/algorithm/partition_copy.hpp | 7 + .../compute/algorithm/partition_point.hpp | 10 +- .../compute/algorithm/prev_permutation.hpp | 4 + .../compute/algorithm/random_shuffle.hpp | 13 + include/boost/compute/algorithm/reduce.hpp | 5 + .../boost/compute/algorithm/reduce_by_key.hpp | 16 + include/boost/compute/algorithm/remove.hpp | 4 + include/boost/compute/algorithm/remove_if.hpp | 4 + include/boost/compute/algorithm/replace.hpp | 4 + .../boost/compute/algorithm/replace_copy.hpp | 6 + include/boost/compute/algorithm/reverse.hpp | 4 + .../boost/compute/algorithm/reverse_copy.hpp | 6 + include/boost/compute/algorithm/scatter.hpp | 6 + .../boost/compute/algorithm/scatter_if.hpp | 12 + include/boost/compute/algorithm/search.hpp | 6 + include/boost/compute/algorithm/search_n.hpp | 5 + .../compute/algorithm/set_difference.hpp | 7 + .../compute/algorithm/set_intersection.hpp | 7 + .../algorithm/set_symmetric_difference.hpp | 7 + include/boost/compute/algorithm/set_union.hpp | 7 + .../boost/compute/algorithm/sort_by_key.hpp | 7 +- .../compute/algorithm/stable_partition.hpp | 4 + .../boost/compute/algorithm/stable_sort.hpp | 6 + .../compute/algorithm/stable_sort_by_key.hpp | 7 + .../boost/compute/algorithm/swap_ranges.hpp | 6 + include/boost/compute/algorithm/transform.hpp | 13 +- .../boost/compute/algorithm/transform_if.hpp | 5 + .../compute/algorithm/transform_reduce.hpp | 8 + include/boost/compute/algorithm/unique.hpp | 5 + .../boost/compute/algorithm/unique_copy.hpp | 9 + .../boost/compute/algorithm/upper_bound.hpp | 4 + include/boost/compute/async/future.hpp | 30 + include/boost/compute/cl.hpp | 18 +- include/boost/compute/cl_ext.hpp | 18 +- include/boost/compute/core.hpp | 1 + include/boost/compute/detail/cl_versions.hpp | 64 + include/boost/compute/detail/meta_kernel.hpp | 12 +- .../detail/nvidia_compute_capability.hpp | 3 +- include/boost/compute/detail/sha1.hpp | 7 +- include/boost/compute/device.hpp | 2 +- .../exception/program_build_failure.hpp | 58 + .../boost/compute/interop/opengl/cl_gl.hpp | 2 + .../compute/interop/opengl/cl_gl_ext.hpp | 18 +- .../boost/compute/interop/opengl/context.hpp | 6 +- .../compute/iterator/buffer_iterator.hpp | 8 + include/boost/compute/kernel.hpp | 5 + include/boost/compute/memory/svm_ptr.hpp | 2 +- include/boost/compute/program.hpp | 5 +- .../boost/compute/random/threefry_engine.hpp | 195 +- include/boost/compute/types/fundamental.hpp | 87 +- include/boost/concept/assert.hpp | 2 +- include/boost/concept/detail/general.hpp | 6 +- .../boost/concept/detail/has_constraints.hpp | 6 +- include/boost/concept/detail/msvc.hpp | 4 +- include/boost/concept/usage.hpp | 2 +- include/boost/concept_archetype.hpp | 5 +- include/boost/concept_check.hpp | 38 +- include/boost/concept_check/general.hpp | 4 +- include/boost/concept_check/msvc.hpp | 4 +- include/boost/config/auto_link.hpp | 19 +- include/boost/config/compiler/borland.hpp | 8 +- include/boost/config/compiler/clang.hpp | 20 +- include/boost/config/compiler/codegear.hpp | 8 +- include/boost/config/compiler/comeau.hpp | 2 +- include/boost/config/compiler/common_edg.hpp | 4 + include/boost/config/compiler/cray.hpp | 420 +- include/boost/config/compiler/diab.hpp | 9 +- include/boost/config/compiler/digitalmars.hpp | 5 +- include/boost/config/compiler/gcc.hpp | 20 +- include/boost/config/compiler/gcc_xml.hpp | 3 + include/boost/config/compiler/greenhills.hpp | 2 +- include/boost/config/compiler/hp_acc.hpp | 2 +- include/boost/config/compiler/intel.hpp | 8 +- include/boost/config/compiler/kai.hpp | 2 +- include/boost/config/compiler/metrowerks.hpp | 5 +- include/boost/config/compiler/mpw.hpp | 5 +- include/boost/config/compiler/nvcc.hpp | 6 +- include/boost/config/compiler/pathscale.hpp | 3 + include/boost/config/compiler/sunpro_cc.hpp | 3 + include/boost/config/compiler/vacpp.hpp | 5 +- include/boost/config/compiler/visualc.hpp | 39 +- include/boost/config/compiler/xlcpp.hpp | 4 + include/boost/config/compiler/xlcpp_zos.hpp | 1 + .../config/detail/select_compiler_config.hpp | 3 +- include/boost/config/detail/suffix.hpp | 37 +- include/boost/config/header_deprecated.hpp | 26 + include/boost/config/helper_macros.hpp | 37 + include/boost/config/platform/cygwin.hpp | 14 + include/boost/config/platform/vxworks.hpp | 233 +- include/boost/config/pragma_message.hpp | 31 + include/boost/config/stdlib/dinkumware.hpp | 12 +- include/boost/config/stdlib/libcpp.hpp | 23 +- include/boost/config/stdlib/libstdcpp3.hpp | 10 +- include/boost/config/workaround.hpp | 2 + include/boost/container/adaptive_pool.hpp | 302 +- include/boost/container/allocator.hpp | 31 +- include/boost/container/allocator_traits.hpp | 136 +- include/boost/container/container_fwd.hpp | 79 +- include/boost/container/deque.hpp | 352 +- .../container/detail/adaptive_node_pool.hpp | 45 +- .../detail/adaptive_node_pool_impl.hpp | 1296 +- include/boost/container/detail/addressof.hpp | 4 +- .../container/detail/advanced_insert_int.hpp | 50 +- .../boost/container/detail/alloc_helpers.hpp | 16 +- .../detail/allocator_version_traits.hpp | 17 +- include/boost/container/detail/block_list.hpp | 3 +- .../boost/container/detail/block_slist.hpp | 3 +- .../container/detail/compare_functors.hpp | 70 +- .../container/detail/construct_in_place.hpp | 2 +- .../detail/container_or_allocator_rebind.hpp | 8 +- .../container/detail/container_rebind.hpp | 4 +- .../boost/container/detail/copy_move_algo.hpp | 213 +- include/boost/container/detail/destroyers.hpp | 16 +- .../detail/dispatch_uses_allocator.hpp | 110 +- include/boost/container/detail/flat_tree.hpp | 679 +- .../boost/container/detail/is_container.hpp | 11 +- .../detail/is_contiguous_container.hpp | 4 +- include/boost/container/detail/is_sorted.hpp | 4 +- include/boost/container/detail/iterator.hpp | 46 + .../detail/iterator_to_raw_pointer.hpp | 4 +- include/boost/container/detail/iterators.hpp | 268 +- .../boost/container/detail/math_functions.hpp | 58 +- include/boost/container/detail/min_max.hpp | 4 +- include/boost/container/detail/mpl.hpp | 62 +- .../detail/multiallocation_chain.hpp | 61 +- include/boost/container/detail/mutex.hpp | 4 +- .../boost/container/detail/next_capacity.hpp | 72 +- .../container/detail/node_alloc_holder.hpp | 308 +- include/boost/container/detail/node_pool.hpp | 8 +- .../boost/container/detail/node_pool_impl.hpp | 4 +- include/boost/container/detail/pair.hpp | 184 +- .../boost/container/detail/pool_common.hpp | 4 +- .../container/detail/pool_common_alloc.hpp | 14 +- include/boost/container/detail/singleton.hpp | 4 +- include/boost/container/detail/std_fwd.hpp | 3 + .../boost/container/detail/thread_mutex.hpp | 181 + .../container/detail/transform_iterator.hpp | 2 +- include/boost/container/detail/tree.hpp | 453 +- .../boost/container/detail/type_traits.hpp | 6 +- .../boost/container/detail/value_functors.hpp | 36 + include/boost/container/detail/value_init.hpp | 4 +- .../detail/variadic_templates_tools.hpp | 6 +- .../boost/container/detail/version_type.hpp | 30 +- include/boost/container/detail/workaround.hpp | 22 + include/boost/container/flat_map.hpp | 848 +- include/boost/container/flat_set.hpp | 314 +- include/boost/container/list.hpp | 181 +- include/boost/container/map.hpp | 499 +- include/boost/container/node_allocator.hpp | 38 +- include/boost/container/node_handle.hpp | 12 +- include/boost/container/options.hpp | 165 + include/boost/container/pmr/flat_map.hpp | 12 +- include/boost/container/pmr/flat_set.hpp | 12 +- .../boost/container/pmr/global_resource.hpp | 5 +- include/boost/container/pmr/map.hpp | 8 +- .../boost/container/pmr/memory_resource.hpp | 3 +- .../pmr/monotonic_buffer_resource.hpp | 7 +- .../container/pmr/polymorphic_allocator.hpp | 4 +- .../boost/container/pmr/resource_adaptor.hpp | 4 +- include/boost/container/pmr/set.hpp | 8 +- .../pmr/synchronized_pool_resource.hpp | 5 +- include/boost/container/scoped_allocator.hpp | 38 +- include/boost/container/set.hpp | 420 +- include/boost/container/slist.hpp | 182 +- include/boost/container/small_vector.hpp | 213 +- include/boost/container/stable_vector.hpp | 382 +- include/boost/container/static_vector.hpp | 25 +- include/boost/container/string.hpp | 404 +- include/boost/container/throw_exception.hpp | 20 +- include/boost/container/uses_allocator.hpp | 10 +- include/boost/container/vector.hpp | 926 +- .../detail/float_functions.hpp | 0 .../detail/hash_float.hpp | 6 +- .../hash => container_hash}/detail/limits.hpp | 0 include/boost/container_hash/extensions.hpp | 414 + include/boost/container_hash/hash.hpp | 761 ++ include/boost/container_hash/hash_fwd.hpp | 36 + include/boost/context/all.hpp | 13 - .../boost/context/continuation_fcontext.hpp | 52 +- .../boost/context/continuation_ucontext.hpp | 72 +- include/boost/context/continuation_winfib.hpp | 53 +- include/boost/context/detail/apply.hpp | 4 +- include/boost/context/detail/config.hpp | 9 + include/boost/context/detail/exception.hpp | 10 + include/boost/context/detail/externc.hpp | 23 + include/boost/context/execution_context.hpp | 13 +- .../boost/context/execution_context_v1.hpp | 130 +- .../boost/context/execution_context_v2.hpp | 133 +- .../context/execution_context_v2_void.ipp | 76 +- include/boost/context/fiber.hpp | 13 + include/boost/context/fiber_fcontext.hpp | 349 + include/boost/context/fiber_ucontext.hpp | 513 + include/boost/context/fiber_winfib.hpp | 446 + include/boost/context/stack_context.hpp | 4 +- include/boost/contract.hpp | 44 + include/boost/contract/assert.hpp | 136 + include/boost/contract/base_types.hpp | 200 + include/boost/contract/call_if.hpp | 617 + include/boost/contract/check.hpp | 347 + include/boost/contract/constructor.hpp | 108 + include/boost/contract/core/access.hpp | 183 + include/boost/contract/core/check_macro.hpp | 133 + include/boost/contract/core/config.hpp | 797 ++ .../core/constructor_precondition.hpp | 122 + include/boost/contract/core/exception.hpp | 953 ++ include/boost/contract/core/specify.hpp | 650 + include/boost/contract/core/virtual.hpp | 161 + include/boost/contract/destructor.hpp | 107 + include/boost/contract/detail/assert.hpp | 28 + include/boost/contract/detail/auto_ptr.hpp | 53 + include/boost/contract/detail/check.hpp | 48 + include/boost/contract/detail/checking.hpp | 80 + .../contract/detail/condition/cond_base.hpp | 153 + .../contract/detail/condition/cond_inv.hpp | 232 + .../contract/detail/condition/cond_post.hpp | 88 + .../detail/condition/cond_subcontracting.hpp | 472 + include/boost/contract/detail/config.hpp | 26 + include/boost/contract/detail/debug.hpp | 20 + include/boost/contract/detail/decl.hpp | 129 + include/boost/contract/detail/declspec.hpp | 51 + include/boost/contract/detail/inlined.hpp | 15 + .../detail/inlined/core/exception.hpp | 502 + .../detail/inlined/detail/checking.hpp | 49 + include/boost/contract/detail/inlined/old.hpp | 34 + include/boost/contract/detail/name.hpp | 26 + include/boost/contract/detail/none.hpp | 28 + include/boost/contract/detail/noop.hpp | 19 + .../contract/detail/operation/constructor.hpp | 95 + .../contract/detail/operation/destructor.hpp | 102 + .../contract/detail/operation/function.hpp | 82 + .../detail/operation/public_function.hpp | 161 + .../operation/static_public_function.hpp | 103 + .../contract/detail/operator_safe_bool.hpp | 73 + .../detail/preprocessor/keyword/private.hpp | 35 + .../detail/preprocessor/keyword/protected.hpp | 36 + .../detail/preprocessor/keyword/public.hpp | 35 + .../preprocessor/keyword/utility/is.hpp | 30 + .../detail/preprocessor/keyword/virtual.hpp | 35 + .../contract/detail/static_local_var.hpp | 41 + include/boost/contract/detail/tvariadic.hpp | 190 + .../type_traits/member_function_types.hpp | 72 + .../contract/detail/type_traits/mirror.hpp | 111 + .../contract/detail/type_traits/optional.hpp | 42 + include/boost/contract/function.hpp | 89 + include/boost/contract/old.hpp | 810 ++ include/boost/contract/override.hpp | 184 + include/boost/contract/public_function.hpp | 876 ++ include/boost/contract_macro.hpp | 1397 +++ include/boost/convert/base.hpp | 24 +- .../convert/detail/boost_parameter_ext.hpp | 62 - include/boost/convert/parameters.hpp | 37 +- include/boost/convert/printf.hpp | 52 +- include/boost/convert/stream.hpp | 43 +- include/boost/convert/strtol.hpp | 9 +- include/boost/core/addressof.hpp | 84 +- include/boost/core/checked_delete.hpp | 10 +- include/boost/core/empty_value.hpp | 136 + include/boost/core/exchange.hpp | 49 + include/boost/core/explicit_operator_bool.hpp | 9 + include/boost/core/lightweight_test.hpp | 231 +- include/boost/core/lightweight_test_trait.hpp | 33 +- include/boost/core/noncopyable.hpp | 17 +- include/boost/core/pointer_traits.hpp | 185 +- include/boost/core/quick_exit.hpp | 59 + include/boost/core/ref.hpp | 3 +- include/boost/core/swap.hpp | 11 +- include/boost/core/typeinfo.hpp | 36 +- include/boost/core/uncaught_exceptions.hpp | 131 + include/boost/core/use_default.hpp | 17 + .../boost/coroutine/asymmetric_coroutine.hpp | 72 +- include/boost/coroutine/detail/config.hpp | 8 - .../boost/coroutine/detail/preallocated.hpp | 2 +- .../detail/pull_coroutine_object.hpp | 13 + .../detail/push_coroutine_object.hpp | 13 + include/boost/coroutine/stack_context.hpp | 4 +- .../boost/coroutine/symmetric_coroutine.hpp | 8 - .../detail/pull_control_block_cc.hpp | 14 +- .../detail/pull_control_block_cc.ipp | 277 +- .../coroutine2/detail/pull_coroutine.hpp | 64 +- .../coroutine2/detail/pull_coroutine.ipp | 12 +- .../detail/push_control_block_cc.hpp | 14 +- .../detail/push_control_block_cc.ipp | 270 +- .../coroutine2/detail/push_coroutine.hpp | 25 +- .../coroutine2/detail/push_coroutine.ipp | 12 +- include/boost/coroutine2/detail/wrap.hpp | 8 +- include/boost/crc.hpp | 2212 +++- include/boost/cstdint.hpp | 23 +- include/boost/current_function.hpp | 6 +- include/boost/cxx11_char_types.hpp | 4 +- include/boost/date_time/adjust_functors.hpp | 22 +- .../boost/date_time/c_local_time_adjustor.hpp | 13 +- include/boost/date_time/compiler_config.hpp | 5 + include/boost/date_time/date_duration.hpp | 4 + include/boost/date_time/date_formatting.hpp | 2 + .../date_time/date_formatting_locales.hpp | 13 +- include/boost/date_time/date_generators.hpp | 4 +- include/boost/date_time/dst_rules.hpp | 6 +- .../date_time/dst_transition_generators.hpp | 2 +- .../boost/date_time/format_date_parser.hpp | 9 +- .../boost/date_time/gregorian/greg_facet.hpp | 10 +- .../boost/date_time/gregorian/greg_year.hpp | 8 +- .../date_time/gregorian/gregorian_io.hpp | 104 +- .../boost/date_time/gregorian_calendar.hpp | 4 +- include/boost/date_time/int_adapter.hpp | 41 +- .../date_time/local_time/custom_time_zone.hpp | 1 - include/boost/date_time/period_formatter.hpp | 19 +- .../posix_time/posix_time_duration.hpp | 28 +- .../date_time/posix_time/posix_time_io.hpp | 24 +- .../date_time/posix_time/time_serialize.hpp | 85 +- .../boost/date_time/special_values_parser.hpp | 55 +- include/boost/date_time/string_parse_tree.hpp | 11 +- include/boost/date_time/time_duration.hpp | 21 +- include/boost/date_time/time_facet.hpp | 11 +- include/boost/date_time/time_parsing.hpp | 20 + .../date_time/time_resolution_traits.hpp | 25 +- include/boost/date_time/time_system_split.hpp | 14 +- include/boost/date_time/time_zone_base.hpp | 2 +- include/boost/date_time/time_zone_names.hpp | 2 +- include/boost/date_time/tz_db_base.hpp | 4 +- include/boost/detail/allocator_utilities.hpp | 22 +- include/boost/detail/basic_pointerbuf.hpp | 2 +- include/boost/detail/compressed_pair.hpp | 25 +- include/boost/detail/indirect_traits.hpp | 85 +- include/boost/detail/interlocked.hpp | 91 +- include/boost/detail/is_incrementable.hpp | 4 - include/boost/detail/is_xxx.hpp | 6 +- include/boost/detail/lcast_precision.hpp | 10 +- include/boost/detail/lightweight_thread.hpp | 79 +- include/boost/detail/reference_content.hpp | 14 +- include/boost/detail/utf8_codecvt_facet.hpp | 2 +- include/boost/detail/utf8_codecvt_facet.ipp | 3 + include/boost/dll.hpp | 4 +- include/boost/dll/alias.hpp | 22 +- include/boost/dll/config.hpp | 78 + .../boost/dll/detail/aggressive_ptr_cast.hpp | 7 +- include/boost/dll/detail/ctor_dtor.hpp | 12 +- .../dll/detail/demangling/demangle_symbol.hpp | 5 +- .../demangling/mangled_storage_base.hpp | 4 +- include/boost/dll/detail/demangling/msvc.hpp | 36 +- include/boost/dll/detail/elf_info.hpp | 18 +- .../dll/detail/import_mangled_helpers.hpp | 2 +- include/boost/dll/detail/macho_info.hpp | 21 +- include/boost/dll/detail/pe_info.hpp | 32 +- .../dll/detail/posix/path_from_handle.hpp | 28 +- .../detail/posix/program_location_impl.hpp | 51 +- .../dll/detail/posix/shared_library_impl.hpp | 81 +- include/boost/dll/detail/system_error.hpp | 11 +- include/boost/dll/detail/type_info.hpp | 2 +- .../dll/detail/windows/path_from_handle.hpp | 30 +- .../detail/windows/shared_library_impl.hpp | 69 +- include/boost/dll/detail/x_info_interface.hpp | 4 +- include/boost/dll/import.hpp | 40 +- include/boost/dll/import_class.hpp | 22 +- include/boost/dll/import_mangled.hpp | 32 +- include/boost/dll/library_info.hpp | 30 +- include/boost/dll/runtime_symbol_info.hpp | 70 +- include/boost/dll/shared_library.hpp | 121 +- .../boost/dll/shared_library_load_mode.hpp | 4 +- include/boost/dll/smart_library.hpp | 56 +- .../detail/dynamic_bitset.hpp | 81 +- .../detail}/lowest_bit.hpp | 10 +- .../boost/dynamic_bitset/dynamic_bitset.hpp | 166 +- include/boost/endian/arithmetic.hpp | 26 +- include/boost/endian/buffers.hpp | 128 +- include/boost/endian/conversion.hpp | 65 +- include/boost/endian/detail/config.hpp | 62 - .../boost/endian/detail/cover_operators.hpp | 24 +- .../endian/detail/disable_warnings_pop.hpp | 2 +- include/boost/endian/detail/intrinsic.hpp | 2 +- .../boost/endian/detail/lightweight_test.hpp | 2 +- include/boost/exception/exception.hpp | 120 +- include/boost/fiber/algo/work_stealing.hpp | 2 +- include/boost/fiber/all.hpp | 3 - include/boost/fiber/buffered_channel.hpp | 201 +- include/boost/fiber/condition_variable.hpp | 10 +- include/boost/fiber/context.hpp | 39 +- .../boost/fiber/detail/context_spmc_queue.hpp | 2 +- include/boost/fiber/detail/exchange.hpp | 36 + include/boost/fiber/detail/thread_barrier.hpp | 63 + include/boost/fiber/fiber.hpp | 14 +- .../future/detail/shared_state_object.hpp | 5 +- .../boost/fiber/future/detail/task_object.hpp | 27 +- include/boost/fiber/future/packaged_task.hpp | 2 +- include/boost/fiber/future/promise.hpp | 2 +- .../numa => numa/algo}/work_stealing.hpp | 10 +- include/boost/fiber/numa/all.hpp | 15 + include/boost/fiber/numa/pin_thread.hpp | 6 +- include/boost/fiber/scheduler.hpp | 6 +- include/boost/fiber/unbuffered_channel.hpp | 236 +- include/boost/filesystem.hpp | 4 +- include/boost/filesystem/config.hpp | 12 +- include/boost/filesystem/convenience.hpp | 4 +- .../boost/filesystem/detail/macro_value.hpp | 14 +- include/boost/filesystem/fstream.hpp | 16 +- include/boost/filesystem/operations.hpp | 707 +- include/boost/filesystem/path.hpp | 247 +- include/boost/filesystem/path_traits.hpp | 20 +- include/boost/filesystem/string_file.hpp | 6 +- .../boost/flyweight/detail/flyweight_core.hpp | 12 +- .../flyweight/detail/not_placeholder_expr.hpp | 13 +- include/boost/flyweight/key_value.hpp | 6 +- include/boost/function.hpp | 2 +- include/boost/function/function_base.hpp | 71 +- include/boost/function/function_template.hpp | 87 +- include/boost/functional/factory.hpp | 51 +- include/boost/functional/forward_adapter.hpp | 2 +- include/boost/functional/hash.hpp | 3 +- include/boost/functional/hash/extensions.hpp | 316 +- include/boost/functional/hash/hash.hpp | 593 +- include/boost/functional/hash/hash_fwd.hpp | 32 +- include/boost/functional/hash_fwd.hpp | 7 +- .../lightweight_forward_adapter.hpp | 2 +- .../boost/fusion/adapted/adt/adapt_adt.hpp | 4 - .../fusion/adapted/adt/adapt_assoc_adt.hpp | 3 - .../fusion/adapted/adt/detail/adapt_base.hpp | 18 +- .../adapted/struct/adapt_assoc_struct.hpp | 4 - .../fusion/adapted/struct/adapt_struct.hpp | 4 - .../adapted/struct/detail/adapt_base.hpp | 2 + .../algorithm/iteration/detail/for_each.hpp | 16 +- .../iteration/detail/segmented_for_each.hpp | 6 +- .../fusion/algorithm/iteration/for_each.hpp | 19 +- .../algorithm/iteration/for_each_fwd.hpp | 19 +- .../fusion/algorithm/query/detail/find_if.hpp | 29 +- .../algorithm/transformation/remove_if.hpp | 4 +- .../container/deque/detail/cpp03/as_deque.hpp | 8 +- .../container/deque/detail/keyed_element.hpp | 12 +- include/boost/fusion/container/list/cons.hpp | 4 + .../container/map/detail/cpp03/as_map.hpp | 8 +- .../fusion/container/map/detail/map_impl.hpp | 6 +- .../map/detail/value_at_key_impl.hpp | 15 +- include/boost/fusion/container/map/map.hpp | 15 +- .../boost/fusion/container/map/map_fwd.hpp | 2 - .../container/set/detail/cpp03/as_set.hpp | 8 +- .../vector/detail/cpp03/as_vector.hpp | 8 +- .../container/vector/detail/value_at_impl.hpp | 16 +- .../boost/fusion/container/vector/vector.hpp | 31 +- include/boost/fusion/support/category_of.hpp | 6 +- include/boost/fusion/support/config.hpp | 33 +- include/boost/fusion/support/detail/and.hpp | 8 + .../fusion/support/detail/category_of.hpp | 19 - .../fusion/support/detail/is_mpl_sequence.hpp | 5 +- .../detail/is_native_fusion_sequence.hpp | 27 + .../fusion/support/detail/is_same_size.hpp | 13 +- include/boost/fusion/support/is_sequence.hpp | 10 +- include/boost/fusion/support/is_view.hpp | 14 +- include/boost/fusion/support/unused.hpp | 34 +- .../view/filter_view/detail/next_impl.hpp | 26 +- .../view/filter_view/filter_view_iterator.hpp | 2 +- .../detail/apply_transform_result.hpp | 38 - .../view/transform_view/detail/at_impl.hpp | 16 +- .../view/transform_view/detail/deref_impl.hpp | 15 +- .../transform_view/detail/value_at_impl.hpp | 16 +- .../transform_view/detail/value_of_impl.hpp | 12 +- include/boost/geometry/algorithms/append.hpp | 16 +- include/boost/geometry/algorithms/area.hpp | 120 +- include/boost/geometry/algorithms/buffer.hpp | 42 +- include/boost/geometry/algorithms/convert.hpp | 28 +- include/boost/geometry/algorithms/correct.hpp | 7 +- include/boost/geometry/algorithms/densify.hpp | 432 + .../algorithms/detail/assign_values.hpp | 11 +- .../geometry/algorithms/detail/azimuth.hpp | 12 +- .../algorithms/detail/buffer/buffer_box.hpp | 62 + .../detail/buffer/buffer_inserter.hpp | 50 +- .../detail/buffer/buffer_policies.hpp | 19 +- .../buffer/buffered_piece_collection.hpp | 175 +- .../detail/buffer/get_piece_turns.hpp | 151 +- .../buffer/turn_in_original_visitor.hpp | 14 +- .../detail/buffer/turn_in_piece_visitor.hpp | 428 +- .../detail/covered_by/implementation.hpp | 13 +- .../detail/covered_by/interface.hpp | 12 +- .../detail/disjoint/areal_areal.hpp | 101 +- .../algorithms/detail/disjoint/box_box.hpp | 136 +- .../detail/disjoint/linear_areal.hpp | 7 +- .../detail/disjoint/linear_linear.hpp | 12 - .../detail/disjoint/multipoint_geometry.hpp | 42 +- .../algorithms/detail/disjoint/point_box.hpp | 15 +- .../detail/disjoint/point_point.hpp | 202 +- .../detail/disjoint/segment_box.hpp | 149 +- .../detail/distance/default_strategies.hpp | 20 + .../detail/distance/implementation.hpp | 6 +- .../algorithms/detail/distance/interface.hpp | 27 +- .../distance/linear_or_areal_to_areal.hpp | 3 - .../detail/distance/linear_to_box.hpp | 123 + .../distance/multipoint_to_geometry.hpp | 1 + .../detail/distance/point_to_geometry.hpp | 20 +- .../detail/distance/segment_to_box.hpp | 343 +- .../algorithms/detail/envelope/areal.hpp | 90 + .../algorithms/detail/envelope/box.hpp | 147 +- .../detail/envelope/implementation.hpp | 70 +- .../algorithms/detail/envelope/interface.hpp | 31 +- .../algorithms/detail/envelope/linear.hpp | 78 +- .../algorithms/detail/envelope/multipoint.hpp | 353 +- .../algorithms/detail/envelope/point.hpp | 90 +- .../algorithms/detail/envelope/range.hpp | 112 +- .../detail/envelope/range_of_boxes.hpp | 36 +- .../algorithms/detail/envelope/segment.hpp | 415 +- .../detail/equals/implementation.hpp | 30 +- .../algorithms/detail/equals/point_point.hpp | 16 +- .../geometry/algorithms/detail/expand/box.hpp | 99 +- .../algorithms/detail/expand/indexed.hpp | 24 +- .../algorithms/detail/expand/interface.hpp | 27 +- .../algorithms/detail/expand/point.hpp | 252 +- .../algorithms/detail/expand/segment.hpp | 112 +- .../algorithms/detail/extreme_points.hpp | 25 +- .../algorithms/detail/get_left_turns.hpp | 9 +- .../algorithms/detail/get_max_size.hpp | 7 +- .../detail/is_valid/complement_graph.hpp | 6 +- .../is_valid/debug_complement_graph.hpp | 5 +- .../detail/is_valid/debug_validity_phase.hpp | 6 +- .../is_valid/has_invalid_coordinate.hpp | 10 +- .../algorithms/detail/is_valid/has_spikes.hpp | 9 +- .../detail/is_valid/has_valid_self_turns.hpp | 14 +- .../algorithms/detail/is_valid/interface.hpp | 8 +- .../detail/is_valid/multipolygon.hpp | 9 +- .../algorithms/detail/is_valid/polygon.hpp | 35 +- .../algorithms/detail/is_valid/ring.hpp | 14 +- .../geometry/algorithms/detail/normalize.hpp | 285 +- .../algorithms/detail/overlay/add_rings.hpp | 13 +- .../detail/overlay/aggregate_operations.hpp | 256 - .../detail/overlay/append_no_duplicates.hpp | 29 +- .../overlay/append_no_dups_or_spikes.hpp | 70 +- .../detail/overlay/assign_parents.hpp | 49 +- .../detail/overlay/check_enrich.hpp | 16 +- .../detail/overlay/clip_linestring.hpp | 21 +- .../detail/overlay/cluster_info.hpp | 5 +- .../detail/overlay/convert_ring.hpp | 15 +- .../detail/overlay/copy_segments.hpp | 26 +- .../overlay/enrich_intersection_points.hpp | 181 +- .../detail/overlay/enrichment_info.hpp | 2 + .../algorithms/detail/overlay/follow.hpp | 27 +- .../overlay/get_intersection_points.hpp | 20 +- .../detail/overlay/get_turn_info.hpp | 337 +- .../overlay/get_turn_info_for_endpoint.hpp | 203 +- .../detail/overlay/get_turn_info_helpers.hpp | 427 +- .../detail/overlay/get_turn_info_la.hpp | 306 +- .../detail/overlay/get_turn_info_ll.hpp | 152 +- .../algorithms/detail/overlay/get_turns.hpp | 353 +- .../detail/overlay/handle_colocations.hpp | 36 +- .../detail/overlay/handle_self_turns.hpp | 205 +- .../detail/overlay/is_self_turn.hpp | 17 +- .../detail/overlay/less_by_segment_ratio.hpp | 3 - .../detail/overlay/linear_linear.hpp | 12 - .../algorithms/detail/overlay/overlay.hpp | 28 +- .../detail/overlay/overlay_type.hpp | 11 +- .../detail/overlay/pointlike_pointlike.hpp | 14 +- .../detail/overlay/select_rings.hpp | 1 - .../detail/overlay/self_turn_points.hpp | 38 +- .../detail/overlay/sort_by_side.hpp | 36 +- .../algorithms/detail/overlay/stream_info.hpp | 19 +- .../algorithms/detail/overlay/traversal.hpp | 618 +- .../traversal_intersection_patterns.hpp | 451 - .../detail/overlay/traversal_ring_creator.hpp | 93 +- .../overlay/traversal_switch_detector.hpp | 252 +- .../algorithms/detail/overlay/turn_info.hpp | 2 - .../geometry/algorithms/detail/partition.hpp | 2 +- .../detail/point_is_spike_or_equal.hpp | 76 +- .../algorithms/detail/point_on_border.hpp | 160 +- .../algorithms/detail/relate/areal_areal.hpp | 34 +- .../detail/relate/boundary_checker.hpp | 44 +- .../detail/relate/follow_helpers.hpp | 29 +- .../algorithms/detail/relate/linear_areal.hpp | 89 +- .../detail/relate/linear_linear.hpp | 50 +- .../detail/relate/multi_point_geometry.hpp | 97 +- .../detail/relate/point_geometry.hpp | 10 +- .../algorithms/detail/relate/point_point.hpp | 20 +- .../algorithms/detail/relate/result.hpp | 6 +- .../detail/relate/topology_check.hpp | 62 +- .../algorithms/detail/relate/turns.hpp | 6 +- .../detail/sections/section_box_policies.hpp | 12 +- .../detail/sections/section_functions.hpp | 10 +- .../detail/sections/sectionalize.hpp | 109 +- .../geometry/algorithms/detail/sub_range.hpp | 16 +- .../detail/within/implementation.hpp | 12 +- .../algorithms/detail/within/interface.hpp | 12 +- .../detail/within/point_in_geometry.hpp | 57 +- .../algorithms/discrete_frechet_distance.hpp | 249 + .../discrete_hausdorff_distance.hpp | 353 + .../geometry/algorithms/dispatch/disjoint.hpp | 5 +- .../geometry/algorithms/dispatch/distance.hpp | 8 +- .../geometry/algorithms/dispatch/envelope.hpp | 8 +- .../geometry/algorithms/dispatch/expand.hpp | 8 +- .../boost/geometry/algorithms/is_convex.hpp | 14 +- include/boost/geometry/algorithms/length.hpp | 38 +- .../geometry/algorithms/line_interpolate.hpp | 411 + .../geometry/algorithms/point_on_surface.hpp | 6 +- .../geometry/algorithms/remove_spikes.hpp | 25 +- .../boost/geometry/algorithms/simplify.hpp | 261 +- include/boost/geometry/algorithms/union.hpp | 9 +- include/boost/geometry/core/config.hpp | 26 + include/boost/geometry/core/cs.hpp | 155 +- include/boost/geometry/core/radius.hpp | 8 +- include/boost/geometry/core/tags.hpp | 7 +- .../geometry/formulas/andoyer_inverse.hpp | 9 +- .../boost/geometry/formulas/area_formulas.hpp | 29 +- .../formulas/differential_quantities.hpp | 7 +- .../geometry/formulas/eccentricity_sqr.hpp | 6 +- .../formulas/interpolate_point_spherical.hpp | 107 + .../boost/geometry/formulas/karney_direct.hpp | 263 + .../geometry/formulas/meridian_direct.hpp | 170 + ...ic_arc_length.hpp => meridian_inverse.hpp} | 126 +- .../geometry/formulas/meridian_segment.hpp | 72 + .../geometry/formulas/quarter_meridian.hpp | 112 + .../formulas/sjoberg_intersection.hpp | 8 +- include/boost/geometry/formulas/spherical.hpp | 67 +- .../boost/geometry/formulas/thomas_direct.hpp | 52 +- .../geometry/formulas/thomas_inverse.hpp | 8 +- .../geometry/formulas/vertex_latitude.hpp | 4 +- .../geometry/formulas/vertex_longitude.hpp | 31 +- .../geometry/formulas/vincenty_direct.hpp | 12 +- .../geometry/formulas/vincenty_inverse.hpp | 9 +- .../adapted/boost_polygon/hole_iterator.hpp | 1 - .../adapted/boost_polygon/ring_proxy.hpp | 11 +- .../geometries/adapted/boost_tuple.hpp | 6 + .../geometry/geometries/adapted/std_array.hpp | 15 + .../geometries/concepts/box_concept.hpp | 5 +- .../geometry/geometries/concepts/check.hpp | 3 +- .../concepts/multi_point_concept.hpp | 1 + .../geometries/concepts/polygon_concept.hpp | 13 +- .../geometries/concepts/segment_concept.hpp | 4 +- .../geometry/geometries/helper_geometry.hpp | 59 +- include/boost/geometry/geometries/polygon.hpp | 6 +- include/boost/geometry/geometries/variant.hpp | 9 +- include/boost/geometry/geometry.hpp | 11 +- .../algorithms/intersection_content.hpp | 9 +- include/boost/geometry/index/detail/meta.hpp | 67 +- .../rtree/linear/redistribute_elements.hpp | 5 +- .../detail/rtree/node/scoped_deallocator.hpp | 9 +- .../detail/rtree/node/variant_dynamic.hpp | 104 +- .../detail/rtree/node/variant_static.hpp | 49 +- .../index/detail/rtree/node/weak_dynamic.hpp | 134 +- .../index/detail/rtree/node/weak_static.hpp | 71 +- .../index/detail/rtree/pack_create.hpp | 4 +- .../rtree/quadratic/redistribute_elements.hpp | 4 +- .../detail/rtree/rstar/choose_next_node.hpp | 43 +- .../index/detail/rtree/rstar/insert.hpp | 4 +- .../rtree/rstar/redistribute_elements.hpp | 4 +- .../boost/geometry/index/detail/varray.hpp | 18 +- include/boost/geometry/index/indexable.hpp | 207 +- include/boost/geometry/index/inserter.hpp | 9 +- include/boost/geometry/index/predicates.hpp | 58 +- include/boost/geometry/index/rtree.hpp | 35 +- include/boost/geometry/io/dsv/write.hpp | 7 +- include/boost/geometry/io/wkt/read.hpp | 53 +- include/boost/geometry/io/wkt/write.hpp | 17 +- include/boost/geometry/iterators/base.hpp | 1 - .../geometry/iterators/closing_iterator.hpp | 21 +- .../iterators/concatenate_iterator.hpp | 1 - .../detail/point_iterator/iterator_type.hpp | 4 +- .../range_segment_iterator.hpp | 1 - .../iterators/ever_circling_iterator.hpp | 21 +- .../geometry/iterators/flatten_iterator.hpp | 1 - .../policies/relate/intersection_points.hpp | 37 +- .../robustness/get_rescale_policy.hpp | 7 +- .../policies/robustness/rescale_policy.hpp | 5 +- include/boost/geometry/srs/epsg.hpp | 68 + include/boost/geometry/srs/esri.hpp | 70 + include/boost/geometry/srs/iau2000.hpp | 68 + include/boost/geometry/srs/projection.hpp | 550 + .../boost/geometry/srs/projections/code.hpp | 57 + .../geometry/srs/projections/constants.hpp | 62 + .../boost/geometry/srs/projections/dpar.hpp | 855 ++ .../boost/geometry/srs/projections/epsg.hpp | 4411 +++++++ .../geometry/srs/projections/epsg_params.hpp | 48 + .../geometry/srs/projections/epsg_traits.hpp | 4418 +++++++ .../boost/geometry/srs/projections/esri.hpp | 493 + .../geometry/srs/projections/esri_params.hpp | 48 + .../geometry/srs/projections/esri_traits.hpp | 500 + .../geometry/srs/projections/exception.hpp | 113 + .../geometry/srs/projections/factory.hpp | 295 + .../geometry/srs/projections/factory_key.hpp | 83 + .../boost/geometry/srs/projections/grids.hpp | 188 + .../geometry/srs/projections/iau2000.hpp | 2426 ++++ .../srs/projections/iau2000_params.hpp | 48 + .../srs/projections/iau2000_traits.hpp | 2433 ++++ .../srs/projections/impl/aasincos.hpp | 120 + .../geometry/srs/projections/impl/adjlon.hpp | 70 + .../srs/projections/impl/base_dynamic.hpp | 162 + .../srs/projections/impl/base_static.hpp | 139 + .../srs/projections/impl/dms_parser.hpp | 268 + .../srs/projections/impl/factory_entry.hpp | 86 + .../projections/impl/function_overloads.hpp | 40 + .../geometry/srs/projections/impl/geocent.hpp | 487 + .../projections/impl/pj_apply_gridshift.hpp | 433 + .../impl/pj_apply_gridshift_shared.hpp | 157 + .../geometry/srs/projections/impl/pj_auth.hpp | 102 + .../srs/projections/impl/pj_datum_set.hpp | 455 + .../srs/projections/impl/pj_datums.hpp | 175 + .../srs/projections/impl/pj_ell_set.hpp | 597 + .../srs/projections/impl/pj_ellps.hpp | 130 + .../geometry/srs/projections/impl/pj_fwd.hpp | 101 + .../srs/projections/impl/pj_gauss.hpp | 145 + .../srs/projections/impl/pj_gridinfo.hpp | 961 ++ .../srs/projections/impl/pj_gridlist.hpp | 174 + .../projections/impl/pj_gridlist_shared.hpp | 122 + .../geometry/srs/projections/impl/pj_init.hpp | 525 + .../geometry/srs/projections/impl/pj_inv.hpp | 82 + .../geometry/srs/projections/impl/pj_mlfn.hpp | 135 + .../geometry/srs/projections/impl/pj_msfn.hpp | 59 + .../srs/projections/impl/pj_param.hpp | 653 + .../geometry/srs/projections/impl/pj_phi2.hpp | 75 + .../geometry/srs/projections/impl/pj_qsfn.hpp | 95 + .../srs/projections/impl/pj_strerrno.hpp | 219 + .../srs/projections/impl/pj_transform.hpp | 1030 ++ .../geometry/srs/projections/impl/pj_tsfn.hpp | 58 + .../srs/projections/impl/pj_units.hpp | 89 + .../srs/projections/impl/pj_zpoly1.hpp | 106 + .../srs/projections/impl/proj_mdist.hpp | 151 + .../srs/projections/impl/projects.hpp | 194 + .../srs/projections/invalid_point.hpp | 38 + .../geometry/srs/projections/par_data.hpp | 197 + .../geometry/srs/projections/proj/aea.hpp | 344 + .../geometry/srs/projections/proj/aeqd.hpp | 631 + .../geometry/srs/projections/proj/airy.hpp | 242 + .../geometry/srs/projections/proj/aitoff.hpp | 314 + .../geometry/srs/projections/proj/august.hpp | 149 + .../geometry/srs/projections/proj/bacon.hpp | 238 + .../geometry/srs/projections/proj/bipc.hpp | 284 + .../geometry/srs/projections/proj/boggs.hpp | 165 + .../geometry/srs/projections/proj/bonne.hpp | 279 + .../geometry/srs/projections/proj/cass.hpp | 269 + .../geometry/srs/projections/proj/cc.hpp | 154 + .../geometry/srs/projections/proj/cea.hpp | 249 + .../geometry/srs/projections/proj/chamb.hpp | 296 + .../geometry/srs/projections/proj/collg.hpp | 168 + .../geometry/srs/projections/proj/crast.hpp | 156 + .../geometry/srs/projections/proj/denoy.hpp | 155 + .../geometry/srs/projections/proj/eck1.hpp | 148 + .../geometry/srs/projections/proj/eck2.hpp | 165 + .../geometry/srs/projections/proj/eck3.hpp | 290 + .../geometry/srs/projections/proj/eck4.hpp | 176 + .../geometry/srs/projections/proj/eck5.hpp | 149 + .../geometry/srs/projections/proj/eqc.hpp | 159 + .../geometry/srs/projections/proj/eqdc.hpp | 225 + .../geometry/srs/projections/proj/etmerc.hpp | 453 + .../geometry/srs/projections/proj/fahey.hpp | 151 + .../geometry/srs/projections/proj/fouc_s.hpp | 187 + .../geometry/srs/projections/proj/gall.hpp | 150 + .../geometry/srs/projections/proj/geocent.hpp | 150 + .../geometry/srs/projections/proj/geos.hpp | 384 + .../geometry/srs/projections/proj/gins8.hpp | 151 + .../geometry/srs/projections/proj/gn_sinu.hpp | 385 + .../geometry/srs/projections/proj/gnom.hpp | 256 + .../geometry/srs/projections/proj/goode.hpp | 190 + .../geometry/srs/projections/proj/gstmerc.hpp | 183 + .../geometry/srs/projections/proj/hammer.hpp | 188 + .../geometry/srs/projections/proj/hatano.hpp | 194 + .../geometry/srs/projections/proj/healpix.hpp | 873 ++ .../geometry/srs/projections/proj/igh.hpp | 371 + .../geometry/srs/projections/proj/imw_p.hpp | 322 + .../geometry/srs/projections/proj/isea.hpp | 1327 ++ .../geometry/srs/projections/proj/krovak.hpp | 285 + .../geometry/srs/projections/proj/labrd.hpp | 252 + .../geometry/srs/projections/proj/laea.hpp | 439 + .../geometry/srs/projections/proj/lagrng.hpp | 194 + .../geometry/srs/projections/proj/larr.hpp | 140 + .../geometry/srs/projections/proj/lask.hpp | 154 + .../geometry/srs/projections/proj/latlong.hpp | 163 + .../geometry/srs/projections/proj/lcc.hpp | 272 + .../geometry/srs/projections/proj/lcca.hpp | 256 + .../geometry/srs/projections/proj/loxim.hpp | 192 + .../geometry/srs/projections/proj/lsat.hpp | 340 + .../geometry/srs/projections/proj/mbt_fps.hpp | 175 + .../geometry/srs/projections/proj/mbtfpp.hpp | 178 + .../geometry/srs/projections/proj/mbtfpq.hpp | 189 + .../geometry/srs/projections/proj/merc.hpp | 246 + .../geometry/srs/projections/proj/mill.hpp | 148 + .../srs/projections/proj/mod_ster.hpp | 490 + .../geometry/srs/projections/proj/moll.hpp | 267 + .../srs/projections/proj/natearth.hpp | 214 + .../geometry/srs/projections/proj/nell.hpp | 161 + .../geometry/srs/projections/proj/nell_h.hpp | 165 + .../geometry/srs/projections/proj/nocol.hpp | 171 + .../geometry/srs/projections/proj/nsper.hpp | 338 + .../geometry/srs/projections/proj/nzmg.hpp | 237 + .../geometry/srs/projections/proj/ob_tran.hpp | 627 + .../geometry/srs/projections/proj/ocea.hpp | 222 + .../geometry/srs/projections/proj/oea.hpp | 197 + .../geometry/srs/projections/proj/omerc.hpp | 334 + .../geometry/srs/projections/proj/ortho.hpp | 246 + .../geometry/srs/projections/proj/poly.hpp | 292 + .../geometry/srs/projections/proj/putp2.hpp | 175 + .../geometry/srs/projections/proj/putp3.hpp | 194 + .../geometry/srs/projections/proj/putp4p.hpp | 200 + .../geometry/srs/projections/proj/putp5.hpp | 196 + .../geometry/srs/projections/proj/putp6.hpp | 222 + .../geometry/srs/projections/proj/qsc.hpp | 537 + .../geometry/srs/projections/proj/robin.hpp | 284 + .../geometry/srs/projections/proj/rouss.hpp | 224 + .../geometry/srs/projections/proj/rpoly.hpp | 172 + .../geometry/srs/projections/proj/sconics.hpp | 507 + .../geometry/srs/projections/proj/somerc.hpp | 210 + .../geometry/srs/projections/proj/stere.hpp | 533 + .../geometry/srs/projections/proj/sterea.hpp | 189 + .../geometry/srs/projections/proj/sts.hpp | 283 + .../geometry/srs/projections/proj/tcc.hpp | 146 + .../geometry/srs/projections/proj/tcea.hpp | 149 + .../geometry/srs/projections/proj/tmerc.hpp | 368 + .../geometry/srs/projections/proj/tpeqd.hpp | 223 + .../geometry/srs/projections/proj/urm5.hpp | 169 + .../geometry/srs/projections/proj/urmfps.hpp | 210 + .../geometry/srs/projections/proj/vandg.hpp | 234 + .../geometry/srs/projections/proj/vandg2.hpp | 209 + .../geometry/srs/projections/proj/vandg4.hpp | 174 + .../geometry/srs/projections/proj/wag2.hpp | 153 + .../geometry/srs/projections/proj/wag3.hpp | 161 + .../geometry/srs/projections/proj/wag7.hpp | 142 + .../geometry/srs/projections/proj/wink1.hpp | 157 + .../geometry/srs/projections/proj/wink2.hpp | 176 + .../boost/geometry/srs/projections/proj4.hpp | 129 + .../geometry/srs/projections/shared_grids.hpp | 84 + .../boost/geometry/srs/projections/spar.hpp | 1183 ++ .../geometry/srs/projections/srid_traits.hpp | 33 + .../geometry/srs/projections/str_cast.hpp | 160 + include/boost/geometry/srs/shared_grids.hpp | 26 + include/boost/geometry/srs/sphere.hpp | 117 + .../{core/srs.hpp => srs/spheroid.hpp} | 89 +- include/boost/geometry/srs/srs.hpp | 29 + include/boost/geometry/srs/transformation.hpp | 726 ++ .../agnostic/hull_graham_andrew.hpp | 18 +- .../agnostic/point_in_box_by_side.hpp | 21 +- .../strategies/agnostic/point_in_point.hpp | 69 +- .../point_in_poly_oriented_winding.hpp | 2 - include/boost/geometry/strategies/area.hpp | 56 +- .../boost/geometry/strategies/area_result.hpp | 116 + .../geometry/strategies/cartesian/area.hpp | 147 + .../strategies/cartesian/area_surveyor.hpp | 131 +- .../geometry/strategies/cartesian/azimuth.hpp | 4 +- .../strategies/cartesian/buffer_end_flat.hpp | 12 +- .../cartesian/buffer_point_circle.hpp | 13 +- .../cartesian/buffer_point_square.hpp | 15 +- .../strategies/cartesian/centroid_average.hpp | 4 +- .../cartesian/centroid_bashein_detmer.hpp | 5 +- .../geometry/strategies/cartesian/densify.hpp | 134 + .../strategies/cartesian/disjoint_box_box.hpp | 112 + .../cartesian/distance_projected_point.hpp | 20 +- .../cartesian/distance_projected_point_ax.hpp | 3 +- .../cartesian/distance_pythagoras.hpp | 7 + .../cartesian/distance_pythagoras_box_box.hpp | 9 +- .../distance_pythagoras_point_box.hpp | 8 +- .../cartesian/distance_segment_box.hpp | 203 + .../strategies/cartesian/envelope.hpp | 153 + .../strategies/cartesian/envelope_box.hpp | 119 + .../cartesian/envelope_multipoint.hpp | 59 + .../strategies/cartesian/envelope_point.hpp | 111 + .../strategies/cartesian/envelope_segment.hpp | 61 +- .../strategies/cartesian/expand_box.hpp | 69 + .../strategies/cartesian/expand_point.hpp | 125 + .../strategies/cartesian/expand_segment.hpp | 71 + .../strategies/cartesian/intersection.hpp | 105 +- .../strategies/cartesian/line_interpolate.hpp | 129 + .../strategies/cartesian/point_in_box.hpp | 125 +- .../strategies/cartesian/point_in_point.hpp | 124 + .../point_in_poly_crossings_multiply.hpp | 6 + .../cartesian/point_in_poly_franklin.hpp | 6 + .../cartesian/point_in_poly_winding.hpp | 22 +- .../strategies/cartesian/side_by_triangle.hpp | 28 +- .../cartesian/side_of_intersection.hpp | 6 +- .../strategies/concepts/area_concept.hpp | 30 +- .../strategies/concepts/centroid_concept.hpp | 5 +- .../strategies/concepts/distance_concept.hpp | 6 +- .../strategies/concepts/within_concept.hpp | 66 +- .../boost/geometry/strategies/convex_hull.hpp | 6 + .../strategies/default_area_result.hpp | 18 +- include/boost/geometry/strategies/densify.hpp | 42 + .../boost/geometry/strategies/disjoint.hpp | 9 +- .../boost/geometry/strategies/envelope.hpp | 7 +- include/boost/geometry/strategies/expand.hpp | 45 + .../geometry/strategies/geographic/area.hpp | 117 +- .../strategies/geographic/azimuth.hpp | 69 +- .../geographic/buffer_point_circle.hpp | 127 + .../strategies/geographic/densify.hpp | 136 + .../geographic/disjoint_segment_box.hpp | 15 +- .../strategies/geographic/distance.hpp | 31 +- .../geographic/distance_cross_track.hpp | 247 +- .../distance_cross_track_box_box.hpp | 234 + .../distance_cross_track_point_box.hpp | 228 + .../geographic/distance_segment_box.hpp | 336 + .../strategies/geographic/envelope.hpp | 116 + .../geographic/envelope_segment.hpp | 43 +- .../strategies/geographic/expand_segment.hpp | 102 + .../strategies/geographic/intersection.hpp | 141 +- .../geographic/intersection_elliptic.hpp | 2 +- .../geographic/line_interpolate.hpp | 129 + .../strategies/geographic/parameters.hpp | 8 +- .../geometry/strategies/geographic/side.hpp | 23 +- .../geometry/strategies/line_interpolate.hpp | 42 + .../boost/geometry/strategies/normalize.hpp | 268 + include/boost/geometry/strategies/side.hpp | 7 + .../geometry/strategies/spherical/area.hpp | 120 +- .../geometry/strategies/spherical/azimuth.hpp | 71 +- .../geometry/strategies/spherical/compare.hpp | 5 +- .../geometry/strategies/spherical/densify.hpp | 144 + .../strategies/spherical/disjoint_box_box.hpp | 134 + .../spherical/disjoint_segment_box.hpp | 17 +- .../spherical/distance_cross_track.hpp | 26 +- .../distance_cross_track_box_box.hpp | 474 + .../distance_cross_track_point_box.hpp | 241 +- .../spherical/distance_haversine.hpp | 74 +- .../spherical/distance_segment_box.hpp | 371 + .../strategies/spherical/envelope.hpp | 146 + .../strategies/spherical/envelope_box.hpp | 145 + .../spherical/envelope_multipoint.hpp | 379 + .../strategies/spherical/envelope_point.hpp | 111 + .../strategies/spherical/envelope_segment.hpp | 407 +- .../strategies/spherical/expand_box.hpp | 98 + .../strategies/spherical/expand_point.hpp | 233 + .../strategies/spherical/expand_segment.hpp | 118 + .../strategies/spherical/get_radius.hpp | 81 + .../strategies/spherical/intersection.hpp | 137 +- .../strategies/spherical/line_interpolate.hpp | 123 + .../strategies/spherical/point_in_point.hpp | 172 + .../spherical/point_in_poly_winding.hpp | 31 +- .../geometry/strategies/spherical/ssf.hpp | 15 +- .../boost/geometry/strategies/strategies.hpp | 21 +- include/boost/geometry/strategies/tags.hpp | 6 + .../transform/matrix_transformers.hpp | 6 +- .../strategies/transform/srs_transformer.hpp | 102 + .../boost/geometry/util/calculation_type.hpp | 6 + include/boost/geometry/util/combine_if.hpp | 11 +- .../is_inverse_spheroidal_coordinates.hpp | 48 + include/boost/geometry/util/math.hpp | 117 +- .../util/normalize_spheroidal_coordinates.hpp | 36 +- include/boost/geometry/util/range.hpp | 7 +- .../geometry/util/select_sequence_element.hpp | 78 + .../boost/geometry/util/series_expansion.hpp | 747 ++ .../detail/boundary_view/implementation.hpp | 6 +- .../geometry/views/detail/points_view.hpp | 1 - include/boost/gil.hpp | 48 + include/boost/gil/algorithm.hpp | 414 +- .../boost/gil/bit_aligned_pixel_iterator.hpp | 95 +- .../boost/gil/bit_aligned_pixel_reference.hpp | 251 +- include/boost/gil/channel.hpp | 599 +- include/boost/gil/channel_algorithm.hpp | 420 +- include/boost/gil/cmyk.hpp | 54 +- include/boost/gil/color_base.hpp | 235 +- include/boost/gil/color_base_algorithm.hpp | 499 +- include/boost/gil/color_convert.hpp | 120 +- include/boost/gil/concepts.hpp | 26 + include/boost/gil/concepts/basic.hpp | 195 + include/boost/gil/concepts/channel.hpp | 214 + include/boost/gil/concepts/color.hpp | 100 + include/boost/gil/concepts/color_base.hpp | 325 + include/boost/gil/concepts/concept_check.hpp | 57 + .../boost/gil/concepts/detail/type_traits.hpp | 23 + include/boost/gil/concepts/detail/utility.hpp | 19 + include/boost/gil/concepts/dynamic_step.hpp | 77 + include/boost/gil/concepts/fwd.hpp | 36 + include/boost/gil/concepts/image.hpp | 167 + include/boost/gil/concepts/image_view.hpp | 555 + include/boost/gil/concepts/pixel.hpp | 305 + include/boost/gil/concepts/pixel_based.hpp | 103 + .../boost/gil/concepts/pixel_dereference.hpp | 114 + include/boost/gil/concepts/pixel_iterator.hpp | 360 + include/boost/gil/concepts/pixel_locator.hpp | 408 + include/boost/gil/concepts/point.hpp | 124 + include/boost/gil/deprecated.hpp | 38 +- include/boost/gil/device_n.hpp | 73 +- include/boost/gil/dynamic_step.hpp | 31 + .../gil/extension/dynamic_image/algorithm.hpp | 260 +- .../gil/extension/dynamic_image/any_image.hpp | 122 +- .../dynamic_image/any_image_view.hpp | 109 +- .../dynamic_image/apply_operation.hpp | 86 +- .../dynamic_image/apply_operation_base.hpp | 185 - .../extension/dynamic_image/dynamic_at_c.hpp | 54 +- .../dynamic_image/dynamic_image_all.hpp | 43 +- .../dynamic_image/image_view_factory.hpp | 210 +- .../gil/extension/dynamic_image/reduce.hpp | 531 +- .../gil/extension/dynamic_image/variant.hpp | 197 - include/boost/gil/extension/io/bmp.hpp | 14 + .../extension/io/bmp/detail/is_allowed.hpp | 86 + .../gil/extension/io/bmp/detail/read.hpp | 743 ++ .../io/bmp/detail/reader_backend.hpp | 247 + .../extension/io/bmp/detail/scanline_read.hpp | 414 + .../io/bmp/detail/supported_types.hpp | 140 + .../gil/extension/io/bmp/detail/write.hpp | 217 + .../io/bmp/detail/writer_backend.hpp | 55 + include/boost/gil/extension/io/bmp/old.hpp | 160 + include/boost/gil/extension/io/bmp/read.hpp | 30 + include/boost/gil/extension/io/bmp/tags.hpp | 159 + include/boost/gil/extension/io/bmp/write.hpp | 19 + include/boost/gil/extension/io/io_error.hpp | 51 - include/boost/gil/extension/io/jpeg.hpp | 14 + .../gil/extension/io/jpeg/detail/base.hpp | 38 + .../extension/io/jpeg/detail/is_allowed.hpp | 45 + .../gil/extension/io/jpeg/detail/read.hpp | 316 + .../io/jpeg/detail/reader_backend.hpp | 320 + .../io/jpeg/detail/scanline_read.hpp | 152 + .../io/jpeg/detail/supported_types.hpp | 112 + .../gil/extension/io/jpeg/detail/write.hpp | 179 + .../io/jpeg/detail/writer_backend.hpp | 192 + include/boost/gil/extension/io/jpeg/old.hpp | 161 + include/boost/gil/extension/io/jpeg/read.hpp | 30 + include/boost/gil/extension/io/jpeg/tags.hpp | 231 + include/boost/gil/extension/io/jpeg/write.hpp | 19 + .../gil/extension/io/jpeg_dynamic_io.hpp | 130 - include/boost/gil/extension/io/jpeg_io.hpp | 202 - .../gil/extension/io/jpeg_io_private.hpp | 226 - include/boost/gil/extension/io/png.hpp | 14 + .../gil/extension/io/png/detail/base.hpp | 102 + .../extension/io/png/detail/is_allowed.hpp | 46 + .../gil/extension/io/png/detail/read.hpp | 434 + .../io/png/detail/reader_backend.hpp | 678 + .../extension/io/png/detail/scanline_read.hpp | 167 + .../io/png/detail/supported_types.hpp | 362 + .../gil/extension/io/png/detail/write.hpp | 239 + .../io/png/detail/writer_backend.hpp | 502 + include/boost/gil/extension/io/png/old.hpp | 159 + include/boost/gil/extension/io/png/read.hpp | 30 + include/boost/gil/extension/io/png/tags.hpp | 833 ++ include/boost/gil/extension/io/png/write.hpp | 19 + .../boost/gil/extension/io/png_dynamic_io.hpp | 141 - include/boost/gil/extension/io/png_io.hpp | 214 - .../boost/gil/extension/io/png_io_private.hpp | 360 - include/boost/gil/extension/io/pnm.hpp | 14 + .../extension/io/pnm/detail/is_allowed.hpp | 51 + .../gil/extension/io/pnm/detail/read.hpp | 458 + .../io/pnm/detail/reader_backend.hpp | 181 + .../extension/io/pnm/detail/scanline_read.hpp | 246 + .../io/pnm/detail/supported_types.hpp | 139 + .../gil/extension/io/pnm/detail/write.hpp | 241 + .../io/pnm/detail/writer_backend.hpp | 55 + include/boost/gil/extension/io/pnm/old.hpp | 160 + include/boost/gil/extension/io/pnm/read.hpp | 28 + include/boost/gil/extension/io/pnm/tags.hpp | 95 + include/boost/gil/extension/io/pnm/write.hpp | 19 + include/boost/gil/extension/io/raw.hpp | 13 + .../gil/extension/io/raw/detail/device.hpp | 134 + .../extension/io/raw/detail/is_allowed.hpp | 46 + .../gil/extension/io/raw/detail/read.hpp | 243 + .../io/raw/detail/reader_backend.hpp | 140 + .../io/raw/detail/supported_types.hpp | 74 + include/boost/gil/extension/io/raw/read.hpp | 28 + include/boost/gil/extension/io/raw/tags.hpp | 196 + include/boost/gil/extension/io/targa.hpp | 14 + .../extension/io/targa/detail/is_allowed.hpp | 55 + .../gil/extension/io/targa/detail/read.hpp | 399 + .../io/targa/detail/reader_backend.hpp | 164 + .../io/targa/detail/scanline_read.hpp | 153 + .../io/targa/detail/supported_types.hpp | 102 + .../gil/extension/io/targa/detail/write.hpp | 184 + .../io/targa/detail/writer_backend.hpp | 55 + include/boost/gil/extension/io/targa/old.hpp | 160 + include/boost/gil/extension/io/targa/read.hpp | 28 + include/boost/gil/extension/io/targa/tags.hpp | 166 + .../boost/gil/extension/io/targa/write.hpp | 19 + include/boost/gil/extension/io/tiff.hpp | 14 + .../gil/extension/io/tiff/detail/device.hpp | 479 + .../extension/io/tiff/detail/is_allowed.hpp | 256 + .../gil/extension/io/tiff/detail/log.hpp | 66 + .../gil/extension/io/tiff/detail/read.hpp | 780 ++ .../io/tiff/detail/reader_backend.hpp | 162 + .../io/tiff/detail/scanline_read.hpp | 447 + .../io/tiff/detail/supported_types.hpp | 54 + .../gil/extension/io/tiff/detail/write.hpp | 449 + .../io/tiff/detail/writer_backend.hpp | 135 + include/boost/gil/extension/io/tiff/old.hpp | 160 + include/boost/gil/extension/io/tiff/read.hpp | 30 + include/boost/gil/extension/io/tiff/tags.hpp | 351 + include/boost/gil/extension/io/tiff/write.hpp | 19 + .../gil/extension/io/tiff_dynamic_io.hpp | 135 - include/boost/gil/extension/io/tiff_io.hpp | 511 - .../boost/gil/extension/numeric/affine.hpp | 94 + .../boost/gil/extension/numeric/algorithm.hpp | 149 + .../numeric/channel_numeric_operations.hpp | 147 + .../boost/gil/extension/numeric/convolve.hpp | 217 + .../boost/gil/extension/numeric/kernel.hpp | 118 + .../numeric/pixel_numeric_operations.hpp | 172 + .../boost/gil/extension/numeric/resample.hpp | 143 + .../boost/gil/extension/numeric/sampler.hpp | 189 + .../extension/toolbox/color_converters.hpp | 14 + .../toolbox/color_converters/gray_to_rgba.hpp | 36 + .../color_converters/rgb_to_luminance.hpp | 32 + .../gil/extension/toolbox/color_spaces.hpp | 18 + .../extension/toolbox/color_spaces/cmyka.hpp | 76 + .../toolbox/color_spaces/gray_alpha.hpp | 93 + .../extension/toolbox/color_spaces/hsl.hpp | 260 + .../extension/toolbox/color_spaces/hsv.hpp | 234 + .../extension/toolbox/color_spaces/lab.hpp | 173 + .../extension/toolbox/color_spaces/xyz.hpp | 151 + .../extension/toolbox/color_spaces/ycbcr.hpp | 266 + .../gil/extension/toolbox/dynamic_images.hpp | 31 + .../gil/extension/toolbox/image_types.hpp | 13 + .../toolbox/image_types/indexed_image.hpp | 388 + .../toolbox/image_types/subchroma_image.hpp | 580 + .../gil/extension/toolbox/metafunctions.hpp | 20 + .../toolbox/metafunctions/channel_type.hpp | 102 + .../toolbox/metafunctions/channel_view.hpp | 64 + .../toolbox/metafunctions/get_num_bits.hpp | 73 + .../toolbox/metafunctions/get_pixel_type.hpp | 35 + .../toolbox/metafunctions/is_bit_aligned.hpp | 36 + .../toolbox/metafunctions/is_homogeneous.hpp | 82 + .../toolbox/metafunctions/is_similar.hpp | 32 + .../toolbox/metafunctions/pixel_bit_size.hpp | 44 + .../boost/gil/extension/toolbox/toolbox.hpp | 17 + include/boost/gil/gil_all.hpp | 46 - include/boost/gil/gil_concept.hpp | 2187 ---- include/boost/gil/gil_config.hpp | 50 - include/boost/gil/gray.hpp | 43 +- include/boost/gil/image.hpp | 404 +- include/boost/gil/image_view.hpp | 162 +- include/boost/gil/image_view_factory.hpp | 276 +- include/boost/gil/io/base.hpp | 111 + include/boost/gil/io/bit_operations.hpp | 197 + include/boost/gil/io/conversion_policies.hpp | 105 + include/boost/gil/io/device.hpp | 756 ++ .../dynamic_io.hpp => io/dynamic_io_new.hpp} | 70 +- include/boost/gil/io/error.hpp | 29 + include/boost/gil/io/get_read_device.hpp | 70 + include/boost/gil/io/get_reader.hpp | 168 + include/boost/gil/io/get_write_device.hpp | 62 + include/boost/gil/io/get_writer.hpp | 106 + include/boost/gil/io/io.hpp | 95 + include/boost/gil/io/make_backend.hpp | 124 + .../gil/io/make_dynamic_image_reader.hpp | 141 + .../gil/io/make_dynamic_image_writer.hpp | 167 + include/boost/gil/io/make_reader.hpp | 199 + include/boost/gil/io/make_scanline_reader.hpp | 101 + include/boost/gil/io/make_writer.hpp | 163 + include/boost/gil/io/path_spec.hpp | 139 + .../boost/gil/io/read_and_convert_image.hpp | 271 + .../boost/gil/io/read_and_convert_view.hpp | 275 + include/boost/gil/io/read_image.hpp | 290 + include/boost/gil/io/read_image_info.hpp | 112 + include/boost/gil/io/read_view.hpp | 176 + include/boost/gil/io/reader_base.hpp | 126 + include/boost/gil/io/row_buffer_helper.hpp | 200 + .../boost/gil/io/scanline_read_iterator.hpp | 118 + include/boost/gil/io/typedefs.hpp | 83 + include/boost/gil/io/write_view.hpp | 234 + include/boost/gil/iterator_from_2d.hpp | 83 +- include/boost/gil/locator.hpp | 197 +- include/boost/gil/metafunctions.hpp | 238 +- include/boost/gil/packed_pixel.hpp | 197 +- include/boost/gil/pixel.hpp | 153 +- include/boost/gil/pixel_iterator.hpp | 62 +- include/boost/gil/pixel_iterator_adaptor.hpp | 115 +- include/boost/gil/planar_pixel_iterator.hpp | 109 +- include/boost/gil/planar_pixel_reference.hpp | 131 +- include/boost/gil/point.hpp | 277 + include/boost/gil/position_iterator.hpp | 65 +- include/boost/gil/premultiply.hpp | 111 + include/boost/gil/promote_integral.hpp | 202 + include/boost/gil/rgb.hpp | 61 +- include/boost/gil/rgba.hpp | 61 +- include/boost/gil/step_iterator.hpp | 153 +- include/boost/gil/typedefs.hpp | 403 +- include/boost/gil/utilities.hpp | 375 +- include/boost/gil/version.hpp | 22 + include/boost/gil/virtual_locator.hpp | 113 +- include/boost/graph/astar_search.hpp | 7 +- include/boost/graph/detail/adjacency_list.hpp | 4 + .../boost/graph/detail/array_binary_tree.hpp | 1 + .../detail/compressed_sparse_row_struct.hpp | 4 +- include/boost/graph/detail/geodesic.hpp | 12 +- include/boost/graph/named_function_params.hpp | 3 +- include/boost/graph/stanford_graph.hpp | 8 + include/boost/graph/transitive_closure.hpp | 3 +- include/boost/hana/config.hpp | 7 - include/boost/hana/core/to.hpp | 40 +- include/boost/hana/detail/preprocessor.hpp | 72 - include/boost/hana/detail/struct_macros.hpp | 1261 +- .../boost/hana/detail/struct_macros.hpp.erb | 52 +- include/boost/hana/empty.hpp | 16 +- include/boost/hana/experimental/printable.hpp | 2 +- include/boost/hana/ext/boost/mpl/vector.hpp | 18 +- include/boost/hana/ext/std.hpp | 7 +- include/boost/hana/ext/std/tuple.hpp | 7 - include/boost/hana/fwd/basic_tuple.hpp | 5 + include/boost/hana/fwd/empty.hpp | 4 +- include/boost/hana/fwd/lift.hpp | 5 +- include/boost/hana/fwd/map.hpp | 8 +- include/boost/hana/fwd/monadic_fold_left.hpp | 8 +- include/boost/hana/fwd/monadic_fold_right.hpp | 8 +- include/boost/hana/fwd/one.hpp | 4 +- include/boost/hana/fwd/optional.hpp | 5 + include/boost/hana/fwd/pair.hpp | 5 + include/boost/hana/fwd/product.hpp | 5 +- include/boost/hana/fwd/range.hpp | 3 +- include/boost/hana/fwd/replicate.hpp | 5 +- include/boost/hana/fwd/set.hpp | 3 +- include/boost/hana/fwd/string.hpp | 36 +- include/boost/hana/fwd/sum.hpp | 5 +- include/boost/hana/fwd/take_back.hpp | 20 + include/boost/hana/fwd/tap.hpp | 5 +- include/boost/hana/fwd/tuple.hpp | 5 + include/boost/hana/fwd/type.hpp | 21 +- include/boost/hana/fwd/zero.hpp | 4 +- include/boost/hana/lift.hpp | 18 +- include/boost/hana/map.hpp | 2 +- include/boost/hana/monadic_fold_left.hpp | 64 +- include/boost/hana/monadic_fold_right.hpp | 64 +- include/boost/hana/one.hpp | 16 +- include/boost/hana/product.hpp | 30 +- include/boost/hana/replicate.hpp | 30 +- include/boost/hana/set.hpp | 2 +- include/boost/hana/string.hpp | 30 + include/boost/hana/sum.hpp | 30 +- include/boost/hana/take_back.hpp | 8 + include/boost/hana/tap.hpp | 18 +- include/boost/hana/tuple.hpp | 4 +- include/boost/hana/type.hpp | 47 +- include/boost/hana/version.hpp | 2 +- include/boost/hana/zero.hpp | 16 +- include/boost/heap/binomial_heap.hpp | 41 +- include/boost/heap/d_ary_heap.hpp | 12 +- include/boost/heap/detail/heap_comparison.hpp | 5 +- include/boost/heap/detail/heap_node.hpp | 29 +- include/boost/heap/detail/mutable_heap.hpp | 8 + .../heap/detail/ordered_adaptor_iterator.hpp | 4 + include/boost/heap/detail/stable_heap.hpp | 10 + include/boost/heap/detail/tree_iterator.hpp | 11 +- include/boost/heap/fibonacci_heap.hpp | 41 +- include/boost/heap/heap_merge.hpp | 9 +- include/boost/heap/pairing_heap.hpp | 49 +- include/boost/heap/policies.hpp | 32 +- include/boost/heap/priority_queue.hpp | 10 + include/boost/heap/skew_heap.hpp | 82 +- include/boost/histogram.hpp | 37 + include/boost/histogram/accumulators/mean.hpp | 90 + .../boost/histogram/accumulators/ostream.hpp | 52 + include/boost/histogram/accumulators/sum.hpp | 107 + .../histogram/accumulators/weighted_mean.hpp | 106 + .../histogram/accumulators/weighted_sum.hpp | 112 + include/boost/histogram/algorithm/project.hpp | 98 + include/boost/histogram/algorithm/reduce.hpp | 222 + include/boost/histogram/algorithm/sum.hpp | 41 + include/boost/histogram/axis.hpp | 16 + include/boost/histogram/axis/category.hpp | 184 + include/boost/histogram/axis/integer.hpp | 194 + .../boost/histogram/axis/interval_view.hpp | 54 + include/boost/histogram/axis/iterator.hpp | 74 + include/boost/histogram/axis/option.hpp | 82 + include/boost/histogram/axis/ostream.hpp | 193 + .../boost/histogram/axis/polymorphic_bin.hpp | 88 + include/boost/histogram/axis/regular.hpp | 359 + include/boost/histogram/axis/traits.hpp | 283 + include/boost/histogram/axis/variable.hpp | 242 + include/boost/histogram/axis/variant.hpp | 299 + include/boost/histogram/detail/attribute.hpp | 16 + include/boost/histogram/detail/axes.hpp | 176 + include/boost/histogram/detail/cat.hpp | 34 + .../boost/histogram/detail/common_type.hpp | 78 + .../histogram/detail/compressed_pair.hpp | 74 + include/boost/histogram/detail/linearize.hpp | 337 + include/boost/histogram/detail/meta.hpp | 436 + include/boost/histogram/fwd.hpp | 122 + include/boost/histogram/histogram.hpp | 425 + include/boost/histogram/indexed.hpp | 220 + include/boost/histogram/literals.hpp | 33 + include/boost/histogram/make_histogram.hpp | 133 + include/boost/histogram/make_profile.hpp | 90 + include/boost/histogram/ostream.hpp | 39 + include/boost/histogram/serialization.hpp | 214 + include/boost/histogram/storage_adaptor.hpp | 298 + include/boost/histogram/unlimited_storage.hpp | 923 ++ include/boost/histogram/unsafe_access.hpp | 74 + include/boost/hof.hpp | 63 + include/boost/hof/alias.hpp | 219 + include/boost/hof/always.hpp | 174 + include/boost/hof/apply.hpp | 252 + include/boost/hof/apply_eval.hpp | 156 + include/boost/hof/arg.hpp | 126 + include/boost/hof/capture.hpp | 189 + include/boost/hof/combine.hpp | 126 + include/boost/hof/compose.hpp | 169 + include/boost/hof/config.hpp | 201 + include/boost/hof/construct.hpp | 302 + include/boost/hof/decay.hpp | 68 + include/boost/hof/decorate.hpp | 217 + include/boost/hof/detail/and.hpp | 55 + include/boost/hof/detail/callable_base.hpp | 65 + include/boost/hof/detail/can_be_called.hpp | 121 + include/boost/hof/detail/compressed_pair.hpp | 130 + include/boost/hof/detail/constexpr_deduce.hpp | 74 + include/boost/hof/detail/delegate.hpp | 107 + include/boost/hof/detail/forward.hpp | 37 + include/boost/hof/detail/holder.hpp | 27 + include/boost/hof/detail/intrinsics.hpp | 113 + include/boost/hof/detail/join.hpp | 43 + include/boost/hof/detail/make.hpp | 31 + include/boost/hof/detail/move.hpp | 24 + include/boost/hof/detail/noexcept.hpp | 19 + include/boost/hof/detail/pp.hpp | 93 + .../hof/detail/recursive_constexpr_depth.hpp | 19 + .../hof/detail/remove_rvalue_reference.hpp | 26 + include/boost/hof/detail/result_of.hpp | 82 + include/boost/hof/detail/result_type.hpp | 43 + include/boost/hof/detail/seq.hpp | 46 + include/boost/hof/detail/static_const_var.hpp | 68 + include/boost/hof/detail/unpack_tuple.hpp | 98 + include/boost/hof/detail/unwrap.hpp | 29 + include/boost/hof/detail/using.hpp | 21 + include/boost/hof/eval.hpp | 86 + include/boost/hof/first_of.hpp | 244 + include/boost/hof/fix.hpp | 242 + include/boost/hof/flip.hpp | 107 + include/boost/hof/flow.hpp | 166 + include/boost/hof/fold.hpp | 171 + include/boost/hof/function.hpp | 90 + include/boost/hof/function_param_limit.hpp | 57 + include/boost/hof/identity.hpp | 72 + include/boost/hof/if.hpp | 143 + include/boost/hof/implicit.hpp | 155 + include/boost/hof/indirect.hpp | 133 + include/boost/hof/infix.hpp | 200 + include/boost/hof/is_invocable.hpp | 72 + include/boost/hof/is_unpackable.hpp | 115 + include/boost/hof/lambda.hpp | 244 + include/boost/hof/lazy.hpp | 299 + include/boost/hof/lift.hpp | 110 + include/boost/hof/limit.hpp | 142 + include/boost/hof/match.hpp | 121 + include/boost/hof/mutable.hpp | 68 + include/boost/hof/pack.hpp | 423 + include/boost/hof/partial.hpp | 292 + include/boost/hof/pipable.hpp | 215 + include/boost/hof/placeholders.hpp | 468 + include/boost/hof/proj.hpp | 265 + include/boost/hof/protect.hpp | 80 + include/boost/hof/repeat.hpp | 162 + include/boost/hof/repeat_while.hpp | 181 + include/boost/hof/result.hpp | 135 + include/boost/hof/returns.hpp | 249 + include/boost/hof/reveal.hpp | 385 + include/boost/hof/reverse_fold.hpp | 173 + include/boost/hof/rotate.hpp | 101 + include/boost/hof/static.hpp | 97 + include/boost/hof/tap.hpp | 83 + include/boost/hof/unpack.hpp | 181 + include/boost/hof/unpack_sequence.hpp | 71 + include/boost/hof/version.hpp | 16 + .../boost/icl/concept/element_associator.hpp | 168 +- include/boost/icl/concept/interval.hpp | 353 +- .../boost/icl/concept/interval_associator.hpp | 25 + include/boost/icl/interval_base_map.hpp | 1 + include/boost/icl/interval_base_set.hpp | 140 +- include/boost/icl/iterator.hpp | 10 +- include/boost/icl/map.hpp | 141 +- include/boost/icl/type_traits/rep_type_of.hpp | 17 +- include/boost/icl/type_traits/value_size.hpp | 10 +- include/boost/integer/common_factor_rt.hpp | 64 +- include/boost/integer/extended_euclidean.hpp | 83 + include/boost/integer/mod_inverse.hpp | 53 + .../interprocess/allocators/adaptive_pool.hpp | 2 +- .../interprocess/allocators/allocator.hpp | 2 +- .../allocators/detail/adaptive_node_pool.hpp | 7 +- .../allocators/detail/allocator_common.hpp | 4 +- .../allocators/detail/node_pool.hpp | 4 +- .../allocators/node_allocator.hpp | 2 +- .../allocators/private_adaptive_pool.hpp | 2 +- .../allocators/private_node_allocator.hpp | 2 +- .../boost/interprocess/containers/pair.hpp | 2 +- .../interprocess/containers/version_type.hpp | 4 +- include/boost/interprocess/detail/atomic.hpp | 54 + .../interprocess/detail/file_wrapper.hpp | 7 +- .../detail/in_place_interface.hpp | 2 +- .../detail/intermodule_singleton_common.hpp | 2 +- .../detail/managed_open_or_create_impl.hpp | 4 +- .../boost/interprocess/detail/named_proxy.hpp | 2 +- .../detail/os_thread_functions.hpp | 15 + .../detail/segment_manager_helper.hpp | 10 +- .../detail/transform_iterator.hpp | 164 +- .../detail/variadic_templates_tools.hpp | 8 +- .../boost/interprocess/detail/win32_api.hpp | 48 +- .../boost/interprocess/detail/workaround.hpp | 17 +- include/boost/interprocess/errors.hpp | 17 +- include/boost/interprocess/exceptions.hpp | 8 +- .../boost/interprocess/ipc/message_queue.hpp | 16 +- .../mem_algo/detail/mem_algo_common.hpp | 4 +- .../mem_algo/detail/simple_seq_fit_impl.hpp | 10 +- .../interprocess/mem_algo/rbtree_best_fit.hpp | 10 +- include/boost/interprocess/offset_ptr.hpp | 2 +- .../boost/interprocess/segment_manager.hpp | 8 +- .../smart_ptr/detail/bad_weak_ptr.hpp | 2 +- .../interprocess/smart_ptr/intrusive_ptr.hpp | 102 +- .../interprocess/streams/bufferstream.hpp | 2 +- .../sync/detail/common_algorithms.hpp | 43 + .../sync/shm/named_condition_any.hpp | 15 +- .../boost/interprocess/sync/spin/mutex.hpp | 18 +- .../sync/windows/winapi_wrapper_common.hpp | 51 +- include/boost/intrusive/avl_set.hpp | 44 +- include/boost/intrusive/avltree.hpp | 22 +- .../boost/intrusive/avltree_algorithms.hpp | 88 +- include/boost/intrusive/bs_set.hpp | 44 +- include/boost/intrusive/bstree.hpp | 22 +- include/boost/intrusive/bstree_algorithms.hpp | 82 +- .../intrusive/circular_list_algorithms.hpp | 30 +- .../intrusive/circular_slist_algorithms.hpp | 14 +- .../intrusive/derivation_value_traits.hpp | 2 +- .../detail/any_node_and_algorithms.hpp | 28 +- .../boost/intrusive/detail/avltree_node.hpp | 18 +- .../detail/common_slist_algorithms.hpp | 14 +- .../boost/intrusive/detail/config_begin.hpp | 27 +- .../intrusive/detail/ebo_functor_holder.hpp | 6 +- .../boost/intrusive/detail/generic_hook.hpp | 18 +- .../boost/intrusive/detail/hashtable_node.hpp | 27 +- .../boost/intrusive/detail/hook_traits.hpp | 16 +- include/boost/intrusive/detail/iterator.hpp | 20 +- .../intrusive/detail/key_nodeptr_comp.hpp | 2 +- .../boost/intrusive/detail/list_iterator.hpp | 20 +- include/boost/intrusive/detail/list_node.hpp | 4 +- include/boost/intrusive/detail/math.hpp | 4 +- include/boost/intrusive/detail/mpl.hpp | 1 + .../intrusive/detail/node_cloner_disposer.hpp | 4 +- .../boost/intrusive/detail/rbtree_node.hpp | 12 +- .../intrusive/detail/simple_disposers.hpp | 2 +- .../boost/intrusive/detail/slist_iterator.hpp | 16 +- include/boost/intrusive/detail/slist_node.hpp | 2 +- .../boost/intrusive/detail/tree_iterator.hpp | 34 +- include/boost/intrusive/detail/tree_node.hpp | 6 +- .../intrusive/detail/tree_value_compare.hpp | 47 +- include/boost/intrusive/detail/workaround.hpp | 2 +- include/boost/intrusive/hashtable.hpp | 147 +- include/boost/intrusive/intrusive_fwd.hpp | 3 + .../intrusive/linear_slist_algorithms.hpp | 8 +- include/boost/intrusive/list.hpp | 18 +- include/boost/intrusive/options.hpp | 10 +- include/boost/intrusive/pointer_plus_bits.hpp | 18 + include/boost/intrusive/pointer_traits.hpp | 28 +- include/boost/intrusive/priority_compare.hpp | 4 +- include/boost/intrusive/rbtree.hpp | 22 +- include/boost/intrusive/rbtree_algorithms.hpp | 78 +- include/boost/intrusive/set.hpp | 44 +- include/boost/intrusive/sg_set.hpp | 44 +- include/boost/intrusive/sgtree.hpp | 22 +- include/boost/intrusive/sgtree_algorithms.hpp | 122 +- include/boost/intrusive/slist.hpp | 30 +- include/boost/intrusive/splay_set.hpp | 44 +- include/boost/intrusive/splaytree.hpp | 22 +- .../boost/intrusive/splaytree_algorithms.hpp | 132 +- include/boost/intrusive/treap.hpp | 157 +- include/boost/intrusive/treap_algorithms.hpp | 131 +- include/boost/intrusive/treap_set.hpp | 123 +- include/boost/intrusive/unordered_set.hpp | 8 +- .../boost/intrusive/unordered_set_hook.hpp | 20 +- include/boost/iostreams/chain.hpp | 12 +- .../detail/adapter/direct_adapter.hpp | 1 + .../detail/adapter/non_blocking_adapter.hpp | 2 +- include/boost/iostreams/detail/buffer.hpp | 30 +- .../boost/iostreams/detail/config/codecvt.hpp | 2 +- .../boost/iostreams/detail/config/fpos.hpp | 11 +- .../iostreams/detail/config/wide_streams.hpp | 3 +- .../boost/iostreams/detail/restrict_impl.hpp | 2 + .../detail/streambuf/direct_streambuf.hpp | 4 +- .../detail/streambuf/indirect_streambuf.hpp | 4 +- .../detail/streambuf/linked_streambuf.hpp | 4 +- include/boost/iostreams/filter/bzip2.hpp | 19 + include/boost/iostreams/filter/lzma.hpp | 8 + include/boost/iostreams/filter/zlib.hpp | 8 + include/boost/iostreams/filter/zstd.hpp | 363 + include/boost/iostreams/filtering_stream.hpp | 21 + include/boost/iostreams/stream.hpp | 20 + include/boost/iterator/advance.hpp | 2 +- .../detail/facade_iterator_category.hpp | 5 +- include/boost/iterator/distance.hpp | 2 +- include/boost/iterator/iterator_adaptor.hpp | 6 +- .../boost/iterator/iterator_archetypes.hpp | 17 +- include/boost/iterator/iterator_facade.hpp | 2 +- include/boost/lambda/algorithm.hpp | 3 + include/boost/lambda/core.hpp | 8 +- include/boost/last_value.hpp | 54 - include/boost/lexical_cast.hpp | 2 +- .../boost/lexical_cast/bad_lexical_cast.hpp | 2 +- .../lexical_cast/detail/converter_lexical.hpp | 46 +- .../detail/converter_lexical_streams.hpp | 8 +- .../lexical_cast/detail/converter_numeric.hpp | 26 +- include/boost/lexical_cast/detail/inf_nan.hpp | 2 +- .../lexical_cast/detail/is_character.hpp | 9 +- .../detail/lcast_char_constants.hpp | 2 +- .../detail/lcast_unsigned_converters.hpp | 10 +- .../boost/lexical_cast/detail/widest_char.hpp | 7 +- .../boost/lexical_cast/lexical_cast_old.hpp | 3 +- .../lexical_cast/try_lexical_convert.hpp | 31 +- include/boost/locale/definitions.hpp | 16 +- include/boost/locale/format.hpp | 3 +- include/boost/locale/generator.hpp | 3 +- include/boost/locale/localization_backend.hpp | 30 +- include/boost/locale/util.hpp | 62 + .../detail/allocator_rebind_helper.hpp | 32 + include/boost/lockfree/detail/freelist.hpp | 4 +- include/boost/lockfree/detail/parameter.hpp | 4 +- include/boost/lockfree/detail/prefix.hpp | 7 +- .../boost/lockfree/detail/tagged_ptr_dcas.hpp | 10 +- .../detail/tagged_ptr_ptrcompression.hpp | 2 +- include/boost/lockfree/queue.hpp | 17 +- include/boost/lockfree/spsc_queue.hpp | 33 +- include/boost/lockfree/stack.hpp | 5 +- include/boost/log/detail/allocator_traits.hpp | 77 + .../log/detail/attachable_sstream_buf.hpp | 10 +- include/boost/log/detail/config.hpp | 34 +- include/boost/log/detail/format.hpp | 7 +- include/boost/log/detail/parameter_tools.hpp | 25 +- include/boost/log/detail/threadsafe_queue.hpp | 95 +- include/boost/log/detail/timestamp.hpp | 2 +- .../log/detail/unhandled_exception_count.hpp | 40 - .../predicates/channel_severity_filter.hpp | 3 +- .../boost/log/keywords/target_file_name.hpp | 40 + include/boost/log/sinks/text_file_backend.hpp | 33 +- include/boost/log/sources/record_ostream.hpp | 6 +- .../utility/ipc/reliable_message_queue.hpp | 4 +- include/boost/log/utility/permissions.hpp | 4 +- include/boost/log/utility/setup/file.hpp | 52 +- include/boost/logic/tribool.hpp | 15 +- include/boost/logic/tribool_io.hpp | 6 +- include/boost/math/common_factor.hpp | 5 +- include/boost/math/common_factor_ct.hpp | 5 +- include/boost/math/common_factor_rt.hpp | 5 +- .../boost/math/concepts/std_real_concept.hpp | 13 + .../math/constants/calculate_constants.hpp | 19 +- include/boost/math/constants/constants.hpp | 17 +- .../boost/math/cstdfloat/cstdfloat_cmath.hpp | 4 +- .../boost/math/cstdfloat/cstdfloat_limits.hpp | 19 +- .../boost/math/cstdfloat/cstdfloat_types.hpp | 2 + .../differentiation/finite_difference.hpp | 266 + .../differentiation/lanczos_smoothing.hpp | 580 + .../math/distributions/extreme_value.hpp | 4 +- .../interpolators/barycentric_rational.hpp | 28 + .../boost/math/interpolators/catmull_rom.hpp | 284 + .../detail/barycentric_rational_detail.hpp | 88 +- .../quadrature/detail/exp_sinh_detail.hpp | 114 +- .../quadrature/detail/sinh_sinh_detail.hpp | 61 +- .../quadrature/detail/tanh_sinh_detail.hpp | 44 +- include/boost/math/quadrature/exp_sinh.hpp | 22 +- include/boost/math/quadrature/gauss.hpp | 59 +- .../boost/math/quadrature/gauss_kronrod.hpp | 61 +- .../math/quadrature/naive_monte_carlo.hpp | 456 + include/boost/math/quadrature/sinh_sinh.hpp | 2 +- include/boost/math/quadrature/tanh_sinh.hpp | 71 +- include/boost/math/quadrature/trapezoidal.hpp | 41 +- include/boost/math/quaternion.hpp | 1 + include/boost/math/special_functions.hpp | 1 + .../special_functions/chebyshev_transform.hpp | 10 - .../detail/bernoulli_details.hpp | 9 + .../special_functions/detail/bessel_i0.hpp | 10 + .../special_functions/detail/bessel_i1.hpp | 10 + .../special_functions/detail/bessel_j0.hpp | 10 + .../special_functions/detail/bessel_j1.hpp | 10 + .../special_functions/detail/bessel_k0.hpp | 10 + .../special_functions/detail/bessel_k1.hpp | 10 + .../special_functions/detail/bessel_y0.hpp | 10 + .../special_functions/detail/bessel_y1.hpp | 10 + .../special_functions/detail/fp_traits.hpp | 27 +- .../special_functions/detail/igamma_large.hpp | 10 + .../detail/lambert_w_lookup_table.ipp | 134 + .../special_functions/detail/lgamma_small.hpp | 10 + .../detail/unchecked_bernoulli.hpp | 37 +- .../detail/unchecked_factorial.hpp | 39 +- .../boost/math/special_functions/digamma.hpp | 10 + .../boost/math/special_functions/ellint_d.hpp | 5 + .../math/special_functions/ellint_rd.hpp | 5 + include/boost/math/special_functions/erf.hpp | 157 +- .../boost/math/special_functions/expint.hpp | 10 + .../boost/math/special_functions/expm1.hpp | 10 + .../boost/math/special_functions/gamma.hpp | 69 +- .../math/special_functions/lambert_w.hpp | 2186 ++++ .../boost/math/special_functions/lanczos.hpp | 12 +- .../boost/math/special_functions/log1p.hpp | 10 + .../boost/math/special_functions/math_fwd.hpp | 29 +- include/boost/math/special_functions/next.hpp | 4 +- .../boost/math/special_functions/owens_t.hpp | 10 + .../boost/math/special_functions/prime.hpp | 25 +- .../special_functions/relative_difference.hpp | 2 +- .../boost/math/special_functions/round.hpp | 2 +- include/boost/math/special_functions/sinc.hpp | 26 +- .../boost/math/special_functions/trigamma.hpp | 10 + .../boost/math/special_functions/trunc.hpp | 2 +- include/boost/math/special_functions/zeta.hpp | 10 + .../boost/math/tools/bivariate_statistics.hpp | 97 + include/boost/math/tools/complex.hpp | 57 + .../boost/math/tools/condition_numbers.hpp | 139 + include/boost/math/tools/config.hpp | 17 +- .../math/tools/detail/is_const_iterable.hpp | 40 + include/boost/math/tools/fraction.hpp | 51 +- include/boost/math/tools/norms.hpp | 640 + .../math/tools/numerical_differentiation.hpp | 12 + include/boost/math/tools/polynomial.hpp | 109 +- include/boost/math/tools/polynomial_gcd.hpp | 48 +- include/boost/math/tools/precision.hpp | 2 +- include/boost/math/tools/roots.hpp | 288 +- include/boost/math/tools/series.hpp | 2 +- .../boost/math/tools/signal_statistics.hpp | 346 + include/boost/math/tools/test_value.hpp | 118 + include/boost/math/tools/toms748_solve.hpp | 8 + .../math/tools/univariate_statistics.hpp | 393 + include/boost/math_fwd.hpp | 9 - include/boost/memory_order.hpp | 49 +- include/boost/move/adl_move_swap.hpp | 6 + include/boost/move/algo/adaptive_merge.hpp | 289 +- include/boost/move/algo/adaptive_sort.hpp | 565 +- .../move/algo/detail/adaptive_sort_merge.hpp | 1627 +-- include/boost/move/algo/detail/heap_sort.hpp | 111 + .../boost/move/algo/detail/insertion_sort.hpp | 10 +- include/boost/move/algo/detail/is_sorted.hpp | 55 + include/boost/move/algo/detail/merge.hpp | 565 +- include/boost/move/algo/detail/merge_sort.hpp | 68 + include/boost/move/algo/detail/pdqsort.hpp | 334 + .../boost/move/algo/detail/set_difference.hpp | 207 + include/boost/move/algo/move.hpp | 2 +- include/boost/move/algo/predicate.hpp | 15 + include/boost/move/algorithm.hpp | 2 +- include/boost/move/core.hpp | 16 +- include/boost/move/detail/meta_utils.hpp | 2 + include/boost/move/detail/meta_utils_core.hpp | 17 +- include/boost/move/detail/type_traits.hpp | 9 +- include/boost/mp11/algorithm.hpp | 295 +- include/boost/mp11/bind.hpp | 64 +- include/boost/mp11/detail/config.hpp | 133 +- include/boost/mp11/detail/mp_append.hpp | 50 +- include/boost/mp11/detail/mp_copy_if.hpp | 48 + include/boost/mp11/detail/mp_count.hpp | 5 +- include/boost/mp11/detail/mp_fold.hpp | 5 +- include/boost/mp11/detail/mp_is_list.hpp | 39 + include/boost/mp11/detail/mp_plus.hpp | 5 +- include/boost/mp11/detail/mp_remove_if.hpp | 48 + include/boost/mp11/detail/mp_void.hpp | 32 + include/boost/mp11/detail/mp_with_index.hpp | 56 +- include/boost/mp11/function.hpp | 77 +- include/boost/mp11/integer_sequence.hpp | 25 +- include/boost/mp11/integral.hpp | 1 + include/boost/mp11/list.hpp | 85 +- include/boost/mp11/map.hpp | 2 +- include/boost/mp11/set.hpp | 103 +- include/boost/mp11/tuple.hpp | 30 +- include/boost/mp11/utility.hpp | 87 +- include/boost/mp11/version.hpp | 16 + include/boost/mpi/cartesian_communicator.hpp | 383 + include/boost/mpi/collectives/all_gather.hpp | 131 +- include/boost/mpi/collectives/all_gatherv.hpp | 140 + include/boost/mpi/collectives/all_reduce.hpp | 4 +- include/boost/mpi/collectives/all_to_all.hpp | 6 +- include/boost/mpi/collectives/broadcast.hpp | 27 +- include/boost/mpi/collectives/gather.hpp | 170 +- include/boost/mpi/collectives/gatherv.hpp | 37 +- include/boost/mpi/collectives/reduce.hpp | 4 +- include/boost/mpi/collectives/scan.hpp | 2 +- include/boost/mpi/collectives/scatter.hpp | 212 +- include/boost/mpi/collectives/scatterv.hpp | 203 +- include/boost/mpi/communicator.hpp | 478 +- include/boost/mpi/detail/antiques.hpp | 33 +- .../mpi/detail/binary_buffer_oprimitive.hpp | 7 +- .../mpi/detail/mpi_datatype_primitive.hpp | 7 + include/boost/mpi/detail/offsets.hpp | 47 + .../boost/mpi/detail/packed_iprimitive.hpp | 2 +- .../boost/mpi/detail/packed_oprimitive.hpp | 11 +- include/boost/mpi/environment.hpp | 6 + include/boost/mpi/error_string.hpp | 26 + include/boost/mpi/exception.hpp | 3 + include/boost/mpi/nonblocking.hpp | 24 +- include/boost/mpi/operations.hpp | 40 +- include/boost/mpi/python/serialize.hpp | 4 +- include/boost/mpi/request.hpp | 9 + include/boost/mpl/assert.hpp | 26 +- include/boost/msm/back/state_machine.hpp | 1 - include/boost/multi_array.hpp | 166 +- include/boost/multi_array/algorithm.hpp | 2 +- include/boost/multi_array/allocators.hpp | 72 + include/boost/multi_array/index_range.hpp | 6 + .../multi_index/detail/allocator_traits.hpp | 143 + .../boost/multi_index/detail/auto_space.hpp | 31 +- .../detail/bidir_node_iterator.hpp | 4 +- .../boost/multi_index/detail/bucket_array.hpp | 14 +- include/boost/multi_index/detail/copy_map.hpp | 53 +- .../detail/duplicates_iterator.hpp | 5 +- .../detail/hash_index_iterator.hpp | 4 +- .../multi_index/detail/hash_index_node.hpp | 50 +- .../boost/multi_index/detail/index_base.hpp | 36 +- .../multi_index/detail/ord_index_impl.hpp | 30 +- .../multi_index/detail/ord_index_node.hpp | 68 +- .../multi_index/detail/rnd_index_loader.hpp | 22 +- .../multi_index/detail/rnd_index_node.hpp | 47 +- .../detail/rnd_index_ptr_array.hpp | 34 +- .../multi_index/detail/rnd_node_iterator.hpp | 10 +- .../multi_index/detail/rnk_index_ops.hpp | 81 +- .../multi_index/detail/seq_index_node.hpp | 30 +- include/boost/multi_index/hashed_index.hpp | 84 +- include/boost/multi_index/key.hpp | 147 + .../boost/multi_index/random_access_index.hpp | 57 +- include/boost/multi_index/ranked_index.hpp | 59 +- include/boost/multi_index/sequenced_index.hpp | 56 +- include/boost/multi_index_container.hpp | 133 +- include/boost/multiprecision/complex128.hpp | 27 + .../boost/multiprecision/complex_adaptor.hpp | 860 ++ .../concepts/mp_number_archetypes.hpp | 7 + .../boost/multiprecision/cpp_bin_float.hpp | 167 +- .../boost/multiprecision/cpp_bin_float/io.hpp | 10 +- .../cpp_bin_float/transcendental.hpp | 11 +- include/boost/multiprecision/cpp_complex.hpp | 48 + .../boost/multiprecision/cpp_dec_float.hpp | 12 +- include/boost/multiprecision/cpp_int.hpp | 56 +- include/boost/multiprecision/cpp_int/add.hpp | 8 +- .../boost/multiprecision/cpp_int/bitwise.hpp | 12 +- .../multiprecision/cpp_int/import_export.hpp | 5 +- include/boost/multiprecision/cpp_int/misc.hpp | 73 +- .../boost/multiprecision/cpp_int/multiply.hpp | 4 +- .../multiprecision/cpp_int/serialize.hpp | 28 +- .../boost/multiprecision/debug_adaptor.hpp | 108 +- .../boost/multiprecision/detail/bitscan.hpp | 7 +- .../multiprecision/detail/default_ops.hpp | 777 +- .../detail/functions/constants.hpp | 63 +- .../multiprecision/detail/functions/pow.hpp | 32 +- .../detail/generic_interconvert.hpp | 70 +- .../boost/multiprecision/detail/no_et_ops.hpp | 92 +- .../multiprecision/detail/number_base.hpp | 587 +- .../multiprecision/detail/number_compare.hpp | 52 +- .../boost/multiprecision/detail/precision.hpp | 190 + .../boost/multiprecision/detail/rebind.hpp | 4 + include/boost/multiprecision/eigen.hpp | 173 + include/boost/multiprecision/float128.hpp | 98 +- include/boost/multiprecision/gmp.hpp | 95 +- .../boost/multiprecision/logged_adaptor.hpp | 160 +- include/boost/multiprecision/mpc.hpp | 1523 +++ include/boost/multiprecision/mpfi.hpp | 65 +- include/boost/multiprecision/mpfr.hpp | 431 +- include/boost/multiprecision/number.hpp | 409 +- .../boost/multiprecision/rational_adaptor.hpp | 16 +- include/boost/multiprecision/tommath.hpp | 2 + .../traits/explicit_conversion.hpp | 45 +- .../traits/is_byte_container.hpp | 9 +- .../traits/is_variable_precision.hpp | 24 + include/boost/numeric/conversion/cast.hpp | 2 +- .../numeric/conversion/conversion_traits.hpp | 7 - .../numeric/conversion/detail/converter.hpp | 2 +- .../conversion/detail/old_numeric_cast.hpp | 37 +- include/boost/numeric/interval/limits.hpp | 14 +- include/boost/numeric/interval/utility.hpp | 3 +- .../boost/numeric/interval/utility_fwd.hpp | 172 + include/boost/numeric/ublas/assignment.hpp | 59 +- .../boost/numeric/ublas/detail/concepts.hpp | 114 +- .../numeric/ublas/detail/matrix_assign.hpp | 161 +- .../ublas/detail/returntype_deduction.hpp | 4 +- .../numeric/ublas/detail/vector_assign.hpp | 47 +- include/boost/numeric/ublas/functional.hpp | 74 +- include/boost/numeric/ublas/matrix.hpp | 43 +- .../boost/numeric/ublas/matrix_expression.hpp | 10262 ++++++++-------- include/boost/numeric/ublas/matrix_sparse.hpp | 6 +- include/boost/numeric/ublas/matrix_vector.hpp | 128 +- include/boost/numeric/ublas/opencl.hpp | 16 + .../numeric/ublas/opencl/elementwise.hpp | 508 + .../boost/numeric/ublas/opencl/library.hpp | 38 + include/boost/numeric/ublas/opencl/matrix.hpp | 123 + include/boost/numeric/ublas/opencl/misc.hpp | 182 + .../boost/numeric/ublas/opencl/operations.hpp | 18 + include/boost/numeric/ublas/opencl/prod.hpp | 364 + .../boost/numeric/ublas/opencl/transpose.hpp | 142 + include/boost/numeric/ublas/opencl/vector.hpp | 90 + .../boost/numeric/ublas/operation/begin.hpp | 566 +- include/boost/numeric/ublas/storage.hpp | 43 + .../boost/numeric/ublas/storage_sparse.hpp | 7 +- include/boost/numeric/ublas/tensor.hpp | 26 + .../boost/numeric/ublas/tensor/algorithms.hpp | 345 + .../boost/numeric/ublas/tensor/expression.hpp | 181 + .../ublas/tensor/expression_evaluation.hpp | 288 + .../boost/numeric/ublas/tensor/extents.hpp | 335 + .../boost/numeric/ublas/tensor/functions.hpp | 558 + include/boost/numeric/ublas/tensor/index.hpp | 89 + .../numeric/ublas/tensor/multi_index.hpp | 110 + .../ublas/tensor/multi_index_utility.hpp | 364 + .../numeric/ublas/tensor/multiplication.hpp | 945 ++ .../ublas/tensor/operators_arithmetic.hpp | 244 + .../ublas/tensor/operators_comparison.hpp | 175 + .../boost/numeric/ublas/tensor/ostream.hpp | 122 + .../numeric/ublas/tensor/storage_traits.hpp | 84 + .../boost/numeric/ublas/tensor/strides.hpp | 251 + include/boost/numeric/ublas/tensor/tensor.hpp | 734 ++ include/boost/numeric/ublas/traits.hpp | 28 +- include/boost/numeric/ublas/vector.hpp | 17 +- .../boost/numeric/ublas/vector_expression.hpp | 26 +- .../boost/numeric/ublas/vector_of_vector.hpp | 4 +- include/boost/numeric/ublas/vector_sparse.hpp | 33 +- .../optional/detail/experimental_traits.hpp | 12 +- .../detail/old_optional_implementation.hpp | 25 +- .../detail/optional_reference_spec.hpp | 51 +- .../optional_trivially_copyable_base.hpp | 6 +- include/boost/optional/optional.hpp | 322 +- include/boost/outcome.hpp | 37 + include/boost/outcome/bad_access.hpp | 97 + include/boost/outcome/basic_outcome.hpp | 1018 ++ include/boost/outcome/basic_result.hpp | 554 + include/boost/outcome/boost_outcome.hpp | 57 + include/boost/outcome/boost_result.hpp | 175 + include/boost/outcome/config.hpp | 323 + include/boost/outcome/convert.hpp | 128 + .../basic_outcome_exception_observers.hpp | 70 + ...basic_outcome_exception_observers_impl.hpp | 104 + .../basic_outcome_failure_observers.hpp | 100 + .../detail/basic_result_error_observers.hpp | 98 + .../outcome/detail/basic_result_final.hpp | 157 + .../outcome/detail/basic_result_storage.hpp | 257 + .../detail/basic_result_value_observers.hpp | 100 + .../outcome/detail/trait_std_error_code.hpp | 126 + .../outcome/detail/trait_std_exception.hpp | 97 + .../boost/outcome/detail/value_storage.hpp | 364 + include/boost/outcome/experimental/result.h | 82 + .../experimental/status-code/com_code.hpp | 240 + .../experimental/status-code/config.hpp | 261 + .../detail/nt_code_to_generic_code.ipp | 98 + .../detail/nt_code_to_win32_code.ipp | 1018 ++ .../detail/win32_code_to_generic_code.ipp | 75 + .../experimental/status-code/error.hpp | 65 + .../status-code/errored_status_code.hpp | 342 + .../experimental/status-code/generic_code.hpp | 378 + .../status-code/iostream_support.hpp | 78 + .../experimental/status-code/nt_code.hpp | 212 + .../experimental/status-code/posix_code.hpp | 151 + .../experimental/status-code/status_code.hpp | 502 + .../status-code/status_code_domain.hpp | 365 + .../status-code/status_code_ptr.hpp | 137 + .../experimental/status-code/status_error.hpp | 104 + .../status-code/std_error_code.hpp | 184 + .../experimental/status-code/system_code.hpp | 66 + .../system_code_from_exception.hpp | 126 + .../status-code/system_error2.hpp | 36 + .../experimental/status-code/win32_code.hpp | 193 + .../outcome/experimental/status_outcome.hpp | 149 + .../outcome/experimental/status_result.hpp | 108 + include/boost/outcome/iostream_support.hpp | 276 + include/boost/outcome/outcome.hpp | 46 + include/boost/outcome/policy/all_narrow.hpp | 53 + include/boost/outcome/policy/base.hpp | 107 + .../policy/fail_to_compile_observers.hpp | 60 + ...tcome_error_code_throw_as_system_error.hpp | 80 + .../policy/outcome_exception_ptr_rethrow.hpp | 79 + ...esult_error_code_throw_as_system_error.hpp | 73 + .../policy/result_exception_ptr_rethrow.hpp | 71 + include/boost/outcome/policy/terminate.hpp | 73 + .../policy/throw_bad_result_access.hpp | 93 + include/boost/outcome/result.hpp | 53 + include/boost/outcome/revision.hpp | 4 + include/boost/outcome/std_outcome.hpp | 55 + include/boost/outcome/std_result.hpp | 83 + include/boost/outcome/success_failure.hpp | 250 + include/boost/outcome/trait.hpp | 131 + include/boost/outcome/try.hpp | 150 + include/boost/outcome/utils.hpp | 144 + include/boost/outcome/version.hpp | 13 + .../boost/parameter/aux_/python/invoker.hpp | 0 .../parameter/aux_/python/invoker_iterate.hpp | 0 include/boost/parameter/python.hpp | 11 +- include/boost/pending/integer_log2.hpp | 6 +- include/boost/pending/relaxed_heap.hpp | 1 - include/boost/phoenix/core/actor.hpp | 123 +- .../phoenix/core/detail/cpp03/assign.hpp | 97 - .../phoenix/core/detail/cpp03/expression.hpp | 4 +- .../core/detail/cpp03/preprocessed/assign.hpp | 25 - .../detail/cpp03/preprocessed/assign_10.hpp | 15 - .../detail/cpp03/preprocessed/assign_20.hpp | 15 - .../detail/cpp03/preprocessed/assign_30.hpp | 15 - .../detail/cpp03/preprocessed/assign_40.hpp | 15 - .../detail/cpp03/preprocessed/assign_50.hpp | 15 - .../cpp03/preprocessed/expression_10.hpp | 40 +- .../cpp03/preprocessed/expression_20.hpp | 80 +- .../cpp03/preprocessed/expression_30.hpp | 120 +- .../cpp03/preprocessed/expression_40.hpp | 160 +- .../cpp03/preprocessed/expression_50.hpp | 200 +- include/boost/phoenix/core/domain.hpp | 18 + include/boost/phoenix/core/expression.hpp | 23 +- include/boost/phoenix/core/terminal.hpp | 7 +- include/boost/phoenix/function/lazy_list.hpp | 18 +- .../cpp03/mem_fun_ptr_eval_result_of.hpp | 26 +- .../mem_fun_ptr_eval_result_of_10.hpp | 179 + .../mem_fun_ptr_eval_result_of_20.hpp | 369 + .../mem_fun_ptr_eval_result_of_30.hpp | 559 + .../mem_fun_ptr_eval_result_of_40.hpp | 749 ++ .../mem_fun_ptr_eval_result_of_50.hpp | 939 ++ include/boost/phoenix/version.hpp | 12 +- include/boost/poly_collection/algorithm.hpp | 148 +- .../detail/allocator_adaptor.hpp | 300 + .../poly_collection/detail/any_model.hpp | 21 +- .../poly_collection/detail/base_model.hpp | 20 +- .../poly_collection/detail/function_model.hpp | 21 +- .../poly_collection/detail/functional.hpp | 19 +- .../detail/integer_sequence.hpp | 64 - .../detail/is_equality_comparable.hpp | 60 +- .../detail/is_likely_stateless_lambda.hpp | 70 - .../detail/newdelete_allocator.hpp | 102 - .../poly_collection/detail/packed_segment.hpp | 43 +- .../detail/poly_collection.hpp | 16 +- .../boost/poly_collection/detail/segment.hpp | 44 +- .../detail/segment_backend.hpp | 9 +- .../poly_collection/detail/split_segment.hpp | 48 +- .../detail/stride_iterator.hpp | 7 +- .../poly_collection/detail/type_info_map.hpp | 152 +- .../poly_collection/detail/value_holder.hpp | 88 +- .../detail/workaround_dr1467.hpp | 35 - .../detail/iterator_geometry_to_set.hpp | 2 +- include/boost/polygon/isotropy.hpp | 83 +- include/boost/polygon/polygon_traits.hpp | 18 +- include/boost/polymorphic_pointer_cast.hpp | 2 +- include/boost/pool/detail/mutex.hpp | 144 +- include/boost/pool/detail/pool_construct.bat | 0 .../pool/detail/pool_construct_simple.bat | 0 include/boost/predef/architecture.h | 1 + include/boost/predef/architecture/arm.h | 84 +- include/boost/predef/architecture/ptx.h | 44 + include/boost/predef/compiler.h | 1 + include/boost/predef/compiler/compaq.h | 2 +- include/boost/predef/compiler/nvcc.h | 73 + include/boost/predef/detail/endian_compat.h | 4 +- include/boost/predef/language.h | 1 + include/boost/predef/language/cuda.h | 52 + include/boost/predef/make.h | 4 + include/boost/predef/os.h | 3 +- include/boost/predef/os/android.h | 3 + include/boost/predef/os/bsd.h | 4 +- include/boost/predef/os/bsd/net.h | 2 +- include/boost/predef/os/cygwin.h | 7 +- include/boost/predef/os/linux.h | 5 +- include/boost/predef/other/endian.h | 3 +- include/boost/predef/platform.h | 1 + include/boost/predef/platform/android.h | 43 + include/boost/predef/platform/ios.h | 6 +- include/boost/predef/version.h | 2 +- include/boost/preprocessor/config/config.hpp | 23 +- include/boost/preprocessor/stringize.hpp | 4 + include/boost/preprocessor/wstringize.hpp | 4 + include/boost/process/async.hpp | 4 +- include/boost/process/async_system.hpp | 14 +- include/boost/process/child.hpp | 4 + include/boost/process/detail/child_decl.hpp | 78 +- include/boost/process/detail/config.hpp | 15 + .../boost/process/detail/posix/asio_fwd.hpp | 10 +- .../boost/process/detail/posix/async_in.hpp | 24 +- .../boost/process/detail/posix/async_out.hpp | 29 +- .../boost/process/detail/posix/async_pipe.hpp | 29 +- .../boost/process/detail/posix/basic_cmd.hpp | 14 +- .../boost/process/detail/posix/executor.hpp | 22 +- .../process/detail/posix/group_handle.hpp | 25 +- .../process/detail/posix/io_context_ref.hpp | 21 +- .../boost/process/detail/posix/is_running.hpp | 62 +- .../boost/process/detail/posix/on_exit.hpp | 2 +- .../process/detail/posix/search_path.hpp | 4 +- .../process/detail/posix/sigchld_service.hpp | 66 +- .../boost/process/detail/posix/terminate.hpp | 16 +- .../process/detail/posix/wait_for_exit.hpp | 235 +- .../boost/process/detail/posix/wait_group.hpp | 262 +- .../boost/process/detail/windows/asio_fwd.hpp | 12 +- .../boost/process/detail/windows/async_in.hpp | 18 +- .../process/detail/windows/async_out.hpp | 34 +- .../process/detail/windows/async_pipe.hpp | 55 +- .../process/detail/windows/basic_pipe.hpp | 7 +- .../boost/process/detail/windows/executor.hpp | 2 +- .../detail/windows/file_descriptor.hpp | 12 +- .../process/detail/windows/group_handle.hpp | 29 +- .../process/detail/windows/io_context_ref.hpp | 8 +- .../process/detail/windows/is_running.hpp | 26 +- .../process/detail/windows/job_workaround.hpp | 246 +- .../boost/process/detail/windows/locale.hpp | 20 +- .../boost/process/detail/windows/on_exit.hpp | 6 +- .../process/detail/windows/search_path.hpp | 4 +- .../process/detail/windows/show_window.hpp | 10 +- .../process/detail/windows/terminate.hpp | 17 +- .../process/detail/windows/wait_for_exit.hpp | 140 +- .../process/detail/windows/wait_group.hpp | 157 +- include/boost/process/environment.hpp | 13 +- include/boost/process/exe.hpp | 20 +- include/boost/process/extend.hpp | 6 +- include/boost/process/pipe.hpp | 53 +- include/boost/process/start_dir.hpp | 1 + include/boost/process/system.hpp | 5 +- include/boost/process/windows.hpp | 5 +- .../boost/program_options/detail/cmdline.hpp | 2 +- .../boost/program_options/detail/parsers.hpp | 20 +- include/boost/program_options/errors.hpp | 5 +- .../program_options/options_description.hpp | 28 +- include/boost/program_options/parsers.hpp | 4 + include/boost/progress.hpp | 3 + include/boost/property_map/property_map.hpp | 1 + .../detail/associative_ptr_container.hpp | 27 + .../ptr_container_disable_deprecated.hpp | 40 + .../detail/reversible_ptr_container.hpp | 123 +- include/boost/ptr_container/ptr_array.hpp | 68 +- .../ptr_container/ptr_circular_buffer.hpp | 51 +- include/boost/ptr_container/ptr_deque.hpp | 10 + include/boost/ptr_container/ptr_inserter.hpp | 67 +- include/boost/ptr_container/ptr_list.hpp | 9 + include/boost/ptr_container/ptr_map.hpp | 10 + .../boost/ptr_container/ptr_map_adapter.hpp | 112 +- .../ptr_container/ptr_sequence_adapter.hpp | 48 +- include/boost/ptr_container/ptr_set.hpp | 10 + .../boost/ptr_container/ptr_set_adapter.hpp | 102 +- .../boost/ptr_container/ptr_unordered_map.hpp | 10 + .../boost/ptr_container/ptr_unordered_set.hpp | 10 + include/boost/ptr_container/ptr_vector.hpp | 10 + include/boost/python/detail/caller.hpp | 31 +- include/boost/python/detail/config.hpp | 11 +- include/boost/python/detail/unwind_type.hpp | 12 +- include/boost/python/detail/wrap_python.hpp | 34 + include/boost/python/list.hpp | 2 +- include/boost/python/numpy/config.hpp | 11 +- include/boost/python/other.hpp | 8 +- include/boost/python/ptr.hpp | 8 +- .../boost/qvm/detail/vec_register_impl.hpp | 138 + include/boost/qvm/mat_operations.hpp | 618 +- include/boost/qvm/vec_register.hpp | 14 + include/boost/qvm/vec_register2.hpp | 25 + include/boost/qvm/vec_register3.hpp | 27 + include/boost/qvm/vec_register4.hpp | 29 + .../boost/random/binomial_distribution.hpp | 54 +- .../boost/random/detail/gray_coded_qrng.hpp | 166 + include/boost/random/detail/integer_log2.hpp | 2 +- .../detail/niederreiter_base2_table.hpp | 513 + include/boost/random/detail/qrng_base.hpp | 291 + include/boost/random/detail/sobol_table.hpp | 4106 +++++++ include/boost/random/detail/vector_io.hpp | 3 + .../boost/random/discrete_distribution.hpp | 8 +- include/boost/random/faure.hpp | 367 + .../random/hyperexponential_distribution.hpp | 11 - include/boost/random/independent_bits.hpp | 12 + include/boost/random/linear_congruential.hpp | 6 +- include/boost/random/niederreiter_base2.hpp | 360 + include/boost/random/poisson_distribution.hpp | 34 +- include/boost/random/seed_seq.hpp | 2 +- include/boost/random/sobol.hpp | 237 + include/boost/random/uniform_on_sphere.hpp | 8 +- .../boost/range/adaptor/adjacent_filtered.hpp | 2 +- include/boost/range/adaptor/ref_unwrapped.hpp | 102 + include/boost/range/adaptor/replaced.hpp | 26 +- include/boost/range/adaptor/replaced_if.hpp | 28 +- include/boost/range/adaptor/sliced.hpp | 1 + include/boost/range/algorithm/max_element.hpp | 18 +- include/boost/range/algorithm/min_element.hpp | 18 +- .../boost/range/algorithm/random_shuffle.hpp | 81 +- include/boost/range/algorithm_ext/insert.hpp | 1 + include/boost/range/as_literal.hpp | 43 + include/boost/range/begin.hpp | 18 +- include/boost/range/concepts.hpp | 2 +- include/boost/range/detail/begin.hpp | 8 +- include/boost/range/detail/common.hpp | 4 +- .../detail/default_constructible_unary_fn.hpp | 17 + include/boost/range/detail/end.hpp | 8 +- .../range/detail/implementation_help.hpp | 4 +- include/boost/range/detail/join_iterator.hpp | 8 +- include/boost/range/detail/microsoft.hpp | 1 + include/boost/range/detail/range_return.hpp | 1 + include/boost/range/distance.hpp | 16 +- include/boost/range/end.hpp | 20 +- include/boost/range/has_range_iterator.hpp | 6 +- include/boost/range/irange.hpp | 11 +- include/boost/range/iterator_range_core.hpp | 1 + include/boost/ratio/config.hpp | 8 +- include/boost/rational.hpp | 92 +- include/boost/regex/concepts.hpp | 5 +- include/boost/regex/config.hpp | 16 +- include/boost/regex/icu.hpp | 39 +- include/boost/regex/v4/basic_regex.hpp | 8 +- .../boost/regex/v4/basic_regex_creator.hpp | 4 +- include/boost/regex/v4/basic_regex_parser.hpp | 7 +- include/boost/regex/v4/fileiter.hpp | 3 - include/boost/regex/v4/instances.hpp | 19 +- include/boost/regex/v4/match_flags.hpp | 3 +- include/boost/regex/v4/match_results.hpp | 15 +- include/boost/regex/v4/perl_matcher.hpp | 9 +- .../boost/regex/v4/perl_matcher_common.hpp | 10 +- .../regex/v4/perl_matcher_non_recursive.hpp | 8 +- include/boost/regex/v4/regex_format.hpp | 5 - include/boost/regex/v4/regex_iterator.hpp | 8 - include/boost/regex/v4/regex_raw_buffer.hpp | 6 +- include/boost/regex/v4/regex_split.hpp | 4 +- .../boost/regex/v4/regex_token_iterator.hpp | 8 - .../boost/regex/v4/regex_traits_defaults.hpp | 23 +- include/boost/regex/v4/regex_workaround.hpp | 11 +- include/boost/regex/v4/u32regex_iterator.hpp | 10 +- .../regex/v4/u32regex_token_iterator.hpp | 12 +- include/boost/regex/v4/w32_regex_traits.hpp | 2 + include/boost/safe_numerics/automatic.hpp | 479 + .../boost/safe_numerics/checked_default.hpp | 210 + include/boost/safe_numerics/checked_float.hpp | 170 + .../boost/safe_numerics/checked_integer.hpp | 798 ++ .../boost/safe_numerics/checked_result.hpp | 146 + .../checked_result_operations.hpp | 1217 ++ .../concept/exception_policy.hpp | 29 + .../boost/safe_numerics/concept/integer.hpp | 27 + .../boost/safe_numerics/concept/numeric.hpp | 29 + .../concept/promotion_policy.hpp | 33 + .../safe_numerics/concept/safe_numeric.hpp | 34 + include/boost/safe_numerics/cpp.hpp | 197 + include/boost/safe_numerics/exception.hpp | 188 + .../safe_numerics/exception_policies.hpp | 219 + include/boost/safe_numerics/interval.hpp | 310 + include/boost/safe_numerics/native.hpp | 110 + include/boost/safe_numerics/range_value.hpp | 71 + include/boost/safe_numerics/safe_base.hpp | 349 + .../safe_numerics/safe_base_operations.hpp | 1744 +++ include/boost/safe_numerics/safe_common.hpp | 44 + include/boost/safe_numerics/safe_compare.hpp | 180 + include/boost/safe_numerics/safe_integer.hpp | 41 + .../safe_numerics/safe_integer_literal.hpp | 246 + .../safe_numerics/safe_integer_range.hpp | 60 + include/boost/safe_numerics/utility.hpp | 254 + include/boost/scope_exit.hpp | 31 +- include/boost/serialization/boost_array.hpp | 6 +- include/boost/serialization/export.hpp | 2 - include/boost/serialization/set.hpp | 3 +- include/boost/serialization/singleton.hpp | 140 +- include/boost/serialization/variant.hpp | 26 +- include/boost/serialization/void_cast.hpp | 9 +- include/boost/signal.hpp | 366 - include/boost/signals.hpp | 10 - include/boost/signals/connection.hpp | 213 - include/boost/signals/detail/config.hpp | 54 - include/boost/signals/detail/gen_signal_N.pl | 132 - .../boost/signals/detail/named_slot_map.hpp | 192 - include/boost/signals/detail/signal_base.hpp | 159 - .../boost/signals/detail/signals_common.hpp | 144 - .../signals/detail/slot_call_iterator.hpp | 95 - include/boost/signals/signal0.hpp | 37 - include/boost/signals/signal1.hpp | 37 - include/boost/signals/signal10.hpp | 37 - include/boost/signals/signal2.hpp | 37 - include/boost/signals/signal3.hpp | 37 - include/boost/signals/signal4.hpp | 37 - include/boost/signals/signal5.hpp | 37 - include/boost/signals/signal6.hpp | 37 - include/boost/signals/signal7.hpp | 37 - include/boost/signals/signal8.hpp | 37 - include/boost/signals/signal9.hpp | 37 - include/boost/signals/signal_template.hpp | 401 - include/boost/signals/slot.hpp | 157 - include/boost/signals/trackable.hpp | 173 - .../boost/signals2/detail/lwm_win32_cs.hpp | 60 +- .../smart_ptr/allocate_local_shared_array.hpp | 86 +- .../boost/smart_ptr/allocate_shared_array.hpp | 377 +- include/boost/smart_ptr/atomic_shared_ptr.hpp | 72 +- include/boost/smart_ptr/bad_weak_ptr.hpp | 2 +- .../smart_ptr/detail/local_counted_base.hpp | 10 +- .../smart_ptr/detail/local_sp_deleter.hpp | 6 +- .../boost/smart_ptr/detail/lwm_win32_cs.hpp | 16 +- .../boost/smart_ptr/detail/shared_count.hpp | 61 +- .../detail/sp_counted_base_acc_ia64.hpp | 3 +- .../smart_ptr/detail/sp_counted_base_aix.hpp | 3 +- .../detail/sp_counted_base_clang.hpp | 40 +- .../detail/sp_counted_base_cw_ppc.hpp | 3 +- .../detail/sp_counted_base_cw_x86.hpp | 3 +- .../detail/sp_counted_base_gcc_ia64.hpp | 3 +- .../detail/sp_counted_base_gcc_mips.hpp | 9 +- .../detail/sp_counted_base_gcc_ppc.hpp | 3 +- .../detail/sp_counted_base_gcc_sparc.hpp | 3 +- .../detail/sp_counted_base_gcc_x86.hpp | 3 +- .../smart_ptr/detail/sp_counted_base_nt.hpp | 35 +- .../smart_ptr/detail/sp_counted_base_pt.hpp | 14 +- .../detail/sp_counted_base_snc_ps3.hpp | 3 +- .../detail/sp_counted_base_solaris.hpp | 3 +- .../smart_ptr/detail/sp_counted_base_spin.hpp | 3 +- .../detail/sp_counted_base_std_atomic.hpp | 40 +- .../smart_ptr/detail/sp_counted_base_sync.hpp | 3 +- .../detail/sp_counted_base_vacpp_ppc.hpp | 3 +- .../smart_ptr/detail/sp_counted_base_w32.hpp | 3 +- .../smart_ptr/detail/sp_counted_impl.hpp | 37 +- .../boost/smart_ptr/detail/sp_interlocked.hpp | 10 + .../smart_ptr/detail/spinlock_std_atomic.hpp | 11 +- include/boost/smart_ptr/detail/yield_k.hpp | 26 +- include/boost/smart_ptr/local_shared_ptr.hpp | 4 +- .../smart_ptr/make_local_shared_array.hpp | 28 +- .../smart_ptr/make_local_shared_object.hpp | 7 +- include/boost/smart_ptr/make_shared_array.hpp | 23 +- include/boost/smart_ptr/make_unique.hpp | 75 +- include/boost/smart_ptr/shared_ptr.hpp | 12 +- .../blk_detail/backbone.hpp | 219 + .../block_indirect_sort/blk_detail/block.hpp | 180 + .../blk_detail/constants.hpp | 26 + .../blk_detail/merge_blocks.hpp | 426 + .../blk_detail/move_blocks.hpp | 284 + .../blk_detail/parallel_sort.hpp | 236 + .../block_indirect_sort.hpp | 503 + include/boost/sort/common/deque_cnc.hpp | 366 + include/boost/sort/common/file_vector.hpp | 272 + include/boost/sort/common/indirect.hpp | 153 + include/boost/sort/common/int_array.hpp | 75 + include/boost/sort/common/merge_block.hpp | 418 + include/boost/sort/common/merge_four.hpp | 327 + include/boost/sort/common/merge_vector.hpp | 196 + include/boost/sort/common/pivot.hpp | 123 + include/boost/sort/common/range.hpp | 399 + include/boost/sort/common/rearrange.hpp | 168 + include/boost/sort/common/scheduler.hpp | 276 + include/boost/sort/common/sort_basic.hpp | 334 + include/boost/sort/common/spinlock.hpp | 88 + include/boost/sort/common/stack_cnc.hpp | 142 + include/boost/sort/common/time_measure.hpp | 62 + include/boost/sort/common/util/algorithm.hpp | 309 + include/boost/sort/common/util/atomic.hpp | 98 + .../sort/common/util/circular_buffer.hpp | 572 + include/boost/sort/common/util/insert.hpp | 142 + include/boost/sort/common/util/merge.hpp | 494 + include/boost/sort/common/util/search.hpp | 529 + include/boost/sort/common/util/traits.hpp | 123 + .../flat_stable_sort/flat_stable_sort.hpp | 312 + include/boost/sort/heap_sort/heap_sort.hpp | 215 + .../boost/sort/insert_sort/insert_sort.hpp | 119 + .../parallel_stable_sort.hpp | 292 + include/boost/sort/pdqsort/pdqsort.hpp | 632 + .../boost/sort/sample_sort/sample_sort.hpp | 560 + include/boost/sort/sort.hpp | 7 +- include/boost/sort/spinsort/spinsort.hpp | 564 + .../sort/spreadsort/detail/constants.hpp | 4 +- .../sort/spreadsort/detail/float_sort.hpp | 30 +- .../sort/spreadsort/detail/integer_sort.hpp | 26 +- .../spreadsort/detail/spreadsort_common.hpp | 3 +- .../sort/spreadsort/detail/string_sort.hpp | 110 +- include/boost/sort/spreadsort/float_sort.hpp | 48 +- .../boost/sort/spreadsort/integer_sort.hpp | 142 +- include/boost/sort/spreadsort/spreadsort.hpp | 23 + include/boost/sort/spreadsort/string_sort.hpp | 432 +- .../home/classic/core/composite/actions.hpp | 3 +- .../home/classic/core/composite/epsilon.hpp | 9 + .../classic/core/composite/no_actions.hpp | 8 +- .../boost/spirit/home/classic/core/match.hpp | 14 +- .../core/non_terminal/impl/grammar.ipp | 2 +- .../core/primitives/impl/primitives.ipp | 6 + .../classic/core/primitives/primitives.hpp | 19 +- .../classic/core/scanner/impl/skipper.ipp | 16 +- .../home/classic/core/scanner/scanner.hpp | 5 +- .../home/classic/debug/impl/parser_names.ipp | 10 +- .../boost/spirit/home/classic/dynamic/for.hpp | 4 +- .../home/classic/dynamic/impl/switch.ipp | 7 +- .../spirit/home/classic/dynamic/while.hpp | 2 +- .../classic/error_handling/exceptions.hpp | 8 +- .../classic/iterator/impl/file_iterator.ipp | 6 +- .../iterator/impl/position_iterator.ipp | 18 +- .../home/classic/iterator/multi_pass.hpp | 41 +- .../iterator/position_iterator_fwd.hpp | 6 +- .../home/classic/meta/impl/refactoring.ipp | 2 +- .../spirit/home/classic/phoenix/actor.hpp | 3 +- .../spirit/home/classic/phoenix/composite.hpp | 12 +- .../home/classic/phoenix/special_ops.hpp | 1 + .../spirit/home/classic/phoenix/tuples.hpp | 2 +- .../boost/spirit/home/classic/tree/ast.hpp | 12 +- .../boost/spirit/home/classic/tree/common.hpp | 5 +- .../spirit/home/classic/tree/parse_tree.hpp | 12 +- include/boost/spirit/home/classic/utility.hpp | 2 + .../home/classic/utility/impl/escape_char.ipp | 2 +- .../spirit/home/classic/utility/loops.hpp | 2 + .../spirit/home/classic/utility/regex.hpp | 4 +- include/boost/spirit/home/classic/version.hpp | 13 +- .../boost/spirit/home/karma/action/action.hpp | 6 +- .../spirit/home/karma/auxiliary/attr_cast.hpp | 2 - .../boost/spirit/home/karma/binary/binary.hpp | 28 +- include/boost/spirit/home/karma/char/char.hpp | 2 +- .../karma/detail/alternative_function.hpp | 2 +- .../spirit/home/karma/detail/attributes.hpp | 34 +- .../spirit/home/karma/detail/extract_from.hpp | 45 +- .../home/karma/detail/indirect_iterator.hpp | 9 +- .../home/karma/detail/output_iterator.hpp | 4 +- .../home/karma/directive/center_alignment.hpp | 1 - .../home/karma/directive/left_alignment.hpp | 1 - .../spirit/home/karma/directive/maxwidth.hpp | 1 - .../home/karma/directive/right_alignment.hpp | 1 - .../spirit/home/karma/nonterminal/rule.hpp | 16 +- .../karma/numeric/detail/numeric_utils.hpp | 15 +- .../home/karma/numeric/detail/real_utils.hpp | 8 +- .../home/karma/stream/ostream_iterator.hpp | 6 +- include/boost/spirit/home/lex/lexer/lexer.hpp | 16 +- .../spirit/home/lex/lexer/lexertl/functor.hpp | 4 +- .../home/lex/lexer/lexertl/functor_data.hpp | 3 +- .../lex/lexer/lexertl/generate_static.hpp | 16 +- .../lex/lexer/lexertl/iterator_tokenizer.hpp | 9 +- .../spirit/home/lex/lexer/lexertl/lexer.hpp | 5 +- .../home/lex/lexer/lexertl/position_token.hpp | 1 - .../lex/lexer/lexertl/static_functor_data.hpp | 3 +- .../home/lex/lexer/lexertl/static_lexer.hpp | 4 +- .../spirit/home/lex/lexer/lexertl/token.hpp | 8 +- .../boost/spirit/home/lex/lexer/token_def.hpp | 4 +- .../spirit/home/lex/qi/plain_raw_token.hpp | 3 +- .../boost/spirit/home/lex/qi/plain_token.hpp | 5 +- .../spirit/home/lex/qi/plain_tokenid.hpp | 5 +- .../spirit/home/lex/qi/plain_tokenid_mask.hpp | 3 +- .../boost/spirit/home/qi/action/action.hpp | 15 +- .../spirit/home/qi/auxiliary/attr_cast.hpp | 2 +- .../boost/spirit/home/qi/binary/binary.hpp | 28 +- .../home/qi/detail/alternative_function.hpp | 7 +- .../spirit/home/qi/detail/attributes.hpp | 52 +- .../home/qi/detail/expectation_failure.hpp | 5 +- .../home/qi/detail/permute_function.hpp | 16 - .../boost/spirit/home/qi/nonterminal/rule.hpp | 40 +- .../home/qi/numeric/detail/numeric_utils.hpp | 103 +- .../home/qi/numeric/detail/real_impl.hpp | 44 +- .../spirit/home/qi/numeric/numeric_utils.hpp | 3 +- .../spirit/home/qi/numeric/real_policies.hpp | 19 +- .../spirit/home/qi/operator/permutation.hpp | 6 +- .../spirit/home/qi/operator/sequential_or.hpp | 9 +- include/boost/spirit/home/qi/parse.hpp | 46 +- include/boost/spirit/home/qi/skip_over.hpp | 2 +- .../home/qi/stream/detail/iterator_source.hpp | 62 +- .../boost/spirit/home/qi/stream/stream.hpp | 5 +- .../spirit/home/qi/string/detail/tst.hpp | 10 +- .../boost/spirit/home/qi/string/symbols.hpp | 5 +- .../boost/spirit/home/qi/string/tst_map.hpp | 1 + .../home/support/adapt_adt_attributes.hpp | 15 +- .../home/support/algorithm/any_if_ns.hpp | 5 +- .../home/support/algorithm/any_if_ns_so.hpp | 95 + .../home/support/algorithm/any_ns_so.hpp | 106 + .../boost/spirit/home/support/attributes.hpp | 140 +- .../spirit/home/support/attributes_fwd.hpp | 3 - .../boost/spirit/home/support/container.hpp | 4 +- .../home/support/detail/endian/endian.hpp | 67 +- .../spirit/home/support/detail/hold_any.hpp | 39 +- .../support/detail/lexer/generate_cpp.hpp | 1 - .../home/support/detail/lexer/input.hpp | 4 +- .../support/detail/lexer/runtime_error.hpp | 3 +- .../home/support/detail/lexer/serialise.hpp | 35 - .../support/detail/math/detail/fp_traits.hpp | 583 - .../home/support/detail/math/fpclassify.hpp | 235 - .../home/support/detail/math/signbit.hpp | 92 - .../boost/spirit/home/support/detail/sign.hpp | 39 +- .../iterators/detail/buf_id_check_policy.hpp | 8 +- .../buffering_input_iterator_policy.hpp | 12 +- .../detail/input_iterator_policy.hpp | 12 +- .../support/iterators/detail/multi_pass.hpp | 1 - .../support/iterators/line_pos_iterator.hpp | 34 +- .../spirit/home/support/numeric_traits.hpp | 11 +- include/boost/spirit/home/support/utf8.hpp | 38 + .../support/utree/detail/utree_detail2.hpp | 16 +- .../spirit/home/support/utree/operators.hpp | 7 + .../boost/spirit/home/support/utree/utree.hpp | 11 +- .../home/support/utree/utree_traits.hpp | 16 +- .../boost/spirit/home/x3/binary/binary.hpp | 5 +- .../boost/spirit/home/x3/char/char_set.hpp | 2 +- include/boost/spirit/home/x3/core/action.hpp | 12 +- include/boost/spirit/home/x3/core/call.hpp | 4 +- .../x3/core/detail/parse_into_container.hpp | 28 +- include/boost/spirit/home/x3/core/parse.hpp | 24 +- include/boost/spirit/home/x3/core/parser.hpp | 10 +- .../boost/spirit/home/x3/core/skip_over.hpp | 2 +- .../boost/spirit/home/x3/directive/confix.hpp | 2 +- .../boost/spirit/home/x3/directive/expect.hpp | 9 +- .../boost/spirit/home/x3/directive/lexeme.hpp | 4 +- .../spirit/home/x3/directive/no_case.hpp | 4 +- .../spirit/home/x3/directive/no_skip.hpp | 4 +- .../boost/spirit/home/x3/directive/omit.hpp | 4 +- .../boost/spirit/home/x3/directive/repeat.hpp | 7 +- .../boost/spirit/home/x3/directive/skip.hpp | 4 +- .../boost/spirit/home/x3/directive/with.hpp | 43 +- .../home/x3/nonterminal/detail/rule.hpp | 13 +- .../detail/transform_attribute.hpp | 32 +- .../boost/spirit/home/x3/nonterminal/rule.hpp | 58 +- .../home/x3/nonterminal/simple_trace.hpp | 6 - include/boost/spirit/home/x3/numeric/bool.hpp | 4 +- .../spirit/home/x3/numeric/bool_policies.hpp | 4 +- include/boost/spirit/home/x3/numeric/real.hpp | 4 +- .../spirit/home/x3/numeric/real_policies.hpp | 25 +- .../spirit/home/x3/operator/alternative.hpp | 4 +- .../spirit/home/x3/operator/and_predicate.hpp | 4 +- .../home/x3/operator/detail/alternative.hpp | 4 +- .../home/x3/operator/detail/sequence.hpp | 133 +- .../spirit/home/x3/operator/difference.hpp | 4 +- .../boost/spirit/home/x3/operator/kleene.hpp | 4 +- .../boost/spirit/home/x3/operator/list.hpp | 13 +- .../spirit/home/x3/operator/not_predicate.hpp | 4 +- .../spirit/home/x3/operator/optional.hpp | 6 +- .../boost/spirit/home/x3/operator/plus.hpp | 4 +- .../spirit/home/x3/operator/sequence.hpp | 4 +- .../spirit/home/x3/string/detail/tst.hpp | 9 +- .../boost/spirit/home/x3/string/symbols.hpp | 84 +- .../home/x3/support/ast/position_tagged.hpp | 12 +- .../spirit/home/x3/support/ast/variant.hpp | 68 +- .../numeric_utils/detail/extract_int.hpp | 78 +- .../x3/support/numeric_utils/extract_int.hpp | 3 +- .../x3/support/numeric_utils/extract_real.hpp | 33 +- .../home/x3/support/numeric_utils/sign.hpp | 20 +- .../spirit/home/x3/support/subcontext.hpp | 1 - .../x3/support/traits/attribute_category.hpp | 43 +- .../x3/support/traits/container_traits.hpp | 18 +- .../home/x3/support/traits/is_range.hpp | 27 + .../home/x3/support/traits/make_attribute.hpp | 82 - .../spirit/home/x3/support/traits/move_to.hpp | 20 +- .../home/x3/support/traits/numeric_traits.hpp | 11 +- .../x3/support/traits/transform_attribute.hpp | 15 - .../home/x3/support/traits/tuple_traits.hpp | 9 + .../home/x3/support/traits/value_traits.hpp | 4 +- .../traits/variant_find_substitute.hpp | 5 +- .../support/traits/variant_has_substitute.hpp | 5 +- .../boost/spirit/home/x3/support/unused.hpp | 4 +- .../x3/support/utility/error_reporting.hpp | 7 +- .../home/x3/support/utility/testing.hpp | 2 +- .../spirit/home/x3/support/utility/utf8.hpp | 38 + include/boost/spirit/home/x3/version.hpp | 2 +- .../include/support_any_if_ns_so.hpp} | 23 +- .../include/support_any_ns_so.hpp} | 20 +- include/boost/spirit/include/version.hpp | 2 +- .../home/karma/directive/confix.hpp | 4 +- .../home/karma/nonterminal/subrule.hpp | 196 +- .../repository/home/qi/directive/confix.hpp | 4 +- .../repository/home/qi/directive/distinct.hpp | 4 +- .../repository/home/qi/directive/kwd.hpp | 18 +- .../repository/home/qi/directive/seek.hpp | 4 +- .../home/qi/nonterminal/subrule.hpp | 192 +- .../home/qi/operator/detail/keywords.hpp | 46 +- .../repository/home/qi/operator/keywords.hpp | 1 + .../repository/home/qi/primitive/advance.hpp | 3 +- .../home/qi/primitive/flush_multi_pass.hpp | 4 +- .../repository/home/qi/primitive/iter_pos.hpp | 2 +- .../spirit/repository/home/support/seek.hpp | 4 +- .../spirit/repository/include/qi_seek.hpp | 4 +- include/boost/stacktrace.hpp | 2 +- .../stacktrace/detail/addr2line_impls.hpp | 7 +- .../boost/stacktrace/detail/collect_msvc.ipp | 12 +- .../boost/stacktrace/detail/collect_noop.ipp | 2 +- .../stacktrace/detail/collect_unwind.ipp | 40 +- .../boost/stacktrace/detail/frame_decl.hpp | 2 +- .../boost/stacktrace/detail/frame_msvc.ipp | 16 +- .../boost/stacktrace/detail/frame_noop.ipp | 2 +- .../boost/stacktrace/detail/frame_unwind.ipp | 8 +- .../stacktrace/detail/libbacktrace_impls.hpp | 100 +- .../detail/location_from_symbol.hpp | 22 +- include/boost/stacktrace/detail/pop_options.h | 2 +- .../boost/stacktrace/detail/push_options.h | 2 +- .../stacktrace/detail/safe_dump_noop.ipp | 2 +- .../stacktrace/detail/safe_dump_posix.ipp | 2 +- .../boost/stacktrace/detail/safe_dump_win.ipp | 38 +- .../boost/stacktrace/detail/to_dec_array.hpp | 46 + .../boost/stacktrace/detail/to_hex_array.hpp | 2 +- .../stacktrace/detail/try_dec_convert.hpp | 29 + .../stacktrace/detail/unwind_base_impls.hpp | 2 +- .../boost/stacktrace/detail/void_ptr_cast.hpp | 2 +- include/boost/stacktrace/frame.hpp | 2 +- include/boost/stacktrace/safe_dump_to.hpp | 19 +- include/boost/stacktrace/stacktrace.hpp | 50 +- include/boost/stacktrace/stacktrace_fwd.hpp | 2 +- .../statechart/asynchronous_state_machine.hpp | 2 +- include/boost/statechart/detail/memory.hpp | 37 +- .../boost/statechart/detail/rtti_policy.hpp | 2 +- include/boost/statechart/event.hpp | 2 +- include/boost/statechart/fifo_scheduler.hpp | 2 +- include/boost/statechart/fifo_worker.hpp | 2 +- .../boost/statechart/processor_container.hpp | 33 +- include/boost/statechart/state_machine.hpp | 2 +- include/boost/static_assert.hpp | 4 +- include/boost/system/config.hpp | 28 +- include/boost/system/detail/config.hpp | 57 + include/boost/system/detail/error_code.ipp | 488 - .../boost/system/detail/generic_category.hpp | 101 + .../detail/local_free_on_destruction.hpp | 42 - .../system/detail/std_interoperability.hpp | 141 + .../system/detail/system_category_posix.hpp | 132 + .../system/detail/system_category_win32.hpp | 340 + include/boost/system/error_code.hpp | 1386 ++- include/boost/system/system_error.hpp | 8 +- include/boost/test/data/config.hpp | 5 + include/boost/test/data/for_each_sample.hpp | 2 +- include/boost/test/data/generators.hpp | 19 - include/boost/test/data/index_sequence.hpp | 5 + include/boost/test/data/monomorphic.hpp | 1 + .../boost/test/data/monomorphic/delayed.hpp | 124 + include/boost/test/data/monomorphic/fwd.hpp | 48 +- .../data/monomorphic/generators/keywords.hpp | 6 +- include/boost/test/data/monomorphic/grid.hpp | 8 +- .../data/monomorphic/initializer_list.hpp | 78 +- include/boost/test/data/monomorphic/join.hpp | 22 +- .../boost/test/data/monomorphic/singleton.hpp | 4 +- include/boost/test/data/monomorphic/zip.hpp | 64 +- include/boost/test/data/test_case.hpp | 70 +- include/boost/test/detail/config.hpp | 23 +- include/boost/test/detail/enable_warnings.hpp | 2 +- include/boost/test/detail/fwd_decl.hpp | 1 + include/boost/test/detail/global_typedef.hpp | 40 +- include/boost/test/detail/log_level.hpp | 4 +- .../boost/test/detail/suppress_warnings.hpp | 4 +- include/boost/test/detail/throw_exception.hpp | 2 +- include/boost/test/detail/workaround.hpp | 56 - include/boost/test/execution_monitor.hpp | 17 +- include/boost/test/framework.hpp | 6 +- .../test/impl/compiler_log_formatter.ipp | 35 +- include/boost/test/impl/debug.ipp | 20 +- include/boost/test/impl/decorator.ipp | 70 +- include/boost/test/impl/execution_monitor.ipp | 152 +- include/boost/test/impl/framework.ipp | 199 +- .../boost/test/impl/junit_log_formatter.ipp | 63 +- .../test/impl/plain_report_formatter.ipp | 13 +- include/boost/test/impl/progress_monitor.ipp | 8 +- include/boost/test/impl/results_collector.ipp | 63 +- .../impl/test_framework_init_observer.ipp | 8 + include/boost/test/impl/test_tools.ipp | 20 +- include/boost/test/impl/test_tree.ipp | 136 +- include/boost/test/impl/unit_test_log.ipp | 34 +- include/boost/test/impl/unit_test_main.ipp | 26 +- include/boost/test/impl/unit_test_monitor.ipp | 7 +- .../boost/test/impl/unit_test_parameters.ipp | 124 +- include/boost/test/impl/xml_log_formatter.ipp | 20 +- .../boost/test/impl/xml_report_formatter.ipp | 10 +- include/boost/test/minimal.hpp | 3 + .../test/output/compiler_log_formatter.hpp | 2 +- .../boost/test/output/junit_log_formatter.hpp | 3 +- .../boost/test/output/xml_log_formatter.hpp | 2 +- include/boost/test/parameterized_test.hpp | 6 +- include/boost/test/progress_monitor.hpp | 5 +- include/boost/test/results_collector.hpp | 16 +- .../test/test_framework_init_observer.hpp | 6 +- include/boost/test/tools/assertion.hpp | 9 +- .../test/tools/collection_comparison_op.hpp | 1 + include/boost/test/tools/context.hpp | 37 +- .../boost/test/tools/detail/print_helper.hpp | 10 +- .../test/tools/floating_point_comparison.hpp | 4 +- include/boost/test/tools/fpc_op.hpp | 23 +- include/boost/test/tools/old/impl.hpp | 2 +- include/boost/test/tools/old/interface.hpp | 10 +- include/boost/test/tree/auto_registration.hpp | 7 +- include/boost/test/tree/decorator.hpp | 50 +- include/boost/test/tree/global_fixture.hpp | 16 + include/boost/test/tree/observer.hpp | 16 +- .../boost/test/tree/test_case_template.hpp | 86 +- include/boost/test/tree/test_unit.hpp | 26 +- include/boost/test/unit_test_log.hpp | 12 +- .../boost/test/unit_test_log_formatter.hpp | 9 +- include/boost/test/unit_test_monitor.hpp | 12 +- include/boost/test/unit_test_parameters.hpp | 49 +- include/boost/test/unit_test_suite.hpp | 31 +- .../utils/basic_cstring/basic_cstring.hpp | 13 +- .../utils/basic_cstring/basic_cstring_fwd.hpp | 5 +- .../test/utils/basic_cstring/compare.hpp | 2 +- include/boost/test/utils/foreach.hpp | 1 - .../boost/test/utils/is_forward_iterable.hpp | 44 +- include/boost/test/utils/lazy_ostream.hpp | 5 +- include/boost/test/utils/named_params.hpp | 4 +- include/boost/test/utils/rtti.hpp | 5 +- .../test/utils/runtime/argument_factory.hpp | 1 + .../test/utils/runtime/cla/argv_traverser.hpp | 1 + .../boost/test/utils/runtime/cla/parser.hpp | 171 +- include/boost/test/utils/runtime/errors.hpp | 18 +- include/boost/test/utils/runtime/modifier.hpp | 1 + .../boost/test/utils/runtime/parameter.hpp | 96 +- include/boost/test/utils/setcolor.hpp | 220 +- include/boost/test/utils/timer.hpp | 164 + .../boost/test/utils/trivial_singleton.hpp | 79 - include/boost/test/utils/xml_printer.hpp | 2 + .../detail/sync_deque_base.hpp | 50 +- .../detail/sync_queue_base.hpp | 50 +- .../concurrent_queues/queue_op_status.hpp | 4 +- .../thread/concurrent_queues/sync_deque.hpp | 12 +- .../concurrent_queues/sync_priority_queue.hpp | 24 +- .../thread/concurrent_queues/sync_queue.hpp | 20 +- .../concurrent_queues/sync_timed_queue.hpp | 180 +- include/boost/thread/csbl/queue.hpp | 3 +- include/boost/thread/detail/config.hpp | 68 +- include/boost/thread/detail/move.hpp | 19 +- .../boost/thread/detail/nullary_function.hpp | 11 +- include/boost/thread/detail/platform.hpp | 2 + include/boost/thread/detail/platform_time.hpp | 478 + include/boost/thread/detail/thread.hpp | 151 +- include/boost/thread/detail/thread_safety.hpp | 160 + include/boost/thread/detail/tss_hooks.hpp | 4 +- include/boost/thread/exceptions.hpp | 6 +- .../thread/executors/basic_thread_pool.hpp | 28 +- include/boost/thread/executors/executor.hpp | 2 + .../thread/executors/executor_adaptor.hpp | 2 + .../thread/executors/generic_executor_ref.hpp | 2 + .../thread/executors/inline_executor.hpp | 8 + .../boost/thread/executors/loop_executor.hpp | 4 + .../executors/scheduled_thread_pool.hpp | 4 + include/boost/thread/executors/scheduler.hpp | 2 + .../thread/executors/scheduling_adaptor.hpp | 3 + .../thread/executors/serial_executor.hpp | 4 + .../thread/executors/serial_executor_cont.hpp | 11 +- .../thread/executors/thread_executor.hpp | 6 + include/boost/thread/executors/work.hpp | 4 +- .../experimental/parallel/v2/task_region.hpp | 8 +- include/boost/thread/externally_locked.hpp | 1 + include/boost/thread/future.hpp | 161 +- include/boost/thread/futures/wait_for_any.hpp | 1 + include/boost/thread/interruption.hpp | 22 + include/boost/thread/lock_guard.hpp | 8 +- include/boost/thread/lockable_traits.hpp | 31 + include/boost/thread/poly_lockable.hpp | 9 +- include/boost/thread/poly_shared_lockable.hpp | 28 +- .../thread/poly_shared_lockable_adapter.hpp | 7 +- .../thread/pthread/condition_variable.hpp | 289 +- .../thread/pthread/condition_variable_fwd.hpp | 275 +- include/boost/thread/pthread/mutex.hpp | 165 +- .../boost/thread/pthread/pthread_helpers.hpp | 42 + .../pthread/pthread_mutex_scoped_lock.hpp | 77 +- .../boost/thread/pthread/recursive_mutex.hpp | 110 +- include/boost/thread/pthread/shared_mutex.hpp | 241 +- .../thread/pthread/shared_mutex_assert.hpp | 724 -- include/boost/thread/pthread/thread_data.hpp | 195 +- include/boost/thread/pthread/timespec.hpp | 138 - include/boost/thread/shared_mutex.hpp | 9 +- include/boost/thread/thread_only.hpp | 2 +- include/boost/thread/tss.hpp | 64 +- include/boost/thread/user_scheduler.hpp | 3 + include/boost/thread/v2/shared_mutex.hpp | 1168 +- include/boost/thread/v2/thread.hpp | 155 - .../thread/win32/basic_recursive_mutex.hpp | 44 +- .../boost/thread/win32/basic_timed_mutex.hpp | 150 +- .../boost/thread/win32/condition_variable.hpp | 341 +- .../boost/thread/win32/interlocked_read.hpp | 4 +- include/boost/thread/win32/once.hpp | 52 +- include/boost/thread/win32/shared_mutex.hpp | 507 +- include/boost/thread/win32/thread_data.hpp | 222 +- .../boost/thread/win32/thread_heap_alloc.hpp | 6 +- .../boost/thread/win32/thread_primitives.hpp | 180 +- include/boost/thread/xtime.hpp | 12 +- include/boost/throw_exception.hpp | 17 +- include/boost/timer.hpp | 3 + include/boost/timer/config.hpp | 18 +- include/boost/timer/timer.hpp | 1 - include/boost/token_functions.hpp | 1 + include/boost/type_erasure/any.hpp | 1114 +- include/boost/type_erasure/any_cast.hpp | 2 +- include/boost/type_erasure/builtin.hpp | 46 +- include/boost/type_erasure/call.hpp | 49 + include/boost/type_erasure/check_match.hpp | 46 +- include/boost/type_erasure/concept_of.hpp | 13 + include/boost/type_erasure/constructible.hpp | 6 +- include/boost/type_erasure/deduced.hpp | 4 + include/boost/type_erasure/derived.hpp | 7 + include/boost/type_erasure/detail/access.hpp | 105 +- .../type_erasure/detail/adapt_to_vtable.hpp | 19 +- .../boost/type_erasure/detail/any_base.hpp | 4 +- .../boost/type_erasure/detail/check_call.hpp | 72 +- .../boost/type_erasure/detail/check_map.hpp | 50 +- .../type_erasure/detail/dynamic_vtable.hpp | 22 +- .../type_erasure/detail/extract_concept.hpp | 32 +- .../type_erasure/detail/get_placeholders.hpp | 102 +- .../boost/type_erasure/detail/instantiate.hpp | 60 + .../boost/type_erasure/detail/member11.hpp | 214 + include/boost/type_erasure/detail/meta.hpp | 89 + .../boost/type_erasure/detail/normalize.hpp | 446 +- .../type_erasure/detail/normalize_deduced.hpp | 5 + include/boost/type_erasure/detail/null.hpp | 14 + .../detail/rebind_placeholders.hpp | 158 + include/boost/type_erasure/detail/storage.hpp | 7 +- include/boost/type_erasure/detail/vtable.hpp | 11 +- .../boost/type_erasure/dynamic_any_cast.hpp | 10 +- include/boost/type_erasure/free.hpp | 242 +- include/boost/type_erasure/is_placeholder.hpp | 17 +- include/boost/type_erasure/is_subconcept.hpp | 66 +- include/boost/type_erasure/member.hpp | 71 +- include/boost/type_erasure/operators.hpp | 3 - include/boost/type_erasure/param.hpp | 51 +- include/boost/type_erasure/placeholder.hpp | 5 +- include/boost/type_erasure/placeholder_of.hpp | 11 + include/boost/type_erasure/rebind_any.hpp | 10 + .../boost/type_erasure/register_binding.hpp | 14 +- include/boost/type_erasure/relaxed.hpp | 2 +- include/boost/type_erasure/require_match.hpp | 23 + include/boost/type_erasure/static_binding.hpp | 2 +- include/boost/type_index.hpp | 2 +- include/boost/type_index/ctti_type_index.hpp | 4 +- .../detail/compile_time_type_info.hpp | 72 +- .../type_index/detail/ctti_register_class.hpp | 2 +- .../type_index/detail/stl_register_class.hpp | 2 +- include/boost/type_index/stl_type_index.hpp | 42 +- .../boost/type_index/type_index_facade.hpp | 12 +- include/boost/type_traits.hpp | 5 + include/boost/type_traits/common_type.hpp | 7 + include/boost/type_traits/conditional.hpp | 2 + include/boost/type_traits/copy_cv_ref.hpp | 31 + include/boost/type_traits/copy_reference.hpp | 35 + .../detail/common_arithmetic_type.hpp | 4 +- include/boost/type_traits/detail/config.hpp | 29 +- include/boost/type_traits/detail/detector.hpp | 37 + .../detail/has_binary_operator.hpp | 85 +- .../detail/has_postfix_operator.hpp | 57 +- .../detail/has_prefix_operator.hpp | 77 +- .../type_traits/detail/is_function_cxx_03.hpp | 108 + .../type_traits/detail/is_function_cxx_11.hpp | 573 + .../detail/is_function_msvc10_fix.hpp | 30 + .../detail/is_function_ptr_helper.hpp | 472 +- .../detail/is_function_ptr_tester.hpp | 670 +- .../type_traits/detail/is_likely_lambda.hpp | 95 + .../detail/is_mem_fun_pointer_impl.hpp | 1749 ++- .../detail/is_mem_fun_pointer_tester.hpp | 2891 ++--- .../is_member_function_pointer_cxx_03.hpp | 117 + .../is_member_function_pointer_cxx_11.hpp | 672 + .../detail/is_rvalue_reference_msvc10_fix.hpp | 43 + include/boost/type_traits/detected.hpp | 24 + include/boost/type_traits/detected_or.hpp | 25 + include/boost/type_traits/enable_if.hpp | 37 + .../type_traits/floating_point_promotion.hpp | 2 + include/boost/type_traits/has_dereference.hpp | 344 + include/boost/type_traits/has_equal_to.hpp | 3 + include/boost/type_traits/has_greater.hpp | 3 + .../boost/type_traits/has_greater_equal.hpp | 3 + include/boost/type_traits/has_less.hpp | 3 + include/boost/type_traits/has_less_equal.hpp | 3 + include/boost/type_traits/has_minus.hpp | 98 + .../boost/type_traits/has_minus_assign.hpp | 102 +- .../boost/type_traits/has_not_equal_to.hpp | 3 + .../type_traits/has_nothrow_destructor.hpp | 13 +- include/boost/type_traits/has_plus_assign.hpp | 95 + .../boost/type_traits/has_post_decrement.hpp | 21 + .../boost/type_traits/has_post_increment.hpp | 21 + .../boost/type_traits/has_pre_decrement.hpp | 21 + .../boost/type_traits/has_pre_increment.hpp | 22 + .../type_traits/has_trivial_move_assign.hpp | 2 +- .../has_trivial_move_constructor.hpp | 3 +- .../boost/type_traits/integral_constant.hpp | 23 +- include/boost/type_traits/intrinsics.hpp | 25 +- include/boost/type_traits/is_assignable.hpp | 12 +- .../boost/type_traits/is_bounded_array.hpp | 42 + include/boost/type_traits/is_complete.hpp | 92 + include/boost/type_traits/is_complex.hpp | 1 + .../boost/type_traits/is_constructible.hpp | 14 +- include/boost/type_traits/is_convertible.hpp | 22 +- .../boost/type_traits/is_copy_assignable.hpp | 7 +- .../type_traits/is_copy_constructible.hpp | 10 +- .../type_traits/is_default_constructible.hpp | 18 +- include/boost/type_traits/is_destructible.hpp | 12 +- include/boost/type_traits/is_detected.hpp | 29 + .../type_traits/is_detected_convertible.hpp | 29 + .../boost/type_traits/is_detected_exact.hpp | 29 + include/boost/type_traits/is_final.hpp | 2 +- include/boost/type_traits/is_function.hpp | 83 +- .../type_traits/is_list_constructible.hpp | 48 + .../is_member_function_pointer.hpp | 100 +- include/boost/type_traits/is_noncopyable.hpp | 39 + .../is_nothrow_move_assignable.hpp | 21 +- .../is_nothrow_move_constructible.hpp | 22 +- .../type_traits/is_nothrow_swappable.hpp | 67 + .../boost/type_traits/is_rvalue_reference.hpp | 4 + .../boost/type_traits/is_unbounded_array.hpp | 41 + .../boost/type_traits/is_virtual_base_of.hpp | 167 +- include/boost/type_traits/make_void.hpp | 2 +- include/boost/type_traits/nonesuch.hpp | 35 + include/boost/type_traits/remove_pointer.hpp | 1 + include/boost/type_traits/type_identity.hpp | 2 + .../boost/type_traits/type_with_alignment.hpp | 5 +- include/boost/typeof/constant.hpp | 26 + include/boost/typeof/dmc/typeof_impl.hpp | 8 +- include/boost/typeof/encode_decode.hpp | 3 - include/boost/typeof/encode_decode_params.hpp | 2 +- include/boost/typeof/int_encoding.hpp | 9 +- include/boost/typeof/modifiers.hpp | 10 +- include/boost/typeof/msvc/typeof_impl.hpp | 18 +- include/boost/typeof/native.hpp | 6 +- .../boost/typeof/pointers_data_members.hpp | 4 +- .../typeof/register_functions_iterate.hpp | 12 +- .../boost/typeof/register_mem_functions.hpp | 2 +- include/boost/typeof/std/functional.hpp | 6 + include/boost/typeof/std/memory.hpp | 2 + include/boost/typeof/template_encoding.hpp | 8 +- .../boost/typeof/template_template_param.hpp | 4 +- include/boost/typeof/type_encoding.hpp | 4 +- include/boost/typeof/typeof.hpp | 3 +- include/boost/typeof/typeof_impl.hpp | 32 +- include/boost/typeof/vector.hpp | 10 +- include/boost/typeof/vector100.hpp | 402 +- include/boost/typeof/vector150.hpp | 602 +- include/boost/typeof/vector200.hpp | 802 +- include/boost/typeof/vector50.hpp | 202 +- include/boost/units/absolute.hpp | 30 +- include/boost/units/base_dimension.hpp | 10 +- include/boost/units/base_unit.hpp | 10 +- .../units/base_units/angle/arcminute.hpp | 4 +- .../units/base_units/angle/arcsecond.hpp | 4 +- .../units/base_units/angle/revolution.hpp | 4 +- .../base_units/astronomical/light_day.hpp | 4 +- .../base_units/astronomical/light_hour.hpp | 4 +- .../base_units/astronomical/light_minute.hpp | 4 +- .../base_units/astronomical/light_year.hpp | 4 +- .../units/base_units/imperial/drachm.hpp | 4 +- .../units/base_units/imperial/fluid_ounce.hpp | 4 +- .../boost/units/base_units/imperial/foot.hpp | 4 +- .../units/base_units/imperial/furlong.hpp | 4 +- .../units/base_units/imperial/gallon.hpp | 4 +- .../boost/units/base_units/imperial/gill.hpp | 4 +- .../boost/units/base_units/imperial/grain.hpp | 4 +- .../base_units/imperial/hundredweight.hpp | 4 +- .../boost/units/base_units/imperial/inch.hpp | 4 +- .../units/base_units/imperial/league.hpp | 4 +- .../boost/units/base_units/imperial/mile.hpp | 4 +- .../boost/units/base_units/imperial/ounce.hpp | 4 +- .../boost/units/base_units/imperial/quart.hpp | 4 +- .../units/base_units/imperial/quarter.hpp | 4 +- .../boost/units/base_units/imperial/stone.hpp | 4 +- .../boost/units/base_units/imperial/thou.hpp | 4 +- .../boost/units/base_units/imperial/ton.hpp | 4 +- .../units/base_units/information/byte.hpp | 4 +- .../units/base_units/information/shannon.hpp | 4 +- .../units/base_units/metric/angstrom.hpp | 4 +- include/boost/units/base_units/metric/day.hpp | 4 +- .../boost/units/base_units/metric/fermi.hpp | 4 +- .../boost/units/base_units/metric/hour.hpp | 4 +- .../boost/units/base_units/metric/micron.hpp | 4 +- .../boost/units/base_units/metric/minute.hpp | 4 +- .../units/base_units/metric/nautical_mile.hpp | 4 +- include/boost/units/base_units/metric/ton.hpp | 4 +- .../boost/units/base_units/metric/year.hpp | 4 +- include/boost/units/base_units/us/cup.hpp | 4 +- include/boost/units/base_units/us/dram.hpp | 4 +- .../boost/units/base_units/us/fluid_dram.hpp | 4 +- .../boost/units/base_units/us/fluid_ounce.hpp | 4 +- include/boost/units/base_units/us/foot.hpp | 4 +- include/boost/units/base_units/us/gallon.hpp | 4 +- include/boost/units/base_units/us/gill.hpp | 4 +- include/boost/units/base_units/us/grain.hpp | 4 +- .../units/base_units/us/hundredweight.hpp | 4 +- include/boost/units/base_units/us/inch.hpp | 4 +- include/boost/units/base_units/us/mil.hpp | 4 +- include/boost/units/base_units/us/mile.hpp | 4 +- include/boost/units/base_units/us/minim.hpp | 4 +- include/boost/units/base_units/us/ounce.hpp | 4 +- include/boost/units/base_units/us/quart.hpp | 4 +- .../boost/units/base_units/us/tablespoon.hpp | 4 +- .../boost/units/base_units/us/teaspoon.hpp | 4 +- include/boost/units/base_units/us/ton.hpp | 4 +- include/boost/units/cmath.hpp | 53 + include/boost/units/config.hpp | 2 +- include/boost/units/conversion.hpp | 19 +- include/boost/units/detail/absolute_impl.hpp | 8 +- .../boost/units/detail/conversion_impl.hpp | 50 +- include/boost/units/detail/linear_algebra.hpp | 10 +- include/boost/units/detail/one.hpp | 31 +- include/boost/units/detail/ordinal.hpp | 4 +- .../units/detail/prevent_redefinition.hpp | 8 +- .../units/detail/static_rational_power.hpp | 39 +- include/boost/units/detail/unscale.hpp | 23 +- include/boost/units/io.hpp | 14 +- include/boost/units/limits.hpp | 68 +- include/boost/units/operators.hpp | 4 +- include/boost/units/pow.hpp | 11 +- include/boost/units/quantity.hpp | 128 +- include/boost/units/scale.hpp | 16 +- include/boost/units/static_constant.hpp | 7 +- include/boost/units/static_rational.hpp | 22 +- .../boost/units/systems/detail/constants.hpp | 49 +- include/boost/units/unit.hpp | 18 +- include/boost/unordered/detail/fwd.hpp | 13 +- .../boost/unordered/detail/implementation.hpp | 742 +- include/boost/unordered/unordered_map.hpp | 302 +- include/boost/unordered/unordered_set.hpp | 249 +- include/boost/utility.hpp | 9 +- include/boost/utility/detail/minstd_rand.hpp | 58 + .../utility/detail/result_of_iterate.hpp | 24 +- include/boost/utility/result_of.hpp | 59 +- include/boost/utility/string_ref.hpp | 2 + include/boost/utility/string_view.hpp | 32 +- include/boost/uuid/basic_name_generator.hpp | 4 +- include/boost/uuid/detail/random_provider.hpp | 91 + .../detail/random_provider_arc4random.ipp | 33 + .../uuid/detail/random_provider_bcrypt.ipp | 103 + .../random_provider_detect_platform.hpp | 74 + .../detail/random_provider_getentropy.ipp | 40 + .../uuid/detail/random_provider_getrandom.ipp | 77 + .../random_provider_include_platform.hpp | 29 + .../uuid/detail/random_provider_posix.ipp | 120 + .../uuid/detail/random_provider_wincrypt.ipp | 109 + include/boost/uuid/detail/seed_rng.hpp | 320 - include/boost/uuid/detail/sha1.hpp | 2 - include/boost/uuid/entropy_error.hpp | 46 + include/boost/uuid/name_generator.hpp | 2 +- include/boost/uuid/name_generator_md5.hpp | 2 +- include/boost/uuid/name_generator_sha1.hpp | 2 +- include/boost/uuid/random_generator.hpp | 231 +- include/boost/uuid/seed_rng.hpp | 16 - include/boost/uuid/sha1.hpp | 16 - include/boost/uuid/string_generator.hpp | 3 +- include/boost/uuid/uuid_hash.hpp | 40 + include/boost/variant/bad_visit.hpp | 2 +- .../variant/detail/apply_visitor_binary.hpp | 59 +- .../variant/detail/apply_visitor_delayed.hpp | 11 +- .../variant/detail/apply_visitor_unary.hpp | 101 +- include/boost/variant/detail/config.hpp | 2 +- .../boost/variant/detail/element_index.hpp | 2 +- .../boost/variant/detail/forced_return.hpp | 8 +- .../variant/detail/generic_result_type.hpp | 88 - .../boost/variant/detail/has_result_type.hpp | 2 +- include/boost/variant/detail/hash_variant.hpp | 3 +- .../variant/detail/make_variant_list.hpp | 2 +- include/boost/variant/detail/move.hpp | 2 +- .../detail/multivisitors_cpp11_based.hpp | 10 +- .../multivisitors_preprocessor_based.hpp | 4 +- include/boost/variant/detail/substitute.hpp | 28 +- .../boost/variant/detail/visitation_impl.hpp | 19 +- include/boost/variant/get.hpp | 2 +- include/boost/variant/multivisitors.hpp | 2 +- include/boost/variant/polymorphic_get.hpp | 2 +- include/boost/variant/recursive_variant.hpp | 2 +- .../boost/variant/recursive_wrapper_fwd.hpp | 2 +- include/boost/variant/static_visitor.hpp | 2 - include/boost/variant/variant.hpp | 193 +- include/boost/variant/variant_fwd.hpp | 2 +- include/boost/variant/visitor_ptr.hpp | 29 - include/boost/version.hpp | 4 +- include/boost/wave/cpp_iteration_context.hpp | 4 +- include/boost/wave/cpplexer/re2clex/aq.hpp | 4 +- include/boost/wave/cpplexer/re2clex/cpp.re | 576 + .../boost/wave/cpplexer/re2clex/cpp_re.hpp | 355 +- .../boost/wave/cpplexer/re2clex/cpp_re.inc | 7749 ++++++++++++ .../wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 16 +- .../boost/wave/cpplexer/re2clex/scanner.hpp | 30 +- .../boost/wave/cpplexer/re2clex/strict_cpp.re | 575 + .../wave/cpplexer/re2clex/strict_cpp_re.inc | 7718 ++++++++++++ include/boost/wave/util/cpp_iterator.hpp | 21 +- include/boost/wave/util/cpp_macromap.hpp | 8 +- .../wave/util/filesystem_compatibility.hpp | 2 +- include/boost/winapi/access_rights.hpp | 68 +- include/boost/winapi/apc.hpp | 4 +- include/boost/winapi/basic_types.hpp | 117 +- include/boost/winapi/bcrypt.hpp | 10 +- .../winapi/character_code_conversion.hpp | 78 +- include/boost/winapi/condition_variable.hpp | 16 +- include/boost/winapi/config.hpp | 32 +- include/boost/winapi/critical_section.hpp | 40 +- include/boost/winapi/crypt.hpp | 99 +- include/boost/winapi/dbghelp.hpp | 74 +- include/boost/winapi/debugapi.hpp | 6 +- include/boost/winapi/directory_management.hpp | 12 +- include/boost/winapi/dll.hpp | 54 +- include/boost/winapi/environment.hpp | 41 +- include/boost/winapi/error_codes.hpp | 440 +- include/boost/winapi/error_handling.hpp | 62 +- include/boost/winapi/event.hpp | 42 +- include/boost/winapi/file_management.hpp | 212 +- include/boost/winapi/file_mapping.hpp | 92 +- include/boost/winapi/get_current_process.hpp | 2 +- .../boost/winapi/get_current_process_id.hpp | 2 +- include/boost/winapi/get_current_thread.hpp | 2 +- .../boost/winapi/get_current_thread_id.hpp | 2 +- include/boost/winapi/get_last_error.hpp | 2 +- include/boost/winapi/get_process_times.hpp | 2 +- include/boost/winapi/get_system_directory.hpp | 4 +- include/boost/winapi/get_thread_times.hpp | 2 +- include/boost/winapi/handle_info.hpp | 12 +- include/boost/winapi/handles.hpp | 23 +- include/boost/winapi/heap_memory.hpp | 14 +- include/boost/winapi/init_once.hpp | 40 +- include/boost/winapi/jobs.hpp | 38 +- include/boost/winapi/limits.hpp | 18 +- include/boost/winapi/local_memory.hpp | 6 +- include/boost/winapi/mutex.hpp | 32 +- include/boost/winapi/overlapped.hpp | 2 +- .../boost/winapi/page_protection_flags.hpp | 36 +- include/boost/winapi/pipes.hpp | 82 +- include/boost/winapi/priority_class.hpp | 36 +- include/boost/winapi/process.hpp | 231 +- include/boost/winapi/security.hpp | 4 +- include/boost/winapi/semaphore.hpp | 28 +- include/boost/winapi/shell.hpp | 72 +- include/boost/winapi/show_window.hpp | 100 +- include/boost/winapi/srw_lock.hpp | 14 +- include/boost/winapi/stack_backtrace.hpp | 11 +- include/boost/winapi/system.hpp | 4 +- include/boost/winapi/thread.hpp | 6 +- include/boost/winapi/thread_pool.hpp | 72 +- include/boost/winapi/time.hpp | 16 +- include/boost/winapi/timers.hpp | 4 +- include/boost/winapi/tls.hpp | 14 +- include/boost/winapi/wait.hpp | 42 +- include/boost/winapi/waitable_timer.hpp | 32 +- include/boost/yap/algorithm.hpp | 727 ++ include/boost/yap/algorithm_fwd.hpp | 214 + include/boost/yap/config.hpp | 21 + include/boost/yap/detail/algorithm.hpp | 598 + include/boost/yap/detail/transform.hpp | 590 + include/boost/yap/expression.hpp | 338 + include/boost/yap/print.hpp | 320 + include/boost/yap/user_macros.hpp | 829 ++ include/boost/yap/yap.hpp | 13 + {libs => lib}/linux/libboost_system.a | Bin {libs => lib}/linux/libcrypto.a | Bin {libs => lib}/linux/libssl.a | Bin {libs => lib}/macosx/libboost_system.a | Bin {libs => lib}/macosx/libcrypto.a | Bin {libs => lib}/macosx/libssl.a | Bin {libs => lib}/windows/boost_date_time.lib | Bin {libs => lib}/windows/boost_system.lib | Bin {libs => lib}/windows/libcrypto.lib | Bin {libs => lib}/windows/libssl.lib | Bin lib64/linux/libboost_system.a | Bin 0 -> 1428 bytes lib64/linux/libcrypto.a | Bin 0 -> 5411858 bytes lib64/linux/libssl.a | Bin 0 -> 1001374 bytes src/GLua.cpp | 2 + src/GWSocket.cpp | 2 +- src/GWSocket.h | 2 +- src/SSLWebSocket.cpp | 6 +- src/WebSocket.cpp | 4 +- 3904 files changed, 334885 insertions(+), 96820 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 BuildProjects.bat delete mode 100644 BuildProjects.sh create mode 100644 include/boost/algorithm/apply_permutation.hpp create mode 100644 include/boost/algorithm/find_backward.hpp create mode 100644 include/boost/algorithm/find_not.hpp create mode 100644 include/boost/asio/awaitable.hpp create mode 100644 include/boost/asio/co_spawn.hpp create mode 100644 include/boost/asio/compose.hpp delete mode 100644 include/boost/asio/datagram_socket_service.hpp delete mode 100644 include/boost/asio/deadline_timer_service.hpp create mode 100644 include/boost/asio/detached.hpp create mode 100644 include/boost/asio/detail/executor_function.hpp create mode 100644 include/boost/asio/detail/future.hpp create mode 100644 include/boost/asio/detail/io_object_executor.hpp create mode 100644 include/boost/asio/detail/io_object_impl.hpp create mode 100644 include/boost/asio/detail/non_const_lvalue.hpp delete mode 100644 include/boost/asio/handler_type.hpp create mode 100644 include/boost/asio/impl/awaitable.hpp create mode 100644 include/boost/asio/impl/co_spawn.hpp create mode 100644 include/boost/asio/impl/compose.hpp create mode 100644 include/boost/asio/impl/detached.hpp create mode 100644 include/boost/asio/impl/redirect_error.hpp create mode 100644 include/boost/asio/impl/use_awaitable.hpp delete mode 100644 include/boost/asio/ip/resolver_service.hpp delete mode 100644 include/boost/asio/posix/stream_descriptor_service.hpp delete mode 100644 include/boost/asio/raw_socket_service.hpp create mode 100644 include/boost/asio/redirect_error.hpp delete mode 100644 include/boost/asio/seq_packet_socket_service.hpp delete mode 100644 include/boost/asio/serial_port_service.hpp delete mode 100644 include/boost/asio/signal_set_service.hpp delete mode 100644 include/boost/asio/socket_acceptor_service.hpp delete mode 100644 include/boost/asio/stream_socket_service.hpp create mode 100644 include/boost/asio/this_coro.hpp create mode 100644 include/boost/asio/use_awaitable.hpp delete mode 100644 include/boost/asio/waitable_timer_service.hpp delete mode 100644 include/boost/asio/windows/basic_handle.hpp create mode 100644 include/boost/asio/windows/basic_overlapped_handle.hpp delete mode 100644 include/boost/asio/windows/object_handle_service.hpp delete mode 100644 include/boost/asio/windows/random_access_handle_service.hpp delete mode 100644 include/boost/asio/windows/stream_handle_service.hpp create mode 100644 include/boost/atomic/detail/addressof.hpp create mode 100644 include/boost/atomic/detail/bitwise_fp_cast.hpp create mode 100644 include/boost/atomic/detail/extra_fp_operations.hpp create mode 100644 include/boost/atomic/detail/extra_fp_operations_fwd.hpp create mode 100644 include/boost/atomic/detail/extra_fp_ops_emulated.hpp create mode 100644 include/boost/atomic/detail/extra_fp_ops_generic.hpp create mode 100644 include/boost/atomic/detail/extra_ops_emulated.hpp create mode 100644 include/boost/atomic/detail/float_sizes.hpp create mode 100644 include/boost/atomic/detail/fp_operations.hpp create mode 100644 include/boost/atomic/detail/fp_operations_fwd.hpp create mode 100644 include/boost/atomic/detail/fp_ops_emulated.hpp create mode 100644 include/boost/atomic/detail/fp_ops_generic.hpp create mode 100644 include/boost/atomic/detail/integral_extend.hpp create mode 100644 include/boost/atomic/detail/string_ops.hpp create mode 100644 include/boost/atomic/detail/type_traits/integral_constant.hpp create mode 100644 include/boost/atomic/detail/type_traits/is_floating_point.hpp create mode 100644 include/boost/atomic/detail/type_traits/is_iec559.hpp create mode 100644 include/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp create mode 100644 include/boost/atomic/detail/type_traits/make_unsigned.hpp create mode 100644 include/boost/beast/_experimental/http/icy_stream.hpp create mode 100644 include/boost/beast/_experimental/http/impl/icy_stream.hpp create mode 100644 include/boost/beast/_experimental/test/error.hpp create mode 100644 include/boost/beast/_experimental/test/fail_count.hpp create mode 100644 include/boost/beast/_experimental/test/handler.hpp create mode 100644 include/boost/beast/_experimental/test/impl/error.hpp create mode 100644 include/boost/beast/_experimental/test/impl/error.ipp create mode 100644 include/boost/beast/_experimental/test/impl/fail_count.ipp create mode 100644 include/boost/beast/_experimental/test/impl/stream.hpp create mode 100644 include/boost/beast/_experimental/test/impl/stream.ipp create mode 100644 include/boost/beast/_experimental/test/stream.hpp create mode 100644 include/boost/beast/_experimental/test/tcp.hpp create mode 100644 include/boost/beast/_experimental/unit_test/amount.hpp create mode 100644 include/boost/beast/_experimental/unit_test/detail/const_container.hpp create mode 100644 include/boost/beast/_experimental/unit_test/dstream.hpp create mode 100644 include/boost/beast/_experimental/unit_test/global_suites.hpp create mode 100644 include/boost/beast/_experimental/unit_test/main.ipp create mode 100644 include/boost/beast/_experimental/unit_test/match.hpp create mode 100644 include/boost/beast/_experimental/unit_test/recorder.hpp create mode 100644 include/boost/beast/_experimental/unit_test/reporter.hpp create mode 100644 include/boost/beast/_experimental/unit_test/results.hpp create mode 100644 include/boost/beast/_experimental/unit_test/runner.hpp create mode 100644 include/boost/beast/_experimental/unit_test/suite.hpp create mode 100644 include/boost/beast/_experimental/unit_test/suite_info.hpp create mode 100644 include/boost/beast/_experimental/unit_test/suite_list.hpp create mode 100644 include/boost/beast/_experimental/unit_test/thread.hpp create mode 100644 include/boost/beast/core/async_base.hpp create mode 100644 include/boost/beast/core/basic_stream.hpp create mode 100644 include/boost/beast/core/buffer_traits.hpp create mode 100644 include/boost/beast/core/buffers_adaptor.hpp create mode 100644 include/boost/beast/core/buffers_range.hpp create mode 100644 include/boost/beast/core/detail/async_base.hpp create mode 100644 include/boost/beast/core/detail/base64.ipp create mode 100644 include/boost/beast/core/detail/bind_continuation.hpp create mode 100644 include/boost/beast/core/detail/bind_default_executor.hpp create mode 100644 include/boost/beast/core/detail/buffer.hpp create mode 100644 include/boost/beast/core/detail/buffer_traits.hpp create mode 100644 include/boost/beast/core/detail/buffers_pair.hpp create mode 100644 include/boost/beast/core/detail/buffers_range_adaptor.hpp create mode 100644 include/boost/beast/core/detail/chacha.hpp delete mode 100644 include/boost/beast/core/detail/empty_base_optimization.hpp create mode 100644 include/boost/beast/core/detail/flat_stream.hpp create mode 100644 include/boost/beast/core/detail/get_io_context.hpp create mode 100644 include/boost/beast/core/detail/impl/read.hpp delete mode 100644 include/boost/beast/core/detail/in_place_init.hpp delete mode 100644 include/boost/beast/core/detail/integer_sequence.hpp create mode 100644 include/boost/beast/core/detail/is_invocable.hpp create mode 100644 include/boost/beast/core/detail/pcg.hpp create mode 100644 include/boost/beast/core/detail/read.hpp create mode 100644 include/boost/beast/core/detail/remap_post_to_defer.hpp create mode 100644 include/boost/beast/core/detail/service_base.hpp create mode 100644 include/boost/beast/core/detail/sha1.ipp create mode 100644 include/boost/beast/core/detail/static_const.hpp create mode 100644 include/boost/beast/core/detail/stream_base.hpp create mode 100644 include/boost/beast/core/detail/stream_traits.hpp create mode 100644 include/boost/beast/core/detail/tuple.hpp create mode 100644 include/boost/beast/core/detect_ssl.hpp create mode 100644 include/boost/beast/core/flat_stream.hpp create mode 100644 include/boost/beast/core/impl/async_base.hpp create mode 100644 include/boost/beast/core/impl/basic_stream.hpp create mode 100644 include/boost/beast/core/impl/buffered_read_stream.hpp delete mode 100644 include/boost/beast/core/impl/buffered_read_stream.ipp delete mode 100644 include/boost/beast/core/impl/buffers_adapter.ipp create mode 100644 include/boost/beast/core/impl/buffers_adaptor.hpp create mode 100644 include/boost/beast/core/impl/buffers_cat.hpp delete mode 100644 include/boost/beast/core/impl/buffers_cat.ipp create mode 100644 include/boost/beast/core/impl/buffers_prefix.hpp delete mode 100644 include/boost/beast/core/impl/buffers_prefix.ipp rename include/boost/beast/core/impl/{buffers_suffix.ipp => buffers_suffix.hpp} (60%) create mode 100644 include/boost/beast/core/impl/error.hpp create mode 100644 include/boost/beast/core/impl/error.ipp rename include/boost/beast/core/impl/{flat_buffer.ipp => flat_buffer.hpp} (60%) create mode 100644 include/boost/beast/core/impl/flat_static_buffer.hpp create mode 100644 include/boost/beast/core/impl/flat_stream.hpp create mode 100644 include/boost/beast/core/impl/handler_ptr.hpp delete mode 100644 include/boost/beast/core/impl/handler_ptr.ipp rename include/boost/beast/core/impl/{multi_buffer.ipp => multi_buffer.hpp} (57%) rename include/boost/beast/core/impl/{read_size.ipp => read_size.hpp} (75%) create mode 100644 include/boost/beast/core/impl/saved_handler.hpp create mode 100644 include/boost/beast/core/impl/saved_handler.ipp create mode 100644 include/boost/beast/core/impl/static_buffer.hpp rename include/boost/beast/core/impl/{static_string.ipp => static_string.hpp} (94%) rename include/boost/beast/core/impl/{string_param.ipp => string_param.hpp} (93%) create mode 100644 include/boost/beast/core/make_printable.hpp create mode 100644 include/boost/beast/core/rate_policy.hpp create mode 100644 include/boost/beast/core/role.hpp create mode 100644 include/boost/beast/core/saved_handler.hpp create mode 100644 include/boost/beast/core/stream_traits.hpp create mode 100644 include/boost/beast/core/tcp_stream.hpp create mode 100644 include/boost/beast/http/detail/basic_parser.ipp create mode 100644 include/boost/beast/http/detail/rfc7230.ipp create mode 100644 include/boost/beast/http/impl/basic_parser.hpp rename include/boost/beast/http/impl/{chunk_encode.ipp => chunk_encode.hpp} (96%) create mode 100644 include/boost/beast/http/impl/error.hpp rename include/boost/beast/http/impl/{fields.ipp => fields.hpp} (87%) rename include/boost/beast/http/impl/{file_body_win32.ipp => file_body_win32.hpp} (60%) rename include/boost/beast/http/impl/{message.ipp => message.hpp} (92%) rename include/boost/beast/http/impl/{parser.ipp => parser.hpp} (71%) create mode 100644 include/boost/beast/http/impl/read.hpp delete mode 100644 include/boost/beast/http/impl/read.ipp create mode 100644 include/boost/beast/http/impl/rfc7230.hpp rename include/boost/beast/http/impl/{serializer.ipp => serializer.hpp} (73%) create mode 100644 include/boost/beast/http/impl/write.hpp delete mode 100644 include/boost/beast/http/impl/write.ipp create mode 100644 include/boost/beast/src.hpp create mode 100644 include/boost/beast/ssl.hpp create mode 100644 include/boost/beast/ssl/ssl_stream.hpp create mode 100644 include/boost/beast/websocket/detail/decorator.hpp create mode 100644 include/boost/beast/websocket/detail/hybi13.ipp create mode 100644 include/boost/beast/websocket/detail/impl_base.hpp delete mode 100644 include/boost/beast/websocket/detail/pausation.hpp create mode 100644 include/boost/beast/websocket/detail/pmd_extension.ipp create mode 100644 include/boost/beast/websocket/detail/prng.hpp create mode 100644 include/boost/beast/websocket/detail/prng.ipp create mode 100644 include/boost/beast/websocket/detail/service.hpp create mode 100644 include/boost/beast/websocket/detail/service.ipp create mode 100644 include/boost/beast/websocket/detail/soft_mutex.hpp create mode 100644 include/boost/beast/websocket/detail/utf8_checker.ipp create mode 100644 include/boost/beast/websocket/impl/accept.hpp delete mode 100644 include/boost/beast/websocket/impl/accept.ipp create mode 100644 include/boost/beast/websocket/impl/close.hpp delete mode 100644 include/boost/beast/websocket/impl/close.ipp create mode 100644 include/boost/beast/websocket/impl/error.hpp create mode 100644 include/boost/beast/websocket/impl/handshake.hpp delete mode 100644 include/boost/beast/websocket/impl/handshake.ipp create mode 100644 include/boost/beast/websocket/impl/ping.hpp delete mode 100644 include/boost/beast/websocket/impl/ping.ipp create mode 100644 include/boost/beast/websocket/impl/read.hpp delete mode 100644 include/boost/beast/websocket/impl/read.ipp rename include/boost/beast/websocket/impl/{rfc6455.ipp => rfc6455.hpp} (69%) rename include/boost/beast/websocket/impl/{ssl.ipp => ssl.hpp} (64%) create mode 100644 include/boost/beast/websocket/impl/stream.hpp delete mode 100644 include/boost/beast/websocket/impl/stream.ipp create mode 100644 include/boost/beast/websocket/impl/stream_impl.hpp create mode 100644 include/boost/beast/websocket/impl/teardown.hpp delete mode 100644 include/boost/beast/websocket/impl/teardown.ipp create mode 100644 include/boost/beast/websocket/impl/write.hpp delete mode 100644 include/boost/beast/websocket/impl/write.ipp create mode 100644 include/boost/beast/websocket/stream_base.hpp create mode 100644 include/boost/beast/websocket/stream_fwd.hpp create mode 100644 include/boost/beast/zlib/detail/deflate_stream.ipp create mode 100644 include/boost/beast/zlib/detail/inflate_stream.ipp create mode 100644 include/boost/beast/zlib/impl/error.hpp mode change 100644 => 100755 include/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp create mode 100644 include/boost/circular_buffer/allocators.hpp create mode 100644 include/boost/compute/detail/cl_versions.hpp create mode 100644 include/boost/compute/exception/program_build_failure.hpp create mode 100644 include/boost/config/header_deprecated.hpp create mode 100644 include/boost/config/helper_macros.hpp create mode 100644 include/boost/config/pragma_message.hpp create mode 100644 include/boost/container/detail/thread_mutex.hpp create mode 100644 include/boost/container/detail/value_functors.hpp rename include/boost/{functional/hash => container_hash}/detail/float_functions.hpp (100%) rename include/boost/{functional/hash => container_hash}/detail/hash_float.hpp (98%) rename include/boost/{functional/hash => container_hash}/detail/limits.hpp (100%) create mode 100644 include/boost/container_hash/extensions.hpp create mode 100644 include/boost/container_hash/hash.hpp create mode 100644 include/boost/container_hash/hash_fwd.hpp delete mode 100644 include/boost/context/all.hpp create mode 100644 include/boost/context/detail/externc.hpp create mode 100644 include/boost/context/fiber.hpp create mode 100644 include/boost/context/fiber_fcontext.hpp create mode 100644 include/boost/context/fiber_ucontext.hpp create mode 100644 include/boost/context/fiber_winfib.hpp create mode 100644 include/boost/contract.hpp create mode 100644 include/boost/contract/assert.hpp create mode 100644 include/boost/contract/base_types.hpp create mode 100644 include/boost/contract/call_if.hpp create mode 100644 include/boost/contract/check.hpp create mode 100644 include/boost/contract/constructor.hpp create mode 100644 include/boost/contract/core/access.hpp create mode 100644 include/boost/contract/core/check_macro.hpp create mode 100644 include/boost/contract/core/config.hpp create mode 100644 include/boost/contract/core/constructor_precondition.hpp create mode 100644 include/boost/contract/core/exception.hpp create mode 100644 include/boost/contract/core/specify.hpp create mode 100644 include/boost/contract/core/virtual.hpp create mode 100644 include/boost/contract/destructor.hpp create mode 100644 include/boost/contract/detail/assert.hpp create mode 100644 include/boost/contract/detail/auto_ptr.hpp create mode 100644 include/boost/contract/detail/check.hpp create mode 100644 include/boost/contract/detail/checking.hpp create mode 100644 include/boost/contract/detail/condition/cond_base.hpp create mode 100644 include/boost/contract/detail/condition/cond_inv.hpp create mode 100644 include/boost/contract/detail/condition/cond_post.hpp create mode 100644 include/boost/contract/detail/condition/cond_subcontracting.hpp create mode 100644 include/boost/contract/detail/config.hpp create mode 100644 include/boost/contract/detail/debug.hpp create mode 100644 include/boost/contract/detail/decl.hpp create mode 100644 include/boost/contract/detail/declspec.hpp create mode 100644 include/boost/contract/detail/inlined.hpp create mode 100644 include/boost/contract/detail/inlined/core/exception.hpp create mode 100644 include/boost/contract/detail/inlined/detail/checking.hpp create mode 100644 include/boost/contract/detail/inlined/old.hpp create mode 100644 include/boost/contract/detail/name.hpp create mode 100644 include/boost/contract/detail/none.hpp create mode 100644 include/boost/contract/detail/noop.hpp create mode 100644 include/boost/contract/detail/operation/constructor.hpp create mode 100644 include/boost/contract/detail/operation/destructor.hpp create mode 100644 include/boost/contract/detail/operation/function.hpp create mode 100644 include/boost/contract/detail/operation/public_function.hpp create mode 100644 include/boost/contract/detail/operation/static_public_function.hpp create mode 100644 include/boost/contract/detail/operator_safe_bool.hpp create mode 100644 include/boost/contract/detail/preprocessor/keyword/private.hpp create mode 100644 include/boost/contract/detail/preprocessor/keyword/protected.hpp create mode 100644 include/boost/contract/detail/preprocessor/keyword/public.hpp create mode 100644 include/boost/contract/detail/preprocessor/keyword/utility/is.hpp create mode 100644 include/boost/contract/detail/preprocessor/keyword/virtual.hpp create mode 100644 include/boost/contract/detail/static_local_var.hpp create mode 100644 include/boost/contract/detail/tvariadic.hpp create mode 100644 include/boost/contract/detail/type_traits/member_function_types.hpp create mode 100644 include/boost/contract/detail/type_traits/mirror.hpp create mode 100644 include/boost/contract/detail/type_traits/optional.hpp create mode 100644 include/boost/contract/function.hpp create mode 100644 include/boost/contract/old.hpp create mode 100644 include/boost/contract/override.hpp create mode 100644 include/boost/contract/public_function.hpp create mode 100644 include/boost/contract_macro.hpp delete mode 100644 include/boost/convert/detail/boost_parameter_ext.hpp create mode 100644 include/boost/core/empty_value.hpp create mode 100644 include/boost/core/exchange.hpp create mode 100644 include/boost/core/quick_exit.hpp create mode 100644 include/boost/core/uncaught_exceptions.hpp create mode 100644 include/boost/core/use_default.hpp create mode 100644 include/boost/dll/config.hpp rename include/boost/{ => dynamic_bitset}/detail/dynamic_bitset.hpp (73%) rename include/boost/{pending => dynamic_bitset/detail}/lowest_bit.hpp (86%) delete mode 100644 include/boost/endian/detail/config.hpp create mode 100644 include/boost/fiber/detail/exchange.hpp create mode 100644 include/boost/fiber/detail/thread_barrier.hpp rename include/boost/fiber/{algo/numa => numa/algo}/work_stealing.hpp (92%) create mode 100644 include/boost/fiber/numa/all.hpp delete mode 100644 include/boost/fusion/support/detail/category_of.hpp create mode 100644 include/boost/fusion/support/detail/is_native_fusion_sequence.hpp delete mode 100644 include/boost/fusion/view/transform_view/detail/apply_transform_result.hpp create mode 100644 include/boost/geometry/algorithms/densify.hpp create mode 100755 include/boost/geometry/algorithms/detail/buffer/buffer_box.hpp create mode 100644 include/boost/geometry/algorithms/detail/distance/linear_to_box.hpp create mode 100644 include/boost/geometry/algorithms/detail/envelope/areal.hpp delete mode 100644 include/boost/geometry/algorithms/detail/overlay/aggregate_operations.hpp delete mode 100644 include/boost/geometry/algorithms/detail/overlay/traversal_intersection_patterns.hpp create mode 100644 include/boost/geometry/algorithms/discrete_frechet_distance.hpp create mode 100644 include/boost/geometry/algorithms/discrete_hausdorff_distance.hpp create mode 100644 include/boost/geometry/algorithms/line_interpolate.hpp create mode 100644 include/boost/geometry/core/config.hpp create mode 100644 include/boost/geometry/formulas/interpolate_point_spherical.hpp create mode 100644 include/boost/geometry/formulas/karney_direct.hpp create mode 100644 include/boost/geometry/formulas/meridian_direct.hpp rename include/boost/geometry/formulas/{elliptic_arc_length.hpp => meridian_inverse.hpp} (52%) create mode 100644 include/boost/geometry/formulas/meridian_segment.hpp create mode 100644 include/boost/geometry/formulas/quarter_meridian.hpp create mode 100644 include/boost/geometry/srs/epsg.hpp create mode 100644 include/boost/geometry/srs/esri.hpp create mode 100644 include/boost/geometry/srs/iau2000.hpp create mode 100644 include/boost/geometry/srs/projection.hpp create mode 100644 include/boost/geometry/srs/projections/code.hpp create mode 100644 include/boost/geometry/srs/projections/constants.hpp create mode 100644 include/boost/geometry/srs/projections/dpar.hpp create mode 100644 include/boost/geometry/srs/projections/epsg.hpp create mode 100644 include/boost/geometry/srs/projections/epsg_params.hpp create mode 100644 include/boost/geometry/srs/projections/epsg_traits.hpp create mode 100644 include/boost/geometry/srs/projections/esri.hpp create mode 100644 include/boost/geometry/srs/projections/esri_params.hpp create mode 100644 include/boost/geometry/srs/projections/esri_traits.hpp create mode 100644 include/boost/geometry/srs/projections/exception.hpp create mode 100644 include/boost/geometry/srs/projections/factory.hpp create mode 100644 include/boost/geometry/srs/projections/factory_key.hpp create mode 100644 include/boost/geometry/srs/projections/grids.hpp create mode 100644 include/boost/geometry/srs/projections/iau2000.hpp create mode 100644 include/boost/geometry/srs/projections/iau2000_params.hpp create mode 100644 include/boost/geometry/srs/projections/iau2000_traits.hpp create mode 100644 include/boost/geometry/srs/projections/impl/aasincos.hpp create mode 100644 include/boost/geometry/srs/projections/impl/adjlon.hpp create mode 100644 include/boost/geometry/srs/projections/impl/base_dynamic.hpp create mode 100644 include/boost/geometry/srs/projections/impl/base_static.hpp create mode 100644 include/boost/geometry/srs/projections/impl/dms_parser.hpp create mode 100644 include/boost/geometry/srs/projections/impl/factory_entry.hpp create mode 100644 include/boost/geometry/srs/projections/impl/function_overloads.hpp create mode 100644 include/boost/geometry/srs/projections/impl/geocent.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_apply_gridshift.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_apply_gridshift_shared.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_auth.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_datum_set.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_datums.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_ell_set.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_ellps.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_fwd.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_gauss.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_gridinfo.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_gridlist.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_gridlist_shared.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_init.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_inv.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_mlfn.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_msfn.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_param.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_phi2.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_qsfn.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_strerrno.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_transform.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_tsfn.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_units.hpp create mode 100644 include/boost/geometry/srs/projections/impl/pj_zpoly1.hpp create mode 100644 include/boost/geometry/srs/projections/impl/proj_mdist.hpp create mode 100644 include/boost/geometry/srs/projections/impl/projects.hpp create mode 100644 include/boost/geometry/srs/projections/invalid_point.hpp create mode 100644 include/boost/geometry/srs/projections/par_data.hpp create mode 100644 include/boost/geometry/srs/projections/proj/aea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/aeqd.hpp create mode 100644 include/boost/geometry/srs/projections/proj/airy.hpp create mode 100644 include/boost/geometry/srs/projections/proj/aitoff.hpp create mode 100644 include/boost/geometry/srs/projections/proj/august.hpp create mode 100644 include/boost/geometry/srs/projections/proj/bacon.hpp create mode 100644 include/boost/geometry/srs/projections/proj/bipc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/boggs.hpp create mode 100644 include/boost/geometry/srs/projections/proj/bonne.hpp create mode 100644 include/boost/geometry/srs/projections/proj/cass.hpp create mode 100644 include/boost/geometry/srs/projections/proj/cc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/cea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/chamb.hpp create mode 100644 include/boost/geometry/srs/projections/proj/collg.hpp create mode 100644 include/boost/geometry/srs/projections/proj/crast.hpp create mode 100644 include/boost/geometry/srs/projections/proj/denoy.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eck1.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eck2.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eck3.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eck4.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eck5.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eqc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/eqdc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/etmerc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/fahey.hpp create mode 100644 include/boost/geometry/srs/projections/proj/fouc_s.hpp create mode 100644 include/boost/geometry/srs/projections/proj/gall.hpp create mode 100644 include/boost/geometry/srs/projections/proj/geocent.hpp create mode 100644 include/boost/geometry/srs/projections/proj/geos.hpp create mode 100644 include/boost/geometry/srs/projections/proj/gins8.hpp create mode 100644 include/boost/geometry/srs/projections/proj/gn_sinu.hpp create mode 100644 include/boost/geometry/srs/projections/proj/gnom.hpp create mode 100644 include/boost/geometry/srs/projections/proj/goode.hpp create mode 100644 include/boost/geometry/srs/projections/proj/gstmerc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/hammer.hpp create mode 100644 include/boost/geometry/srs/projections/proj/hatano.hpp create mode 100644 include/boost/geometry/srs/projections/proj/healpix.hpp create mode 100644 include/boost/geometry/srs/projections/proj/igh.hpp create mode 100644 include/boost/geometry/srs/projections/proj/imw_p.hpp create mode 100644 include/boost/geometry/srs/projections/proj/isea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/krovak.hpp create mode 100644 include/boost/geometry/srs/projections/proj/labrd.hpp create mode 100644 include/boost/geometry/srs/projections/proj/laea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/lagrng.hpp create mode 100644 include/boost/geometry/srs/projections/proj/larr.hpp create mode 100644 include/boost/geometry/srs/projections/proj/lask.hpp create mode 100644 include/boost/geometry/srs/projections/proj/latlong.hpp create mode 100644 include/boost/geometry/srs/projections/proj/lcc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/lcca.hpp create mode 100644 include/boost/geometry/srs/projections/proj/loxim.hpp create mode 100644 include/boost/geometry/srs/projections/proj/lsat.hpp create mode 100644 include/boost/geometry/srs/projections/proj/mbt_fps.hpp create mode 100644 include/boost/geometry/srs/projections/proj/mbtfpp.hpp create mode 100644 include/boost/geometry/srs/projections/proj/mbtfpq.hpp create mode 100644 include/boost/geometry/srs/projections/proj/merc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/mill.hpp create mode 100644 include/boost/geometry/srs/projections/proj/mod_ster.hpp create mode 100644 include/boost/geometry/srs/projections/proj/moll.hpp create mode 100644 include/boost/geometry/srs/projections/proj/natearth.hpp create mode 100644 include/boost/geometry/srs/projections/proj/nell.hpp create mode 100644 include/boost/geometry/srs/projections/proj/nell_h.hpp create mode 100644 include/boost/geometry/srs/projections/proj/nocol.hpp create mode 100644 include/boost/geometry/srs/projections/proj/nsper.hpp create mode 100644 include/boost/geometry/srs/projections/proj/nzmg.hpp create mode 100644 include/boost/geometry/srs/projections/proj/ob_tran.hpp create mode 100644 include/boost/geometry/srs/projections/proj/ocea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/oea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/omerc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/ortho.hpp create mode 100644 include/boost/geometry/srs/projections/proj/poly.hpp create mode 100644 include/boost/geometry/srs/projections/proj/putp2.hpp create mode 100644 include/boost/geometry/srs/projections/proj/putp3.hpp create mode 100644 include/boost/geometry/srs/projections/proj/putp4p.hpp create mode 100644 include/boost/geometry/srs/projections/proj/putp5.hpp create mode 100644 include/boost/geometry/srs/projections/proj/putp6.hpp create mode 100644 include/boost/geometry/srs/projections/proj/qsc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/robin.hpp create mode 100644 include/boost/geometry/srs/projections/proj/rouss.hpp create mode 100644 include/boost/geometry/srs/projections/proj/rpoly.hpp create mode 100644 include/boost/geometry/srs/projections/proj/sconics.hpp create mode 100644 include/boost/geometry/srs/projections/proj/somerc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/stere.hpp create mode 100644 include/boost/geometry/srs/projections/proj/sterea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/sts.hpp create mode 100644 include/boost/geometry/srs/projections/proj/tcc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/tcea.hpp create mode 100644 include/boost/geometry/srs/projections/proj/tmerc.hpp create mode 100644 include/boost/geometry/srs/projections/proj/tpeqd.hpp create mode 100644 include/boost/geometry/srs/projections/proj/urm5.hpp create mode 100644 include/boost/geometry/srs/projections/proj/urmfps.hpp create mode 100644 include/boost/geometry/srs/projections/proj/vandg.hpp create mode 100644 include/boost/geometry/srs/projections/proj/vandg2.hpp create mode 100644 include/boost/geometry/srs/projections/proj/vandg4.hpp create mode 100644 include/boost/geometry/srs/projections/proj/wag2.hpp create mode 100644 include/boost/geometry/srs/projections/proj/wag3.hpp create mode 100644 include/boost/geometry/srs/projections/proj/wag7.hpp create mode 100644 include/boost/geometry/srs/projections/proj/wink1.hpp create mode 100644 include/boost/geometry/srs/projections/proj/wink2.hpp create mode 100644 include/boost/geometry/srs/projections/proj4.hpp create mode 100644 include/boost/geometry/srs/projections/shared_grids.hpp create mode 100644 include/boost/geometry/srs/projections/spar.hpp create mode 100644 include/boost/geometry/srs/projections/srid_traits.hpp create mode 100644 include/boost/geometry/srs/projections/str_cast.hpp create mode 100644 include/boost/geometry/srs/shared_grids.hpp create mode 100644 include/boost/geometry/srs/sphere.hpp rename include/boost/geometry/{core/srs.hpp => srs/spheroid.hpp} (61%) create mode 100644 include/boost/geometry/srs/srs.hpp create mode 100644 include/boost/geometry/srs/transformation.hpp create mode 100644 include/boost/geometry/strategies/area_result.hpp create mode 100644 include/boost/geometry/strategies/cartesian/area.hpp create mode 100644 include/boost/geometry/strategies/cartesian/densify.hpp create mode 100644 include/boost/geometry/strategies/cartesian/disjoint_box_box.hpp create mode 100644 include/boost/geometry/strategies/cartesian/distance_segment_box.hpp create mode 100644 include/boost/geometry/strategies/cartesian/envelope.hpp create mode 100644 include/boost/geometry/strategies/cartesian/envelope_box.hpp create mode 100644 include/boost/geometry/strategies/cartesian/envelope_multipoint.hpp create mode 100644 include/boost/geometry/strategies/cartesian/envelope_point.hpp create mode 100644 include/boost/geometry/strategies/cartesian/expand_box.hpp create mode 100644 include/boost/geometry/strategies/cartesian/expand_point.hpp create mode 100644 include/boost/geometry/strategies/cartesian/expand_segment.hpp create mode 100644 include/boost/geometry/strategies/cartesian/line_interpolate.hpp create mode 100644 include/boost/geometry/strategies/cartesian/point_in_point.hpp create mode 100644 include/boost/geometry/strategies/densify.hpp create mode 100644 include/boost/geometry/strategies/expand.hpp create mode 100644 include/boost/geometry/strategies/geographic/buffer_point_circle.hpp create mode 100644 include/boost/geometry/strategies/geographic/densify.hpp create mode 100644 include/boost/geometry/strategies/geographic/distance_cross_track_box_box.hpp create mode 100644 include/boost/geometry/strategies/geographic/distance_cross_track_point_box.hpp create mode 100644 include/boost/geometry/strategies/geographic/distance_segment_box.hpp create mode 100644 include/boost/geometry/strategies/geographic/envelope.hpp create mode 100644 include/boost/geometry/strategies/geographic/expand_segment.hpp create mode 100644 include/boost/geometry/strategies/geographic/line_interpolate.hpp create mode 100644 include/boost/geometry/strategies/line_interpolate.hpp create mode 100644 include/boost/geometry/strategies/normalize.hpp create mode 100644 include/boost/geometry/strategies/spherical/densify.hpp create mode 100644 include/boost/geometry/strategies/spherical/disjoint_box_box.hpp create mode 100644 include/boost/geometry/strategies/spherical/distance_cross_track_box_box.hpp create mode 100644 include/boost/geometry/strategies/spherical/distance_segment_box.hpp create mode 100644 include/boost/geometry/strategies/spherical/envelope.hpp create mode 100644 include/boost/geometry/strategies/spherical/envelope_box.hpp create mode 100644 include/boost/geometry/strategies/spherical/envelope_multipoint.hpp create mode 100644 include/boost/geometry/strategies/spherical/envelope_point.hpp create mode 100644 include/boost/geometry/strategies/spherical/expand_box.hpp create mode 100644 include/boost/geometry/strategies/spherical/expand_point.hpp create mode 100644 include/boost/geometry/strategies/spherical/expand_segment.hpp create mode 100644 include/boost/geometry/strategies/spherical/get_radius.hpp create mode 100644 include/boost/geometry/strategies/spherical/line_interpolate.hpp create mode 100644 include/boost/geometry/strategies/spherical/point_in_point.hpp create mode 100644 include/boost/geometry/strategies/transform/srs_transformer.hpp create mode 100644 include/boost/geometry/util/is_inverse_spheroidal_coordinates.hpp create mode 100644 include/boost/geometry/util/select_sequence_element.hpp create mode 100644 include/boost/geometry/util/series_expansion.hpp create mode 100644 include/boost/gil.hpp create mode 100644 include/boost/gil/concepts.hpp create mode 100644 include/boost/gil/concepts/basic.hpp create mode 100644 include/boost/gil/concepts/channel.hpp create mode 100644 include/boost/gil/concepts/color.hpp create mode 100644 include/boost/gil/concepts/color_base.hpp create mode 100644 include/boost/gil/concepts/concept_check.hpp create mode 100644 include/boost/gil/concepts/detail/type_traits.hpp create mode 100644 include/boost/gil/concepts/detail/utility.hpp create mode 100644 include/boost/gil/concepts/dynamic_step.hpp create mode 100644 include/boost/gil/concepts/fwd.hpp create mode 100644 include/boost/gil/concepts/image.hpp create mode 100644 include/boost/gil/concepts/image_view.hpp create mode 100644 include/boost/gil/concepts/pixel.hpp create mode 100644 include/boost/gil/concepts/pixel_based.hpp create mode 100644 include/boost/gil/concepts/pixel_dereference.hpp create mode 100644 include/boost/gil/concepts/pixel_iterator.hpp create mode 100644 include/boost/gil/concepts/pixel_locator.hpp create mode 100644 include/boost/gil/concepts/point.hpp create mode 100644 include/boost/gil/dynamic_step.hpp delete mode 100644 include/boost/gil/extension/dynamic_image/apply_operation_base.hpp delete mode 100644 include/boost/gil/extension/dynamic_image/variant.hpp create mode 100644 include/boost/gil/extension/io/bmp.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/read.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/write.hpp create mode 100644 include/boost/gil/extension/io/bmp/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/bmp/old.hpp create mode 100644 include/boost/gil/extension/io/bmp/read.hpp create mode 100644 include/boost/gil/extension/io/bmp/tags.hpp create mode 100644 include/boost/gil/extension/io/bmp/write.hpp delete mode 100644 include/boost/gil/extension/io/io_error.hpp create mode 100644 include/boost/gil/extension/io/jpeg.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/base.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/read.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/write.hpp create mode 100644 include/boost/gil/extension/io/jpeg/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/jpeg/old.hpp create mode 100644 include/boost/gil/extension/io/jpeg/read.hpp create mode 100644 include/boost/gil/extension/io/jpeg/tags.hpp create mode 100644 include/boost/gil/extension/io/jpeg/write.hpp delete mode 100644 include/boost/gil/extension/io/jpeg_dynamic_io.hpp delete mode 100644 include/boost/gil/extension/io/jpeg_io.hpp delete mode 100644 include/boost/gil/extension/io/jpeg_io_private.hpp create mode 100644 include/boost/gil/extension/io/png.hpp create mode 100644 include/boost/gil/extension/io/png/detail/base.hpp create mode 100644 include/boost/gil/extension/io/png/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/png/detail/read.hpp create mode 100644 include/boost/gil/extension/io/png/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/png/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/png/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/png/detail/write.hpp create mode 100644 include/boost/gil/extension/io/png/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/png/old.hpp create mode 100644 include/boost/gil/extension/io/png/read.hpp create mode 100644 include/boost/gil/extension/io/png/tags.hpp create mode 100644 include/boost/gil/extension/io/png/write.hpp delete mode 100644 include/boost/gil/extension/io/png_dynamic_io.hpp delete mode 100644 include/boost/gil/extension/io/png_io.hpp delete mode 100644 include/boost/gil/extension/io/png_io_private.hpp create mode 100644 include/boost/gil/extension/io/pnm.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/read.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/write.hpp create mode 100644 include/boost/gil/extension/io/pnm/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/pnm/old.hpp create mode 100644 include/boost/gil/extension/io/pnm/read.hpp create mode 100644 include/boost/gil/extension/io/pnm/tags.hpp create mode 100644 include/boost/gil/extension/io/pnm/write.hpp create mode 100644 include/boost/gil/extension/io/raw.hpp create mode 100644 include/boost/gil/extension/io/raw/detail/device.hpp create mode 100644 include/boost/gil/extension/io/raw/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/raw/detail/read.hpp create mode 100644 include/boost/gil/extension/io/raw/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/raw/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/raw/read.hpp create mode 100644 include/boost/gil/extension/io/raw/tags.hpp create mode 100644 include/boost/gil/extension/io/targa.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/read.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/write.hpp create mode 100644 include/boost/gil/extension/io/targa/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/targa/old.hpp create mode 100644 include/boost/gil/extension/io/targa/read.hpp create mode 100644 include/boost/gil/extension/io/targa/tags.hpp create mode 100644 include/boost/gil/extension/io/targa/write.hpp create mode 100644 include/boost/gil/extension/io/tiff.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/device.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/is_allowed.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/log.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/read.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/reader_backend.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/scanline_read.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/supported_types.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/write.hpp create mode 100644 include/boost/gil/extension/io/tiff/detail/writer_backend.hpp create mode 100644 include/boost/gil/extension/io/tiff/old.hpp create mode 100644 include/boost/gil/extension/io/tiff/read.hpp create mode 100644 include/boost/gil/extension/io/tiff/tags.hpp create mode 100644 include/boost/gil/extension/io/tiff/write.hpp delete mode 100644 include/boost/gil/extension/io/tiff_dynamic_io.hpp delete mode 100644 include/boost/gil/extension/io/tiff_io.hpp create mode 100644 include/boost/gil/extension/numeric/affine.hpp create mode 100644 include/boost/gil/extension/numeric/algorithm.hpp create mode 100644 include/boost/gil/extension/numeric/channel_numeric_operations.hpp create mode 100644 include/boost/gil/extension/numeric/convolve.hpp create mode 100644 include/boost/gil/extension/numeric/kernel.hpp create mode 100644 include/boost/gil/extension/numeric/pixel_numeric_operations.hpp create mode 100644 include/boost/gil/extension/numeric/resample.hpp create mode 100644 include/boost/gil/extension/numeric/sampler.hpp create mode 100644 include/boost/gil/extension/toolbox/color_converters.hpp create mode 100644 include/boost/gil/extension/toolbox/color_converters/gray_to_rgba.hpp create mode 100644 include/boost/gil/extension/toolbox/color_converters/rgb_to_luminance.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/cmyka.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/gray_alpha.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/hsl.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/hsv.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/lab.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/xyz.hpp create mode 100644 include/boost/gil/extension/toolbox/color_spaces/ycbcr.hpp create mode 100644 include/boost/gil/extension/toolbox/dynamic_images.hpp create mode 100644 include/boost/gil/extension/toolbox/image_types.hpp create mode 100644 include/boost/gil/extension/toolbox/image_types/indexed_image.hpp create mode 100644 include/boost/gil/extension/toolbox/image_types/subchroma_image.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/channel_type.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/channel_view.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/get_num_bits.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/get_pixel_type.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/is_bit_aligned.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/is_homogeneous.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/is_similar.hpp create mode 100644 include/boost/gil/extension/toolbox/metafunctions/pixel_bit_size.hpp create mode 100644 include/boost/gil/extension/toolbox/toolbox.hpp delete mode 100644 include/boost/gil/gil_all.hpp delete mode 100644 include/boost/gil/gil_concept.hpp delete mode 100644 include/boost/gil/gil_config.hpp create mode 100644 include/boost/gil/io/base.hpp create mode 100644 include/boost/gil/io/bit_operations.hpp create mode 100644 include/boost/gil/io/conversion_policies.hpp create mode 100644 include/boost/gil/io/device.hpp rename include/boost/gil/{extension/io/dynamic_io.hpp => io/dynamic_io_new.hpp} (56%) create mode 100644 include/boost/gil/io/error.hpp create mode 100644 include/boost/gil/io/get_read_device.hpp create mode 100644 include/boost/gil/io/get_reader.hpp create mode 100644 include/boost/gil/io/get_write_device.hpp create mode 100644 include/boost/gil/io/get_writer.hpp create mode 100644 include/boost/gil/io/io.hpp create mode 100644 include/boost/gil/io/make_backend.hpp create mode 100644 include/boost/gil/io/make_dynamic_image_reader.hpp create mode 100644 include/boost/gil/io/make_dynamic_image_writer.hpp create mode 100644 include/boost/gil/io/make_reader.hpp create mode 100644 include/boost/gil/io/make_scanline_reader.hpp create mode 100644 include/boost/gil/io/make_writer.hpp create mode 100644 include/boost/gil/io/path_spec.hpp create mode 100644 include/boost/gil/io/read_and_convert_image.hpp create mode 100644 include/boost/gil/io/read_and_convert_view.hpp create mode 100644 include/boost/gil/io/read_image.hpp create mode 100644 include/boost/gil/io/read_image_info.hpp create mode 100644 include/boost/gil/io/read_view.hpp create mode 100644 include/boost/gil/io/reader_base.hpp create mode 100644 include/boost/gil/io/row_buffer_helper.hpp create mode 100644 include/boost/gil/io/scanline_read_iterator.hpp create mode 100644 include/boost/gil/io/typedefs.hpp create mode 100644 include/boost/gil/io/write_view.hpp create mode 100644 include/boost/gil/point.hpp create mode 100644 include/boost/gil/premultiply.hpp create mode 100644 include/boost/gil/promote_integral.hpp create mode 100644 include/boost/gil/version.hpp create mode 100644 include/boost/histogram.hpp create mode 100644 include/boost/histogram/accumulators/mean.hpp create mode 100644 include/boost/histogram/accumulators/ostream.hpp create mode 100644 include/boost/histogram/accumulators/sum.hpp create mode 100644 include/boost/histogram/accumulators/weighted_mean.hpp create mode 100644 include/boost/histogram/accumulators/weighted_sum.hpp create mode 100644 include/boost/histogram/algorithm/project.hpp create mode 100644 include/boost/histogram/algorithm/reduce.hpp create mode 100644 include/boost/histogram/algorithm/sum.hpp create mode 100644 include/boost/histogram/axis.hpp create mode 100644 include/boost/histogram/axis/category.hpp create mode 100644 include/boost/histogram/axis/integer.hpp create mode 100644 include/boost/histogram/axis/interval_view.hpp create mode 100644 include/boost/histogram/axis/iterator.hpp create mode 100644 include/boost/histogram/axis/option.hpp create mode 100644 include/boost/histogram/axis/ostream.hpp create mode 100644 include/boost/histogram/axis/polymorphic_bin.hpp create mode 100644 include/boost/histogram/axis/regular.hpp create mode 100644 include/boost/histogram/axis/traits.hpp create mode 100644 include/boost/histogram/axis/variable.hpp create mode 100644 include/boost/histogram/axis/variant.hpp create mode 100644 include/boost/histogram/detail/attribute.hpp create mode 100644 include/boost/histogram/detail/axes.hpp create mode 100644 include/boost/histogram/detail/cat.hpp create mode 100644 include/boost/histogram/detail/common_type.hpp create mode 100644 include/boost/histogram/detail/compressed_pair.hpp create mode 100644 include/boost/histogram/detail/linearize.hpp create mode 100644 include/boost/histogram/detail/meta.hpp create mode 100644 include/boost/histogram/fwd.hpp create mode 100644 include/boost/histogram/histogram.hpp create mode 100644 include/boost/histogram/indexed.hpp create mode 100644 include/boost/histogram/literals.hpp create mode 100644 include/boost/histogram/make_histogram.hpp create mode 100644 include/boost/histogram/make_profile.hpp create mode 100644 include/boost/histogram/ostream.hpp create mode 100644 include/boost/histogram/serialization.hpp create mode 100644 include/boost/histogram/storage_adaptor.hpp create mode 100644 include/boost/histogram/unlimited_storage.hpp create mode 100644 include/boost/histogram/unsafe_access.hpp create mode 100644 include/boost/hof.hpp create mode 100644 include/boost/hof/alias.hpp create mode 100644 include/boost/hof/always.hpp create mode 100644 include/boost/hof/apply.hpp create mode 100644 include/boost/hof/apply_eval.hpp create mode 100644 include/boost/hof/arg.hpp create mode 100644 include/boost/hof/capture.hpp create mode 100644 include/boost/hof/combine.hpp create mode 100644 include/boost/hof/compose.hpp create mode 100644 include/boost/hof/config.hpp create mode 100644 include/boost/hof/construct.hpp create mode 100644 include/boost/hof/decay.hpp create mode 100644 include/boost/hof/decorate.hpp create mode 100644 include/boost/hof/detail/and.hpp create mode 100644 include/boost/hof/detail/callable_base.hpp create mode 100644 include/boost/hof/detail/can_be_called.hpp create mode 100644 include/boost/hof/detail/compressed_pair.hpp create mode 100644 include/boost/hof/detail/constexpr_deduce.hpp create mode 100644 include/boost/hof/detail/delegate.hpp create mode 100644 include/boost/hof/detail/forward.hpp create mode 100644 include/boost/hof/detail/holder.hpp create mode 100644 include/boost/hof/detail/intrinsics.hpp create mode 100644 include/boost/hof/detail/join.hpp create mode 100644 include/boost/hof/detail/make.hpp create mode 100644 include/boost/hof/detail/move.hpp create mode 100644 include/boost/hof/detail/noexcept.hpp create mode 100644 include/boost/hof/detail/pp.hpp create mode 100644 include/boost/hof/detail/recursive_constexpr_depth.hpp create mode 100644 include/boost/hof/detail/remove_rvalue_reference.hpp create mode 100644 include/boost/hof/detail/result_of.hpp create mode 100644 include/boost/hof/detail/result_type.hpp create mode 100644 include/boost/hof/detail/seq.hpp create mode 100644 include/boost/hof/detail/static_const_var.hpp create mode 100644 include/boost/hof/detail/unpack_tuple.hpp create mode 100644 include/boost/hof/detail/unwrap.hpp create mode 100644 include/boost/hof/detail/using.hpp create mode 100644 include/boost/hof/eval.hpp create mode 100644 include/boost/hof/first_of.hpp create mode 100644 include/boost/hof/fix.hpp create mode 100644 include/boost/hof/flip.hpp create mode 100644 include/boost/hof/flow.hpp create mode 100644 include/boost/hof/fold.hpp create mode 100644 include/boost/hof/function.hpp create mode 100644 include/boost/hof/function_param_limit.hpp create mode 100644 include/boost/hof/identity.hpp create mode 100644 include/boost/hof/if.hpp create mode 100644 include/boost/hof/implicit.hpp create mode 100644 include/boost/hof/indirect.hpp create mode 100644 include/boost/hof/infix.hpp create mode 100644 include/boost/hof/is_invocable.hpp create mode 100644 include/boost/hof/is_unpackable.hpp create mode 100644 include/boost/hof/lambda.hpp create mode 100644 include/boost/hof/lazy.hpp create mode 100644 include/boost/hof/lift.hpp create mode 100644 include/boost/hof/limit.hpp create mode 100644 include/boost/hof/match.hpp create mode 100644 include/boost/hof/mutable.hpp create mode 100644 include/boost/hof/pack.hpp create mode 100644 include/boost/hof/partial.hpp create mode 100644 include/boost/hof/pipable.hpp create mode 100644 include/boost/hof/placeholders.hpp create mode 100644 include/boost/hof/proj.hpp create mode 100644 include/boost/hof/protect.hpp create mode 100644 include/boost/hof/repeat.hpp create mode 100644 include/boost/hof/repeat_while.hpp create mode 100644 include/boost/hof/result.hpp create mode 100644 include/boost/hof/returns.hpp create mode 100644 include/boost/hof/reveal.hpp create mode 100644 include/boost/hof/reverse_fold.hpp create mode 100644 include/boost/hof/rotate.hpp create mode 100644 include/boost/hof/static.hpp create mode 100644 include/boost/hof/tap.hpp create mode 100644 include/boost/hof/unpack.hpp create mode 100644 include/boost/hof/unpack_sequence.hpp create mode 100644 include/boost/hof/version.hpp create mode 100644 include/boost/integer/extended_euclidean.hpp create mode 100644 include/boost/integer/mod_inverse.hpp create mode 100644 include/boost/iostreams/filter/zstd.hpp delete mode 100644 include/boost/last_value.hpp create mode 100644 include/boost/lockfree/detail/allocator_rebind_helper.hpp create mode 100644 include/boost/log/detail/allocator_traits.hpp delete mode 100644 include/boost/log/detail/unhandled_exception_count.hpp create mode 100644 include/boost/log/keywords/target_file_name.hpp create mode 100644 include/boost/math/differentiation/finite_difference.hpp create mode 100644 include/boost/math/differentiation/lanczos_smoothing.hpp create mode 100644 include/boost/math/interpolators/catmull_rom.hpp create mode 100644 include/boost/math/quadrature/naive_monte_carlo.hpp create mode 100644 include/boost/math/special_functions/detail/lambert_w_lookup_table.ipp create mode 100644 include/boost/math/special_functions/lambert_w.hpp create mode 100644 include/boost/math/tools/bivariate_statistics.hpp create mode 100644 include/boost/math/tools/complex.hpp create mode 100644 include/boost/math/tools/condition_numbers.hpp create mode 100644 include/boost/math/tools/detail/is_const_iterable.hpp create mode 100644 include/boost/math/tools/norms.hpp create mode 100644 include/boost/math/tools/numerical_differentiation.hpp create mode 100644 include/boost/math/tools/signal_statistics.hpp create mode 100644 include/boost/math/tools/test_value.hpp create mode 100644 include/boost/math/tools/univariate_statistics.hpp create mode 100644 include/boost/move/algo/detail/heap_sort.hpp create mode 100644 include/boost/move/algo/detail/is_sorted.hpp create mode 100644 include/boost/move/algo/detail/pdqsort.hpp create mode 100644 include/boost/move/algo/detail/set_difference.hpp create mode 100644 include/boost/mp11/detail/mp_copy_if.hpp create mode 100644 include/boost/mp11/detail/mp_is_list.hpp create mode 100644 include/boost/mp11/detail/mp_remove_if.hpp create mode 100644 include/boost/mp11/detail/mp_void.hpp create mode 100644 include/boost/mp11/version.hpp create mode 100644 include/boost/mpi/cartesian_communicator.hpp create mode 100644 include/boost/mpi/collectives/all_gatherv.hpp create mode 100644 include/boost/mpi/detail/offsets.hpp create mode 100644 include/boost/mpi/error_string.hpp create mode 100644 include/boost/multi_array/allocators.hpp create mode 100644 include/boost/multi_index/detail/allocator_traits.hpp create mode 100644 include/boost/multi_index/key.hpp create mode 100644 include/boost/multiprecision/complex128.hpp create mode 100644 include/boost/multiprecision/complex_adaptor.hpp create mode 100644 include/boost/multiprecision/cpp_complex.hpp create mode 100644 include/boost/multiprecision/detail/precision.hpp create mode 100644 include/boost/multiprecision/eigen.hpp create mode 100644 include/boost/multiprecision/mpc.hpp create mode 100644 include/boost/multiprecision/traits/is_variable_precision.hpp create mode 100644 include/boost/numeric/interval/utility_fwd.hpp create mode 100644 include/boost/numeric/ublas/opencl.hpp create mode 100644 include/boost/numeric/ublas/opencl/elementwise.hpp create mode 100644 include/boost/numeric/ublas/opencl/library.hpp create mode 100644 include/boost/numeric/ublas/opencl/matrix.hpp create mode 100644 include/boost/numeric/ublas/opencl/misc.hpp create mode 100644 include/boost/numeric/ublas/opencl/operations.hpp create mode 100644 include/boost/numeric/ublas/opencl/prod.hpp create mode 100644 include/boost/numeric/ublas/opencl/transpose.hpp create mode 100644 include/boost/numeric/ublas/opencl/vector.hpp create mode 100644 include/boost/numeric/ublas/tensor.hpp create mode 100644 include/boost/numeric/ublas/tensor/algorithms.hpp create mode 100644 include/boost/numeric/ublas/tensor/expression.hpp create mode 100644 include/boost/numeric/ublas/tensor/expression_evaluation.hpp create mode 100644 include/boost/numeric/ublas/tensor/extents.hpp create mode 100644 include/boost/numeric/ublas/tensor/functions.hpp create mode 100644 include/boost/numeric/ublas/tensor/index.hpp create mode 100644 include/boost/numeric/ublas/tensor/multi_index.hpp create mode 100644 include/boost/numeric/ublas/tensor/multi_index_utility.hpp create mode 100644 include/boost/numeric/ublas/tensor/multiplication.hpp create mode 100644 include/boost/numeric/ublas/tensor/operators_arithmetic.hpp create mode 100644 include/boost/numeric/ublas/tensor/operators_comparison.hpp create mode 100644 include/boost/numeric/ublas/tensor/ostream.hpp create mode 100644 include/boost/numeric/ublas/tensor/storage_traits.hpp create mode 100644 include/boost/numeric/ublas/tensor/strides.hpp create mode 100644 include/boost/numeric/ublas/tensor/tensor.hpp create mode 100644 include/boost/outcome.hpp create mode 100644 include/boost/outcome/bad_access.hpp create mode 100644 include/boost/outcome/basic_outcome.hpp create mode 100644 include/boost/outcome/basic_result.hpp create mode 100644 include/boost/outcome/boost_outcome.hpp create mode 100644 include/boost/outcome/boost_result.hpp create mode 100644 include/boost/outcome/config.hpp create mode 100644 include/boost/outcome/convert.hpp create mode 100644 include/boost/outcome/detail/basic_outcome_exception_observers.hpp create mode 100644 include/boost/outcome/detail/basic_outcome_exception_observers_impl.hpp create mode 100644 include/boost/outcome/detail/basic_outcome_failure_observers.hpp create mode 100644 include/boost/outcome/detail/basic_result_error_observers.hpp create mode 100644 include/boost/outcome/detail/basic_result_final.hpp create mode 100644 include/boost/outcome/detail/basic_result_storage.hpp create mode 100644 include/boost/outcome/detail/basic_result_value_observers.hpp create mode 100644 include/boost/outcome/detail/trait_std_error_code.hpp create mode 100644 include/boost/outcome/detail/trait_std_exception.hpp create mode 100644 include/boost/outcome/detail/value_storage.hpp create mode 100644 include/boost/outcome/experimental/result.h create mode 100644 include/boost/outcome/experimental/status-code/com_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/config.hpp create mode 100644 include/boost/outcome/experimental/status-code/detail/nt_code_to_generic_code.ipp create mode 100644 include/boost/outcome/experimental/status-code/detail/nt_code_to_win32_code.ipp create mode 100644 include/boost/outcome/experimental/status-code/detail/win32_code_to_generic_code.ipp create mode 100644 include/boost/outcome/experimental/status-code/error.hpp create mode 100644 include/boost/outcome/experimental/status-code/errored_status_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/generic_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/iostream_support.hpp create mode 100644 include/boost/outcome/experimental/status-code/nt_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/posix_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/status_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/status_code_domain.hpp create mode 100644 include/boost/outcome/experimental/status-code/status_code_ptr.hpp create mode 100644 include/boost/outcome/experimental/status-code/status_error.hpp create mode 100644 include/boost/outcome/experimental/status-code/std_error_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/system_code.hpp create mode 100644 include/boost/outcome/experimental/status-code/system_code_from_exception.hpp create mode 100644 include/boost/outcome/experimental/status-code/system_error2.hpp create mode 100644 include/boost/outcome/experimental/status-code/win32_code.hpp create mode 100644 include/boost/outcome/experimental/status_outcome.hpp create mode 100644 include/boost/outcome/experimental/status_result.hpp create mode 100644 include/boost/outcome/iostream_support.hpp create mode 100644 include/boost/outcome/outcome.hpp create mode 100644 include/boost/outcome/policy/all_narrow.hpp create mode 100644 include/boost/outcome/policy/base.hpp create mode 100644 include/boost/outcome/policy/fail_to_compile_observers.hpp create mode 100644 include/boost/outcome/policy/outcome_error_code_throw_as_system_error.hpp create mode 100644 include/boost/outcome/policy/outcome_exception_ptr_rethrow.hpp create mode 100644 include/boost/outcome/policy/result_error_code_throw_as_system_error.hpp create mode 100644 include/boost/outcome/policy/result_exception_ptr_rethrow.hpp create mode 100644 include/boost/outcome/policy/terminate.hpp create mode 100644 include/boost/outcome/policy/throw_bad_result_access.hpp create mode 100644 include/boost/outcome/result.hpp create mode 100644 include/boost/outcome/revision.hpp create mode 100644 include/boost/outcome/std_outcome.hpp create mode 100644 include/boost/outcome/std_result.hpp create mode 100644 include/boost/outcome/success_failure.hpp create mode 100644 include/boost/outcome/trait.hpp create mode 100644 include/boost/outcome/try.hpp create mode 100644 include/boost/outcome/utils.hpp create mode 100644 include/boost/outcome/version.hpp mode change 100644 => 100755 include/boost/parameter/aux_/python/invoker.hpp mode change 100644 => 100755 include/boost/parameter/aux_/python/invoker_iterate.hpp mode change 100644 => 100755 include/boost/parameter/python.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/assign.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign_10.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign_20.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign_30.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign_40.hpp delete mode 100644 include/boost/phoenix/core/detail/cpp03/preprocessed/assign_50.hpp create mode 100644 include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of_10.hpp create mode 100644 include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of_20.hpp create mode 100644 include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of_30.hpp create mode 100644 include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of_40.hpp create mode 100644 include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of_50.hpp create mode 100644 include/boost/poly_collection/detail/allocator_adaptor.hpp delete mode 100644 include/boost/poly_collection/detail/integer_sequence.hpp delete mode 100644 include/boost/poly_collection/detail/is_likely_stateless_lambda.hpp delete mode 100644 include/boost/poly_collection/detail/newdelete_allocator.hpp delete mode 100644 include/boost/poly_collection/detail/workaround_dr1467.hpp mode change 100644 => 100755 include/boost/pool/detail/pool_construct.bat mode change 100644 => 100755 include/boost/pool/detail/pool_construct_simple.bat create mode 100644 include/boost/predef/architecture/ptx.h create mode 100644 include/boost/predef/compiler/nvcc.h create mode 100644 include/boost/predef/language/cuda.h create mode 100644 include/boost/predef/platform/android.h create mode 100644 include/boost/ptr_container/detail/ptr_container_disable_deprecated.hpp create mode 100644 include/boost/qvm/detail/vec_register_impl.hpp create mode 100644 include/boost/qvm/vec_register.hpp create mode 100644 include/boost/qvm/vec_register2.hpp create mode 100644 include/boost/qvm/vec_register3.hpp create mode 100644 include/boost/qvm/vec_register4.hpp create mode 100644 include/boost/random/detail/gray_coded_qrng.hpp create mode 100644 include/boost/random/detail/niederreiter_base2_table.hpp create mode 100644 include/boost/random/detail/qrng_base.hpp create mode 100644 include/boost/random/detail/sobol_table.hpp create mode 100644 include/boost/random/faure.hpp create mode 100644 include/boost/random/niederreiter_base2.hpp create mode 100644 include/boost/random/sobol.hpp create mode 100644 include/boost/range/adaptor/ref_unwrapped.hpp create mode 100644 include/boost/safe_numerics/automatic.hpp create mode 100644 include/boost/safe_numerics/checked_default.hpp create mode 100644 include/boost/safe_numerics/checked_float.hpp create mode 100644 include/boost/safe_numerics/checked_integer.hpp create mode 100644 include/boost/safe_numerics/checked_result.hpp create mode 100644 include/boost/safe_numerics/checked_result_operations.hpp create mode 100644 include/boost/safe_numerics/concept/exception_policy.hpp create mode 100644 include/boost/safe_numerics/concept/integer.hpp create mode 100644 include/boost/safe_numerics/concept/numeric.hpp create mode 100644 include/boost/safe_numerics/concept/promotion_policy.hpp create mode 100644 include/boost/safe_numerics/concept/safe_numeric.hpp create mode 100755 include/boost/safe_numerics/cpp.hpp create mode 100644 include/boost/safe_numerics/exception.hpp create mode 100644 include/boost/safe_numerics/exception_policies.hpp create mode 100644 include/boost/safe_numerics/interval.hpp create mode 100644 include/boost/safe_numerics/native.hpp create mode 100644 include/boost/safe_numerics/range_value.hpp create mode 100644 include/boost/safe_numerics/safe_base.hpp create mode 100644 include/boost/safe_numerics/safe_base_operations.hpp create mode 100644 include/boost/safe_numerics/safe_common.hpp create mode 100644 include/boost/safe_numerics/safe_compare.hpp create mode 100644 include/boost/safe_numerics/safe_integer.hpp create mode 100644 include/boost/safe_numerics/safe_integer_literal.hpp create mode 100644 include/boost/safe_numerics/safe_integer_range.hpp create mode 100644 include/boost/safe_numerics/utility.hpp delete mode 100644 include/boost/signal.hpp delete mode 100644 include/boost/signals.hpp delete mode 100644 include/boost/signals/connection.hpp delete mode 100644 include/boost/signals/detail/config.hpp delete mode 100644 include/boost/signals/detail/gen_signal_N.pl delete mode 100644 include/boost/signals/detail/named_slot_map.hpp delete mode 100644 include/boost/signals/detail/signal_base.hpp delete mode 100644 include/boost/signals/detail/signals_common.hpp delete mode 100644 include/boost/signals/detail/slot_call_iterator.hpp delete mode 100644 include/boost/signals/signal0.hpp delete mode 100644 include/boost/signals/signal1.hpp delete mode 100644 include/boost/signals/signal10.hpp delete mode 100644 include/boost/signals/signal2.hpp delete mode 100644 include/boost/signals/signal3.hpp delete mode 100644 include/boost/signals/signal4.hpp delete mode 100644 include/boost/signals/signal5.hpp delete mode 100644 include/boost/signals/signal6.hpp delete mode 100644 include/boost/signals/signal7.hpp delete mode 100644 include/boost/signals/signal8.hpp delete mode 100644 include/boost/signals/signal9.hpp delete mode 100644 include/boost/signals/signal_template.hpp delete mode 100644 include/boost/signals/slot.hpp delete mode 100644 include/boost/signals/trackable.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/backbone.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/block.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/constants.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/merge_blocks.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/move_blocks.hpp create mode 100644 include/boost/sort/block_indirect_sort/blk_detail/parallel_sort.hpp create mode 100644 include/boost/sort/block_indirect_sort/block_indirect_sort.hpp create mode 100644 include/boost/sort/common/deque_cnc.hpp create mode 100644 include/boost/sort/common/file_vector.hpp create mode 100644 include/boost/sort/common/indirect.hpp create mode 100644 include/boost/sort/common/int_array.hpp create mode 100644 include/boost/sort/common/merge_block.hpp create mode 100644 include/boost/sort/common/merge_four.hpp create mode 100644 include/boost/sort/common/merge_vector.hpp create mode 100755 include/boost/sort/common/pivot.hpp create mode 100644 include/boost/sort/common/range.hpp create mode 100644 include/boost/sort/common/rearrange.hpp create mode 100644 include/boost/sort/common/scheduler.hpp create mode 100644 include/boost/sort/common/sort_basic.hpp create mode 100644 include/boost/sort/common/spinlock.hpp create mode 100644 include/boost/sort/common/stack_cnc.hpp create mode 100644 include/boost/sort/common/time_measure.hpp create mode 100644 include/boost/sort/common/util/algorithm.hpp create mode 100644 include/boost/sort/common/util/atomic.hpp create mode 100644 include/boost/sort/common/util/circular_buffer.hpp create mode 100644 include/boost/sort/common/util/insert.hpp create mode 100644 include/boost/sort/common/util/merge.hpp create mode 100644 include/boost/sort/common/util/search.hpp create mode 100644 include/boost/sort/common/util/traits.hpp create mode 100644 include/boost/sort/flat_stable_sort/flat_stable_sort.hpp create mode 100644 include/boost/sort/heap_sort/heap_sort.hpp create mode 100644 include/boost/sort/insert_sort/insert_sort.hpp create mode 100644 include/boost/sort/parallel_stable_sort/parallel_stable_sort.hpp create mode 100644 include/boost/sort/pdqsort/pdqsort.hpp create mode 100644 include/boost/sort/sample_sort/sample_sort.hpp create mode 100644 include/boost/sort/spinsort/spinsort.hpp create mode 100644 include/boost/spirit/home/support/algorithm/any_if_ns_so.hpp create mode 100644 include/boost/spirit/home/support/algorithm/any_ns_so.hpp delete mode 100644 include/boost/spirit/home/support/detail/lexer/serialise.hpp delete mode 100644 include/boost/spirit/home/support/detail/math/detail/fp_traits.hpp delete mode 100644 include/boost/spirit/home/support/detail/math/fpclassify.hpp delete mode 100644 include/boost/spirit/home/support/detail/math/signbit.hpp create mode 100644 include/boost/spirit/home/x3/support/traits/is_range.hpp delete mode 100644 include/boost/spirit/home/x3/support/traits/make_attribute.hpp rename include/boost/{fusion/support/detail/is_view.hpp => spirit/include/support_any_if_ns_so.hpp} (51%) rename include/boost/{fusion/support/detail/unknown_key.hpp => spirit/include/support_any_ns_so.hpp} (52%) create mode 100644 include/boost/stacktrace/detail/to_dec_array.hpp create mode 100644 include/boost/stacktrace/detail/try_dec_convert.hpp create mode 100644 include/boost/system/detail/config.hpp delete mode 100644 include/boost/system/detail/error_code.ipp create mode 100644 include/boost/system/detail/generic_category.hpp delete mode 100644 include/boost/system/detail/local_free_on_destruction.hpp create mode 100644 include/boost/system/detail/std_interoperability.hpp create mode 100644 include/boost/system/detail/system_category_posix.hpp create mode 100644 include/boost/system/detail/system_category_win32.hpp delete mode 100644 include/boost/test/data/generators.hpp create mode 100644 include/boost/test/data/monomorphic/delayed.hpp delete mode 100644 include/boost/test/detail/workaround.hpp create mode 100644 include/boost/test/utils/timer.hpp delete mode 100644 include/boost/test/utils/trivial_singleton.hpp create mode 100644 include/boost/thread/detail/platform_time.hpp create mode 100644 include/boost/thread/detail/thread_safety.hpp create mode 100644 include/boost/thread/interruption.hpp create mode 100644 include/boost/thread/pthread/pthread_helpers.hpp delete mode 100644 include/boost/thread/pthread/shared_mutex_assert.hpp delete mode 100644 include/boost/thread/pthread/timespec.hpp delete mode 100644 include/boost/thread/v2/thread.hpp create mode 100644 include/boost/type_erasure/detail/member11.hpp create mode 100644 include/boost/type_erasure/detail/meta.hpp create mode 100644 include/boost/type_traits/copy_cv_ref.hpp create mode 100644 include/boost/type_traits/copy_reference.hpp create mode 100644 include/boost/type_traits/detail/detector.hpp create mode 100644 include/boost/type_traits/detail/is_function_cxx_03.hpp create mode 100644 include/boost/type_traits/detail/is_function_cxx_11.hpp create mode 100644 include/boost/type_traits/detail/is_function_msvc10_fix.hpp create mode 100644 include/boost/type_traits/detail/is_likely_lambda.hpp create mode 100644 include/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp create mode 100644 include/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp create mode 100644 include/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp create mode 100644 include/boost/type_traits/detected.hpp create mode 100644 include/boost/type_traits/detected_or.hpp create mode 100644 include/boost/type_traits/enable_if.hpp create mode 100644 include/boost/type_traits/is_bounded_array.hpp create mode 100644 include/boost/type_traits/is_complete.hpp create mode 100644 include/boost/type_traits/is_detected.hpp create mode 100644 include/boost/type_traits/is_detected_convertible.hpp create mode 100644 include/boost/type_traits/is_detected_exact.hpp create mode 100644 include/boost/type_traits/is_list_constructible.hpp create mode 100644 include/boost/type_traits/is_noncopyable.hpp create mode 100644 include/boost/type_traits/is_nothrow_swappable.hpp create mode 100644 include/boost/type_traits/is_unbounded_array.hpp create mode 100644 include/boost/type_traits/nonesuch.hpp create mode 100644 include/boost/typeof/constant.hpp create mode 100644 include/boost/utility/detail/minstd_rand.hpp create mode 100644 include/boost/uuid/detail/random_provider.hpp create mode 100644 include/boost/uuid/detail/random_provider_arc4random.ipp create mode 100644 include/boost/uuid/detail/random_provider_bcrypt.ipp create mode 100644 include/boost/uuid/detail/random_provider_detect_platform.hpp create mode 100644 include/boost/uuid/detail/random_provider_getentropy.ipp create mode 100644 include/boost/uuid/detail/random_provider_getrandom.ipp create mode 100644 include/boost/uuid/detail/random_provider_include_platform.hpp create mode 100644 include/boost/uuid/detail/random_provider_posix.ipp create mode 100644 include/boost/uuid/detail/random_provider_wincrypt.ipp delete mode 100644 include/boost/uuid/detail/seed_rng.hpp create mode 100644 include/boost/uuid/entropy_error.hpp delete mode 100644 include/boost/uuid/seed_rng.hpp delete mode 100644 include/boost/uuid/sha1.hpp create mode 100644 include/boost/uuid/uuid_hash.hpp delete mode 100644 include/boost/variant/detail/generic_result_type.hpp create mode 100644 include/boost/wave/cpplexer/re2clex/cpp.re create mode 100644 include/boost/wave/cpplexer/re2clex/cpp_re.inc create mode 100644 include/boost/wave/cpplexer/re2clex/strict_cpp.re create mode 100644 include/boost/wave/cpplexer/re2clex/strict_cpp_re.inc create mode 100644 include/boost/yap/algorithm.hpp create mode 100644 include/boost/yap/algorithm_fwd.hpp create mode 100644 include/boost/yap/config.hpp create mode 100644 include/boost/yap/detail/algorithm.hpp create mode 100644 include/boost/yap/detail/transform.hpp create mode 100644 include/boost/yap/expression.hpp create mode 100644 include/boost/yap/print.hpp create mode 100644 include/boost/yap/user_macros.hpp create mode 100644 include/boost/yap/yap.hpp rename {libs => lib}/linux/libboost_system.a (100%) rename {libs => lib}/linux/libcrypto.a (100%) rename {libs => lib}/linux/libssl.a (100%) rename {libs => lib}/macosx/libboost_system.a (100%) rename {libs => lib}/macosx/libcrypto.a (100%) rename {libs => lib}/macosx/libssl.a (100%) rename {libs => lib}/windows/boost_date_time.lib (100%) rename {libs => lib}/windows/boost_system.lib (100%) rename {libs => lib}/windows/libcrypto.lib (100%) rename {libs => lib}/windows/libssl.lib (100%) create mode 100644 lib64/linux/libboost_system.a create mode 100644 lib64/linux/libcrypto.a create mode 100644 lib64/linux/libssl.a diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..01ec88be --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.ipp": "cpp" + } +} \ No newline at end of file diff --git a/BuildProjects.bat b/BuildProjects.bat deleted file mode 100644 index 2c0d1a26..00000000 --- a/BuildProjects.bat +++ /dev/null @@ -1,4 +0,0 @@ -premake5 --os=windows --file=BuildProjects.lua vs2010 -premake5 --os=macosx --file=BuildProjects.lua gmake -premake5 --os=linux --file=BuildProjects.lua gmake -pause \ No newline at end of file diff --git a/BuildProjects.lua b/BuildProjects.lua index d2841b77..e361ebb6 100644 --- a/BuildProjects.lua +++ b/BuildProjects.lua @@ -1,3 +1,9 @@ +function os.winSdkVersion() + local reg_arch = iif( os.is64bit(), "\\Wow6432Node\\", "\\" ) + local sdk_version = os.getWindowsRegistry( "HKLM:SOFTWARE" .. reg_arch .."Microsoft\\Microsoft SDKs\\Windows\\v10.0\\ProductVersion" ) + if sdk_version ~= nil then return sdk_version end +end + solution "GWSockets" language "C++" @@ -15,53 +21,60 @@ solution "GWSockets" if os.target() == "macosx" or os.target() == "linux" then - buildoptions{ "-m32 -std=c++11 -fPIC" } - linkoptions{ "-fPIC -static-libstdc++" } + buildoptions { "-std=c++11 -fPIC" } + linkoptions { "-static-libstdc++ -fPIC" } end - configurations - { - "Release" - } - platforms - { - "x32" - } + configurations { "Release" } + platforms { "x86", "x86_64" } - configuration "Release" - defines { "NDEBUG" } - optimize "On" - floatingpoint "Fast" - - if os.target() == "windows" then - - defines{ "WIN32" } + defines { "NDEBUG" } + optimize "On" + floatingpoint "Fast" - elseif os.target() == "linux" then + if os.target() == "windows" then + defines{ "WIN32" } + elseif os.target() == "linux" then + defines{ "LINUX" } + end - defines{ "LINUX" } + local platform + if os.target() == "windows" then + platform = "win" + links { "libcrypto", "libssl", "boost_system", "crypt32" } + elseif os.target() == "macosx" then + platform = "osx" + links { "ssl", "boost_system" } + elseif os.target() == "linux" then + platform = "linux" + links { "ssl", "boost_system", "pthread", "dl", "crypto" } + else + error "Unsupported platform." + end + + + filter "platforms:x86" + architecture "x86" + libdirs { "lib/" .. os.target() } + if os.target() == "windows" then + targetname( "gmsv_gwsockets_" .. platform .. "32") + else + targetname( "gmsv_gwsockets_" .. platform) end + filter "platforms:x86_64" + architecture "x86_64" + libdirs { "lib64/" .. os.target() } + targetname( "gmsv_gwsockets_" .. platform .. "64") + filter {"system:windows", "action:vs*"} + systemversion((os.winSdkVersion() or "10.0.16299") .. ".0") + toolset "v141" + project "GWSockets" defines{ "GMMODULE", "BOOST_ALL_NO_LIB" } files{ "src/**.*" } kind "SharedLib" - libdirs { "libs/" .. os.target() } - local platform - if os.target() == "windows" then - platform = "win32" - links { "libcrypto", "libssl", "boost_system", "crypt32" } - elseif os.target() == "macosx" then - platform = "osx" - links { "ssl", "boost_system" } - elseif os.target() == "linux" then - platform = "linux" - links { "ssl", "boost_system", "pthread", "dl", "crypto" } - else - error "Unsupported platform." - end - targetname( "gmsv_gwsockets_" .. platform) targetprefix ("") targetextension (".dll") - targetdir("out/" .. os.target()) \ No newline at end of file + targetdir("out/" .. os.target()) diff --git a/BuildProjects.sh b/BuildProjects.sh deleted file mode 100644 index 7d4d9ea1..00000000 --- a/BuildProjects.sh +++ /dev/null @@ -1,3 +0,0 @@ -./premake5 --os=windows --file=BuildProjects.lua vs2010 -./premake5 --os=macosx --file=BuildProjects.lua gmake -./premake5 --os=linux --file=BuildProjects.lua gmake \ No newline at end of file diff --git a/README.md b/README.md index faa84bf9..4cdf79f2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # GWSockets + WebSockets for GLua -# Usage +## Usage + Place either `gmsv_gwsockets_win32.dll` (Windows) or `gmsv_gwsockets_linux.dll` (Linux) into your `GarrysMod/lua/bin` folder. On windows you will require the Visual C++ Redistributable 2017, which you can find [here](https://support.microsoft.com/help/2977003/the-latest-supported-visual-c-downloads). *NOTE:* Even though this module is mainly aimed at servers, it can also be used on clients. Just rename the module to `gmcl_gwsockets_os` and it will work on clientside as well. @@ -12,18 +14,20 @@ You will also need to require the module in lua before you will be able to use i require("gwsockets") ``` -# Documentation +## Documentation ### Connecting to a socket server + * First initialize a websocket instance using *NOTE:* URL's must include the scheme ( Either `ws://` or `wss://` ) `Example: "wss://example.com:9999/api/socketserver"` - ```LUA + ```LUA GWSockets.createWebSocket( url, verifyCertificate=true ) ``` + *NOTE:* If you want your websockets to use SSL but don't have a trusted certificate, you can set the second parameter to false. * Next add any cookies or headers you would like to send with the initial request (Optional) @@ -54,14 +58,17 @@ require("gwsockets") ``` * Lastly open the connection + ```LUA WEBSOCKET:open() ``` * Once the socket has been opened you can send messages using the `write` function + ```LUA WEBSOCKET:write( message ) ``` + *NOTE:* You can write messages to the socket before the connection has been established and the socket will wait before sending them until the connection has been established. However, it is best practice to only start sending in the onConnected() callback. @@ -77,67 +84,73 @@ require("gwsockets") * `closeNow` will immediately terminate the connection and discard all queued messages * You can cancel any queued outbound messages by calling + ```LUA WEBSOCKET:clearQueue() ``` + * You can check if the websocket is connected using + ```LUA WEBSOCKET:isConnected() ``` + *NOTE:* You should avoid using this and instead rely on the callbacks. - - ## Example: + ```LUA require("gwsockets") local socket = GWSockets.createWebSocket("wss://echo.websocket.org/") function socket:onMessage(txt) - print("Received: ", txt) + print("Received: ", txt) end function socket:onError(txt) - print("Error: ", txt) + print("Error: ", txt) end -- We start writing only after being connected here. Technically this is not required as this library -- just waits until the socket is connected before sending, but it's probably good practice function socket:onConnected() - print("Connected to echo server") - -- Write Echo once every second, 10 times - timer.Create("SocketWriteTimer", 1, 0, function() - print("Writing: ", "Echo") - socket:write("Echo") - end) - timer.Simple(10, function() - timer.Remove("SocketWriteTimer") - -- Even if some of the messages have not reached the other side yet, this type of close makes sure - -- to only close the socket once all queued messages have been received by the peer. - socket:close() - end) + print("Connected to echo server") + -- Write Echo once every second, 10 times + timer.Create("SocketWriteTimer", 1, 0, function() + print("Writing: ", "Echo") + socket:write("Echo") + end) + timer.Simple(10, function() + timer.Remove("SocketWriteTimer") + -- Even if some of the messages have not reached the other side yet, this type of close makes sure + -- to only close the socket once all queued messages have been received by the peer. + socket:close() + end) end function socket:onDisconnected() - print("WebSocket disconnected") + print("WebSocket disconnected") end socket:open() ``` -# Build +## Build + Requires premake5. Run BuildProjects.sh or BuildProjects.bat with premake5 being installed. Then use the appropriate generated solution for your system in the solutions/ folder and build the project. ### Windows + On Windows all you need to do is open the generated visual studio project and build the dll. All libraries and headers are provided already. ### Linux + On linux only essential programs for building C++ programs are required. On Ubuntu 64-bit these are: + ```console sudo apt-get install build-essential gcc-multilib g++-multilib ``` The required static libraries for linux are included in this repository to avoid library/header version mismatching, but feel free to use your OS' libraries instead. - diff --git a/include/boost/algorithm/algorithm.hpp b/include/boost/algorithm/algorithm.hpp index ab0d4aff..2bbee1d2 100644 --- a/include/boost/algorithm/algorithm.hpp +++ b/include/boost/algorithm/algorithm.hpp @@ -25,10 +25,10 @@ namespace boost { namespace algorithm { template -T identity_operation ( std::multiplies ) { return T(1); } +BOOST_CXX14_CONSTEXPR T identity_operation ( std::multiplies ) { return T(1); } template -T identity_operation ( std::plus ) { return T(0); } +BOOST_CXX14_CONSTEXPR T identity_operation ( std::plus ) { return T(0); } /// \fn power ( T x, Integer n ) @@ -40,7 +40,7 @@ T identity_operation ( std::plus ) { return T(0); } // \remark Taken from Knuth, The Art of Computer Programming, Volume 2: // Seminumerical Algorithms, Section 4.6.3 template -typename boost::enable_if, T>::type +BOOST_CXX14_CONSTEXPR typename boost::enable_if, T>::type power (T x, Integer n) { T y = 1; // Should be "T y{1};" if (n == 0) return y; @@ -67,7 +67,7 @@ power (T x, Integer n) { // \remark Taken from Knuth, The Art of Computer Programming, Volume 2: // Seminumerical Algorithms, Section 4.6.3 template -typename boost::enable_if, T>::type +BOOST_CXX14_CONSTEXPR typename boost::enable_if, T>::type power (T x, Integer n, Operation op) { T y = identity_operation(op); if (n == 0) return y; diff --git a/include/boost/algorithm/apply_permutation.hpp b/include/boost/algorithm/apply_permutation.hpp new file mode 100644 index 00000000..b9de0ded --- /dev/null +++ b/include/boost/algorithm/apply_permutation.hpp @@ -0,0 +1,126 @@ +/* + Copyright (c) Alexander Zaitsev , 2017 + + Distributed under the Boost Software License, Version 1.0. (See + accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) + + See http://www.boost.org/ for latest version. + + + Based on https://blogs.msdn.microsoft.com/oldnewthing/20170104-00/?p=95115 +*/ + +/// \file apply_permutation.hpp +/// \brief Apply permutation to a sequence. +/// \author Alexander Zaitsev + +#ifndef BOOST_ALGORITHM_APPLY_PERMUTATION_HPP +#define BOOST_ALGORITHM_APPLY_PERMUTATION_HPP + +#include +#include + +#include +#include + +namespace boost { namespace algorithm +{ + +/// \fn apply_permutation ( RandomAccessIterator1 item_begin, RandomAccessIterator1 item_end, RandomAccessIterator2 ind_begin ) +/// \brief Reorder item sequence with index sequence order +/// +/// \param item_begin The start of the item sequence +/// \param item_end One past the end of the item sequence +/// \param ind_begin The start of the index sequence. +/// +/// \note Item sequence size should be equal to index size. Otherwise behavior is undefined. +/// Complexity: O(N). +template +void +apply_permutation(RandomAccessIterator1 item_begin, RandomAccessIterator1 item_end, + RandomAccessIterator2 ind_begin, RandomAccessIterator2 ind_end) +{ + typedef typename std::iterator_traits::difference_type Diff; + typedef typename std::iterator_traits::difference_type Index; + using std::swap; + Diff size = std::distance(item_begin, item_end); + for (Diff i = 0; i < size; i++) + { + Diff current = i; + while (i != ind_begin[current]) + { + Index next = ind_begin[current]; + swap(item_begin[current], item_begin[next]); + ind_begin[current] = current; + current = next; + } + ind_begin[current] = current; + } +} + +/// \fn apply_reverse_permutation ( RandomAccessIterator1 item_begin, RandomAccessIterator1 item_end, RandomAccessIterator2 ind_begin ) +/// \brief Reorder item sequence with index sequence order +/// +/// \param item_begin The start of the item sequence +/// \param item_end One past the end of the item sequence +/// \param ind_begin The start of the index sequence. +/// +/// \note Item sequence size should be equal to index size. Otherwise behavior is undefined. +/// Complexity: O(N). +template +void +apply_reverse_permutation( + RandomAccessIterator1 item_begin, + RandomAccessIterator1 item_end, + RandomAccessIterator2 ind_begin, + RandomAccessIterator2 ind_end) +{ + typedef typename std::iterator_traits::difference_type Diff; + using std::swap; + Diff length = std::distance(item_begin, item_end); + for (Diff i = 0; i < length; i++) + { + while (i != ind_begin[i]) + { + Diff next = ind_begin[i]; + swap(item_begin[i], item_begin[next]); + swap(ind_begin[i], ind_begin[next]); + } + } +} + +/// \fn apply_permutation ( Range1 item_range, Range2 ind_range ) +/// \brief Reorder item sequence with index sequence order +/// +/// \param item_range The item sequence +/// \param ind_range The index sequence +/// +/// \note Item sequence size should be equal to index size. Otherwise behavior is undefined. +/// Complexity: O(N). +template +void +apply_permutation(Range1& item_range, Range2& ind_range) +{ + apply_permutation(boost::begin(item_range), boost::end(item_range), + boost::begin(ind_range), boost::end(ind_range)); +} + +/// \fn apply_reverse_permutation ( Range1 item_range, Range2 ind_range ) +/// \brief Reorder item sequence with index sequence order +/// +/// \param item_range The item sequence +/// \param ind_range The index sequence +/// +/// \note Item sequence size should be equal to index size. Otherwise behavior is undefined. +/// Complexity: O(N). +template +void +apply_reverse_permutation(Range1& item_range, Range2& ind_range) +{ + apply_reverse_permutation(boost::begin(item_range), boost::end(item_range), + boost::begin(ind_range), boost::end(ind_range)); +} + +}} +#endif //BOOST_ALGORITHM_APPLY_PERMUTATION_HPP diff --git a/include/boost/algorithm/clamp.hpp b/include/boost/algorithm/clamp.hpp index 7bfa47ec..d027acdf 100644 --- a/include/boost/algorithm/clamp.hpp +++ b/include/boost/algorithm/clamp.hpp @@ -46,7 +46,7 @@ namespace boost { namespace algorithm { /// p ( a, b ) returns a boolean. /// template - T const & clamp ( T const& val, + BOOST_CXX14_CONSTEXPR T const & clamp ( T const& val, typename boost::mpl::identity::type const & lo, typename boost::mpl::identity::type const & hi, Pred p ) { @@ -68,11 +68,11 @@ namespace boost { namespace algorithm { /// \param hi The upper bound of the range to be clamped to /// template - T const& clamp ( const T& val, + BOOST_CXX14_CONSTEXPR T const& clamp ( const T& val, typename boost::mpl::identity::type const & lo, typename boost::mpl::identity::type const & hi ) { - return (clamp) ( val, lo, hi, std::less()); + return boost::algorithm::clamp ( val, lo, hi, std::less()); } /// \fn clamp_range ( InputIterator first, InputIterator last, OutputIterator out, @@ -87,13 +87,13 @@ namespace boost { namespace algorithm { /// \param hi The upper bound of the range to be clamped to /// template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, + BOOST_CXX14_CONSTEXPR OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, typename std::iterator_traits::value_type const & lo, typename std::iterator_traits::value_type const & hi ) { // this could also be written with bind and std::transform while ( first != last ) - *out++ = clamp ( *first++, lo, hi ); + *out++ = boost::algorithm::clamp ( *first++, lo, hi ); return out; } @@ -108,12 +108,12 @@ namespace boost { namespace algorithm { /// \param hi The upper bound of the range to be clamped to /// template - typename boost::disable_if_c::value, OutputIterator>::type + BOOST_CXX14_CONSTEXPR typename boost::disable_if_c::value, OutputIterator>::type clamp_range ( const Range &r, OutputIterator out, typename std::iterator_traits::type>::value_type const & lo, typename std::iterator_traits::type>::value_type const & hi ) { - return clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi ); + return boost::algorithm::clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi ); } @@ -133,13 +133,13 @@ namespace boost { namespace algorithm { /// template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, + BOOST_CXX14_CONSTEXPR OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, typename std::iterator_traits::value_type const & lo, typename std::iterator_traits::value_type const & hi, Pred p ) { // this could also be written with bind and std::transform while ( first != last ) - *out++ = clamp ( *first++, lo, hi, p ); + *out++ = boost::algorithm::clamp ( *first++, lo, hi, p ); return out; } @@ -160,13 +160,13 @@ namespace boost { namespace algorithm { // Disable this template if the first two parameters are the same type; // In that case, the user will get the two iterator version. template - typename boost::disable_if_c::value, OutputIterator>::type + BOOST_CXX14_CONSTEXPR typename boost::disable_if_c::value, OutputIterator>::type clamp_range ( const Range &r, OutputIterator out, typename std::iterator_traits::type>::value_type const & lo, typename std::iterator_traits::type>::value_type const & hi, Pred p ) { - return clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi, p ); + return boost::algorithm::clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi, p ); } diff --git a/include/boost/algorithm/cxx11/all_of.hpp b/include/boost/algorithm/cxx11/all_of.hpp index 8280b18d..527bbd50 100644 --- a/include/boost/algorithm/cxx11/all_of.hpp +++ b/include/boost/algorithm/cxx11/all_of.hpp @@ -27,7 +27,7 @@ namespace boost { namespace algorithm { /// /// \note This function is part of the C++2011 standard library. template -bool all_of ( InputIterator first, InputIterator last, Predicate p ) +BOOST_CXX14_CONSTEXPR bool all_of ( InputIterator first, InputIterator last, Predicate p ) { for ( ; first != last; ++first ) if ( !p(*first)) @@ -43,7 +43,7 @@ bool all_of ( InputIterator first, InputIterator last, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -bool all_of ( const Range &r, Predicate p ) +BOOST_CXX14_CONSTEXPR bool all_of ( const Range &r, Predicate p ) { return boost::algorithm::all_of ( boost::begin (r), boost::end (r), p ); } @@ -57,7 +57,7 @@ bool all_of ( const Range &r, Predicate p ) /// \param val A value to compare against /// template -bool all_of_equal ( InputIterator first, InputIterator last, const T &val ) +BOOST_CXX14_CONSTEXPR bool all_of_equal ( InputIterator first, InputIterator last, const T &val ) { for ( ; first != last; ++first ) if ( val != *first ) @@ -73,7 +73,7 @@ bool all_of_equal ( InputIterator first, InputIterator last, const T &val ) /// \param val A value to compare against /// template -bool all_of_equal ( const Range &r, const T &val ) +BOOST_CXX14_CONSTEXPR bool all_of_equal ( const Range &r, const T &val ) { return boost::algorithm::all_of_equal ( boost::begin (r), boost::end (r), val ); } diff --git a/include/boost/algorithm/cxx11/any_of.hpp b/include/boost/algorithm/cxx11/any_of.hpp index e68135a2..d9e24141 100644 --- a/include/boost/algorithm/cxx11/any_of.hpp +++ b/include/boost/algorithm/cxx11/any_of.hpp @@ -28,7 +28,7 @@ namespace boost { namespace algorithm { /// \param p A predicate for testing the elements of the sequence /// template -bool any_of ( InputIterator first, InputIterator last, Predicate p ) +BOOST_CXX14_CONSTEXPR bool any_of ( InputIterator first, InputIterator last, Predicate p ) { for ( ; first != last; ++first ) if ( p(*first)) @@ -44,7 +44,7 @@ bool any_of ( InputIterator first, InputIterator last, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -bool any_of ( const Range &r, Predicate p ) +BOOST_CXX14_CONSTEXPR bool any_of ( const Range &r, Predicate p ) { return boost::algorithm::any_of (boost::begin (r), boost::end (r), p); } @@ -58,7 +58,7 @@ bool any_of ( const Range &r, Predicate p ) /// \param val A value to compare against /// template -bool any_of_equal ( InputIterator first, InputIterator last, const V &val ) +BOOST_CXX14_CONSTEXPR bool any_of_equal ( InputIterator first, InputIterator last, const V &val ) { for ( ; first != last; ++first ) if ( val == *first ) @@ -74,7 +74,7 @@ bool any_of_equal ( InputIterator first, InputIterator last, const V &val ) /// \param val A value to compare against /// template -bool any_of_equal ( const Range &r, const V &val ) +BOOST_CXX14_CONSTEXPR bool any_of_equal ( const Range &r, const V &val ) { return boost::algorithm::any_of_equal (boost::begin (r), boost::end (r), val); } diff --git a/include/boost/algorithm/cxx11/copy_if.hpp b/include/boost/algorithm/cxx11/copy_if.hpp index 73e85d99..dc1fdeff 100644 --- a/include/boost/algorithm/cxx11/copy_if.hpp +++ b/include/boost/algorithm/cxx11/copy_if.hpp @@ -29,7 +29,7 @@ namespace boost { namespace algorithm { /// \param p A predicate for testing the elements of the range /// \note This function is part of the C++2011 standard library. template -OutputIterator copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) +BOOST_CXX14_CONSTEXPR OutputIterator copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) { for ( ; first != last; ++first ) if (p(*first)) @@ -47,7 +47,7 @@ OutputIterator copy_if ( InputIterator first, InputIterator last, OutputIterator /// \param p A predicate for testing the elements of the range /// template -OutputIterator copy_if ( const Range &r, OutputIterator result, Predicate p ) +BOOST_CXX14_CONSTEXPR OutputIterator copy_if ( const Range &r, OutputIterator result, Predicate p ) { return boost::algorithm::copy_if (boost::begin (r), boost::end(r), result, p); } @@ -64,7 +64,7 @@ OutputIterator copy_if ( const Range &r, OutputIterator result, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -std::pair +BOOST_CXX14_CONSTEXPR std::pair copy_while ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) { for ( ; first != last && p(*first); ++first ) @@ -82,7 +82,7 @@ copy_while ( InputIterator first, InputIterator last, OutputIterator result, Pre /// \param p A predicate for testing the elements of the range /// template -std::pair::type, OutputIterator> +BOOST_CXX14_CONSTEXPR std::pair::type, OutputIterator> copy_while ( const Range &r, OutputIterator result, Predicate p ) { return boost::algorithm::copy_while (boost::begin (r), boost::end(r), result, p); @@ -100,7 +100,7 @@ copy_while ( const Range &r, OutputIterator result, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -std::pair +BOOST_CXX14_CONSTEXPR std::pair copy_until ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) { for ( ; first != last && !p(*first); ++first ) @@ -118,7 +118,7 @@ copy_until ( InputIterator first, InputIterator last, OutputIterator result, Pre /// \param p A predicate for testing the elements of the range /// template -std::pair::type, OutputIterator> +BOOST_CXX14_CONSTEXPR std::pair::type, OutputIterator> copy_until ( const Range &r, OutputIterator result, Predicate p ) { return boost::algorithm::copy_until (boost::begin (r), boost::end(r), result, p); diff --git a/include/boost/algorithm/cxx11/copy_n.hpp b/include/boost/algorithm/cxx11/copy_n.hpp index ac880856..e4bebd07 100644 --- a/include/boost/algorithm/cxx11/copy_n.hpp +++ b/include/boost/algorithm/cxx11/copy_n.hpp @@ -24,7 +24,7 @@ namespace boost { namespace algorithm { /// \param result An output iterator to write the results into /// \note This function is part of the C++2011 standard library. template -OutputIterator copy_n ( InputIterator first, Size n, OutputIterator result ) +BOOST_CXX14_CONSTEXPR OutputIterator copy_n ( InputIterator first, Size n, OutputIterator result ) { for ( ; n > 0; --n, ++first, ++result ) *result = *first; diff --git a/include/boost/algorithm/cxx11/find_if_not.hpp b/include/boost/algorithm/cxx11/find_if_not.hpp index 02ff4dce..6f5799a3 100644 --- a/include/boost/algorithm/cxx11/find_if_not.hpp +++ b/include/boost/algorithm/cxx11/find_if_not.hpp @@ -26,7 +26,7 @@ namespace boost { namespace algorithm { /// \param p A predicate for testing the elements of the range /// \note This function is part of the C++2011 standard library. template -InputIterator find_if_not ( InputIterator first, InputIterator last, Predicate p ) +BOOST_CXX14_CONSTEXPR InputIterator find_if_not ( InputIterator first, InputIterator last, Predicate p ) { for ( ; first != last; ++first ) if ( !p(*first)) @@ -42,7 +42,7 @@ InputIterator find_if_not ( InputIterator first, InputIterator last, Predicate p /// \param p A predicate for testing the elements of the range /// template -typename boost::range_iterator::type find_if_not ( const Range &r, Predicate p ) +BOOST_CXX14_CONSTEXPR typename boost::range_iterator::type find_if_not ( const Range &r, Predicate p ) { return boost::algorithm::find_if_not (boost::begin (r), boost::end(r), p); } diff --git a/include/boost/algorithm/cxx11/iota.hpp b/include/boost/algorithm/cxx11/iota.hpp index 675093f0..6efc4d8d 100644 --- a/include/boost/algorithm/cxx11/iota.hpp +++ b/include/boost/algorithm/cxx11/iota.hpp @@ -25,7 +25,7 @@ namespace boost { namespace algorithm { /// \param value The initial value of the sequence to be generated /// \note This function is part of the C++2011 standard library. template -void iota ( ForwardIterator first, ForwardIterator last, T value ) +BOOST_CXX14_CONSTEXPR void iota ( ForwardIterator first, ForwardIterator last, T value ) { for ( ; first != last; ++first, ++value ) *first = value; @@ -38,7 +38,7 @@ void iota ( ForwardIterator first, ForwardIterator last, T value ) /// \param value The initial value of the sequence to be generated /// template -void iota ( Range &r, T value ) +BOOST_CXX14_CONSTEXPR void iota ( Range &r, T value ) { boost::algorithm::iota (boost::begin(r), boost::end(r), value); } @@ -52,7 +52,7 @@ void iota ( Range &r, T value ) /// \param n The number of items to write /// template -OutputIterator iota_n ( OutputIterator out, T value, std::size_t n ) +BOOST_CXX14_CONSTEXPR OutputIterator iota_n ( OutputIterator out, T value, std::size_t n ) { for ( ; n > 0; --n, ++value ) *out++ = value; diff --git a/include/boost/algorithm/cxx11/is_partitioned.hpp b/include/boost/algorithm/cxx11/is_partitioned.hpp index c0076b93..fb2c5a17 100644 --- a/include/boost/algorithm/cxx11/is_partitioned.hpp +++ b/include/boost/algorithm/cxx11/is_partitioned.hpp @@ -26,7 +26,7 @@ namespace boost { namespace algorithm { /// \param p The predicate to test the values with /// \note This function is part of the C++2011 standard library. template -bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) +BOOST_CXX14_CONSTEXPR bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) { // Run through the part that satisfy the predicate for ( ; first != last; ++first ) @@ -47,7 +47,7 @@ bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p /// \param p The predicate to test the values with /// template -bool is_partitioned ( const Range &r, UnaryPredicate p ) +BOOST_CXX14_CONSTEXPR bool is_partitioned ( const Range &r, UnaryPredicate p ) { return boost::algorithm::is_partitioned (boost::begin(r), boost::end(r), p); } diff --git a/include/boost/algorithm/cxx11/is_sorted.hpp b/include/boost/algorithm/cxx11/is_sorted.hpp index f4dbb38c..27662116 100644 --- a/include/boost/algorithm/cxx11/is_sorted.hpp +++ b/include/boost/algorithm/cxx11/is_sorted.hpp @@ -34,7 +34,7 @@ namespace boost { namespace algorithm { /// \param p A binary predicate that returns true if two elements are ordered. /// template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) + BOOST_CXX14_CONSTEXPR ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) { if ( first == last ) return last; // the empty sequence is ordered ForwardIterator next = first; @@ -54,7 +54,7 @@ namespace boost { namespace algorithm { /// \param last One past the end of the sequence /// template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last ) { typedef typename std::iterator_traits::value_type value_type; return boost::algorithm::is_sorted_until ( first, last, std::less()); @@ -69,7 +69,7 @@ namespace boost { namespace algorithm { /// \param p A binary predicate that returns true if two elements are ordered. /// template - bool is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) + BOOST_CXX14_CONSTEXPR bool is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) { return boost::algorithm::is_sorted_until (first, last, p) == last; } @@ -81,7 +81,7 @@ namespace boost { namespace algorithm { /// \param last One past the end of the sequence /// template - bool is_sorted ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR bool is_sorted ( ForwardIterator first, ForwardIterator last ) { return boost::algorithm::is_sorted_until (first, last) == last; } @@ -98,7 +98,7 @@ namespace boost { namespace algorithm { /// \param p A binary predicate that returns true if two elements are ordered. /// template - typename boost::lazy_disable_if_c< + BOOST_CXX14_CONSTEXPR typename boost::lazy_disable_if_c< boost::is_same::value, typename boost::range_iterator >::type is_sorted_until ( const R &range, Pred p ) @@ -113,7 +113,7 @@ namespace boost { namespace algorithm { /// \param range The range to be tested. /// template - typename boost::range_iterator::type is_sorted_until ( const R &range ) + BOOST_CXX14_CONSTEXPR typename boost::range_iterator::type is_sorted_until ( const R &range ) { return boost::algorithm::is_sorted_until ( boost::begin ( range ), boost::end ( range )); } @@ -126,7 +126,7 @@ namespace boost { namespace algorithm { /// \param p A binary predicate that returns true if two elements are ordered. /// template - typename boost::lazy_disable_if_c< boost::is_same::value, boost::mpl::identity >::type + BOOST_CXX14_CONSTEXPR typename boost::lazy_disable_if_c< boost::is_same::value, boost::mpl::identity >::type is_sorted ( const R &range, Pred p ) { return boost::algorithm::is_sorted ( boost::begin ( range ), boost::end ( range ), p ); @@ -139,7 +139,7 @@ namespace boost { namespace algorithm { /// \param range The range to be tested. /// template - bool is_sorted ( const R &range ) + BOOST_CXX14_CONSTEXPR bool is_sorted ( const R &range ) { return boost::algorithm::is_sorted ( boost::begin ( range ), boost::end ( range )); } @@ -159,7 +159,7 @@ namespace boost { namespace algorithm { /// \note This function will return true for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_strictly_increasing instead. template - bool is_increasing ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR bool is_increasing ( ForwardIterator first, ForwardIterator last ) { typedef typename std::iterator_traits::value_type value_type; return boost::algorithm::is_sorted (first, last, std::less()); @@ -175,7 +175,7 @@ namespace boost { namespace algorithm { /// \note This function will return true for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_strictly_increasing instead. template - bool is_increasing ( const R &range ) + BOOST_CXX14_CONSTEXPR bool is_increasing ( const R &range ) { return is_increasing ( boost::begin ( range ), boost::end ( range )); } @@ -192,7 +192,7 @@ namespace boost { namespace algorithm { /// \note This function will return true for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_strictly_decreasing instead. template - bool is_decreasing ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR bool is_decreasing ( ForwardIterator first, ForwardIterator last ) { typedef typename std::iterator_traits::value_type value_type; return boost::algorithm::is_sorted (first, last, std::greater()); @@ -207,7 +207,7 @@ namespace boost { namespace algorithm { /// \note This function will return true for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_strictly_decreasing instead. template - bool is_decreasing ( const R &range ) + BOOST_CXX14_CONSTEXPR bool is_decreasing ( const R &range ) { return is_decreasing ( boost::begin ( range ), boost::end ( range )); } @@ -224,7 +224,7 @@ namespace boost { namespace algorithm { /// \note This function will return false for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_increasing instead. template - bool is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR bool is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) { typedef typename std::iterator_traits::value_type value_type; return boost::algorithm::is_sorted (first, last, std::less_equal()); @@ -239,7 +239,7 @@ namespace boost { namespace algorithm { /// \note This function will return false for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_increasing instead. template - bool is_strictly_increasing ( const R &range ) + BOOST_CXX14_CONSTEXPR bool is_strictly_increasing ( const R &range ) { return is_strictly_increasing ( boost::begin ( range ), boost::end ( range )); } @@ -255,7 +255,7 @@ namespace boost { namespace algorithm { /// \note This function will return false for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_decreasing instead. template - bool is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) + BOOST_CXX14_CONSTEXPR bool is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) { typedef typename std::iterator_traits::value_type value_type; return boost::algorithm::is_sorted (first, last, std::greater_equal()); @@ -270,7 +270,7 @@ namespace boost { namespace algorithm { /// \note This function will return false for sequences that contain items that compare /// equal. If that is not what you intended, you should use is_decreasing instead. template - bool is_strictly_decreasing ( const R &range ) + BOOST_CXX14_CONSTEXPR bool is_strictly_decreasing ( const R &range ) { return is_strictly_decreasing ( boost::begin ( range ), boost::end ( range )); } diff --git a/include/boost/algorithm/cxx11/none_of.hpp b/include/boost/algorithm/cxx11/none_of.hpp index ba13144f..e537c267 100644 --- a/include/boost/algorithm/cxx11/none_of.hpp +++ b/include/boost/algorithm/cxx11/none_of.hpp @@ -26,7 +26,7 @@ namespace boost { namespace algorithm { /// \param p A predicate for testing the elements of the sequence /// template -bool none_of ( InputIterator first, InputIterator last, Predicate p ) +BOOST_CXX14_CONSTEXPR bool none_of ( InputIterator first, InputIterator last, Predicate p ) { for ( ; first != last; ++first ) if ( p(*first)) @@ -42,7 +42,7 @@ bool none_of ( InputIterator first, InputIterator last, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -bool none_of ( const Range &r, Predicate p ) +BOOST_CXX14_CONSTEXPR bool none_of ( const Range &r, Predicate p ) { return boost::algorithm::none_of (boost::begin (r), boost::end (r), p ); } @@ -56,7 +56,7 @@ bool none_of ( const Range &r, Predicate p ) /// \param val A value to compare against /// template -bool none_of_equal ( InputIterator first, InputIterator last, const V &val ) +BOOST_CXX14_CONSTEXPR bool none_of_equal ( InputIterator first, InputIterator last, const V &val ) { for ( ; first != last; ++first ) if ( val == *first ) @@ -72,7 +72,7 @@ bool none_of_equal ( InputIterator first, InputIterator last, const V &val ) /// \param val A value to compare against /// template -bool none_of_equal ( const Range &r, const V & val ) +BOOST_CXX14_CONSTEXPR bool none_of_equal ( const Range &r, const V & val ) { return boost::algorithm::none_of_equal (boost::begin (r), boost::end (r), val); } diff --git a/include/boost/algorithm/cxx11/one_of.hpp b/include/boost/algorithm/cxx11/one_of.hpp index b6e8c771..3b95180d 100644 --- a/include/boost/algorithm/cxx11/one_of.hpp +++ b/include/boost/algorithm/cxx11/one_of.hpp @@ -12,7 +12,6 @@ #ifndef BOOST_ALGORITHM_ONE_OF_HPP #define BOOST_ALGORITHM_ONE_OF_HPP -#include // for std::find and std::find_if #include #include @@ -28,12 +27,16 @@ namespace boost { namespace algorithm { /// \param p A predicate for testing the elements of the sequence /// template -bool one_of ( InputIterator first, InputIterator last, Predicate p ) +BOOST_CXX14_CONSTEXPR bool one_of ( InputIterator first, InputIterator last, Predicate p ) { - InputIterator i = std::find_if (first, last, p); - if (i == last) +// find_if + for (; first != last; ++first) + if (p(*first)) + break; + + if (first == last) return false; // Didn't occur at all - return boost::algorithm::none_of (++i, last, p); + return boost::algorithm::none_of (++first, last, p); } /// \fn one_of ( const Range &r, Predicate p ) @@ -43,7 +46,7 @@ bool one_of ( InputIterator first, InputIterator last, Predicate p ) /// \param p A predicate for testing the elements of the range /// template -bool one_of ( const Range &r, Predicate p ) +BOOST_CXX14_CONSTEXPR bool one_of ( const Range &r, Predicate p ) { return boost::algorithm::one_of ( boost::begin (r), boost::end (r), p ); } @@ -57,12 +60,16 @@ bool one_of ( const Range &r, Predicate p ) /// \param val A value to compare against /// template -bool one_of_equal ( InputIterator first, InputIterator last, const V &val ) +BOOST_CXX14_CONSTEXPR bool one_of_equal ( InputIterator first, InputIterator last, const V &val ) { - InputIterator i = std::find (first, last, val); // find first occurrence of 'val' - if (i == last) +// find + for (; first != last; ++first) + if (*first == val) + break; + + if (first == last) return false; // Didn't occur at all - return boost::algorithm::none_of_equal (++i, last, val); + return boost::algorithm::none_of_equal (++first, last, val); } /// \fn one_of_equal ( const Range &r, const V &val ) @@ -72,7 +79,7 @@ bool one_of_equal ( InputIterator first, InputIterator last, const V &val ) /// \param val A value to compare against /// template -bool one_of_equal ( const Range &r, const V &val ) +BOOST_CXX14_CONSTEXPR bool one_of_equal ( const Range &r, const V &val ) { return boost::algorithm::one_of_equal ( boost::begin (r), boost::end (r), val ); } diff --git a/include/boost/algorithm/cxx11/partition_copy.hpp b/include/boost/algorithm/cxx11/partition_copy.hpp index f347f212..635b1e73 100644 --- a/include/boost/algorithm/cxx11/partition_copy.hpp +++ b/include/boost/algorithm/cxx11/partition_copy.hpp @@ -14,6 +14,7 @@ #include // for std::pair +#include #include #include @@ -35,7 +36,7 @@ namespace boost { namespace algorithm { /// \note This function is part of the C++2011 standard library. template -std::pair +BOOST_CXX14_CONSTEXPR std::pair partition_copy ( InputIterator first, InputIterator last, OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) { @@ -57,7 +58,7 @@ partition_copy ( InputIterator first, InputIterator last, /// template -std::pair +BOOST_CXX14_CONSTEXPR std::pair partition_copy ( const Range &r, OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) { diff --git a/include/boost/algorithm/cxx14/equal.hpp b/include/boost/algorithm/cxx14/equal.hpp index 9f97be1d..526aae99 100644 --- a/include/boost/algorithm/cxx14/equal.hpp +++ b/include/boost/algorithm/cxx14/equal.hpp @@ -12,7 +12,6 @@ #ifndef BOOST_ALGORITHM_EQUAL_HPP #define BOOST_ALGORITHM_EQUAL_HPP -#include // for std::equal #include namespace boost { namespace algorithm { @@ -21,10 +20,11 @@ namespace detail { template struct eq { - bool operator () ( const T1& v1, const T2& v2 ) const { return v1 == v2 ;} + BOOST_CONSTEXPR bool operator () ( const T1& v1, const T2& v2 ) const { return v1 == v2 ;} }; template + BOOST_CXX14_CONSTEXPR bool equal ( RandomAccessIterator1 first1, RandomAccessIterator1 last1, RandomAccessIterator2 first2, RandomAccessIterator2 last2, BinaryPredicate pred, std::random_access_iterator_tag, std::random_access_iterator_tag ) @@ -32,11 +32,16 @@ namespace detail { // Random-access iterators let is check the sizes in constant time if ( std::distance ( first1, last1 ) != std::distance ( first2, last2 )) return false; - // If we know that the sequences are the same size, the original version is fine - return std::equal ( first1, last1, first2, pred ); + + // std::equal + for (; first1 != last1; ++first1, ++first2) + if (!pred(*first1, *first2)) + return false; + return true; } template + BOOST_CXX14_CONSTEXPR bool equal ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred, std::input_iterator_tag, std::input_iterator_tag ) @@ -60,6 +65,7 @@ namespace detail { /// \param last2 One past the end of the second range. /// \param pred A predicate for comparing the elements of the ranges template +BOOST_CXX14_CONSTEXPR bool equal ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred ) { @@ -78,6 +84,7 @@ bool equal ( InputIterator1 first1, InputIterator1 last1, /// \param first2 The start of the second range. /// \param last2 One past the end of the second range. template +BOOST_CXX14_CONSTEXPR bool equal ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2 ) { diff --git a/include/boost/algorithm/cxx14/mismatch.hpp b/include/boost/algorithm/cxx14/mismatch.hpp index c3de4182..46017190 100644 --- a/include/boost/algorithm/cxx14/mismatch.hpp +++ b/include/boost/algorithm/cxx14/mismatch.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2008-2012. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file mismatch.hpp @@ -13,6 +13,7 @@ #define BOOST_ALGORITHM_MISMATCH_HPP #include // for std::pair +#include namespace boost { namespace algorithm { @@ -27,7 +28,7 @@ namespace boost { namespace algorithm { /// \param last2 One past the end of the second range. /// \param pred A predicate for comparing the elements of the ranges template -std::pair mismatch ( +BOOST_CXX14_CONSTEXPR std::pair mismatch ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred ) @@ -47,7 +48,7 @@ std::pair mismatch ( /// \param first2 The start of the second range. /// \param last2 One past the end of the second range. template -std::pair mismatch ( +BOOST_CXX14_CONSTEXPR std::pair mismatch ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2 ) { diff --git a/include/boost/algorithm/cxx17/exclusive_scan.hpp b/include/boost/algorithm/cxx17/exclusive_scan.hpp index 03ecea52..e4ec112d 100644 --- a/include/boost/algorithm/cxx17/exclusive_scan.hpp +++ b/include/boost/algorithm/cxx17/exclusive_scan.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file exclusive_scan.hpp @@ -44,7 +44,7 @@ OutputIterator exclusive_scan(InputIterator first, InputIterator last, OutputIterator result, T init) { typedef typename std::iterator_traits::value_type VT; - return exclusive_scan(first, last, result, init, std::plus()); + return boost::algorithm::exclusive_scan(first, last, result, init, std::plus()); } }} // namespace boost and algorithm diff --git a/include/boost/algorithm/cxx17/for_each_n.hpp b/include/boost/algorithm/cxx17/for_each_n.hpp index b8134cc0..71f6cde3 100644 --- a/include/boost/algorithm/cxx17/for_each_n.hpp +++ b/include/boost/algorithm/cxx17/for_each_n.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file for_each_n.hpp diff --git a/include/boost/algorithm/cxx17/inclusive_scan.hpp b/include/boost/algorithm/cxx17/inclusive_scan.hpp index cd015f10..5c60c39d 100644 --- a/include/boost/algorithm/cxx17/inclusive_scan.hpp +++ b/include/boost/algorithm/cxx17/inclusive_scan.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file transform_reduce.hpp @@ -41,7 +41,7 @@ OutputIterator inclusive_scan(InputIterator first, InputIterator last, typename std::iterator_traits::value_type init = *first; *result++ = init; if (++first != last) - return inclusive_scan(first, last, result, bOp, init); + return boost::algorithm::inclusive_scan(first, last, result, bOp, init); } return result; @@ -52,7 +52,7 @@ OutputIterator inclusive_scan(InputIterator first, InputIterator last, OutputIterator result) { typedef typename std::iterator_traits::value_type VT; - return inclusive_scan(first, last, result, std::plus()); + return boost::algorithm::inclusive_scan(first, last, result, std::plus()); } }} // namespace boost and algorithm diff --git a/include/boost/algorithm/cxx17/reduce.hpp b/include/boost/algorithm/cxx17/reduce.hpp index f47695b5..55424b6e 100644 --- a/include/boost/algorithm/cxx17/reduce.hpp +++ b/include/boost/algorithm/cxx17/reduce.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file reduce.hpp @@ -34,14 +34,14 @@ template T reduce(InputIterator first, InputIterator last, T init) { typedef typename std::iterator_traits::value_type VT; - return reduce(first, last, init, std::plus()); + return boost::algorithm::reduce(first, last, init, std::plus()); } template typename std::iterator_traits::value_type reduce(InputIterator first, InputIterator last) { - return reduce(first, last, + return boost::algorithm::reduce(first, last, typename std::iterator_traits::value_type()); } @@ -49,14 +49,14 @@ template typename boost::range_value::type reduce(const Range &r) { - return reduce(boost::begin(r), boost::end(r)); + return boost::algorithm::reduce(boost::begin(r), boost::end(r)); } // Not sure that this won't be ambiguous (1) template T reduce(const Range &r, T init) { - return reduce(boost::begin (r), boost::end (r), init); + return boost::algorithm::reduce(boost::begin (r), boost::end (r), init); } @@ -64,7 +64,7 @@ T reduce(const Range &r, T init) template T reduce(const Range &r, T init, BinaryOperation bOp) { - return reduce(boost::begin(r), boost::end(r), init, bOp); + return boost::algorithm::reduce(boost::begin(r), boost::end(r), init, bOp); } }} // namespace boost and algorithm diff --git a/include/boost/algorithm/cxx17/transform_exclusive_scan.hpp b/include/boost/algorithm/cxx17/transform_exclusive_scan.hpp index d3b4329a..dd3c9c83 100644 --- a/include/boost/algorithm/cxx17/transform_exclusive_scan.hpp +++ b/include/boost/algorithm/cxx17/transform_exclusive_scan.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file transform_exclusive_scan.hpp diff --git a/include/boost/algorithm/cxx17/transform_inclusive_scan.hpp b/include/boost/algorithm/cxx17/transform_inclusive_scan.hpp index 476c117f..1d119765 100644 --- a/include/boost/algorithm/cxx17/transform_inclusive_scan.hpp +++ b/include/boost/algorithm/cxx17/transform_inclusive_scan.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file transform_reduce.hpp @@ -46,7 +46,8 @@ OutputIterator transform_inclusive_scan(InputIterator first, InputIterator last, typename std::iterator_traits::value_type init = uOp(*first); *result++ = init; if (++first != last) - return transform_inclusive_scan(first, last, result, bOp, uOp, init); + return boost::algorithm::transform_inclusive_scan + (first, last, result, bOp, uOp, init); } return result; diff --git a/include/boost/algorithm/cxx17/transform_reduce.hpp b/include/boost/algorithm/cxx17/transform_reduce.hpp index 7ebde7d3..86963847 100644 --- a/include/boost/algorithm/cxx17/transform_reduce.hpp +++ b/include/boost/algorithm/cxx17/transform_reduce.hpp @@ -2,7 +2,7 @@ Copyright (c) Marshall Clow 2017. Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ /// \file transform_reduce.hpp @@ -46,7 +46,7 @@ template T transform_reduce(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init) { - return transform_reduce(first1, last1, first2, init, + return boost::algorithm::transform_reduce(first1, last1, first2, init, std::plus(), std::multiplies()); } diff --git a/include/boost/algorithm/find_backward.hpp b/include/boost/algorithm/find_backward.hpp new file mode 100644 index 00000000..66901a14 --- /dev/null +++ b/include/boost/algorithm/find_backward.hpp @@ -0,0 +1,97 @@ +/* + Copyright (c) T. Zachary Laine 2018. + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) +*/ +#ifndef BOOST_ALGORITHM_FIND_BACKWARD_HPP +#define BOOST_ALGORITHM_FIND_BACKWARD_HPP + +#include +#include +#include + +#include + + +namespace boost { namespace algorithm { + +template +BOOST_CXX14_CONSTEXPR +BidiIter find_backward(BidiIter first, BidiIter last, const T & x) +{ + BidiIter it = last; + while (it != first) { + if (*--it == x) + return it; + } + return last; +} + +template +BOOST_CXX14_CONSTEXPR +typename boost::range_iterator::type find_backward(Range & range, const T & x) +{ + return ::boost::algorithm::find_backward(boost::begin(range), boost::end(range), x); +} + +template +BOOST_CXX14_CONSTEXPR +BidiIter find_not_backward(BidiIter first, BidiIter last, const T & x) +{ + BidiIter it = last; + while (it != first) { + if (*--it != x) + return it; + } + return last; +} + +template +BOOST_CXX14_CONSTEXPR +typename boost::range_iterator::type find_not_backward(Range & range, const T & x) +{ + return ::boost::algorithm::find_not_backward(boost::begin(range), boost::end(range), x); +} + +template +BOOST_CXX14_CONSTEXPR +BidiIter find_if_backward(BidiIter first, BidiIter last, Pred p) +{ + BidiIter it = last; + while (it != first) { + if (p(*--it)) + return it; + } + return last; +} + +template +BOOST_CXX14_CONSTEXPR +typename boost::range_iterator::type find_if_backward(Range & range, Pred p) +{ + return ::boost::algorithm::find_if_backward(boost::begin(range), boost::end(range), p); +} + +template +BOOST_CXX14_CONSTEXPR +BidiIter find_if_not_backward(BidiIter first, BidiIter last, Pred p) +{ + BidiIter it = last; + while (it != first) { + if (!p(*--it)) + return it; + } + return last; +} + +template +BOOST_CXX14_CONSTEXPR +typename boost::range_iterator::type find_if_not_backward(Range & range, Pred p) +{ + return ::boost::algorithm::find_if_not_backward(boost::begin(range), boost::end(range), p); +} + +}} // namespace boost and algorithm + +#endif // BOOST_ALGORITHM_FIND_BACKWARD_HPP diff --git a/include/boost/algorithm/find_not.hpp b/include/boost/algorithm/find_not.hpp new file mode 100644 index 00000000..ef4df00b --- /dev/null +++ b/include/boost/algorithm/find_not.hpp @@ -0,0 +1,39 @@ +/* + Copyright (c) T. Zachary Laine 2018. + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) +*/ +#ifndef BOOST_ALGORITHM_FIND_NOT_HPP +#define BOOST_ALGORITHM_FIND_NOT_HPP + +#include +#include +#include + +#include + + +namespace boost { namespace algorithm { + +template +BOOST_CXX14_CONSTEXPR +InputIter find_not(InputIter first, Sentinel last, const T & x) +{ + for (; first != last; ++first) { + if (*first != x) + break; + } + return first; +} + +template +BOOST_CXX14_CONSTEXPR +typename boost::range_iterator::type find_not(Range & r, const T & x) +{ + return ::boost::algorithm::find_not(boost::begin(r), boost::end(r), x); +} + +}} // namespace boost and algorithm + +#endif // BOOST_ALGORITHM_FIND_NOT_HPP diff --git a/include/boost/algorithm/string/finder.hpp b/include/boost/algorithm/string/finder.hpp index 93f7ec30..61f6e415 100644 --- a/include/boost/algorithm/string/finder.hpp +++ b/include/boost/algorithm/string/finder.hpp @@ -43,7 +43,6 @@ namespace boost { The result is given as an \c iterator_range delimiting the match. \param Search A substring to be searched for. - \param Comp An element comparison predicate \return An instance of the \c first_finder object */ template @@ -84,7 +83,6 @@ namespace boost { The result is given as an \c iterator_range delimiting the match. \param Search A substring to be searched for. - \param Comp An element comparison predicate \return An instance of the \c last_finder object */ template @@ -124,7 +122,6 @@ namespace boost { \param Search A substring to be searched for. \param Nth An index of the match to be find - \param Comp An element comparison predicate \return An instance of the \c nth_finder object */ template @@ -230,7 +227,6 @@ namespace boost { \param Begin Beginning of the range \param End End of the range - \param Range The range. \return An instance of the \c range_finger object */ template< typename ForwardIteratorT > diff --git a/include/boost/align/aligned_allocator.hpp b/include/boost/align/aligned_allocator.hpp index 6176bc27..4ec6b50c 100644 --- a/include/boost/align/aligned_allocator.hpp +++ b/include/boost/align/aligned_allocator.hpp @@ -41,13 +41,6 @@ class aligned_allocator { typedef T& reference; typedef const T& const_reference; -private: - enum { - min_align = detail::max_size::value>::value - }; - -public: template struct rebind { typedef aligned_allocator other; @@ -72,10 +65,14 @@ class aligned_allocator { } pointer allocate(size_type size, const_void_pointer = 0) { + enum { + m = detail::max_size::value>::value + }; if (size == 0) { return 0; } - void* p = aligned_alloc(min_align, sizeof(T) * size); + void* p = boost::alignment::aligned_alloc(m, sizeof(T) * size); if (!p) { boost::throw_exception(std::bad_alloc()); } diff --git a/include/boost/align/aligned_allocator_adaptor.hpp b/include/boost/align/aligned_allocator_adaptor.hpp index c9fae1cf..91265168 100644 --- a/include/boost/align/aligned_allocator_adaptor.hpp +++ b/include/boost/align/aligned_allocator_adaptor.hpp @@ -54,9 +54,12 @@ class aligned_allocator_adaptor typedef std::ptrdiff_t difference_type; private: - enum { - min_align = detail::max_size::value>::value + template + struct min_align { + enum { + value = detail::max_size::value>::value + }; }; public: @@ -102,19 +105,25 @@ class aligned_allocator_adaptor } pointer allocate(size_type size) { + enum { + m = min_align::value + }; std::size_t s = size * sizeof(value_type); - std::size_t n = s + min_align - 1; + std::size_t n = s + m - 1; char_alloc a(base()); char_ptr p = a.allocate(sizeof p + n); - void* r = boost::pointer_traits::to_address(p) + sizeof p; - (void)align(min_align, s, r, n); + void* r = boost::to_address(p) + sizeof p; + (void)boost::alignment::align(m, s, r, n); ::new(static_cast(static_cast(r) - 1)) char_ptr(p); return static_cast(r); } pointer allocate(size_type size, const_void_pointer hint) { + enum { + m = min_align::value + }; std::size_t s = size * sizeof(value_type); - std::size_t n = s + min_align - 1; + std::size_t n = s + m - 1; char_ptr h = char_ptr(); if (hint) { h = *(static_cast(hint) - 1); @@ -125,18 +134,21 @@ class aligned_allocator_adaptor #else char_ptr p = a.allocate(sizeof p + n, h); #endif - void* r = boost::pointer_traits::to_address(p) + sizeof p; - (void)align(min_align, s, r, n); + void* r = boost::to_address(p) + sizeof p; + (void)boost::alignment::align(m, s, r, n); ::new(static_cast(static_cast(r) - 1)) char_ptr(p); return static_cast(r); } void deallocate(pointer ptr, size_type size) { + enum { + m = min_align::value + }; char_ptr* p = reinterpret_cast(ptr) - 1; char_ptr r = *p; p->~char_ptr(); char_alloc a(base()); - a.deallocate(r, sizeof r + size * sizeof(value_type) + min_align - 1); + a.deallocate(r, sizeof r + size * sizeof(value_type) + m - 1); } }; diff --git a/include/boost/align/detail/aligned_alloc.hpp b/include/boost/align/detail/aligned_alloc.hpp index 69da1965..d27a5499 100644 --- a/include/boost/align/detail/aligned_alloc.hpp +++ b/include/boost/align/detail/aligned_alloc.hpp @@ -31,7 +31,7 @@ aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT void* p = std::malloc(sizeof(void*) + n); if (p) { void* r = static_cast(p) + sizeof(void*); - (void)align(alignment, size, r, n); + (void)boost::alignment::align(alignment, size, r, n); *(static_cast(r) - 1) = p; p = r; } diff --git a/include/boost/any.hpp b/include/boost/any.hpp index 9f6b3132..f161b3ff 100644 --- a/include/boost/any.hpp +++ b/include/boost/any.hpp @@ -12,7 +12,7 @@ // with features contributed and bugs found by // Antony Polukhin, Ed Brey, Mark Rodgers, // Peter Dimov, and James Curran -// when: July 2001, April 2013 - May 2013 +// when: July 2001, April 2013 - 2019 #include @@ -30,7 +30,7 @@ #include #include #include -#include +#include namespace boost { @@ -109,7 +109,7 @@ namespace boost return *this; } - // move assignement + // move assignment any & operator=(any&& rhs) BOOST_NOEXCEPT { rhs.swap(*this); @@ -149,7 +149,7 @@ namespace boost public: // types (public so any_cast can be non-friend) #endif - class placeholder + class BOOST_SYMBOL_VISIBLE placeholder { public: // structors @@ -271,8 +271,8 @@ namespace boost // `ValueType` is not a reference. Example: // `static_cast(*result);` // which is equal to `std::string(*result);` - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_reference, + typedef BOOST_DEDUCED_TYPENAME boost::conditional< + boost::is_reference::value, ValueType, BOOST_DEDUCED_TYPENAME boost::add_reference::type >::type ref_type; @@ -329,6 +329,7 @@ namespace boost } // Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved. +// Copyright Antony Polukhin, 2013-2019. // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at diff --git a/include/boost/archive/basic_binary_iarchive.hpp b/include/boost/archive/basic_binary_iarchive.hpp index c0cc655c..c85ead86 100644 --- a/include/boost/archive/basic_binary_iarchive.hpp +++ b/include/boost/archive/basic_binary_iarchive.hpp @@ -102,17 +102,29 @@ class BOOST_SYMBOL_VISIBLE basic_binary_iarchive : } void load_override(class_id_type & t){ library_version_type lvt = this->get_library_version(); + /* + * library versions: + * boost 1.39 -> 5 + * boost 1.43 -> 7 + * boost 1.47 -> 9 + * + * + * 1) in boost 1.43 and inferior, class_id_type is always a 16bit value, with no check on the library version + * --> this means all archives with version v <= 7 are written with a 16bit class_id_type + * 2) in boost 1.44 this load_override has disappeared (and thus boost 1.44 is not backward compatible at all !!) + * 3) recent boosts reintroduced load_override with a test on the version : + * - v > 7 : this->detail_common_iarchive::load_override(t, version) + * - v > 6 : 16bit + * - other : 32bit + * --> which is obviously incorrect, see point 1 + * + * the fix here decodes class_id_type on 16bit for all v <= 7, which seems to be the correct behaviour ... + */ if(boost::archive::library_version_type(7) < lvt){ this->detail_common_iarchive::load_override(t); } - else - if(boost::archive::library_version_type(6) < lvt){ - int_least16_t x=0; - * this->This() >> x; - t = boost::archive::class_id_type(x); - } else{ - int x=0; + int_least16_t x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } diff --git a/include/boost/archive/detail/iserializer.hpp b/include/boost/archive/detail/iserializer.hpp index 6c2fd67d..98cd6a17 100644 --- a/include/boost/archive/detail/iserializer.hpp +++ b/include/boost/archive/detail/iserializer.hpp @@ -123,8 +123,7 @@ class iserializer : public basic_iserializer virtual void destroy(/*const*/ void *address) const { boost::serialization::access::destroy(static_cast(address)); } -protected: - // protected constructor since it's always created by singleton +public: explicit iserializer() : basic_iserializer( boost::serialization::singleton< @@ -133,7 +132,6 @@ class iserializer : public basic_iserializer >::get_const_instance() ) {} -public: virtual BOOST_DLLEXPORT void load_object_data( basic_iarchive & ar, void *x, @@ -307,7 +305,7 @@ class pointer_iserializer : void * x, const unsigned int file_version ) const BOOST_USED; -protected: +public: // this should alway be a singleton so make the constructor protected pointer_iserializer(); ~pointer_iserializer(); diff --git a/include/boost/archive/impl/archive_serializer_map.ipp b/include/boost/archive/impl/archive_serializer_map.ipp index 7f163ec4..98e058dd 100644 --- a/include/boost/archive/impl/archive_serializer_map.ipp +++ b/include/boost/archive/impl/archive_serializer_map.ipp @@ -47,10 +47,10 @@ archive_serializer_map::insert(const basic_serializer * bs){ template BOOST_ARCHIVE_OR_WARCHIVE_DECL void archive_serializer_map::erase(const basic_serializer * bs){ - BOOST_ASSERT(! boost::serialization::singleton< - extra_detail::map - >::is_destroyed() - ); + // note: previously this conditional was a runtime assertion with + // BOOST_ASSERT. We've changed it because we've discovered that at + // least one platform is not guaranteed to destroy singletons in + // reverse order of distruction. if(boost::serialization::singleton< extra_detail::map >::is_destroyed()) diff --git a/include/boost/archive/impl/basic_xml_grammar.hpp b/include/boost/archive/impl/basic_xml_grammar.hpp index 6d4e4683..cc88d4fd 100644 --- a/include/boost/archive/impl/basic_xml_grammar.hpp +++ b/include/boost/archive/impl/basic_xml_grammar.hpp @@ -64,7 +64,7 @@ namespace archive { // XML grammar parsing template -class basic_xml_grammar { +class BOOST_SYMBOL_VISIBLE basic_xml_grammar { public: // The following is not necessary according to DR45, but at least // one compiler (Compaq C++ 6.5 in strict_ansi mode) chokes otherwise. diff --git a/include/boost/archive/iterators/xml_unescape.hpp b/include/boost/archive/iterators/xml_unescape.hpp index 69977404..9d3c3af9 100644 --- a/include/boost/archive/iterators/xml_unescape.hpp +++ b/include/boost/archive/iterators/xml_unescape.hpp @@ -16,6 +16,8 @@ // See http://www.boost.org for updates, documentation, and revision history. +#include +#include #include #include @@ -42,11 +44,11 @@ class xml_unescape return unescape, Base>::dereference(); } public: - // workaround msvc 7.1 ICU crash - #if defined(BOOST_MSVC) + // msvc versions prior to 14.0 crash with and ICE + #if BOOST_WORKAROUND(BOOST_MSVC, < 1900) typedef int value_type; #else - typedef typename this_t::value_type value_type; + typedef typename super_t::value_type value_type; #endif void drain_residue(const char *literal); diff --git a/include/boost/archive/polymorphic_binary_iarchive.hpp b/include/boost/archive/polymorphic_binary_iarchive.hpp index 4a898a8a..20559bd8 100644 --- a/include/boost/archive/polymorphic_binary_iarchive.hpp +++ b/include/boost/archive/polymorphic_binary_iarchive.hpp @@ -28,7 +28,7 @@ namespace boost { namespace archive { -class polymorphic_binary_iarchive : +class BOOST_SYMBOL_VISIBLE polymorphic_binary_iarchive : public detail::polymorphic_iarchive_route { public: diff --git a/include/boost/archive/polymorphic_binary_oarchive.hpp b/include/boost/archive/polymorphic_binary_oarchive.hpp index 931b243f..96febd7a 100644 --- a/include/boost/archive/polymorphic_binary_oarchive.hpp +++ b/include/boost/archive/polymorphic_binary_oarchive.hpp @@ -23,13 +23,15 @@ namespace boost { namespace archive { -typedef detail::polymorphic_oarchive_route< - binary_oarchive_impl< - binary_oarchive, - std::ostream::char_type, - std::ostream::traits_type - > - > polymorphic_binary_oarchive; +class BOOST_SYMBOL_VISIBLE polymorphic_binary_oarchive : + public detail::polymorphic_oarchive_route +{ +public: + polymorphic_binary_oarchive(std::ostream & os, unsigned int flags = 0) : + detail::polymorphic_oarchive_route(os, flags) + {} + ~polymorphic_binary_oarchive(){} +}; } // namespace archive } // namespace boost diff --git a/include/boost/archive/polymorphic_text_iarchive.hpp b/include/boost/archive/polymorphic_text_iarchive.hpp index 7bef2927..3e59bfe6 100644 --- a/include/boost/archive/polymorphic_text_iarchive.hpp +++ b/include/boost/archive/polymorphic_text_iarchive.hpp @@ -28,7 +28,7 @@ namespace boost { namespace archive { -class polymorphic_text_iarchive : +class BOOST_SYMBOL_VISIBLE polymorphic_text_iarchive : public detail::polymorphic_iarchive_route { public: diff --git a/include/boost/archive/polymorphic_text_oarchive.hpp b/include/boost/archive/polymorphic_text_oarchive.hpp index 457aad9f..233d37c7 100644 --- a/include/boost/archive/polymorphic_text_oarchive.hpp +++ b/include/boost/archive/polymorphic_text_oarchive.hpp @@ -23,9 +23,15 @@ namespace boost { namespace archive { -typedef detail::polymorphic_oarchive_route< - text_oarchive_impl -> polymorphic_text_oarchive; +class BOOST_SYMBOL_VISIBLE polymorphic_text_oarchive : + public detail::polymorphic_oarchive_route +{ +public: + polymorphic_text_oarchive(std::ostream & os, unsigned int flags = 0) : + detail::polymorphic_oarchive_route(os, flags) + {} + ~polymorphic_text_oarchive(){} +}; } // namespace archive } // namespace boost diff --git a/include/boost/archive/polymorphic_text_wiarchive.hpp b/include/boost/archive/polymorphic_text_wiarchive.hpp index 8466f05d..96afe0eb 100644 --- a/include/boost/archive/polymorphic_text_wiarchive.hpp +++ b/include/boost/archive/polymorphic_text_wiarchive.hpp @@ -32,7 +32,7 @@ namespace boost { namespace archive { -class polymorphic_text_wiarchive : +class BOOST_SYMBOL_VISIBLE polymorphic_text_wiarchive : public detail::polymorphic_iarchive_route { public: diff --git a/include/boost/archive/polymorphic_text_woarchive.hpp b/include/boost/archive/polymorphic_text_woarchive.hpp index 295625d1..fa0a3aec 100644 --- a/include/boost/archive/polymorphic_text_woarchive.hpp +++ b/include/boost/archive/polymorphic_text_woarchive.hpp @@ -27,9 +27,15 @@ namespace boost { namespace archive { -typedef detail::polymorphic_oarchive_route< - text_woarchive_impl -> polymorphic_text_woarchive; +class BOOST_SYMBOL_VISIBLE polymorphic_text_woarchive : + public detail::polymorphic_oarchive_route +{ +public: + polymorphic_text_woarchive(std::wostream & os, unsigned int flags = 0) : + detail::polymorphic_oarchive_route(os, flags) + {} + ~polymorphic_text_woarchive(){} +}; } // namespace archive } // namespace boost diff --git a/include/boost/archive/polymorphic_xml_iarchive.hpp b/include/boost/archive/polymorphic_xml_iarchive.hpp index 4dc3f894..0b17b551 100644 --- a/include/boost/archive/polymorphic_xml_iarchive.hpp +++ b/include/boost/archive/polymorphic_xml_iarchive.hpp @@ -28,7 +28,7 @@ namespace boost { namespace archive { -class polymorphic_xml_iarchive : +class BOOST_SYMBOL_VISIBLE polymorphic_xml_iarchive : public detail::polymorphic_iarchive_route { public: diff --git a/include/boost/archive/polymorphic_xml_oarchive.hpp b/include/boost/archive/polymorphic_xml_oarchive.hpp index 514f9e53..a9fc8242 100644 --- a/include/boost/archive/polymorphic_xml_oarchive.hpp +++ b/include/boost/archive/polymorphic_xml_oarchive.hpp @@ -23,10 +23,15 @@ namespace boost { namespace archive { -typedef detail::polymorphic_oarchive_route< - xml_oarchive_impl -> polymorphic_xml_oarchive; - +class BOOST_SYMBOL_VISIBLE polymorphic_xml_oarchive : + public detail::polymorphic_oarchive_route +{ +public: + polymorphic_xml_oarchive(std::ostream & os, unsigned int flags = 0) : + detail::polymorphic_oarchive_route(os, flags) + {} + ~polymorphic_xml_oarchive(){} +}; } // namespace archive } // namespace boost diff --git a/include/boost/archive/polymorphic_xml_wiarchive.hpp b/include/boost/archive/polymorphic_xml_wiarchive.hpp index d4ab7312..688ff4d0 100644 --- a/include/boost/archive/polymorphic_xml_wiarchive.hpp +++ b/include/boost/archive/polymorphic_xml_wiarchive.hpp @@ -27,7 +27,7 @@ namespace boost { namespace archive { -class polymorphic_xml_wiarchive : +class BOOST_SYMBOL_VISIBLE polymorphic_xml_wiarchive : public detail::polymorphic_iarchive_route { public: diff --git a/include/boost/archive/polymorphic_xml_woarchive.hpp b/include/boost/archive/polymorphic_xml_woarchive.hpp index dd8963fb..2606010d 100644 --- a/include/boost/archive/polymorphic_xml_woarchive.hpp +++ b/include/boost/archive/polymorphic_xml_woarchive.hpp @@ -7,7 +7,7 @@ #endif /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_xml_oarchive.hpp +// polymorphic_xml_woarchive.hpp // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . // Use, modification and distribution is subject to the Boost Software @@ -27,9 +27,15 @@ namespace boost { namespace archive { -typedef detail::polymorphic_oarchive_route< - xml_woarchive_impl -> polymorphic_xml_woarchive; +class BOOST_SYMBOL_VISIBLE polymorphic_xml_woarchive : + public detail::polymorphic_oarchive_route +{ +public: + polymorphic_xml_woarchive(std::wostream & os, unsigned int flags = 0) : + detail::polymorphic_oarchive_route(os, flags) + {} + ~polymorphic_xml_woarchive(){} +}; } // namespace archive } // namespace boost diff --git a/include/boost/archive/text_oarchive.hpp b/include/boost/archive/text_oarchive.hpp index 9ba0daff..e4c6d466 100644 --- a/include/boost/archive/text_oarchive.hpp +++ b/include/boost/archive/text_oarchive.hpp @@ -65,10 +65,10 @@ class BOOST_SYMBOL_VISIBLE text_oarchive_impl : basic_text_oprimitive::save(t); } void save(const version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } BOOST_ARCHIVE_DECL void save(const char * t); diff --git a/include/boost/archive/text_woarchive.hpp b/include/boost/archive/text_woarchive.hpp index b6b4f8ed..beba62f7 100644 --- a/include/boost/archive/text_woarchive.hpp +++ b/include/boost/archive/text_woarchive.hpp @@ -78,10 +78,10 @@ class BOOST_SYMBOL_VISIBLE text_woarchive_impl : basic_text_oprimitive::save(t); } void save(const version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } BOOST_WARCHIVE_DECL void save(const char * t); diff --git a/include/boost/archive/xml_oarchive.hpp b/include/boost/archive/xml_oarchive.hpp index eea12680..d0fa8b21 100644 --- a/include/boost/archive/xml_oarchive.hpp +++ b/include/boost/archive/xml_oarchive.hpp @@ -65,11 +65,11 @@ class BOOST_SYMBOL_VISIBLE xml_oarchive_impl : } void save(const version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } BOOST_ARCHIVE_DECL void save(const char * t); diff --git a/include/boost/archive/xml_woarchive.hpp b/include/boost/archive/xml_woarchive.hpp index cb7ce68c..e6ac50de 100644 --- a/include/boost/archive/xml_woarchive.hpp +++ b/include/boost/archive/xml_woarchive.hpp @@ -74,11 +74,11 @@ class BOOST_SYMBOL_VISIBLE xml_woarchive_impl : } void save(const version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); + save(static_cast(t)); } BOOST_WARCHIVE_DECL void save(const char * t); diff --git a/include/boost/array.hpp b/include/boost/array.hpp index 210c0721..99dc2c6d 100644 --- a/include/boost/array.hpp +++ b/include/boost/array.hpp @@ -183,7 +183,7 @@ namespace boost { // check range (may be private because it is static) static BOOST_CONSTEXPR bool rangecheck (size_type i) { - return i > size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true; + return i >= size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true; } }; diff --git a/include/boost/asio.hpp b/include/boost/asio.hpp index c8179c7e..1ee7e12f 100644 --- a/include/boost/asio.hpp +++ b/include/boost/asio.hpp @@ -2,7 +2,7 @@ // asio.hpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -27,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -42,13 +44,14 @@ #include #include #include +#include #include +#include #include #include -#include -#include #include #include +#include #include #include #include @@ -62,7 +65,6 @@ #include #include #include -#include #include #include #include @@ -75,6 +77,8 @@ #include #include #include +#include +#include #include #include #include @@ -86,7 +90,6 @@ #include #include #include -#include #include #include #include @@ -105,46 +108,38 @@ #include #include #include -#include #include -#include #include #include #include -#include +#include #include #include -#include #include -#include -#include #include #include #include -#include #include #include #include #include +#include #include #include +#include #include #include #include #include -#include -#include #include +#include #include #include #include -#include #include #include #include -#include #include -#include #include #include diff --git a/include/boost/asio/associated_allocator.hpp b/include/boost/asio/associated_allocator.hpp index b9ef5a45..c70852b5 100644 --- a/include/boost/asio/associated_allocator.hpp +++ b/include/boost/asio/associated_allocator.hpp @@ -2,7 +2,7 @@ // associated_allocator.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/asio/associated_executor.hpp b/include/boost/asio/associated_executor.hpp index d0347afc..a44190b5 100644 --- a/include/boost/asio/associated_executor.hpp +++ b/include/boost/asio/associated_executor.hpp @@ -2,7 +2,7 @@ // associated_executor.hpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/asio/async_result.hpp b/include/boost/asio/async_result.hpp index f49f2eb2..4f3bb1ec 100644 --- a/include/boost/asio/async_result.hpp +++ b/include/boost/asio/async_result.hpp @@ -2,7 +2,7 @@ // async_result.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -17,7 +17,7 @@ #include #include -#include +#include #include @@ -42,30 +42,15 @@ namespace asio { * The primary template assumes that the CompletionToken is the completion * handler. */ -#if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) template -#else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -template -#endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) class async_result { public: -#if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) /// The concrete completion handler type for the specific signature. typedef CompletionToken completion_handler_type; /// The return type of the initiating function. typedef void return_type; -#else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // For backward compatibility, determine the concrete completion handler type - // by using the legacy handler_type trait. - typedef typename handler_type::type - completion_handler_type; - - // For backward compatibility, determine the initiating function return type - // using the legacy single-parameter version of async_result. - typedef typename async_result::type return_type; -#endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) /// Construct an async result from a given handler. /** @@ -74,11 +59,6 @@ class async_result * then returned from the initiating function. */ explicit async_result(completion_handler_type& h) -#if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members to initialise. -#else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - : legacy_result_(h) -#endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) { (void)h; } @@ -86,55 +66,59 @@ class async_result /// Obtain the value to be returned from the initiating function. return_type get() { -#if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // Nothing to do. -#else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - return legacy_result_.get(); -#endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) } -private: - async_result(const async_result&) BOOST_ASIO_DELETED; - async_result& operator=(const async_result&) BOOST_ASIO_DELETED; - -#if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members. -#else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - async_result legacy_result_; -#endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -}; - -#if !defined(BOOST_ASIO_NO_DEPRECATED) - -/// (Deprecated: Use two-parameter version of async_result.) An interface for -/// customising the behaviour of an initiating function. -/** - * This template may be specialised for user-defined handler types. - */ -template -class async_result -{ -public: - /// The return type of the initiating function. - typedef void type; +#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) \ + || defined(GENERATING_DOCUMENTATION) - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the handler, which is then - * returned from the initiating function. - */ - explicit async_result(Handler&) + /// Initiate the asynchronous operation that will produce the result, and + /// obtain the value to be returned from the initiating function. + template + static return_type initiate( + BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, + BOOST_ASIO_MOVE_ARG(Args)... args) { + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( + BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token), + BOOST_ASIO_MOVE_CAST(Args)(args)...); } - /// Obtain the value to be returned from the initiating function. - type get() +#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + // || defined(GENERATING_DOCUMENTATION) + + template + static return_type initiate( + BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_MOVE_ARG(RawCompletionToken) token) { + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( + BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token)); } -}; -#endif // !defined(BOOST_ASIO_NO_DEPRECATED) +#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ + template \ + static return_type initiate( \ + BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ + BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, \ + BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ + { \ + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ + BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token), \ + BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ + } \ + /**/ + BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) +#undef BOOST_ASIO_PRIVATE_INITIATE_DEF + +#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + // || defined(GENERATING_DOCUMENTATION) + +private: + async_result(const async_result&) BOOST_ASIO_DELETED; + async_result& operator=(const async_result&) BOOST_ASIO_DELETED; +}; /// Helper template to deduce the handler type from a CompletionToken, capture /// a local copy of the handler, and then create an async_result for the @@ -195,11 +179,40 @@ struct async_result_helper { }; -} // namespace detail -} // namespace asio -} // namespace boost +struct async_result_memfns_base +{ + void initiate(); +}; -#include +template +struct async_result_memfns_derived + : T, async_result_memfns_base +{ +}; + +template +struct async_result_memfns_check +{ +}; + +template +char (&async_result_initiate_memfn_helper(...))[2]; + +template +char async_result_initiate_memfn_helper( + async_result_memfns_check< + void (async_result_memfns_base::*)(), + &async_result_memfns_derived::initiate>*); + +template +struct async_result_has_initiate_memfn + : integral_constant::type, Signature> + >(0)) != 1> +{ +}; + +} // namespace detail #if defined(GENERATING_DOCUMENTATION) # define BOOST_ASIO_INITFN_RESULT_TYPE(ct, sig) \ @@ -220,4 +233,126 @@ struct async_result_helper typename ::boost::asio::decay::type, sig>::completion_handler_type #endif +#if defined(GENERATING_DOCUMENTATION) + +template +BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature) +async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken), + BOOST_ASIO_MOVE_ARG(Args)... args); + +#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + +template +inline typename enable_if< + detail::async_result_has_initiate_memfn::value, + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type +async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, + BOOST_ASIO_MOVE_ARG(Args)... args) +{ + return async_result::type, + Signature>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), + BOOST_ASIO_MOVE_CAST(CompletionToken)(token), + BOOST_ASIO_MOVE_CAST(Args)(args)...); +} + +template +inline typename enable_if< + !detail::async_result_has_initiate_memfn::value, + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type +async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, + BOOST_ASIO_MOVE_ARG(Args)... args) +{ + async_completion completion(token); + + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( + BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, + Signature))(completion.completion_handler), + BOOST_ASIO_MOVE_CAST(Args)(args)...); + + return completion.result.get(); +} + +#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + +template +inline typename enable_if< + detail::async_result_has_initiate_memfn::value, + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type +async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) +{ + return async_result::type, + Signature>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), + BOOST_ASIO_MOVE_CAST(CompletionToken)(token)); +} + +template +inline typename enable_if< + !detail::async_result_has_initiate_memfn::value, + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type +async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) +{ + async_completion completion(token); + + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( + BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, + Signature))(completion.completion_handler)); + + return completion.result.get(); +} + +#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ + template \ + inline typename enable_if< \ + detail::async_result_has_initiate_memfn< \ + CompletionToken, Signature>::value, \ + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type \ + async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ + BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ + { \ + return async_result::type, \ + Signature>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), \ + BOOST_ASIO_MOVE_CAST(CompletionToken)(token), \ + BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ + } \ + \ + template \ + inline typename enable_if< \ + !detail::async_result_has_initiate_memfn< \ + CompletionToken, Signature>::value, \ + BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signature)>::type \ + async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ + BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ + BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ + { \ + async_completion completion(token); \ + \ + BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ + BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, \ + Signature))(completion.completion_handler), \ + BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ + \ + return completion.result.get(); \ + } \ + /**/ + BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) +#undef BOOST_ASIO_PRIVATE_INITIATE_DEF + +#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + +} // namespace asio +} // namespace boost + +#include + #endif // BOOST_ASIO_ASYNC_RESULT_HPP diff --git a/include/boost/asio/awaitable.hpp b/include/boost/asio/awaitable.hpp new file mode 100644 index 00000000..83f8647c --- /dev/null +++ b/include/boost/asio/awaitable.hpp @@ -0,0 +1,125 @@ +// +// awaitable.hpp +// ~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef BOOST_ASIO_AWAITABLE_HPP +#define BOOST_ASIO_AWAITABLE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include + +#if defined(BOOST_ASIO_HAS_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) + +#include +#include + +#include + +namespace boost { +namespace asio { +namespace detail { + +using std::experimental::coroutine_handle; +using std::experimental::suspend_always; + +template class awaitable_thread; +template class awaitable_frame; + +} // namespace detail + +/// The return type of a coroutine or asynchronous operation. +template +class awaitable +{ +public: + /// The type of the awaited value. + typedef T value_type; + + /// The executor type that will be used for the coroutine. + typedef Executor executor_type; + + /// Default constructor. + constexpr awaitable() noexcept + : frame_(nullptr) + { + } + + /// Move constructor. + awaitable(awaitable&& other) noexcept + : frame_(std::exchange(other.frame_, nullptr)) + { + } + + /// Destructor + ~awaitable() + { + if (frame_) + frame_->destroy(); + } + + /// Checks if the awaitable refers to a future result. + bool valid() const noexcept + { + return !!frame_; + } + +#if !defined(GENERATING_DOCUMENTATION) + + // Support for co_await keyword. + bool await_ready() const noexcept + { + return false; + } + + // Support for co_await keyword. + template + void await_suspend( + detail::coroutine_handle> h) + { + frame_->push_frame(&h.promise()); + } + + // Support for co_await keyword. + T await_resume() + { + return frame_->get(); + } + +#endif // !defined(GENERATING_DOCUMENTATION) + +private: + template friend class detail::awaitable_thread; + template friend class detail::awaitable_frame; + + // Not copy constructible or copy assignable. + awaitable(const awaitable&) = delete; + awaitable& operator=(const awaitable&) = delete; + + // Construct the awaitable from a coroutine's frame object. + explicit awaitable(detail::awaitable_frame* a) + : frame_(a) + { + } + + detail::awaitable_frame* frame_; +}; + +} // namespace asio +} // namespace boost + +#include + +#include + +#endif // defined(BOOST_ASIO_HAS_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) + +#endif // BOOST_ASIO_AWAITABLE_HPP diff --git a/include/boost/asio/basic_datagram_socket.hpp b/include/boost/asio/basic_datagram_socket.hpp index c2aa00bf..b058f78c 100644 --- a/include/boost/asio/basic_datagram_socket.hpp +++ b/include/boost/asio/basic_datagram_socket.hpp @@ -2,7 +2,7 @@ // basic_datagram_socket.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -19,19 +19,25 @@ #include #include #include +#include #include #include #include -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) -# include -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - #include namespace boost { namespace asio { +#if !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL) +#define BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL + +// Forward declaration with defaulted arguments. +template +class basic_datagram_socket; + +#endif // !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL) + /// Provides datagram-oriented socket functionality. /** * The basic_datagram_socket class template provides asynchronous and blocking @@ -41,18 +47,28 @@ namespace asio { * @e Distinct @e objects: Safe.@n * @e Shared @e objects: Unsafe. */ -template )> +template class basic_datagram_socket - : public basic_socket + : public basic_socket { public: + /// The type of the executor associated with the object. + typedef Executor executor_type; + + /// Rebinds the socket type to another executor. + template + struct rebind_executor + { + /// The socket type when rebound to the specified executor. + typedef basic_datagram_socket other; + }; + /// The native representation of a socket. #if defined(GENERATING_DOCUMENTATION) typedef implementation_defined native_handle_type; #else - typedef typename basic_socket< - Protocol BOOST_ASIO_SVC_TARG>::native_handle_type native_handle_type; + typedef typename basic_socket::native_handle_type native_handle_type; #endif /// The protocol type. @@ -66,12 +82,29 @@ class basic_datagram_socket * This constructor creates a datagram socket without opening it. The open() * function must be called before data can be sent or received on the socket. * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. + * @param ex The I/O executor that the socket will use, by default, to + * dispatch handlers for any asynchronous operations performed on the socket. + */ + explicit basic_datagram_socket(const executor_type& ex) + : basic_socket(ex) + { + } + + /// Construct a basic_datagram_socket without opening it. + /** + * This constructor creates a datagram socket without opening it. The open() + * function must be called before data can be sent or received on the socket. + * + * @param context An execution context which provides the I/O executor that + * the socket will use, by default, to dispatch handlers for any asynchronous + * operations performed on the socket. */ - explicit basic_datagram_socket(boost::asio::io_context& io_context) - : basic_socket(io_context) + template + explicit basic_datagram_socket(ExecutionContext& context, + typename enable_if< + is_convertible::value + >::type* = 0) + : basic_socket(context) { } @@ -79,17 +112,37 @@ class basic_datagram_socket /** * This constructor creates and opens a datagram socket. * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. + * @param ex The I/O executor that the socket will use, by default, to + * dispatch handlers for any asynchronous operations performed on the socket. + * + * @param protocol An object specifying protocol parameters to be used. + * + * @throws boost::system::system_error Thrown on failure. + */ + basic_datagram_socket(const executor_type& ex, const protocol_type& protocol) + : basic_socket(ex, protocol) + { + } + + /// Construct and open a basic_datagram_socket. + /** + * This constructor creates and opens a datagram socket. + * + * @param context An execution context which provides the I/O executor that + * the socket will use, by default, to dispatch handlers for any asynchronous + * operations performed on the socket. * * @param protocol An object specifying protocol parameters to be used. * * @throws boost::system::system_error Thrown on failure. */ - basic_datagram_socket(boost::asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) + template + basic_datagram_socket(ExecutionContext& context, + const protocol_type& protocol, + typename enable_if< + is_convertible::value + >::type* = 0) + : basic_socket(context, protocol) { } @@ -100,18 +153,42 @@ class basic_datagram_socket * to the specified endpoint on the local machine. The protocol used is the * protocol associated with the given endpoint. * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. + * @param ex The I/O executor that the socket will use, by default, to + * dispatch handlers for any asynchronous operations performed on the socket. + * + * @param endpoint An endpoint on the local machine to which the datagram + * socket will be bound. + * + * @throws boost::system::system_error Thrown on failure. + */ + basic_datagram_socket(const executor_type& ex, const endpoint_type& endpoint) + : basic_socket(ex, endpoint) + { + } + + /// Construct a basic_datagram_socket, opening it and binding it to the given + /// local endpoint. + /** + * This constructor creates a datagram socket and automatically opens it bound + * to the specified endpoint on the local machine. The protocol used is the + * protocol associated with the given endpoint. + * + * @param context An execution context which provides the I/O executor that + * the socket will use, by default, to dispatch handlers for any asynchronous + * operations performed on the socket. * * @param endpoint An endpoint on the local machine to which the datagram * socket will be bound. * * @throws boost::system::system_error Thrown on failure. */ - basic_datagram_socket(boost::asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) + template + basic_datagram_socket(ExecutionContext& context, + const endpoint_type& endpoint, + typename enable_if< + is_convertible::value + >::type* = 0) + : basic_socket(context, endpoint) { } @@ -120,9 +197,8 @@ class basic_datagram_socket * This constructor creates a datagram socket object to hold an existing * native socket. * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. + * @param ex The I/O executor that the socket will use, by default, to + * dispatch handlers for any asynchronous operations performed on the socket. * * @param protocol An object specifying protocol parameters to be used. * @@ -130,10 +206,34 @@ class basic_datagram_socket * * @throws boost::system::system_error Thrown on failure. */ - basic_datagram_socket(boost::asio::io_context& io_context, + basic_datagram_socket(const executor_type& ex, const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) + : basic_socket(ex, protocol, native_socket) + { + } + + /// Construct a basic_datagram_socket on an existing native socket. + /** + * This constructor creates a datagram socket object to hold an existing + * native socket. + * + * @param context An execution context which provides the I/O executor that + * the socket will use, by default, to dispatch handlers for any asynchronous + * operations performed on the socket. + * + * @param protocol An object specifying protocol parameters to be used. + * + * @param native_socket The new underlying socket implementation. + * + * @throws boost::system::system_error Thrown on failure. + */ + template + basic_datagram_socket(ExecutionContext& context, + const protocol_type& protocol, const native_handle_type& native_socket, + typename enable_if< + is_convertible::value + >::type* = 0) + : basic_socket(context, protocol, native_socket) { } @@ -146,10 +246,11 @@ class basic_datagram_socket * will occur. * * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. + * constructed using the @c basic_datagram_socket(const executor_type&) + * constructor. */ basic_datagram_socket(basic_datagram_socket&& other) - : basic_socket(std::move(other)) + : basic_socket(std::move(other)) { } @@ -162,11 +263,12 @@ class basic_datagram_socket * will occur. * * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. + * constructed using the @c basic_datagram_socket(const executor_type&) + * constructor. */ basic_datagram_socket& operator=(basic_datagram_socket&& other) { - basic_socket::operator=(std::move(other)); + basic_socket::operator=(std::move(other)); return *this; } @@ -179,13 +281,16 @@ class basic_datagram_socket * will occur. * * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. + * constructed using the @c basic_datagram_socket(const executor_type&) + * constructor. */ - template - basic_datagram_socket( - basic_datagram_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) + template + basic_datagram_socket(basic_datagram_socket&& other, + typename enable_if< + is_convertible::value + && is_convertible::value + >::type* = 0) + : basic_socket(std::move(other)) { } @@ -199,14 +304,17 @@ class basic_datagram_socket * will occur. * * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. + * constructed using the @c basic_datagram_socket(const executor_type&) + * constructor. */ - template - typename enable_if::value, - basic_datagram_socket>::type& operator=( - basic_datagram_socket&& other) + template + typename enable_if< + is_convertible::value + && is_convertible::value, + basic_datagram_socket& + >::type operator=(basic_datagram_socket&& other) { - basic_socket::operator=(std::move(other)); + basic_socket::operator=(std::move(other)); return *this; } #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) @@ -246,8 +354,8 @@ class basic_datagram_socket std::size_t send(const ConstBufferSequence& buffers) { boost::system::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); + std::size_t s = this->impl_.get_service().send( + this->impl_.get_implementation(), buffers, 0, ec); boost::asio::detail::throw_error(ec, "send"); return s; } @@ -274,8 +382,8 @@ class basic_datagram_socket socket_base::message_flags flags) { boost::system::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); + std::size_t s = this->impl_.get_service().send( + this->impl_.get_implementation(), buffers, flags, ec); boost::asio::detail::throw_error(ec, "send"); return s; } @@ -301,8 +409,8 @@ class basic_datagram_socket std::size_t send(const ConstBufferSequence& buffers, socket_base::message_flags flags, boost::system::error_code& ec) { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); + return this->impl_.get_service().send( + this->impl_.get_implementation(), buffers, flags, ec); } /// Start an asynchronous send on a connected socket. @@ -323,9 +431,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes sent. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @note The async_send operation can only be used with a connected socket. * Use the async_send_to function to send data on an unconnected datagram @@ -346,22 +454,10 @@ class basic_datagram_socket async_send(const ConstBufferSequence& buffers, BOOST_ASIO_MOVE_ARG(WriteHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, BOOST_ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_send(), handler, this, + buffers, socket_base::message_flags(0)); } /// Start an asynchronous send on a connected socket. @@ -384,9 +480,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes sent. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @note The async_send operation can only be used with a connected socket. * Use the async_send_to function to send data on an unconnected datagram @@ -399,22 +495,9 @@ class basic_datagram_socket socket_base::message_flags flags, BOOST_ASIO_MOVE_ARG(WriteHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, BOOST_ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_send(), handler, this, buffers, flags); } /// Send a datagram to the specified endpoint. @@ -447,8 +530,8 @@ class basic_datagram_socket const endpoint_type& destination) { boost::system::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); + std::size_t s = this->impl_.get_service().send_to( + this->impl_.get_implementation(), buffers, destination, 0, ec); boost::asio::detail::throw_error(ec, "send_to"); return s; } @@ -474,8 +557,8 @@ class basic_datagram_socket const endpoint_type& destination, socket_base::message_flags flags) { boost::system::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); + std::size_t s = this->impl_.get_service().send_to( + this->impl_.get_implementation(), buffers, destination, flags, ec); boost::asio::detail::throw_error(ec, "send_to"); return s; } @@ -501,7 +584,7 @@ class basic_datagram_socket const endpoint_type& destination, socket_base::message_flags flags, boost::system::error_code& ec) { - return this->get_service().send_to(this->get_implementation(), + return this->impl_.get_service().send_to(this->impl_.get_implementation(), buffers, destination, flags, ec); } @@ -526,9 +609,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes sent. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @par Example * To send a single data buffer use the @ref buffer function as follows: @@ -549,24 +632,10 @@ class basic_datagram_socket const endpoint_type& destination, BOOST_ASIO_MOVE_ARG(WriteHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - BOOST_ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_send_to(), handler, this, buffers, + destination, socket_base::message_flags(0)); } /// Start an asynchronous send. @@ -592,9 +661,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes sent. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). */ template BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, @@ -603,24 +672,9 @@ class basic_datagram_socket const endpoint_type& destination, socket_base::message_flags flags, BOOST_ASIO_MOVE_ARG(WriteHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - BOOST_ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_send_to(), handler, this, buffers, destination, flags); } /// Receive some data on a connected socket. @@ -651,8 +705,8 @@ class basic_datagram_socket std::size_t receive(const MutableBufferSequence& buffers) { boost::system::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); + std::size_t s = this->impl_.get_service().receive( + this->impl_.get_implementation(), buffers, 0, ec); boost::asio::detail::throw_error(ec, "receive"); return s; } @@ -680,8 +734,8 @@ class basic_datagram_socket socket_base::message_flags flags) { boost::system::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); + std::size_t s = this->impl_.get_service().receive( + this->impl_.get_implementation(), buffers, flags, ec); boost::asio::detail::throw_error(ec, "receive"); return s; } @@ -708,8 +762,8 @@ class basic_datagram_socket std::size_t receive(const MutableBufferSequence& buffers, socket_base::message_flags flags, boost::system::error_code& ec) { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); + return this->impl_.get_service().receive( + this->impl_.get_implementation(), buffers, flags, ec); } /// Start an asynchronous receive on a connected socket. @@ -730,9 +784,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes received. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @note The async_receive operation can only be used with a connected socket. * Use the async_receive_from function to receive data on an unconnected @@ -754,22 +808,10 @@ class basic_datagram_socket async_receive(const MutableBufferSequence& buffers, BOOST_ASIO_MOVE_ARG(ReadHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_receive(), handler, this, + buffers, socket_base::message_flags(0)); } /// Start an asynchronous receive on a connected socket. @@ -792,9 +834,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes received. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @note The async_receive operation can only be used with a connected socket. * Use the async_receive_from function to receive data on an unconnected @@ -807,22 +849,9 @@ class basic_datagram_socket socket_base::message_flags flags, BOOST_ASIO_MOVE_ARG(ReadHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_receive(), handler, this, buffers, flags); } /// Receive a datagram with the endpoint of the sender. @@ -856,8 +885,8 @@ class basic_datagram_socket endpoint_type& sender_endpoint) { boost::system::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); + std::size_t s = this->impl_.get_service().receive_from( + this->impl_.get_implementation(), buffers, sender_endpoint, 0, ec); boost::asio::detail::throw_error(ec, "receive_from"); return s; } @@ -883,8 +912,8 @@ class basic_datagram_socket endpoint_type& sender_endpoint, socket_base::message_flags flags) { boost::system::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); + std::size_t s = this->impl_.get_service().receive_from( + this->impl_.get_implementation(), buffers, sender_endpoint, flags, ec); boost::asio::detail::throw_error(ec, "receive_from"); return s; } @@ -910,8 +939,8 @@ class basic_datagram_socket endpoint_type& sender_endpoint, socket_base::message_flags flags, boost::system::error_code& ec) { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); + return this->impl_.get_service().receive_from( + this->impl_.get_implementation(), buffers, sender_endpoint, flags, ec); } /// Start an asynchronous receive. @@ -937,9 +966,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes received. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). * * @par Example * To receive into a single data buffer use the @ref buffer function as @@ -957,24 +986,10 @@ class basic_datagram_socket endpoint_type& sender_endpoint, BOOST_ASIO_MOVE_ARG(ReadHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - BOOST_ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) + return async_initiate( + initiate_async_receive_from(), handler, this, buffers, + &sender_endpoint, socket_base::message_flags(0)); } /// Start an asynchronous receive. @@ -1002,9 +1017,9 @@ class basic_datagram_socket * std::size_t bytes_transferred // Number of bytes received. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_context::post(). + * not, the handler will not be invoked from within this function. On + * immediate completion, invocation of the handler will be performed in a + * manner equivalent to using boost::asio::post(). */ template BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, @@ -1013,25 +1028,85 @@ class basic_datagram_socket endpoint_type& sender_endpoint, socket_base::message_flags flags, BOOST_ASIO_MOVE_ARG(ReadHandler) handler) { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; + return async_initiate( + initiate_async_receive_from(), handler, + this, buffers, &sender_endpoint, flags); + } -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - BOOST_ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); +private: + struct initiate_async_send + { + template + void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + basic_datagram_socket* self, const ConstBufferSequence& buffers, + socket_base::message_flags flags) const + { + // If you get an error on the following line it means that your handler + // does not meet the documented type requirements for a WriteHandler. + BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - init.completion_handler); + detail::non_const_lvalue handler2(handler); + self->impl_.get_service().async_send( + self->impl_.get_implementation(), buffers, flags, + handler2.value, self->impl_.get_implementation_executor()); + } + }; - return init.result.get(); -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - } + struct initiate_async_send_to + { + template + void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + basic_datagram_socket* self, const ConstBufferSequence& buffers, + const endpoint_type& destination, + socket_base::message_flags flags) const + { + // If you get an error on the following line it means that your handler + // does not meet the documented type requirements for a WriteHandler. + BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; + + detail::non_const_lvalue handler2(handler); + self->impl_.get_service().async_send_to( + self->impl_.get_implementation(), buffers, destination, flags, + handler2.value, self->impl_.get_implementation_executor()); + } + }; + + struct initiate_async_receive + { + template + void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + basic_datagram_socket* self, const MutableBufferSequence& buffers, + socket_base::message_flags flags) const + { + // If you get an error on the following line it means that your handler + // does not meet the documented type requirements for a ReadHandler. + BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; + + detail::non_const_lvalue handler2(handler); + self->impl_.get_service().async_receive( + self->impl_.get_implementation(), buffers, flags, + handler2.value, self->impl_.get_implementation_executor()); + } + }; + + struct initiate_async_receive_from + { + template + void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + basic_datagram_socket* self, const MutableBufferSequence& buffers, + endpoint_type* sender_endpoint, socket_base::message_flags flags) const + { + // If you get an error on the following line it means that your handler + // does not meet the documented type requirements for a ReadHandler. + BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; + + detail::non_const_lvalue handler2(handler); + self->impl_.get_service().async_receive_from( + self->impl_.get_implementation(), buffers, *sender_endpoint, flags, + handler2.value, self->impl_.get_implementation_executor()); + } + }; }; } // namespace asio diff --git a/include/boost/asio/basic_deadline_timer.hpp b/include/boost/asio/basic_deadline_timer.hpp index f7179a85..75f0fcd8 100644 --- a/include/boost/asio/basic_deadline_timer.hpp +++ b/include/boost/asio/basic_deadline_timer.hpp @@ -2,7 +2,7 @@ // basic_deadline_timer.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -21,19 +21,16 @@ || defined(GENERATING_DOCUMENTATION) #include -#include +#include #include +#include +#include #include #include +#include +#include #include -#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES) -# include -#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) -# include -# define BOOST_ASIO_SVC_T detail::deadline_timer_service -#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES) - #include namespace boost { @@ -58,7 +55,7 @@ namespace asio { * Performing a blocking wait: * @code * // Construct a timer without setting an expiry time. - * boost::asio::deadline_timer timer(io_context); + * boost::asio::deadline_timer timer(my_context); * * // Set an expiry time relative to now. * timer.expires_from_now(boost::posix_time::seconds(5)); @@ -81,7 +78,7 @@ namespace asio { * ... * * // Construct a timer with an absolute expiry time. - * boost::asio::deadline_timer timer(io_context, + * boost::asio::deadline_timer timer(my_context, * boost::posix_time::time_from_string("2005-12-07 23:59:59.000")); * * // Start an asynchronous wait. @@ -128,14 +125,13 @@ namespace asio { * it contains the value boost::asio::error::operation_aborted. */ template - BOOST_ASIO_SVC_TPARAM_DEF2(= deadline_timer_service)> + typename TimeTraits = boost::asio::time_traits