summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/tests
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/tests')
-rw-r--r--3rdparty/asio/src/tests/Makefile.am162
-rw-r--r--3rdparty/asio/src/tests/Makefile.in1679
-rw-r--r--3rdparty/asio/src/tests/latency/allocator.hpp2
-rw-r--r--3rdparty/asio/src/tests/latency/high_res_clock.hpp2
-rw-r--r--3rdparty/asio/src/tests/latency/tcp_client.cpp2
-rw-r--r--3rdparty/asio/src/tests/latency/tcp_server.cpp2
-rw-r--r--3rdparty/asio/src/tests/latency/udp_client.cpp2
-rw-r--r--3rdparty/asio/src/tests/latency/udp_server.cpp2
-rw-r--r--3rdparty/asio/src/tests/performance/client.cpp2
-rw-r--r--3rdparty/asio/src/tests/performance/handler_allocator.hpp2
-rw-r--r--3rdparty/asio/src/tests/performance/server.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/Makefile.in18
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp03/require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp11/require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/query_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/query_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/query_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_free.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_member.cpp2
-rw-r--r--3rdparty/asio/src/tests/properties/cpp14/require_static.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/any_completion_executor.cpp463
-rw-r--r--3rdparty/asio/src/tests/unit/any_completion_handler.cpp260
-rw-r--r--3rdparty/asio/src/tests/unit/any_io_executor.cpp515
-rw-r--r--3rdparty/asio/src/tests/unit/append.cpp58
-rw-r--r--3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp132
-rw-r--r--3rdparty/asio/src/tests/unit/archetypes/async_result.hpp82
-rw-r--r--3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp2
-rw-r--r--3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp2
-rw-r--r--3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp2
-rw-r--r--3rdparty/asio/src/tests/unit/as_tuple.cpp122
-rw-r--r--3rdparty/asio/src/tests/unit/associated_allocator.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/associated_executor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/associator.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/async_result.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/awaitable.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_file.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/basic_random_access_file.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/basic_raw_socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_serial_port.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_signal_set.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_stream_file.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/basic_stream_socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_streambuf.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/bind_allocator.cpp237
-rw-r--r--3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp133
-rw-r--r--3rdparty/asio/src/tests/unit/bind_executor.cpp123
-rw-r--r--3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp199
-rw-r--r--3rdparty/asio/src/tests/unit/buffer.cpp133
-rw-r--r--3rdparty/asio/src/tests/unit/buffer_registration.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/buffered_read_stream.cpp15
-rw-r--r--3rdparty/asio/src/tests/unit/buffered_stream.cpp15
-rw-r--r--3rdparty/asio/src/tests/unit/buffered_write_stream.cpp15
-rw-r--r--3rdparty/asio/src/tests/unit/buffers_iterator.cpp17
-rw-r--r--3rdparty/asio/src/tests/unit/cancellation_signal.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/cancellation_state.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/cancellation_type.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/co_spawn.cpp110
-rw-r--r--3rdparty/asio/src/tests/unit/completion_condition.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/compose.cpp44
-rw-r--r--3rdparty/asio/src/tests/unit/connect.cpp14
-rw-r--r--3rdparty/asio/src/tests/unit/connect_pipe.cpp154
-rw-r--r--3rdparty/asio/src/tests/unit/consign.cpp56
-rw-r--r--3rdparty/asio/src/tests/unit/coroutine.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/deadline_timer.cpp14
-rw-r--r--3rdparty/asio/src/tests/unit/defer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/deferred.cpp (renamed from 3rdparty/asio/src/tests/unit/experimental/deferred.cpp)10
-rw-r--r--3rdparty/asio/src/tests/unit/detached.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/dispatch.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/error.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/execution/any_executor.cpp428
-rw-r--r--3rdparty/asio/src/tests/unit/execution/blocking.cpp151
-rw-r--r--3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp194
-rw-r--r--3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp320
-rw-r--r--3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp1978
-rw-r--r--3rdparty/asio/src/tests/unit/execution/connect.cpp481
-rw-r--r--3rdparty/asio/src/tests/unit/execution/context_as.cpp14
-rw-r--r--3rdparty/asio/src/tests/unit/execution/execute.cpp388
-rw-r--r--3rdparty/asio/src/tests/unit/execution/executor.cpp98
-rw-r--r--3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/execution/mapping.cpp151
-rw-r--r--3rdparty/asio/src/tests/unit/execution/operation_state.cpp104
-rw-r--r--3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp146
-rw-r--r--3rdparty/asio/src/tests/unit/execution/prefer_only.cpp94
-rw-r--r--3rdparty/asio/src/tests/unit/execution/receiver.cpp549
-rw-r--r--3rdparty/asio/src/tests/unit/execution/relationship.cpp146
-rw-r--r--3rdparty/asio/src/tests/unit/execution/schedule.cpp490
-rw-r--r--3rdparty/asio/src/tests/unit/execution/scheduler.cpp99
-rw-r--r--3rdparty/asio/src/tests/unit/execution/sender.cpp231
-rw-r--r--3rdparty/asio/src/tests/unit/execution/set_done.cpp228
-rw-r--r--3rdparty/asio/src/tests/unit/execution/set_error.cpp244
-rw-r--r--3rdparty/asio/src/tests/unit/execution/set_value.cpp820
-rw-r--r--3rdparty/asio/src/tests/unit/execution/start.cpp228
-rw-r--r--3rdparty/asio/src/tests/unit/execution/submit.cpp546
-rw-r--r--3rdparty/asio/src/tests/unit/execution_context.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/executor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/executor_work_guard.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/channel.cpp888
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/co_composed.cpp518
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp165
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp113
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp39
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp67
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp6
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp116
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp6
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp6
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/experimental/promise.cpp326
-rw-r--r--3rdparty/asio/src/tests/unit/file_base.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp41
-rw-r--r--3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp42
-rw-r--r--3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp19
-rw-r--r--3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp27
-rw-r--r--3rdparty/asio/src/tests/unit/high_resolution_timer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/io_context.cpp103
-rw-r--r--3rdparty/asio/src/tests/unit/io_context_strand.cpp15
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address.cpp6
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v4.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v6.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/host_name.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/icmp.cpp67
-rw-r--r--3rdparty/asio/src/tests/unit/ip/multicast.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/network_v4.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/network_v6.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ip/tcp.cpp111
-rw-r--r--3rdparty/asio/src/tests/unit/ip/udp.cpp81
-rw-r--r--3rdparty/asio/src/tests/unit/ip/unicast.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ip/v6_only.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/is_read_buffered.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/is_write_buffered.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/local/connect_pair.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp209
-rw-r--r--3rdparty/asio/src/tests/unit/local/stream_protocol.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/packaged_task.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/placeholders.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/posix/descriptor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp23
-rw-r--r--3rdparty/asio/src/tests/unit/post.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/prepend.cpp58
-rw-r--r--3rdparty/asio/src/tests/unit/random_access_file.cpp171
-rw-r--r--3rdparty/asio/src/tests/unit/read.cpp76
-rw-r--r--3rdparty/asio/src/tests/unit/read_at.cpp68
-rw-r--r--3rdparty/asio/src/tests/unit/read_until.cpp37
-rw-r--r--3rdparty/asio/src/tests/unit/readable_pipe.cpp131
-rw-r--r--3rdparty/asio/src/tests/unit/recycling_allocator.cpp80
-rw-r--r--3rdparty/asio/src/tests/unit/redirect_error.cpp100
-rw-r--r--3rdparty/asio/src/tests/unit/registered_buffer.cpp111
-rw-r--r--3rdparty/asio/src/tests/unit/serial_port.cpp20
-rw-r--r--3rdparty/asio/src/tests/unit/serial_port_base.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/signal_set.cpp7
-rw-r--r--3rdparty/asio/src/tests/unit/signal_set_base.cpp30
-rw-r--r--3rdparty/asio/src/tests/unit/socket_base.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/context.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/context_base.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/error.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/stream.cpp8
-rw-r--r--3rdparty/asio/src/tests/unit/ssl/stream_base.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/static_thread_pool.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/steady_timer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/strand.cpp94
-rw-r--r--3rdparty/asio/src/tests/unit/stream_file.cpp173
-rw-r--r--3rdparty/asio/src/tests/unit/streambuf.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/system_context.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/system_executor.cpp93
-rw-r--r--3rdparty/asio/src/tests/unit/system_timer.cpp39
-rw-r--r--3rdparty/asio/src/tests/unit/this_coro.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/thread.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/thread_pool.cpp315
-rw-r--r--3rdparty/asio/src/tests/unit/time_traits.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/buffer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/executor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/internet.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/io_context.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/net.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/netfwd.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/socket.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/ts/timer.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/unit_test.hpp2
-rw-r--r--3rdparty/asio/src/tests/unit/use_awaitable.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/use_future.cpp8
-rw-r--r--3rdparty/asio/src/tests/unit/uses_executor.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/wait_traits.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/object_handle.cpp16
-rw-r--r--3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp2
-rw-r--r--3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp4
-rw-r--r--3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/windows/stream_handle.cpp25
-rw-r--r--3rdparty/asio/src/tests/unit/writable_pipe.cpp136
-rw-r--r--3rdparty/asio/src/tests/unit/write.cpp84
-rw-r--r--3rdparty/asio/src/tests/unit/write_at.cpp76
391 files changed, 9039 insertions, 9740 deletions
diff --git a/3rdparty/asio/src/tests/Makefile.am b/3rdparty/asio/src/tests/Makefile.am
index 71616985fb1..04f8a03a4ec 100644
--- a/3rdparty/asio/src/tests/Makefile.am
+++ b/3rdparty/asio/src/tests/Makefile.am
@@ -12,29 +12,43 @@ endif
SUBDIRS = properties
check_PROGRAMS = \
+ unit/any_completion_executor \
+ unit/any_completion_handler \
+ unit/any_io_executor \
+ unit/append \
+ unit/as_tuple \
unit/associated_allocator \
unit/associated_cancellation_slot \
unit/associated_executor \
+ unit/associated_immediate_executor \
unit/associator \
unit/async_result \
unit/awaitable \
unit/basic_datagram_socket \
unit/basic_deadline_timer \
+ unit/basic_file \
+ unit/basic_random_access_file \
unit/basic_raw_socket \
+ unit/basic_readable_pipe \
unit/basic_seq_packet_socket \
unit/basic_serial_port \
unit/basic_signal_set \
unit/basic_socket \
unit/basic_socket_acceptor \
+ unit/basic_stream_file \
unit/basic_stream_socket \
unit/basic_streambuf \
unit/basic_waitable_timer \
+ unit/basic_writable_pipe \
+ unit/bind_allocator \
unit/bind_cancellation_slot \
unit/bind_executor \
+ unit/bind_immediate_executor \
unit/buffered_read_stream \
unit/buffered_stream \
unit/buffered_write_stream \
unit/buffer \
+ unit/buffer_registration \
unit/buffers_iterator \
unit/cancellation_signal \
unit/cancellation_state \
@@ -43,39 +57,29 @@ check_PROGRAMS = \
unit/completion_condition \
unit/compose \
unit/connect \
+ unit/connect_pipe \
+ unit/consign \
unit/coroutine \
unit/deadline_timer \
unit/defer \
+ unit/deferred \
unit/detached \
unit/dispatch \
unit/error \
unit/execution/any_executor \
unit/execution/blocking \
unit/execution/blocking_adaptation \
- unit/execution/bulk_execute \
- unit/execution/bulk_guarantee \
- unit/execution/connect \
unit/execution/context_as \
- unit/execution/execute \
unit/execution/executor \
unit/execution/invocable_archetype \
unit/execution/mapping \
- unit/execution/operation_state \
unit/execution/outstanding_work \
unit/execution/prefer_only \
- unit/execution/receiver \
unit/execution/relationship \
- unit/execution/schedule \
- unit/execution/scheduler \
- unit/execution/sender \
- unit/execution/set_done \
- unit/execution/set_error \
- unit/execution/set_value \
- unit/execution/start \
- unit/execution/submit \
unit/execution_context \
unit/executor \
unit/executor_work_guard \
+ unit/file_base \
unit/generic/basic_endpoint \
unit/generic/datagram_protocol \
unit/generic/raw_protocol \
@@ -111,6 +115,7 @@ check_PROGRAMS = \
unit/local/basic_endpoint \
unit/local/connect_pair \
unit/local/datagram_protocol \
+ unit/local/seq_packet_protocol \
unit/local/stream_protocol \
unit/packaged_task \
unit/placeholders \
@@ -120,17 +125,24 @@ check_PROGRAMS = \
unit/posix/descriptor_base \
unit/posix/stream_descriptor \
unit/post \
+ unit/prepend \
+ unit/random_access_file \
unit/read \
unit/read_at \
unit/read_until \
+ unit/readable_pipe \
+ unit/recycling_allocator \
unit/redirect_error \
+ unit/registered_buffer \
unit/serial_port \
unit/serial_port_base \
unit/signal_set \
+ unit/signal_set_base \
unit/socket_base \
unit/static_thread_pool \
unit/steady_timer \
unit/strand \
+ unit/stream_file \
unit/streambuf \
unit/system_context \
unit/system_executor \
@@ -160,6 +172,7 @@ check_PROGRAMS = \
unit/windows/overlapped_ptr \
unit/windows/random_access_handle \
unit/windows/stream_handle \
+ unit/writable_pipe \
unit/write \
unit/write_at
@@ -173,9 +186,14 @@ noinst_PROGRAMS = \
performance/server
endif
-if HAVE_CXX14
+if HAVE_CXX11
check_PROGRAMS += \
- unit/experimental/deferred
+ unit/experimental/basic_channel \
+ unit/experimental/basic_concurrent_channel \
+ unit/experimental/channel \
+ unit/experimental/channel_traits \
+ unit/experimental/concurrent_channel \
+ unit/experimental/parallel_group
endif
if HAVE_CXX20
@@ -185,8 +203,12 @@ check_PROGRAMS += \
if HAVE_COROUTINES
check_PROGRAMS += \
unit/experimental/awaitable_operators \
+ unit/experimental/co_composed \
+ unit/experimental/coro/allocator \
unit/experimental/coro/cancel \
+ unit/experimental/coro/co_spawn \
unit/experimental/coro/exception \
+ unit/experimental/coro/executor \
unit/experimental/coro/partial \
unit/experimental/coro/simple_test \
unit/experimental/coro/stack_test \
@@ -206,29 +228,43 @@ check_PROGRAMS += \
endif
TESTS = \
+ unit/any_completion_executor \
+ unit/any_completion_handler \
+ unit/any_io_executor \
+ unit/append \
+ unit/as_tuple \
unit/associated_allocator \
unit/associated_cancellation_slot \
unit/associated_executor \
+ unit/associated_immediate_executor \
unit/associator \
unit/async_result \
unit/awaitable \
unit/basic_datagram_socket \
unit/basic_deadline_timer \
+ unit/basic_file \
+ unit/basic_random_access_file \
unit/basic_raw_socket \
+ unit/basic_readable_pipe \
unit/basic_seq_packet_socket \
unit/basic_serial_port \
unit/basic_signal_set \
unit/basic_socket \
unit/basic_socket_acceptor \
+ unit/basic_stream_file \
unit/basic_stream_socket \
unit/basic_streambuf \
unit/basic_waitable_timer \
+ unit/basic_writable_pipe \
+ unit/bind_allocator \
unit/bind_cancellation_slot \
unit/bind_executor \
+ unit/bind_immediate_executor \
unit/buffered_read_stream \
unit/buffered_stream \
unit/buffered_write_stream \
unit/buffer \
+ unit/buffer_registration \
unit/buffers_iterator \
unit/cancellation_signal \
unit/cancellation_state \
@@ -237,38 +273,28 @@ TESTS = \
unit/completion_condition \
unit/compose \
unit/connect \
+ unit/connect_pipe \
+ unit/consign \
unit/deadline_timer \
unit/defer \
+ unit/deferred \
unit/detached \
unit/dispatch \
unit/error \
unit/execution/any_executor \
unit/execution/blocking \
unit/execution/blocking_adaptation \
- unit/execution/bulk_execute \
- unit/execution/bulk_guarantee \
- unit/execution/connect \
unit/execution/context_as \
- unit/execution/execute \
unit/execution/executor \
unit/execution/invocable_archetype \
unit/execution/mapping \
- unit/execution/operation_state \
unit/execution/outstanding_work \
unit/execution/prefer_only \
- unit/execution/receiver \
unit/execution/relationship \
- unit/execution/schedule \
- unit/execution/scheduler \
- unit/execution/sender \
- unit/execution/set_done \
- unit/execution/set_error \
- unit/execution/set_value \
- unit/execution/start \
- unit/execution/submit \
unit/execution_context \
unit/executor \
unit/executor_work_guard \
+ unit/file_base \
unit/high_resolution_timer \
unit/io_context \
unit/io_context_strand \
@@ -299,6 +325,7 @@ TESTS = \
unit/local/basic_endpoint \
unit/local/connect_pair \
unit/local/datagram_protocol \
+ unit/local/seq_packet_protocol \
unit/local/stream_protocol \
unit/packaged_task \
unit/placeholders \
@@ -308,17 +335,24 @@ TESTS = \
unit/posix/descriptor_base \
unit/posix/stream_descriptor \
unit/post \
+ unit/prepend \
+ unit/random_access_file \
unit/read \
unit/read_at \
unit/read_until \
+ unit/readable_pipe \
+ unit/recycling_allocator \
unit/redirect_error \
+ unit/registered_buffer \
unit/serial_port \
unit/serial_port_base \
unit/signal_set \
+ unit/signal_set_base \
unit/socket_base \
unit/static_thread_pool \
unit/steady_timer \
unit/strand \
+ unit/stream_file \
unit/streambuf \
unit/system_context \
unit/system_executor \
@@ -348,12 +382,18 @@ TESTS = \
unit/windows/overlapped_ptr \
unit/windows/random_access_handle \
unit/windows/stream_handle \
+ unit/writable_pipe \
unit/write \
unit/write_at
-if HAVE_CXX14
+if HAVE_CXX11
TESTS += \
- unit/experimental/deferred
+ unit/experimental/basic_channel \
+ unit/experimental/basic_concurrent_channel \
+ unit/experimental/channel \
+ unit/experimental/channel_traits \
+ unit/experimental/concurrent_channel \
+ unit/experimental/parallel_group
endif
if HAVE_CXX20
@@ -363,8 +403,12 @@ TESTS += \
if HAVE_COROUTINES
TESTS += \
unit/experimental/awaitable_operators \
+ unit/experimental/co_composed \
+ unit/experimental/coro/allocator \
unit/experimental/coro/cancel \
+ unit/experimental/coro/co_spawn \
unit/experimental/coro/exception \
+ unit/experimental/coro/executor \
unit/experimental/coro/partial \
unit/experimental/coro/simple_test \
unit/experimental/coro/stack_test \
@@ -398,26 +442,40 @@ performance_client_SOURCES = performance/client.cpp
performance_server_SOURCES = performance/server.cpp
endif
+unit_any_completion_executor_SOURCES = unit/any_completion_executor.cpp
+unit_any_completion_handler_SOURCES = unit/any_completion_handler.cpp
+unit_any_io_executor_SOURCES = unit/any_io_executor.cpp
+unit_append_SOURCES = unit/append.cpp
+unit_as_tuple_SOURCES = unit/as_tuple.cpp
unit_associated_allocator_SOURCES = unit/associated_allocator.cpp
unit_associated_cancellation_slot_SOURCES = unit/associated_cancellation_slot.cpp
unit_associated_executor_SOURCES = unit/associated_executor.cpp
+unit_associated_immediate_executor_SOURCES = unit/associated_immediate_executor.cpp
unit_associator_SOURCES = unit/associator.cpp
unit_async_result_SOURCES = unit/async_result.cpp
unit_awaitable_SOURCES = unit/awaitable.cpp
unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp
unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp
+unit_basic_file_SOURCES = unit/basic_file.cpp
+unit_basic_random_access_file_SOURCES = unit/basic_random_access_file.cpp
unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp
+unit_basic_readable_pipe_SOURCES = unit/basic_readable_pipe.cpp
unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp
unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp
unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp
unit_basic_socket_SOURCES = unit/basic_socket.cpp
unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp
+unit_basic_stream_file_SOURCES = unit/basic_stream_file.cpp
unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp
unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp
unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp
+unit_basic_writable_pipe_SOURCES = unit/basic_writable_pipe.cpp
+unit_bind_allocator_SOURCES = unit/bind_allocator.cpp
unit_bind_cancellation_slot_SOURCES = unit/bind_cancellation_slot.cpp
unit_bind_executor_SOURCES = unit/bind_executor.cpp
+unit_bind_immediate_executor_SOURCES = unit/bind_immediate_executor.cpp
unit_buffer_SOURCES = unit/buffer.cpp
+unit_buffer_registration_SOURCES = unit/buffer_registration.cpp
unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp
unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp
unit_buffered_stream_SOURCES = unit/buffered_stream.cpp
@@ -429,39 +487,29 @@ unit_co_spawn_SOURCES = unit/co_spawn.cpp
unit_completion_condition_SOURCES = unit/completion_condition.cpp
unit_compose_SOURCES = unit/compose.cpp
unit_connect_SOURCES = unit/connect.cpp
+unit_connect_pipe_SOURCES = unit/connect_pipe.cpp
+unit_consign_SOURCES = unit/consign.cpp
unit_coroutine_SOURCES = unit/coroutine.cpp
unit_deadline_timer_SOURCES = unit/deadline_timer.cpp
unit_defer_SOURCES = unit/defer.cpp
+unit_deferred_SOURCES = unit/deferred.cpp
unit_detached_SOURCES = unit/detached.cpp
unit_dispatch_SOURCES = unit/dispatch.cpp
unit_error_SOURCES = unit/error.cpp
unit_execution_any_executor_SOURCES = unit/execution/any_executor.cpp
unit_execution_blocking_SOURCES = unit/execution/blocking.cpp
unit_execution_blocking_adaptation_SOURCES = unit/execution/blocking_adaptation.cpp
-unit_execution_bulk_execute_SOURCES = unit/execution/bulk_execute.cpp
-unit_execution_bulk_guarantee_SOURCES = unit/execution/bulk_guarantee.cpp
-unit_execution_connect_SOURCES = unit/execution/connect.cpp
unit_execution_context_as_SOURCES = unit/execution/context_as.cpp
-unit_execution_execute_SOURCES = unit/execution/execute.cpp
unit_execution_executor_SOURCES = unit/execution/executor.cpp
unit_execution_invocable_archetype_SOURCES = unit/execution/invocable_archetype.cpp
unit_execution_mapping_SOURCES = unit/execution/mapping.cpp
unit_execution_outstanding_work_SOURCES = unit/execution/outstanding_work.cpp
-unit_execution_operation_state_SOURCES = unit/execution/operation_state.cpp
unit_execution_prefer_only_SOURCES = unit/execution/prefer_only.cpp
-unit_execution_receiver_SOURCES = unit/execution/receiver.cpp
unit_execution_relationship_SOURCES = unit/execution/relationship.cpp
-unit_execution_schedule_SOURCES = unit/execution/schedule.cpp
-unit_execution_scheduler_SOURCES = unit/execution/scheduler.cpp
-unit_execution_sender_SOURCES = unit/execution/sender.cpp
-unit_execution_set_done_SOURCES = unit/execution/set_done.cpp
-unit_execution_set_error_SOURCES = unit/execution/set_error.cpp
-unit_execution_set_value_SOURCES = unit/execution/set_value.cpp
-unit_execution_start_SOURCES = unit/execution/start.cpp
-unit_execution_submit_SOURCES = unit/execution/submit.cpp
unit_execution_context_SOURCES = unit/execution_context.cpp
unit_executor_SOURCES = unit/executor.cpp
unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp
+unit_file_base_SOURCES = unit/file_base.cpp
unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp
unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp
unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp
@@ -497,6 +545,7 @@ unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp
unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp
unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp
unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp
+unit_local_seq_packet_protocol_SOURCES = unit/local/seq_packet_protocol.cpp
unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp
unit_packaged_task_SOURCES = unit/packaged_task.cpp
unit_placeholders_SOURCES = unit/placeholders.cpp
@@ -506,17 +555,24 @@ unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp
unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp
unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp
unit_post_SOURCES = unit/post.cpp
+unit_prepend_SOURCES = unit/prepend.cpp
+unit_random_access_file_SOURCES = unit/random_access_file.cpp
unit_read_SOURCES = unit/read.cpp
unit_read_at_SOURCES = unit/read_at.cpp
unit_read_until_SOURCES = unit/read_until.cpp
+unit_readable_pipe_SOURCES = unit/readable_pipe.cpp
+unit_recycling_allocator_SOURCES = unit/recycling_allocator.cpp
unit_redirect_error_SOURCES = unit/redirect_error.cpp
+unit_registered_buffer_SOURCES = unit/registered_buffer.cpp
unit_serial_port_SOURCES = unit/serial_port.cpp
unit_serial_port_base_SOURCES = unit/serial_port_base.cpp
unit_signal_set_SOURCES = unit/signal_set.cpp
+unit_signal_set_base_SOURCES = unit/signal_set_base.cpp
unit_socket_base_SOURCES = unit/socket_base.cpp
unit_static_thread_pool_SOURCES = unit/static_thread_pool.cpp
unit_steady_timer_SOURCES = unit/steady_timer.cpp
unit_strand_SOURCES = unit/strand.cpp
+unit_stream_file_SOURCES = unit/stream_file.cpp
unit_streambuf_SOURCES = unit/streambuf.cpp
unit_system_context_SOURCES = unit/system_context.cpp
unit_system_executor_SOURCES = unit/system_executor.cpp
@@ -546,11 +602,17 @@ unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp
unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp
unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp
unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp
+unit_writable_pipe_SOURCES = unit/writable_pipe.cpp
unit_write_SOURCES = unit/write.cpp
unit_write_at_SOURCES = unit/write_at.cpp
-if HAVE_CXX14
-unit_experimental_deferred_SOURCES = unit/experimental/deferred.cpp
+if HAVE_CXX11
+unit_experimental_basic_channel_SOURCES = unit/experimental/basic_channel.cpp
+unit_experimental_basic_concurrent_channel_SOURCES = unit/experimental/basic_concurrent_channel.cpp
+unit_experimental_channel_SOURCES = unit/experimental/channel.cpp
+unit_experimental_channel_traits_SOURCES = unit/experimental/channel_traits.cpp
+unit_experimental_concurrent_channel_SOURCES = unit/experimental/concurrent_channel.cpp
+unit_experimental_parallel_group_SOURCES = unit/experimental/parallel_group.cpp
endif
if HAVE_CXX20
@@ -558,8 +620,12 @@ unit_experimental_promise_SOURCES = unit/experimental/promise.cpp
if HAVE_COROUTINES
unit_experimental_awaitable_operators_SOURCES = unit/experimental/awaitable_operators.cpp
+unit_experimental_co_composed_SOURCES = unit/experimental/co_composed.cpp
+unit_experimental_coro_allocator_SOURCES = unit/experimental/coro/allocator.cpp
unit_experimental_coro_cancel_SOURCES = unit/experimental/coro/cancel.cpp
+unit_experimental_coro_co_spawn_SOURCES = unit/experimental/coro/co_spawn.cpp
unit_experimental_coro_exception_SOURCES = unit/experimental/coro/exception.cpp
+unit_experimental_coro_executor_SOURCES = unit/experimental/coro/executor.cpp
unit_experimental_coro_partial_SOURCES = unit/experimental/coro/partial.cpp
unit_experimental_coro_simple_test_SOURCES = unit/experimental/coro/simple_test.cpp
unit_experimental_coro_stack_test_SOURCES = unit/experimental/coro/stack_test.cpp
diff --git a/3rdparty/asio/src/tests/Makefile.in b/3rdparty/asio/src/tests/Makefile.in
index 792e3875566..a88bd89fec5 100644
--- a/3rdparty/asio/src/tests/Makefile.in
+++ b/3rdparty/asio/src/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -91,56 +91,56 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../asio_ssl.cpp
-check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
+check_PROGRAMS = unit/any_completion_executor$(EXEEXT) \
+ unit/any_completion_handler$(EXEEXT) \
+ unit/any_io_executor$(EXEEXT) unit/append$(EXEEXT) \
+ unit/as_tuple$(EXEEXT) unit/associated_allocator$(EXEEXT) \
unit/associated_cancellation_slot$(EXEEXT) \
- unit/associated_executor$(EXEEXT) unit/associator$(EXEEXT) \
- unit/async_result$(EXEEXT) unit/awaitable$(EXEEXT) \
- unit/basic_datagram_socket$(EXEEXT) \
- unit/basic_deadline_timer$(EXEEXT) \
+ unit/associated_executor$(EXEEXT) \
+ unit/associated_immediate_executor$(EXEEXT) \
+ unit/associator$(EXEEXT) unit/async_result$(EXEEXT) \
+ unit/awaitable$(EXEEXT) unit/basic_datagram_socket$(EXEEXT) \
+ unit/basic_deadline_timer$(EXEEXT) unit/basic_file$(EXEEXT) \
+ unit/basic_random_access_file$(EXEEXT) \
unit/basic_raw_socket$(EXEEXT) \
+ unit/basic_readable_pipe$(EXEEXT) \
unit/basic_seq_packet_socket$(EXEEXT) \
unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \
unit/basic_socket$(EXEEXT) unit/basic_socket_acceptor$(EXEEXT) \
+ unit/basic_stream_file$(EXEEXT) \
unit/basic_stream_socket$(EXEEXT) \
unit/basic_streambuf$(EXEEXT) \
unit/basic_waitable_timer$(EXEEXT) \
+ unit/basic_writable_pipe$(EXEEXT) unit/bind_allocator$(EXEEXT) \
unit/bind_cancellation_slot$(EXEEXT) \
- unit/bind_executor$(EXEEXT) unit/buffered_read_stream$(EXEEXT) \
+ unit/bind_executor$(EXEEXT) \
+ unit/bind_immediate_executor$(EXEEXT) \
+ unit/buffered_read_stream$(EXEEXT) \
unit/buffered_stream$(EXEEXT) \
unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \
+ unit/buffer_registration$(EXEEXT) \
unit/buffers_iterator$(EXEEXT) \
unit/cancellation_signal$(EXEEXT) \
unit/cancellation_state$(EXEEXT) \
unit/cancellation_type$(EXEEXT) unit/co_spawn$(EXEEXT) \
unit/completion_condition$(EXEEXT) unit/compose$(EXEEXT) \
- unit/connect$(EXEEXT) unit/coroutine$(EXEEXT) \
+ unit/connect$(EXEEXT) unit/connect_pipe$(EXEEXT) \
+ unit/consign$(EXEEXT) unit/coroutine$(EXEEXT) \
unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \
- unit/detached$(EXEEXT) unit/dispatch$(EXEEXT) \
- unit/error$(EXEEXT) unit/execution/any_executor$(EXEEXT) \
+ unit/deferred$(EXEEXT) unit/detached$(EXEEXT) \
+ unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \
+ unit/execution/any_executor$(EXEEXT) \
unit/execution/blocking$(EXEEXT) \
unit/execution/blocking_adaptation$(EXEEXT) \
- unit/execution/bulk_execute$(EXEEXT) \
- unit/execution/bulk_guarantee$(EXEEXT) \
- unit/execution/connect$(EXEEXT) \
unit/execution/context_as$(EXEEXT) \
- unit/execution/execute$(EXEEXT) \
unit/execution/executor$(EXEEXT) \
unit/execution/invocable_archetype$(EXEEXT) \
unit/execution/mapping$(EXEEXT) \
- unit/execution/operation_state$(EXEEXT) \
unit/execution/outstanding_work$(EXEEXT) \
unit/execution/prefer_only$(EXEEXT) \
- unit/execution/receiver$(EXEEXT) \
unit/execution/relationship$(EXEEXT) \
- unit/execution/schedule$(EXEEXT) \
- unit/execution/scheduler$(EXEEXT) \
- unit/execution/sender$(EXEEXT) \
- unit/execution/set_done$(EXEEXT) \
- unit/execution/set_error$(EXEEXT) \
- unit/execution/set_value$(EXEEXT) \
- unit/execution/start$(EXEEXT) unit/execution/submit$(EXEEXT) \
unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \
- unit/executor_work_guard$(EXEEXT) \
+ unit/executor_work_guard$(EXEEXT) unit/file_base$(EXEEXT) \
unit/generic/basic_endpoint$(EXEEXT) \
unit/generic/datagram_protocol$(EXEEXT) \
unit/generic/raw_protocol$(EXEEXT) \
@@ -168,6 +168,7 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
unit/local/basic_endpoint$(EXEEXT) \
unit/local/connect_pair$(EXEEXT) \
unit/local/datagram_protocol$(EXEEXT) \
+ unit/local/seq_packet_protocol$(EXEEXT) \
unit/local/stream_protocol$(EXEEXT) \
unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \
unit/posix/basic_descriptor$(EXEEXT) \
@@ -175,22 +176,25 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
unit/posix/descriptor$(EXEEXT) \
unit/posix/descriptor_base$(EXEEXT) \
unit/posix/stream_descriptor$(EXEEXT) unit/post$(EXEEXT) \
+ unit/prepend$(EXEEXT) unit/random_access_file$(EXEEXT) \
unit/read$(EXEEXT) unit/read_at$(EXEEXT) \
- unit/read_until$(EXEEXT) unit/redirect_error$(EXEEXT) \
- unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \
- unit/signal_set$(EXEEXT) unit/socket_base$(EXEEXT) \
+ unit/read_until$(EXEEXT) unit/readable_pipe$(EXEEXT) \
+ unit/recycling_allocator$(EXEEXT) unit/redirect_error$(EXEEXT) \
+ unit/registered_buffer$(EXEEXT) unit/serial_port$(EXEEXT) \
+ unit/serial_port_base$(EXEEXT) unit/signal_set$(EXEEXT) \
+ unit/signal_set_base$(EXEEXT) unit/socket_base$(EXEEXT) \
unit/static_thread_pool$(EXEEXT) unit/steady_timer$(EXEEXT) \
- unit/strand$(EXEEXT) unit/streambuf$(EXEEXT) \
- unit/system_context$(EXEEXT) unit/system_executor$(EXEEXT) \
- unit/system_timer$(EXEEXT) unit/this_coro$(EXEEXT) \
- unit/thread$(EXEEXT) unit/thread_pool$(EXEEXT) \
- unit/time_traits$(EXEEXT) unit/ts/buffer$(EXEEXT) \
- unit/ts/executor$(EXEEXT) unit/ts/internet$(EXEEXT) \
- unit/ts/io_context$(EXEEXT) unit/ts/net$(EXEEXT) \
- unit/ts/netfwd$(EXEEXT) unit/ts/socket$(EXEEXT) \
- unit/ts/timer$(EXEEXT) unit/use_awaitable$(EXEEXT) \
- unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \
- unit/wait_traits$(EXEEXT) \
+ unit/strand$(EXEEXT) unit/stream_file$(EXEEXT) \
+ unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \
+ unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \
+ unit/this_coro$(EXEEXT) unit/thread$(EXEEXT) \
+ unit/thread_pool$(EXEEXT) unit/time_traits$(EXEEXT) \
+ unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \
+ unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \
+ unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \
+ unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \
+ unit/use_awaitable$(EXEEXT) unit/use_future$(EXEEXT) \
+ unit/uses_executor$(EXEEXT) unit/wait_traits$(EXEEXT) \
unit/windows/basic_object_handle$(EXEEXT) \
unit/windows/basic_overlapped_handle$(EXEEXT) \
unit/windows/basic_random_access_handle$(EXEEXT) \
@@ -199,7 +203,8 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
unit/windows/overlapped_handle$(EXEEXT) \
unit/windows/overlapped_ptr$(EXEEXT) \
unit/windows/random_access_handle$(EXEEXT) \
- unit/windows/stream_handle$(EXEEXT) unit/write$(EXEEXT) \
+ unit/windows/stream_handle$(EXEEXT) \
+ unit/writable_pipe$(EXEEXT) unit/write$(EXEEXT) \
unit/write_at$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
$(am__EXEEXT_3) $(am__EXEEXT_4)
@STANDALONE_FALSE@noinst_PROGRAMS = latency/tcp_client$(EXEEXT) \
@@ -208,16 +213,25 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
@STANDALONE_FALSE@ latency/udp_server$(EXEEXT) \
@STANDALONE_FALSE@ performance/client$(EXEEXT) \
@STANDALONE_FALSE@ performance/server$(EXEEXT)
-@HAVE_CXX14_TRUE@am__append_2 = \
-@HAVE_CXX14_TRUE@ unit/experimental/deferred
+@HAVE_CXX11_TRUE@am__append_2 = \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/channel \
+@HAVE_CXX11_TRUE@ unit/experimental/channel_traits \
+@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/parallel_group
@HAVE_CXX20_TRUE@am__append_3 = \
@HAVE_CXX20_TRUE@ unit/experimental/promise
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__append_4 = \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/awaitable_operators \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test \
@@ -232,56 +246,55 @@ check_PROGRAMS = unit/associated_allocator$(EXEEXT) \
@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \
@HAVE_OPENSSL_TRUE@ unit/ssl/stream
-TESTS = unit/associated_allocator$(EXEEXT) \
+TESTS = unit/any_completion_executor$(EXEEXT) \
+ unit/any_completion_handler$(EXEEXT) \
+ unit/any_io_executor$(EXEEXT) unit/append$(EXEEXT) \
+ unit/as_tuple$(EXEEXT) unit/associated_allocator$(EXEEXT) \
unit/associated_cancellation_slot$(EXEEXT) \
- unit/associated_executor$(EXEEXT) unit/associator$(EXEEXT) \
- unit/async_result$(EXEEXT) unit/awaitable$(EXEEXT) \
- unit/basic_datagram_socket$(EXEEXT) \
- unit/basic_deadline_timer$(EXEEXT) \
+ unit/associated_executor$(EXEEXT) \
+ unit/associated_immediate_executor$(EXEEXT) \
+ unit/associator$(EXEEXT) unit/async_result$(EXEEXT) \
+ unit/awaitable$(EXEEXT) unit/basic_datagram_socket$(EXEEXT) \
+ unit/basic_deadline_timer$(EXEEXT) unit/basic_file$(EXEEXT) \
+ unit/basic_random_access_file$(EXEEXT) \
unit/basic_raw_socket$(EXEEXT) \
+ unit/basic_readable_pipe$(EXEEXT) \
unit/basic_seq_packet_socket$(EXEEXT) \
unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \
unit/basic_socket$(EXEEXT) unit/basic_socket_acceptor$(EXEEXT) \
+ unit/basic_stream_file$(EXEEXT) \
unit/basic_stream_socket$(EXEEXT) \
unit/basic_streambuf$(EXEEXT) \
unit/basic_waitable_timer$(EXEEXT) \
+ unit/basic_writable_pipe$(EXEEXT) unit/bind_allocator$(EXEEXT) \
unit/bind_cancellation_slot$(EXEEXT) \
- unit/bind_executor$(EXEEXT) unit/buffered_read_stream$(EXEEXT) \
+ unit/bind_executor$(EXEEXT) \
+ unit/bind_immediate_executor$(EXEEXT) \
+ unit/buffered_read_stream$(EXEEXT) \
unit/buffered_stream$(EXEEXT) \
unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \
+ unit/buffer_registration$(EXEEXT) \
unit/buffers_iterator$(EXEEXT) \
unit/cancellation_signal$(EXEEXT) \
unit/cancellation_state$(EXEEXT) \
unit/cancellation_type$(EXEEXT) unit/co_spawn$(EXEEXT) \
unit/completion_condition$(EXEEXT) unit/compose$(EXEEXT) \
- unit/connect$(EXEEXT) unit/deadline_timer$(EXEEXT) \
- unit/defer$(EXEEXT) unit/detached$(EXEEXT) \
- unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \
- unit/execution/any_executor$(EXEEXT) \
+ unit/connect$(EXEEXT) unit/connect_pipe$(EXEEXT) \
+ unit/consign$(EXEEXT) unit/deadline_timer$(EXEEXT) \
+ unit/defer$(EXEEXT) unit/deferred$(EXEEXT) \
+ unit/detached$(EXEEXT) unit/dispatch$(EXEEXT) \
+ unit/error$(EXEEXT) unit/execution/any_executor$(EXEEXT) \
unit/execution/blocking$(EXEEXT) \
unit/execution/blocking_adaptation$(EXEEXT) \
- unit/execution/bulk_execute$(EXEEXT) \
- unit/execution/bulk_guarantee$(EXEEXT) \
- unit/execution/connect$(EXEEXT) \
unit/execution/context_as$(EXEEXT) \
- unit/execution/execute$(EXEEXT) \
unit/execution/executor$(EXEEXT) \
unit/execution/invocable_archetype$(EXEEXT) \
unit/execution/mapping$(EXEEXT) \
- unit/execution/operation_state$(EXEEXT) \
unit/execution/outstanding_work$(EXEEXT) \
unit/execution/prefer_only$(EXEEXT) \
- unit/execution/receiver$(EXEEXT) \
unit/execution/relationship$(EXEEXT) \
- unit/execution/schedule$(EXEEXT) \
- unit/execution/scheduler$(EXEEXT) \
- unit/execution/sender$(EXEEXT) \
- unit/execution/set_done$(EXEEXT) \
- unit/execution/set_error$(EXEEXT) \
- unit/execution/set_value$(EXEEXT) \
- unit/execution/start$(EXEEXT) unit/execution/submit$(EXEEXT) \
unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \
- unit/executor_work_guard$(EXEEXT) \
+ unit/executor_work_guard$(EXEEXT) unit/file_base$(EXEEXT) \
unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \
unit/io_context_strand$(EXEEXT) unit/ip/address$(EXEEXT) \
unit/ip/address_v4$(EXEEXT) \
@@ -304,6 +317,7 @@ TESTS = unit/associated_allocator$(EXEEXT) \
unit/local/basic_endpoint$(EXEEXT) \
unit/local/connect_pair$(EXEEXT) \
unit/local/datagram_protocol$(EXEEXT) \
+ unit/local/seq_packet_protocol$(EXEEXT) \
unit/local/stream_protocol$(EXEEXT) \
unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \
unit/posix/basic_descriptor$(EXEEXT) \
@@ -311,22 +325,25 @@ TESTS = unit/associated_allocator$(EXEEXT) \
unit/posix/descriptor$(EXEEXT) \
unit/posix/descriptor_base$(EXEEXT) \
unit/posix/stream_descriptor$(EXEEXT) unit/post$(EXEEXT) \
+ unit/prepend$(EXEEXT) unit/random_access_file$(EXEEXT) \
unit/read$(EXEEXT) unit/read_at$(EXEEXT) \
- unit/read_until$(EXEEXT) unit/redirect_error$(EXEEXT) \
- unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \
- unit/signal_set$(EXEEXT) unit/socket_base$(EXEEXT) \
+ unit/read_until$(EXEEXT) unit/readable_pipe$(EXEEXT) \
+ unit/recycling_allocator$(EXEEXT) unit/redirect_error$(EXEEXT) \
+ unit/registered_buffer$(EXEEXT) unit/serial_port$(EXEEXT) \
+ unit/serial_port_base$(EXEEXT) unit/signal_set$(EXEEXT) \
+ unit/signal_set_base$(EXEEXT) unit/socket_base$(EXEEXT) \
unit/static_thread_pool$(EXEEXT) unit/steady_timer$(EXEEXT) \
- unit/strand$(EXEEXT) unit/streambuf$(EXEEXT) \
- unit/system_context$(EXEEXT) unit/system_executor$(EXEEXT) \
- unit/system_timer$(EXEEXT) unit/this_coro$(EXEEXT) \
- unit/thread$(EXEEXT) unit/thread_pool$(EXEEXT) \
- unit/time_traits$(EXEEXT) unit/ts/buffer$(EXEEXT) \
- unit/ts/executor$(EXEEXT) unit/ts/internet$(EXEEXT) \
- unit/ts/io_context$(EXEEXT) unit/ts/net$(EXEEXT) \
- unit/ts/netfwd$(EXEEXT) unit/ts/socket$(EXEEXT) \
- unit/ts/timer$(EXEEXT) unit/use_awaitable$(EXEEXT) \
- unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \
- unit/wait_traits$(EXEEXT) \
+ unit/strand$(EXEEXT) unit/stream_file$(EXEEXT) \
+ unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \
+ unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \
+ unit/this_coro$(EXEEXT) unit/thread$(EXEEXT) \
+ unit/thread_pool$(EXEEXT) unit/time_traits$(EXEEXT) \
+ unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \
+ unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \
+ unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \
+ unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \
+ unit/use_awaitable$(EXEEXT) unit/use_future$(EXEEXT) \
+ unit/uses_executor$(EXEEXT) unit/wait_traits$(EXEEXT) \
unit/windows/basic_object_handle$(EXEEXT) \
unit/windows/basic_overlapped_handle$(EXEEXT) \
unit/windows/basic_random_access_handle$(EXEEXT) \
@@ -335,19 +352,29 @@ TESTS = unit/associated_allocator$(EXEEXT) \
unit/windows/overlapped_handle$(EXEEXT) \
unit/windows/overlapped_ptr$(EXEEXT) \
unit/windows/random_access_handle$(EXEEXT) \
- unit/windows/stream_handle$(EXEEXT) unit/write$(EXEEXT) \
+ unit/windows/stream_handle$(EXEEXT) \
+ unit/writable_pipe$(EXEEXT) unit/write$(EXEEXT) \
unit/write_at$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
$(am__EXEEXT_3) $(am__EXEEXT_4)
-@HAVE_CXX14_TRUE@am__append_6 = \
-@HAVE_CXX14_TRUE@ unit/experimental/deferred
+@HAVE_CXX11_TRUE@am__append_6 = \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/channel \
+@HAVE_CXX11_TRUE@ unit/experimental/channel_traits \
+@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel \
+@HAVE_CXX11_TRUE@ unit/experimental/parallel_group
@HAVE_CXX20_TRUE@am__append_7 = \
@HAVE_CXX20_TRUE@ unit/experimental/promise
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__append_8 = \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/awaitable_operators \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test \
@@ -372,11 +399,21 @@ DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
-@HAVE_CXX14_TRUE@am__EXEEXT_1 = unit/experimental/deferred$(EXEEXT)
+@HAVE_CXX11_TRUE@am__EXEEXT_1 = \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_channel$(EXEEXT) \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_concurrent_channel$(EXEEXT) \
+@HAVE_CXX11_TRUE@ unit/experimental/channel$(EXEEXT) \
+@HAVE_CXX11_TRUE@ unit/experimental/channel_traits$(EXEEXT) \
+@HAVE_CXX11_TRUE@ unit/experimental/concurrent_channel$(EXEEXT) \
+@HAVE_CXX11_TRUE@ unit/experimental/parallel_group$(EXEEXT)
@HAVE_CXX20_TRUE@am__EXEEXT_2 = unit/experimental/promise$(EXEEXT)
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am__EXEEXT_3 = unit/experimental/awaitable_operators$(EXEEXT) \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/co_composed$(EXEEXT) \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/allocator$(EXEEXT) \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/cancel$(EXEEXT) \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/co_spawn$(EXEEXT) \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/exception$(EXEEXT) \
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/executor$(EXEEXT) \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/partial$(EXEEXT) \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/simple_test$(EXEEXT) \
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@ unit/experimental/coro/stack_test$(EXEEXT) \
@@ -446,6 +483,33 @@ performance_server_OBJECTS = $(am_performance_server_OBJECTS)
performance_server_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@performance_server_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_any_completion_executor_OBJECTS = \
+ unit/any_completion_executor.$(OBJEXT)
+unit_any_completion_executor_OBJECTS = \
+ $(am_unit_any_completion_executor_OBJECTS)
+unit_any_completion_executor_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_any_completion_executor_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_any_completion_handler_OBJECTS = \
+ unit/any_completion_handler.$(OBJEXT)
+unit_any_completion_handler_OBJECTS = \
+ $(am_unit_any_completion_handler_OBJECTS)
+unit_any_completion_handler_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_any_completion_handler_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_any_io_executor_OBJECTS = unit/any_io_executor.$(OBJEXT)
+unit_any_io_executor_OBJECTS = $(am_unit_any_io_executor_OBJECTS)
+unit_any_io_executor_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_any_io_executor_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_append_OBJECTS = unit/append.$(OBJEXT)
+unit_append_OBJECTS = $(am_unit_append_OBJECTS)
+unit_append_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_append_DEPENDENCIES = libasio.a
+am_unit_as_tuple_OBJECTS = unit/as_tuple.$(OBJEXT)
+unit_as_tuple_OBJECTS = $(am_unit_as_tuple_OBJECTS)
+unit_as_tuple_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_as_tuple_DEPENDENCIES = libasio.a
am_unit_associated_allocator_OBJECTS = \
unit/associated_allocator.$(OBJEXT)
unit_associated_allocator_OBJECTS = \
@@ -467,6 +531,13 @@ unit_associated_executor_OBJECTS = \
unit_associated_executor_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_associated_executor_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_associated_immediate_executor_OBJECTS = \
+ unit/associated_immediate_executor.$(OBJEXT)
+unit_associated_immediate_executor_OBJECTS = \
+ $(am_unit_associated_immediate_executor_OBJECTS)
+unit_associated_immediate_executor_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_associated_immediate_executor_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_associator_OBJECTS = unit/associator.$(OBJEXT)
unit_associator_OBJECTS = $(am_unit_associator_OBJECTS)
unit_associator_LDADD = $(LDADD)
@@ -493,11 +564,29 @@ unit_basic_deadline_timer_OBJECTS = \
unit_basic_deadline_timer_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_basic_deadline_timer_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_basic_file_OBJECTS = unit/basic_file.$(OBJEXT)
+unit_basic_file_OBJECTS = $(am_unit_basic_file_OBJECTS)
+unit_basic_file_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_basic_file_DEPENDENCIES = libasio.a
+am_unit_basic_random_access_file_OBJECTS = \
+ unit/basic_random_access_file.$(OBJEXT)
+unit_basic_random_access_file_OBJECTS = \
+ $(am_unit_basic_random_access_file_OBJECTS)
+unit_basic_random_access_file_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_basic_random_access_file_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_basic_raw_socket_OBJECTS = unit/basic_raw_socket.$(OBJEXT)
unit_basic_raw_socket_OBJECTS = $(am_unit_basic_raw_socket_OBJECTS)
unit_basic_raw_socket_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_basic_raw_socket_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_basic_readable_pipe_OBJECTS = \
+ unit/basic_readable_pipe.$(OBJEXT)
+unit_basic_readable_pipe_OBJECTS = \
+ $(am_unit_basic_readable_pipe_OBJECTS)
+unit_basic_readable_pipe_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_basic_readable_pipe_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_basic_seq_packet_socket_OBJECTS = \
unit/basic_seq_packet_socket.$(OBJEXT)
unit_basic_seq_packet_socket_OBJECTS = \
@@ -526,6 +615,11 @@ unit_basic_socket_acceptor_OBJECTS = \
unit_basic_socket_acceptor_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_basic_socket_acceptor_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_basic_stream_file_OBJECTS = unit/basic_stream_file.$(OBJEXT)
+unit_basic_stream_file_OBJECTS = $(am_unit_basic_stream_file_OBJECTS)
+unit_basic_stream_file_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_basic_stream_file_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_basic_stream_socket_OBJECTS = \
unit/basic_stream_socket.$(OBJEXT)
unit_basic_stream_socket_OBJECTS = \
@@ -545,6 +639,18 @@ unit_basic_waitable_timer_OBJECTS = \
unit_basic_waitable_timer_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_basic_waitable_timer_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_basic_writable_pipe_OBJECTS = \
+ unit/basic_writable_pipe.$(OBJEXT)
+unit_basic_writable_pipe_OBJECTS = \
+ $(am_unit_basic_writable_pipe_OBJECTS)
+unit_basic_writable_pipe_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_basic_writable_pipe_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_bind_allocator_OBJECTS = unit/bind_allocator.$(OBJEXT)
+unit_bind_allocator_OBJECTS = $(am_unit_bind_allocator_OBJECTS)
+unit_bind_allocator_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_bind_allocator_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_bind_cancellation_slot_OBJECTS = \
unit/bind_cancellation_slot.$(OBJEXT)
unit_bind_cancellation_slot_OBJECTS = \
@@ -557,10 +663,24 @@ unit_bind_executor_OBJECTS = $(am_unit_bind_executor_OBJECTS)
unit_bind_executor_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_bind_executor_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_bind_immediate_executor_OBJECTS = \
+ unit/bind_immediate_executor.$(OBJEXT)
+unit_bind_immediate_executor_OBJECTS = \
+ $(am_unit_bind_immediate_executor_OBJECTS)
+unit_bind_immediate_executor_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_bind_immediate_executor_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_buffer_OBJECTS = unit/buffer.$(OBJEXT)
unit_buffer_OBJECTS = $(am_unit_buffer_OBJECTS)
unit_buffer_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_buffer_DEPENDENCIES = libasio.a
+am_unit_buffer_registration_OBJECTS = \
+ unit/buffer_registration.$(OBJEXT)
+unit_buffer_registration_OBJECTS = \
+ $(am_unit_buffer_registration_OBJECTS)
+unit_buffer_registration_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_buffer_registration_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_buffered_read_stream_OBJECTS = \
unit/buffered_read_stream.$(OBJEXT)
unit_buffered_read_stream_OBJECTS = \
@@ -623,6 +743,14 @@ am_unit_connect_OBJECTS = unit/connect.$(OBJEXT)
unit_connect_OBJECTS = $(am_unit_connect_OBJECTS)
unit_connect_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_connect_DEPENDENCIES = libasio.a
+am_unit_connect_pipe_OBJECTS = unit/connect_pipe.$(OBJEXT)
+unit_connect_pipe_OBJECTS = $(am_unit_connect_pipe_OBJECTS)
+unit_connect_pipe_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_connect_pipe_DEPENDENCIES = libasio.a
+am_unit_consign_OBJECTS = unit/consign.$(OBJEXT)
+unit_consign_OBJECTS = $(am_unit_consign_OBJECTS)
+unit_consign_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_consign_DEPENDENCIES = libasio.a
am_unit_coroutine_OBJECTS = unit/coroutine.$(OBJEXT)
unit_coroutine_OBJECTS = $(am_unit_coroutine_OBJECTS)
unit_coroutine_LDADD = $(LDADD)
@@ -636,6 +764,10 @@ am_unit_defer_OBJECTS = unit/defer.$(OBJEXT)
unit_defer_OBJECTS = $(am_unit_defer_OBJECTS)
unit_defer_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_defer_DEPENDENCIES = libasio.a
+am_unit_deferred_OBJECTS = unit/deferred.$(OBJEXT)
+unit_deferred_OBJECTS = $(am_unit_deferred_OBJECTS)
+unit_deferred_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_deferred_DEPENDENCIES = libasio.a
am_unit_detached_OBJECTS = unit/detached.$(OBJEXT)
unit_detached_OBJECTS = $(am_unit_detached_OBJECTS)
unit_detached_LDADD = $(LDADD)
@@ -669,25 +801,6 @@ unit_execution_blocking_adaptation_OBJECTS = \
unit_execution_blocking_adaptation_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_execution_blocking_adaptation_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_bulk_execute_OBJECTS = \
- unit/execution/bulk_execute.$(OBJEXT)
-unit_execution_bulk_execute_OBJECTS = \
- $(am_unit_execution_bulk_execute_OBJECTS)
-unit_execution_bulk_execute_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_bulk_execute_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_bulk_guarantee_OBJECTS = \
- unit/execution/bulk_guarantee.$(OBJEXT)
-unit_execution_bulk_guarantee_OBJECTS = \
- $(am_unit_execution_bulk_guarantee_OBJECTS)
-unit_execution_bulk_guarantee_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_bulk_guarantee_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_connect_OBJECTS = unit/execution/connect.$(OBJEXT)
-unit_execution_connect_OBJECTS = $(am_unit_execution_connect_OBJECTS)
-unit_execution_connect_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_connect_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_execution_context_as_OBJECTS = \
unit/execution/context_as.$(OBJEXT)
unit_execution_context_as_OBJECTS = \
@@ -695,11 +808,6 @@ unit_execution_context_as_OBJECTS = \
unit_execution_context_as_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_execution_context_as_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_execute_OBJECTS = unit/execution/execute.$(OBJEXT)
-unit_execution_execute_OBJECTS = $(am_unit_execution_execute_OBJECTS)
-unit_execution_execute_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_execute_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_execution_executor_OBJECTS = \
unit/execution/executor.$(OBJEXT)
unit_execution_executor_OBJECTS = \
@@ -719,13 +827,6 @@ unit_execution_mapping_OBJECTS = $(am_unit_execution_mapping_OBJECTS)
unit_execution_mapping_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_execution_mapping_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_operation_state_OBJECTS = \
- unit/execution/operation_state.$(OBJEXT)
-unit_execution_operation_state_OBJECTS = \
- $(am_unit_execution_operation_state_OBJECTS)
-unit_execution_operation_state_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_operation_state_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_execution_outstanding_work_OBJECTS = \
unit/execution/outstanding_work.$(OBJEXT)
unit_execution_outstanding_work_OBJECTS = \
@@ -740,13 +841,6 @@ unit_execution_prefer_only_OBJECTS = \
unit_execution_prefer_only_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_execution_prefer_only_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_receiver_OBJECTS = \
- unit/execution/receiver.$(OBJEXT)
-unit_execution_receiver_OBJECTS = \
- $(am_unit_execution_receiver_OBJECTS)
-unit_execution_receiver_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_receiver_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_execution_relationship_OBJECTS = \
unit/execution/relationship.$(OBJEXT)
unit_execution_relationship_OBJECTS = \
@@ -754,56 +848,6 @@ unit_execution_relationship_OBJECTS = \
unit_execution_relationship_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_execution_relationship_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_schedule_OBJECTS = \
- unit/execution/schedule.$(OBJEXT)
-unit_execution_schedule_OBJECTS = \
- $(am_unit_execution_schedule_OBJECTS)
-unit_execution_schedule_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_schedule_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_scheduler_OBJECTS = \
- unit/execution/scheduler.$(OBJEXT)
-unit_execution_scheduler_OBJECTS = \
- $(am_unit_execution_scheduler_OBJECTS)
-unit_execution_scheduler_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_scheduler_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_sender_OBJECTS = unit/execution/sender.$(OBJEXT)
-unit_execution_sender_OBJECTS = $(am_unit_execution_sender_OBJECTS)
-unit_execution_sender_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_sender_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_set_done_OBJECTS = \
- unit/execution/set_done.$(OBJEXT)
-unit_execution_set_done_OBJECTS = \
- $(am_unit_execution_set_done_OBJECTS)
-unit_execution_set_done_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_set_done_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_set_error_OBJECTS = \
- unit/execution/set_error.$(OBJEXT)
-unit_execution_set_error_OBJECTS = \
- $(am_unit_execution_set_error_OBJECTS)
-unit_execution_set_error_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_set_error_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_set_value_OBJECTS = \
- unit/execution/set_value.$(OBJEXT)
-unit_execution_set_value_OBJECTS = \
- $(am_unit_execution_set_value_OBJECTS)
-unit_execution_set_value_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_set_value_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_start_OBJECTS = unit/execution/start.$(OBJEXT)
-unit_execution_start_OBJECTS = $(am_unit_execution_start_OBJECTS)
-unit_execution_start_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_start_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
-am_unit_execution_submit_OBJECTS = unit/execution/submit.$(OBJEXT)
-unit_execution_submit_OBJECTS = $(am_unit_execution_submit_OBJECTS)
-unit_execution_submit_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_execution_submit_DEPENDENCIES = \
-@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_execution_context_OBJECTS = unit/execution_context.$(OBJEXT)
unit_execution_context_OBJECTS = $(am_unit_execution_context_OBJECTS)
unit_execution_context_LDADD = $(LDADD)
@@ -828,6 +872,65 @@ unit_experimental_awaitable_operators_OBJECTS = \
unit_experimental_awaitable_operators_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_experimental_awaitable_operators_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_basic_channel_SOURCES_DIST = \
+ unit/experimental/basic_channel.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_basic_channel_OBJECTS = \
+@HAVE_CXX11_TRUE@ unit/experimental/basic_channel.$(OBJEXT)
+unit_experimental_basic_channel_OBJECTS = \
+ $(am_unit_experimental_basic_channel_OBJECTS)
+unit_experimental_basic_channel_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_basic_channel_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_basic_concurrent_channel_SOURCES_DIST = \
+ unit/experimental/basic_concurrent_channel.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_basic_concurrent_channel_OBJECTS = unit/experimental/basic_concurrent_channel.$(OBJEXT)
+unit_experimental_basic_concurrent_channel_OBJECTS = \
+ $(am_unit_experimental_basic_concurrent_channel_OBJECTS)
+unit_experimental_basic_concurrent_channel_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_basic_concurrent_channel_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_channel_SOURCES_DIST = \
+ unit/experimental/channel.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_channel_OBJECTS = \
+@HAVE_CXX11_TRUE@ unit/experimental/channel.$(OBJEXT)
+unit_experimental_channel_OBJECTS = \
+ $(am_unit_experimental_channel_OBJECTS)
+unit_experimental_channel_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_channel_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_channel_traits_SOURCES_DIST = \
+ unit/experimental/channel_traits.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_channel_traits_OBJECTS = \
+@HAVE_CXX11_TRUE@ unit/experimental/channel_traits.$(OBJEXT)
+unit_experimental_channel_traits_OBJECTS = \
+ $(am_unit_experimental_channel_traits_OBJECTS)
+unit_experimental_channel_traits_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_channel_traits_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_co_composed_SOURCES_DIST = \
+ unit/experimental/co_composed.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_co_composed_OBJECTS = unit/experimental/co_composed.$(OBJEXT)
+unit_experimental_co_composed_OBJECTS = \
+ $(am_unit_experimental_co_composed_OBJECTS)
+unit_experimental_co_composed_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_co_composed_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_concurrent_channel_SOURCES_DIST = \
+ unit/experimental/concurrent_channel.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_concurrent_channel_OBJECTS = unit/experimental/concurrent_channel.$(OBJEXT)
+unit_experimental_concurrent_channel_OBJECTS = \
+ $(am_unit_experimental_concurrent_channel_OBJECTS)
+unit_experimental_concurrent_channel_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_concurrent_channel_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_coro_allocator_SOURCES_DIST = \
+ unit/experimental/coro/allocator.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_allocator_OBJECTS = unit/experimental/coro/allocator.$(OBJEXT)
+unit_experimental_coro_allocator_OBJECTS = \
+ $(am_unit_experimental_coro_allocator_OBJECTS)
+unit_experimental_coro_allocator_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_allocator_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am__unit_experimental_coro_cancel_SOURCES_DIST = \
unit/experimental/coro/cancel.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_cancel_OBJECTS = unit/experimental/coro/cancel.$(OBJEXT)
@@ -836,6 +939,14 @@ unit_experimental_coro_cancel_OBJECTS = \
unit_experimental_coro_cancel_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_cancel_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_coro_co_spawn_SOURCES_DIST = \
+ unit/experimental/coro/co_spawn.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_co_spawn_OBJECTS = unit/experimental/coro/co_spawn.$(OBJEXT)
+unit_experimental_coro_co_spawn_OBJECTS = \
+ $(am_unit_experimental_coro_co_spawn_OBJECTS)
+unit_experimental_coro_co_spawn_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_co_spawn_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am__unit_experimental_coro_exception_SOURCES_DIST = \
unit/experimental/coro/exception.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_exception_OBJECTS = unit/experimental/coro/exception.$(OBJEXT)
@@ -844,6 +955,14 @@ unit_experimental_coro_exception_OBJECTS = \
unit_experimental_coro_exception_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_exception_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am__unit_experimental_coro_executor_SOURCES_DIST = \
+ unit/experimental/coro/executor.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_executor_OBJECTS = unit/experimental/coro/executor.$(OBJEXT)
+unit_experimental_coro_executor_OBJECTS = \
+ $(am_unit_experimental_coro_executor_OBJECTS)
+unit_experimental_coro_executor_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_executor_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am__unit_experimental_coro_partial_SOURCES_DIST = \
unit/experimental/coro/partial.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@am_unit_experimental_coro_partial_OBJECTS = unit/experimental/coro/partial.$(OBJEXT)
@@ -876,14 +995,14 @@ unit_experimental_coro_use_coro_OBJECTS = \
unit_experimental_coro_use_coro_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_experimental_coro_use_coro_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
-am__unit_experimental_deferred_SOURCES_DIST = \
- unit/experimental/deferred.cpp
-@HAVE_CXX14_TRUE@am_unit_experimental_deferred_OBJECTS = \
-@HAVE_CXX14_TRUE@ unit/experimental/deferred.$(OBJEXT)
-unit_experimental_deferred_OBJECTS = \
- $(am_unit_experimental_deferred_OBJECTS)
-unit_experimental_deferred_LDADD = $(LDADD)
-@SEPARATE_COMPILATION_TRUE@unit_experimental_deferred_DEPENDENCIES = \
+am__unit_experimental_parallel_group_SOURCES_DIST = \
+ unit/experimental/parallel_group.cpp
+@HAVE_CXX11_TRUE@am_unit_experimental_parallel_group_OBJECTS = \
+@HAVE_CXX11_TRUE@ unit/experimental/parallel_group.$(OBJEXT)
+unit_experimental_parallel_group_OBJECTS = \
+ $(am_unit_experimental_parallel_group_OBJECTS)
+unit_experimental_parallel_group_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_experimental_parallel_group_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
am__unit_experimental_promise_SOURCES_DIST = \
unit/experimental/promise.cpp
@@ -894,6 +1013,10 @@ unit_experimental_promise_OBJECTS = \
unit_experimental_promise_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_experimental_promise_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_file_base_OBJECTS = unit/file_base.$(OBJEXT)
+unit_file_base_OBJECTS = $(am_unit_file_base_OBJECTS)
+unit_file_base_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_file_base_DEPENDENCIES = libasio.a
am_unit_generic_basic_endpoint_OBJECTS = \
unit/generic/basic_endpoint.$(OBJEXT)
unit_generic_basic_endpoint_OBJECTS = \
@@ -1094,6 +1217,13 @@ unit_local_datagram_protocol_OBJECTS = \
unit_local_datagram_protocol_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_local_datagram_protocol_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_local_seq_packet_protocol_OBJECTS = \
+ unit/local/seq_packet_protocol.$(OBJEXT)
+unit_local_seq_packet_protocol_OBJECTS = \
+ $(am_unit_local_seq_packet_protocol_OBJECTS)
+unit_local_seq_packet_protocol_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_local_seq_packet_protocol_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_local_stream_protocol_OBJECTS = \
unit/local/stream_protocol.$(OBJEXT)
unit_local_stream_protocol_OBJECTS = \
@@ -1147,6 +1277,17 @@ am_unit_post_OBJECTS = unit/post.$(OBJEXT)
unit_post_OBJECTS = $(am_unit_post_OBJECTS)
unit_post_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_post_DEPENDENCIES = libasio.a
+am_unit_prepend_OBJECTS = unit/prepend.$(OBJEXT)
+unit_prepend_OBJECTS = $(am_unit_prepend_OBJECTS)
+unit_prepend_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_prepend_DEPENDENCIES = libasio.a
+am_unit_random_access_file_OBJECTS = \
+ unit/random_access_file.$(OBJEXT)
+unit_random_access_file_OBJECTS = \
+ $(am_unit_random_access_file_OBJECTS)
+unit_random_access_file_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_random_access_file_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_read_OBJECTS = unit/read.$(OBJEXT)
unit_read_OBJECTS = $(am_unit_read_OBJECTS)
unit_read_LDADD = $(LDADD)
@@ -1159,11 +1300,28 @@ am_unit_read_until_OBJECTS = unit/read_until.$(OBJEXT)
unit_read_until_OBJECTS = $(am_unit_read_until_OBJECTS)
unit_read_until_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_read_until_DEPENDENCIES = libasio.a
+am_unit_readable_pipe_OBJECTS = unit/readable_pipe.$(OBJEXT)
+unit_readable_pipe_OBJECTS = $(am_unit_readable_pipe_OBJECTS)
+unit_readable_pipe_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_readable_pipe_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_recycling_allocator_OBJECTS = \
+ unit/recycling_allocator.$(OBJEXT)
+unit_recycling_allocator_OBJECTS = \
+ $(am_unit_recycling_allocator_OBJECTS)
+unit_recycling_allocator_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_recycling_allocator_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_redirect_error_OBJECTS = unit/redirect_error.$(OBJEXT)
unit_redirect_error_OBJECTS = $(am_unit_redirect_error_OBJECTS)
unit_redirect_error_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_redirect_error_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_registered_buffer_OBJECTS = unit/registered_buffer.$(OBJEXT)
+unit_registered_buffer_OBJECTS = $(am_unit_registered_buffer_OBJECTS)
+unit_registered_buffer_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_registered_buffer_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_serial_port_OBJECTS = unit/serial_port.$(OBJEXT)
unit_serial_port_OBJECTS = $(am_unit_serial_port_OBJECTS)
unit_serial_port_LDADD = $(LDADD)
@@ -1177,6 +1335,11 @@ am_unit_signal_set_OBJECTS = unit/signal_set.$(OBJEXT)
unit_signal_set_OBJECTS = $(am_unit_signal_set_OBJECTS)
unit_signal_set_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_signal_set_DEPENDENCIES = libasio.a
+am_unit_signal_set_base_OBJECTS = unit/signal_set_base.$(OBJEXT)
+unit_signal_set_base_OBJECTS = $(am_unit_signal_set_base_OBJECTS)
+unit_signal_set_base_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_signal_set_base_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_socket_base_OBJECTS = unit/socket_base.$(OBJEXT)
unit_socket_base_OBJECTS = $(am_unit_socket_base_OBJECTS)
unit_socket_base_LDADD = $(LDADD)
@@ -1246,6 +1409,10 @@ am_unit_strand_OBJECTS = unit/strand.$(OBJEXT)
unit_strand_OBJECTS = $(am_unit_strand_OBJECTS)
unit_strand_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_strand_DEPENDENCIES = libasio.a
+am_unit_stream_file_OBJECTS = unit/stream_file.$(OBJEXT)
+unit_stream_file_OBJECTS = $(am_unit_stream_file_OBJECTS)
+unit_stream_file_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_stream_file_DEPENDENCIES = libasio.a
am_unit_streambuf_OBJECTS = unit/streambuf.$(OBJEXT)
unit_streambuf_OBJECTS = $(am_unit_streambuf_OBJECTS)
unit_streambuf_LDADD = $(LDADD)
@@ -1394,6 +1561,11 @@ unit_windows_stream_handle_OBJECTS = \
unit_windows_stream_handle_LDADD = $(LDADD)
@SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_DEPENDENCIES = \
@SEPARATE_COMPILATION_TRUE@ libasio.a
+am_unit_writable_pipe_OBJECTS = unit/writable_pipe.$(OBJEXT)
+unit_writable_pipe_OBJECTS = $(am_unit_writable_pipe_OBJECTS)
+unit_writable_pipe_LDADD = $(LDADD)
+@SEPARATE_COMPILATION_TRUE@unit_writable_pipe_DEPENDENCIES = \
+@SEPARATE_COMPILATION_TRUE@ libasio.a
am_unit_write_OBJECTS = unit/write.$(OBJEXT)
unit_write_OBJECTS = $(am_unit_write_OBJECTS)
unit_write_LDADD = $(LDADD)
@@ -1424,24 +1596,37 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \
latency/$(DEPDIR)/udp_server.Po \
performance/$(DEPDIR)/client.Po \
performance/$(DEPDIR)/server.Po \
+ unit/$(DEPDIR)/any_completion_executor.Po \
+ unit/$(DEPDIR)/any_completion_handler.Po \
+ unit/$(DEPDIR)/any_io_executor.Po unit/$(DEPDIR)/append.Po \
+ unit/$(DEPDIR)/as_tuple.Po \
unit/$(DEPDIR)/associated_allocator.Po \
unit/$(DEPDIR)/associated_cancellation_slot.Po \
unit/$(DEPDIR)/associated_executor.Po \
+ unit/$(DEPDIR)/associated_immediate_executor.Po \
unit/$(DEPDIR)/associator.Po unit/$(DEPDIR)/async_result.Po \
unit/$(DEPDIR)/awaitable.Po \
unit/$(DEPDIR)/basic_datagram_socket.Po \
unit/$(DEPDIR)/basic_deadline_timer.Po \
+ unit/$(DEPDIR)/basic_file.Po \
+ unit/$(DEPDIR)/basic_random_access_file.Po \
unit/$(DEPDIR)/basic_raw_socket.Po \
+ unit/$(DEPDIR)/basic_readable_pipe.Po \
unit/$(DEPDIR)/basic_seq_packet_socket.Po \
unit/$(DEPDIR)/basic_serial_port.Po \
unit/$(DEPDIR)/basic_signal_set.Po \
unit/$(DEPDIR)/basic_socket.Po \
unit/$(DEPDIR)/basic_socket_acceptor.Po \
+ unit/$(DEPDIR)/basic_stream_file.Po \
unit/$(DEPDIR)/basic_stream_socket.Po \
unit/$(DEPDIR)/basic_streambuf.Po \
unit/$(DEPDIR)/basic_waitable_timer.Po \
+ unit/$(DEPDIR)/basic_writable_pipe.Po \
+ unit/$(DEPDIR)/bind_allocator.Po \
unit/$(DEPDIR)/bind_cancellation_slot.Po \
- unit/$(DEPDIR)/bind_executor.Po unit/$(DEPDIR)/buffer.Po \
+ unit/$(DEPDIR)/bind_executor.Po \
+ unit/$(DEPDIR)/bind_immediate_executor.Po \
+ unit/$(DEPDIR)/buffer.Po unit/$(DEPDIR)/buffer_registration.Po \
unit/$(DEPDIR)/buffered_read_stream.Po \
unit/$(DEPDIR)/buffered_stream.Po \
unit/$(DEPDIR)/buffered_write_stream.Po \
@@ -1451,61 +1636,66 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \
unit/$(DEPDIR)/cancellation_type.Po unit/$(DEPDIR)/co_spawn.Po \
unit/$(DEPDIR)/completion_condition.Po \
unit/$(DEPDIR)/compose.Po unit/$(DEPDIR)/connect.Po \
+ unit/$(DEPDIR)/connect_pipe.Po unit/$(DEPDIR)/consign.Po \
unit/$(DEPDIR)/coroutine.Po unit/$(DEPDIR)/deadline_timer.Po \
- unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/detached.Po \
- unit/$(DEPDIR)/dispatch.Po unit/$(DEPDIR)/error.Po \
- unit/$(DEPDIR)/execution_context.Po unit/$(DEPDIR)/executor.Po \
+ unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/deferred.Po \
+ unit/$(DEPDIR)/detached.Po unit/$(DEPDIR)/dispatch.Po \
+ unit/$(DEPDIR)/error.Po unit/$(DEPDIR)/execution_context.Po \
+ unit/$(DEPDIR)/executor.Po \
unit/$(DEPDIR)/executor_work_guard.Po \
+ unit/$(DEPDIR)/file_base.Po \
unit/$(DEPDIR)/high_resolution_timer.Po \
unit/$(DEPDIR)/io_context.Po \
unit/$(DEPDIR)/io_context_strand.Po \
unit/$(DEPDIR)/is_read_buffered.Po \
unit/$(DEPDIR)/is_write_buffered.Po \
unit/$(DEPDIR)/packaged_task.Po unit/$(DEPDIR)/placeholders.Po \
- unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/read.Po \
+ unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/prepend.Po \
+ unit/$(DEPDIR)/random_access_file.Po unit/$(DEPDIR)/read.Po \
unit/$(DEPDIR)/read_at.Po unit/$(DEPDIR)/read_until.Po \
- unit/$(DEPDIR)/redirect_error.Po unit/$(DEPDIR)/serial_port.Po \
+ unit/$(DEPDIR)/readable_pipe.Po \
+ unit/$(DEPDIR)/recycling_allocator.Po \
+ unit/$(DEPDIR)/redirect_error.Po \
+ unit/$(DEPDIR)/registered_buffer.Po \
+ unit/$(DEPDIR)/serial_port.Po \
unit/$(DEPDIR)/serial_port_base.Po \
- unit/$(DEPDIR)/signal_set.Po unit/$(DEPDIR)/socket_base.Po \
+ unit/$(DEPDIR)/signal_set.Po unit/$(DEPDIR)/signal_set_base.Po \
+ unit/$(DEPDIR)/socket_base.Po \
unit/$(DEPDIR)/static_thread_pool.Po \
unit/$(DEPDIR)/steady_timer.Po unit/$(DEPDIR)/strand.Po \
- unit/$(DEPDIR)/streambuf.Po unit/$(DEPDIR)/system_context.Po \
+ unit/$(DEPDIR)/stream_file.Po unit/$(DEPDIR)/streambuf.Po \
+ unit/$(DEPDIR)/system_context.Po \
unit/$(DEPDIR)/system_executor.Po \
unit/$(DEPDIR)/system_timer.Po unit/$(DEPDIR)/this_coro.Po \
unit/$(DEPDIR)/thread.Po unit/$(DEPDIR)/thread_pool.Po \
unit/$(DEPDIR)/time_traits.Po unit/$(DEPDIR)/use_awaitable.Po \
unit/$(DEPDIR)/use_future.Po unit/$(DEPDIR)/uses_executor.Po \
- unit/$(DEPDIR)/wait_traits.Po unit/$(DEPDIR)/write.Po \
- unit/$(DEPDIR)/write_at.Po \
+ unit/$(DEPDIR)/wait_traits.Po unit/$(DEPDIR)/writable_pipe.Po \
+ unit/$(DEPDIR)/write.Po unit/$(DEPDIR)/write_at.Po \
unit/execution/$(DEPDIR)/any_executor.Po \
unit/execution/$(DEPDIR)/blocking.Po \
unit/execution/$(DEPDIR)/blocking_adaptation.Po \
- unit/execution/$(DEPDIR)/bulk_execute.Po \
- unit/execution/$(DEPDIR)/bulk_guarantee.Po \
- unit/execution/$(DEPDIR)/connect.Po \
unit/execution/$(DEPDIR)/context_as.Po \
- unit/execution/$(DEPDIR)/execute.Po \
unit/execution/$(DEPDIR)/executor.Po \
unit/execution/$(DEPDIR)/invocable_archetype.Po \
unit/execution/$(DEPDIR)/mapping.Po \
- unit/execution/$(DEPDIR)/operation_state.Po \
unit/execution/$(DEPDIR)/outstanding_work.Po \
unit/execution/$(DEPDIR)/prefer_only.Po \
- unit/execution/$(DEPDIR)/receiver.Po \
unit/execution/$(DEPDIR)/relationship.Po \
- unit/execution/$(DEPDIR)/schedule.Po \
- unit/execution/$(DEPDIR)/scheduler.Po \
- unit/execution/$(DEPDIR)/sender.Po \
- unit/execution/$(DEPDIR)/set_done.Po \
- unit/execution/$(DEPDIR)/set_error.Po \
- unit/execution/$(DEPDIR)/set_value.Po \
- unit/execution/$(DEPDIR)/start.Po \
- unit/execution/$(DEPDIR)/submit.Po \
unit/experimental/$(DEPDIR)/awaitable_operators.Po \
- unit/experimental/$(DEPDIR)/deferred.Po \
+ unit/experimental/$(DEPDIR)/basic_channel.Po \
+ unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po \
+ unit/experimental/$(DEPDIR)/channel.Po \
+ unit/experimental/$(DEPDIR)/channel_traits.Po \
+ unit/experimental/$(DEPDIR)/co_composed.Po \
+ unit/experimental/$(DEPDIR)/concurrent_channel.Po \
+ unit/experimental/$(DEPDIR)/parallel_group.Po \
unit/experimental/$(DEPDIR)/promise.Po \
+ unit/experimental/coro/$(DEPDIR)/allocator.Po \
unit/experimental/coro/$(DEPDIR)/cancel.Po \
+ unit/experimental/coro/$(DEPDIR)/co_spawn.Po \
unit/experimental/coro/$(DEPDIR)/exception.Po \
+ unit/experimental/coro/$(DEPDIR)/executor.Po \
unit/experimental/coro/$(DEPDIR)/partial.Po \
unit/experimental/coro/$(DEPDIR)/simple_test.Po \
unit/experimental/coro/$(DEPDIR)/stack_test.Po \
@@ -1535,6 +1725,7 @@ am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \
unit/local/$(DEPDIR)/basic_endpoint.Po \
unit/local/$(DEPDIR)/connect_pair.Po \
unit/local/$(DEPDIR)/datagram_protocol.Po \
+ unit/local/$(DEPDIR)/seq_packet_protocol.Po \
unit/local/$(DEPDIR)/stream_protocol.Po \
unit/posix/$(DEPDIR)/basic_descriptor.Po \
unit/posix/$(DEPDIR)/basic_stream_descriptor.Po \
@@ -1577,22 +1768,35 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(latency_tcp_server_SOURCES) $(latency_udp_client_SOURCES) \
$(latency_udp_server_SOURCES) $(performance_client_SOURCES) \
$(performance_server_SOURCES) \
- $(unit_associated_allocator_SOURCES) \
+ $(unit_any_completion_executor_SOURCES) \
+ $(unit_any_completion_handler_SOURCES) \
+ $(unit_any_io_executor_SOURCES) $(unit_append_SOURCES) \
+ $(unit_as_tuple_SOURCES) $(unit_associated_allocator_SOURCES) \
$(unit_associated_cancellation_slot_SOURCES) \
- $(unit_associated_executor_SOURCES) $(unit_associator_SOURCES) \
- $(unit_async_result_SOURCES) $(unit_awaitable_SOURCES) \
+ $(unit_associated_executor_SOURCES) \
+ $(unit_associated_immediate_executor_SOURCES) \
+ $(unit_associator_SOURCES) $(unit_async_result_SOURCES) \
+ $(unit_awaitable_SOURCES) \
$(unit_basic_datagram_socket_SOURCES) \
$(unit_basic_deadline_timer_SOURCES) \
+ $(unit_basic_file_SOURCES) \
+ $(unit_basic_random_access_file_SOURCES) \
$(unit_basic_raw_socket_SOURCES) \
+ $(unit_basic_readable_pipe_SOURCES) \
$(unit_basic_seq_packet_socket_SOURCES) \
$(unit_basic_serial_port_SOURCES) \
$(unit_basic_signal_set_SOURCES) $(unit_basic_socket_SOURCES) \
$(unit_basic_socket_acceptor_SOURCES) \
+ $(unit_basic_stream_file_SOURCES) \
$(unit_basic_stream_socket_SOURCES) \
$(unit_basic_streambuf_SOURCES) \
$(unit_basic_waitable_timer_SOURCES) \
+ $(unit_basic_writable_pipe_SOURCES) \
+ $(unit_bind_allocator_SOURCES) \
$(unit_bind_cancellation_slot_SOURCES) \
- $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \
+ $(unit_bind_executor_SOURCES) \
+ $(unit_bind_immediate_executor_SOURCES) $(unit_buffer_SOURCES) \
+ $(unit_buffer_registration_SOURCES) \
$(unit_buffered_read_stream_SOURCES) \
$(unit_buffered_stream_SOURCES) \
$(unit_buffered_write_stream_SOURCES) \
@@ -1601,44 +1805,41 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(unit_cancellation_state_SOURCES) \
$(unit_cancellation_type_SOURCES) $(unit_co_spawn_SOURCES) \
$(unit_completion_condition_SOURCES) $(unit_compose_SOURCES) \
- $(unit_connect_SOURCES) $(unit_coroutine_SOURCES) \
+ $(unit_connect_SOURCES) $(unit_connect_pipe_SOURCES) \
+ $(unit_consign_SOURCES) $(unit_coroutine_SOURCES) \
$(unit_deadline_timer_SOURCES) $(unit_defer_SOURCES) \
- $(unit_detached_SOURCES) $(unit_dispatch_SOURCES) \
- $(unit_error_SOURCES) $(unit_execution_any_executor_SOURCES) \
+ $(unit_deferred_SOURCES) $(unit_detached_SOURCES) \
+ $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \
+ $(unit_execution_any_executor_SOURCES) \
$(unit_execution_blocking_SOURCES) \
$(unit_execution_blocking_adaptation_SOURCES) \
- $(unit_execution_bulk_execute_SOURCES) \
- $(unit_execution_bulk_guarantee_SOURCES) \
- $(unit_execution_connect_SOURCES) \
$(unit_execution_context_as_SOURCES) \
- $(unit_execution_execute_SOURCES) \
$(unit_execution_executor_SOURCES) \
$(unit_execution_invocable_archetype_SOURCES) \
$(unit_execution_mapping_SOURCES) \
- $(unit_execution_operation_state_SOURCES) \
$(unit_execution_outstanding_work_SOURCES) \
$(unit_execution_prefer_only_SOURCES) \
- $(unit_execution_receiver_SOURCES) \
$(unit_execution_relationship_SOURCES) \
- $(unit_execution_schedule_SOURCES) \
- $(unit_execution_scheduler_SOURCES) \
- $(unit_execution_sender_SOURCES) \
- $(unit_execution_set_done_SOURCES) \
- $(unit_execution_set_error_SOURCES) \
- $(unit_execution_set_value_SOURCES) \
- $(unit_execution_start_SOURCES) \
- $(unit_execution_submit_SOURCES) \
$(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \
$(unit_executor_work_guard_SOURCES) \
$(unit_experimental_awaitable_operators_SOURCES) \
+ $(unit_experimental_basic_channel_SOURCES) \
+ $(unit_experimental_basic_concurrent_channel_SOURCES) \
+ $(unit_experimental_channel_SOURCES) \
+ $(unit_experimental_channel_traits_SOURCES) \
+ $(unit_experimental_co_composed_SOURCES) \
+ $(unit_experimental_concurrent_channel_SOURCES) \
+ $(unit_experimental_coro_allocator_SOURCES) \
$(unit_experimental_coro_cancel_SOURCES) \
+ $(unit_experimental_coro_co_spawn_SOURCES) \
$(unit_experimental_coro_exception_SOURCES) \
+ $(unit_experimental_coro_executor_SOURCES) \
$(unit_experimental_coro_partial_SOURCES) \
$(unit_experimental_coro_simple_test_SOURCES) \
$(unit_experimental_coro_stack_test_SOURCES) \
$(unit_experimental_coro_use_coro_SOURCES) \
- $(unit_experimental_deferred_SOURCES) \
- $(unit_experimental_promise_SOURCES) \
+ $(unit_experimental_parallel_group_SOURCES) \
+ $(unit_experimental_promise_SOURCES) $(unit_file_base_SOURCES) \
$(unit_generic_basic_endpoint_SOURCES) \
$(unit_generic_datagram_protocol_SOURCES) \
$(unit_generic_raw_protocol_SOURCES) \
@@ -1667,6 +1868,7 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(unit_local_basic_endpoint_SOURCES) \
$(unit_local_connect_pair_SOURCES) \
$(unit_local_datagram_protocol_SOURCES) \
+ $(unit_local_seq_packet_protocol_SOURCES) \
$(unit_local_stream_protocol_SOURCES) \
$(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \
$(unit_posix_basic_descriptor_SOURCES) \
@@ -1674,10 +1876,14 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(unit_posix_descriptor_SOURCES) \
$(unit_posix_descriptor_base_SOURCES) \
$(unit_posix_stream_descriptor_SOURCES) $(unit_post_SOURCES) \
+ $(unit_prepend_SOURCES) $(unit_random_access_file_SOURCES) \
$(unit_read_SOURCES) $(unit_read_at_SOURCES) \
- $(unit_read_until_SOURCES) $(unit_redirect_error_SOURCES) \
- $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \
- $(unit_signal_set_SOURCES) $(unit_socket_base_SOURCES) \
+ $(unit_read_until_SOURCES) $(unit_readable_pipe_SOURCES) \
+ $(unit_recycling_allocator_SOURCES) \
+ $(unit_redirect_error_SOURCES) \
+ $(unit_registered_buffer_SOURCES) $(unit_serial_port_SOURCES) \
+ $(unit_serial_port_base_SOURCES) $(unit_signal_set_SOURCES) \
+ $(unit_signal_set_base_SOURCES) $(unit_socket_base_SOURCES) \
$(unit_ssl_context_SOURCES) $(unit_ssl_context_base_SOURCES) \
$(unit_ssl_error_SOURCES) \
$(unit_ssl_host_name_verification_SOURCES) \
@@ -1685,16 +1891,17 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(unit_ssl_stream_SOURCES) $(unit_ssl_stream_base_SOURCES) \
$(unit_static_thread_pool_SOURCES) \
$(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \
- $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \
- $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \
- $(unit_this_coro_SOURCES) $(unit_thread_SOURCES) \
- $(unit_thread_pool_SOURCES) $(unit_time_traits_SOURCES) \
- $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \
- $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \
- $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \
- $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \
- $(unit_use_awaitable_SOURCES) $(unit_use_future_SOURCES) \
- $(unit_uses_executor_SOURCES) $(unit_wait_traits_SOURCES) \
+ $(unit_stream_file_SOURCES) $(unit_streambuf_SOURCES) \
+ $(unit_system_context_SOURCES) $(unit_system_executor_SOURCES) \
+ $(unit_system_timer_SOURCES) $(unit_this_coro_SOURCES) \
+ $(unit_thread_SOURCES) $(unit_thread_pool_SOURCES) \
+ $(unit_time_traits_SOURCES) $(unit_ts_buffer_SOURCES) \
+ $(unit_ts_executor_SOURCES) $(unit_ts_internet_SOURCES) \
+ $(unit_ts_io_context_SOURCES) $(unit_ts_net_SOURCES) \
+ $(unit_ts_netfwd_SOURCES) $(unit_ts_socket_SOURCES) \
+ $(unit_ts_timer_SOURCES) $(unit_use_awaitable_SOURCES) \
+ $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \
+ $(unit_wait_traits_SOURCES) \
$(unit_windows_basic_object_handle_SOURCES) \
$(unit_windows_basic_overlapped_handle_SOURCES) \
$(unit_windows_basic_random_access_handle_SOURCES) \
@@ -1703,7 +1910,8 @@ SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \
$(unit_windows_overlapped_handle_SOURCES) \
$(unit_windows_overlapped_ptr_SOURCES) \
$(unit_windows_random_access_handle_SOURCES) \
- $(unit_windows_stream_handle_SOURCES) $(unit_write_SOURCES) \
+ $(unit_windows_stream_handle_SOURCES) \
+ $(unit_writable_pipe_SOURCES) $(unit_write_SOURCES) \
$(unit_write_at_SOURCES)
DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(am__latency_tcp_client_SOURCES_DIST) \
@@ -1712,22 +1920,35 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(am__latency_udp_server_SOURCES_DIST) \
$(am__performance_client_SOURCES_DIST) \
$(am__performance_server_SOURCES_DIST) \
- $(unit_associated_allocator_SOURCES) \
+ $(unit_any_completion_executor_SOURCES) \
+ $(unit_any_completion_handler_SOURCES) \
+ $(unit_any_io_executor_SOURCES) $(unit_append_SOURCES) \
+ $(unit_as_tuple_SOURCES) $(unit_associated_allocator_SOURCES) \
$(unit_associated_cancellation_slot_SOURCES) \
- $(unit_associated_executor_SOURCES) $(unit_associator_SOURCES) \
- $(unit_async_result_SOURCES) $(unit_awaitable_SOURCES) \
+ $(unit_associated_executor_SOURCES) \
+ $(unit_associated_immediate_executor_SOURCES) \
+ $(unit_associator_SOURCES) $(unit_async_result_SOURCES) \
+ $(unit_awaitable_SOURCES) \
$(unit_basic_datagram_socket_SOURCES) \
$(unit_basic_deadline_timer_SOURCES) \
+ $(unit_basic_file_SOURCES) \
+ $(unit_basic_random_access_file_SOURCES) \
$(unit_basic_raw_socket_SOURCES) \
+ $(unit_basic_readable_pipe_SOURCES) \
$(unit_basic_seq_packet_socket_SOURCES) \
$(unit_basic_serial_port_SOURCES) \
$(unit_basic_signal_set_SOURCES) $(unit_basic_socket_SOURCES) \
$(unit_basic_socket_acceptor_SOURCES) \
+ $(unit_basic_stream_file_SOURCES) \
$(unit_basic_stream_socket_SOURCES) \
$(unit_basic_streambuf_SOURCES) \
$(unit_basic_waitable_timer_SOURCES) \
+ $(unit_basic_writable_pipe_SOURCES) \
+ $(unit_bind_allocator_SOURCES) \
$(unit_bind_cancellation_slot_SOURCES) \
- $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \
+ $(unit_bind_executor_SOURCES) \
+ $(unit_bind_immediate_executor_SOURCES) $(unit_buffer_SOURCES) \
+ $(unit_buffer_registration_SOURCES) \
$(unit_buffered_read_stream_SOURCES) \
$(unit_buffered_stream_SOURCES) \
$(unit_buffered_write_stream_SOURCES) \
@@ -1736,44 +1957,42 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(unit_cancellation_state_SOURCES) \
$(unit_cancellation_type_SOURCES) $(unit_co_spawn_SOURCES) \
$(unit_completion_condition_SOURCES) $(unit_compose_SOURCES) \
- $(unit_connect_SOURCES) $(unit_coroutine_SOURCES) \
+ $(unit_connect_SOURCES) $(unit_connect_pipe_SOURCES) \
+ $(unit_consign_SOURCES) $(unit_coroutine_SOURCES) \
$(unit_deadline_timer_SOURCES) $(unit_defer_SOURCES) \
- $(unit_detached_SOURCES) $(unit_dispatch_SOURCES) \
- $(unit_error_SOURCES) $(unit_execution_any_executor_SOURCES) \
+ $(unit_deferred_SOURCES) $(unit_detached_SOURCES) \
+ $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \
+ $(unit_execution_any_executor_SOURCES) \
$(unit_execution_blocking_SOURCES) \
$(unit_execution_blocking_adaptation_SOURCES) \
- $(unit_execution_bulk_execute_SOURCES) \
- $(unit_execution_bulk_guarantee_SOURCES) \
- $(unit_execution_connect_SOURCES) \
$(unit_execution_context_as_SOURCES) \
- $(unit_execution_execute_SOURCES) \
$(unit_execution_executor_SOURCES) \
$(unit_execution_invocable_archetype_SOURCES) \
$(unit_execution_mapping_SOURCES) \
- $(unit_execution_operation_state_SOURCES) \
$(unit_execution_outstanding_work_SOURCES) \
$(unit_execution_prefer_only_SOURCES) \
- $(unit_execution_receiver_SOURCES) \
$(unit_execution_relationship_SOURCES) \
- $(unit_execution_schedule_SOURCES) \
- $(unit_execution_scheduler_SOURCES) \
- $(unit_execution_sender_SOURCES) \
- $(unit_execution_set_done_SOURCES) \
- $(unit_execution_set_error_SOURCES) \
- $(unit_execution_set_value_SOURCES) \
- $(unit_execution_start_SOURCES) \
- $(unit_execution_submit_SOURCES) \
$(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \
$(unit_executor_work_guard_SOURCES) \
$(am__unit_experimental_awaitable_operators_SOURCES_DIST) \
+ $(am__unit_experimental_basic_channel_SOURCES_DIST) \
+ $(am__unit_experimental_basic_concurrent_channel_SOURCES_DIST) \
+ $(am__unit_experimental_channel_SOURCES_DIST) \
+ $(am__unit_experimental_channel_traits_SOURCES_DIST) \
+ $(am__unit_experimental_co_composed_SOURCES_DIST) \
+ $(am__unit_experimental_concurrent_channel_SOURCES_DIST) \
+ $(am__unit_experimental_coro_allocator_SOURCES_DIST) \
$(am__unit_experimental_coro_cancel_SOURCES_DIST) \
+ $(am__unit_experimental_coro_co_spawn_SOURCES_DIST) \
$(am__unit_experimental_coro_exception_SOURCES_DIST) \
+ $(am__unit_experimental_coro_executor_SOURCES_DIST) \
$(am__unit_experimental_coro_partial_SOURCES_DIST) \
$(am__unit_experimental_coro_simple_test_SOURCES_DIST) \
$(am__unit_experimental_coro_stack_test_SOURCES_DIST) \
$(am__unit_experimental_coro_use_coro_SOURCES_DIST) \
- $(am__unit_experimental_deferred_SOURCES_DIST) \
+ $(am__unit_experimental_parallel_group_SOURCES_DIST) \
$(am__unit_experimental_promise_SOURCES_DIST) \
+ $(unit_file_base_SOURCES) \
$(unit_generic_basic_endpoint_SOURCES) \
$(unit_generic_datagram_protocol_SOURCES) \
$(unit_generic_raw_protocol_SOURCES) \
@@ -1802,6 +2021,7 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(unit_local_basic_endpoint_SOURCES) \
$(unit_local_connect_pair_SOURCES) \
$(unit_local_datagram_protocol_SOURCES) \
+ $(unit_local_seq_packet_protocol_SOURCES) \
$(unit_local_stream_protocol_SOURCES) \
$(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \
$(unit_posix_basic_descriptor_SOURCES) \
@@ -1809,10 +2029,14 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(unit_posix_descriptor_SOURCES) \
$(unit_posix_descriptor_base_SOURCES) \
$(unit_posix_stream_descriptor_SOURCES) $(unit_post_SOURCES) \
+ $(unit_prepend_SOURCES) $(unit_random_access_file_SOURCES) \
$(unit_read_SOURCES) $(unit_read_at_SOURCES) \
- $(unit_read_until_SOURCES) $(unit_redirect_error_SOURCES) \
- $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \
- $(unit_signal_set_SOURCES) $(unit_socket_base_SOURCES) \
+ $(unit_read_until_SOURCES) $(unit_readable_pipe_SOURCES) \
+ $(unit_recycling_allocator_SOURCES) \
+ $(unit_redirect_error_SOURCES) \
+ $(unit_registered_buffer_SOURCES) $(unit_serial_port_SOURCES) \
+ $(unit_serial_port_base_SOURCES) $(unit_signal_set_SOURCES) \
+ $(unit_signal_set_base_SOURCES) $(unit_socket_base_SOURCES) \
$(am__unit_ssl_context_SOURCES_DIST) \
$(am__unit_ssl_context_base_SOURCES_DIST) \
$(am__unit_ssl_error_SOURCES_DIST) \
@@ -1822,16 +2046,17 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(am__unit_ssl_stream_base_SOURCES_DIST) \
$(unit_static_thread_pool_SOURCES) \
$(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \
- $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \
- $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \
- $(unit_this_coro_SOURCES) $(unit_thread_SOURCES) \
- $(unit_thread_pool_SOURCES) $(unit_time_traits_SOURCES) \
- $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \
- $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \
- $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \
- $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \
- $(unit_use_awaitable_SOURCES) $(unit_use_future_SOURCES) \
- $(unit_uses_executor_SOURCES) $(unit_wait_traits_SOURCES) \
+ $(unit_stream_file_SOURCES) $(unit_streambuf_SOURCES) \
+ $(unit_system_context_SOURCES) $(unit_system_executor_SOURCES) \
+ $(unit_system_timer_SOURCES) $(unit_this_coro_SOURCES) \
+ $(unit_thread_SOURCES) $(unit_thread_pool_SOURCES) \
+ $(unit_time_traits_SOURCES) $(unit_ts_buffer_SOURCES) \
+ $(unit_ts_executor_SOURCES) $(unit_ts_internet_SOURCES) \
+ $(unit_ts_io_context_SOURCES) $(unit_ts_net_SOURCES) \
+ $(unit_ts_netfwd_SOURCES) $(unit_ts_socket_SOURCES) \
+ $(unit_ts_timer_SOURCES) $(unit_use_awaitable_SOURCES) \
+ $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \
+ $(unit_wait_traits_SOURCES) \
$(unit_windows_basic_object_handle_SOURCES) \
$(unit_windows_basic_overlapped_handle_SOURCES) \
$(unit_windows_basic_random_access_handle_SOURCES) \
@@ -1840,7 +2065,8 @@ DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \
$(unit_windows_overlapped_handle_SOURCES) \
$(unit_windows_overlapped_ptr_SOURCES) \
$(unit_windows_random_access_handle_SOURCES) \
- $(unit_windows_stream_handle_SOURCES) $(unit_write_SOURCES) \
+ $(unit_windows_stream_handle_SOURCES) \
+ $(unit_writable_pipe_SOURCES) $(unit_write_SOURCES) \
$(unit_write_at_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
@@ -1881,8 +2107,6 @@ am__define_uniq_tagged_files = \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
@@ -2065,6 +2289,7 @@ am__set_TESTS_bases = \
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
RECHECK_LOGS = $(TEST_LOGS)
TEST_SUITE_LOG = test-suite.log
TEST_EXTENSIONS = @EXEEXT@ .test
@@ -2126,8 +2351,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
CXX = @CXX@
-CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -2136,9 +2362,8 @@ DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
-EGREP = @EGREP@
+ETAGS = @ETAGS@
EXEEXT = @EXEEXT@
-GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -2205,9 +2430,11 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -2233,26 +2460,40 @@ AM_CXXFLAGS = -I$(srcdir)/../../include
@STANDALONE_FALSE@latency_udp_server_SOURCES = latency/udp_server.cpp
@STANDALONE_FALSE@performance_client_SOURCES = performance/client.cpp
@STANDALONE_FALSE@performance_server_SOURCES = performance/server.cpp
+unit_any_completion_executor_SOURCES = unit/any_completion_executor.cpp
+unit_any_completion_handler_SOURCES = unit/any_completion_handler.cpp
+unit_any_io_executor_SOURCES = unit/any_io_executor.cpp
+unit_append_SOURCES = unit/append.cpp
+unit_as_tuple_SOURCES = unit/as_tuple.cpp
unit_associated_allocator_SOURCES = unit/associated_allocator.cpp
unit_associated_cancellation_slot_SOURCES = unit/associated_cancellation_slot.cpp
unit_associated_executor_SOURCES = unit/associated_executor.cpp
+unit_associated_immediate_executor_SOURCES = unit/associated_immediate_executor.cpp
unit_associator_SOURCES = unit/associator.cpp
unit_async_result_SOURCES = unit/async_result.cpp
unit_awaitable_SOURCES = unit/awaitable.cpp
unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp
unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp
+unit_basic_file_SOURCES = unit/basic_file.cpp
+unit_basic_random_access_file_SOURCES = unit/basic_random_access_file.cpp
unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp
+unit_basic_readable_pipe_SOURCES = unit/basic_readable_pipe.cpp
unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp
unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp
unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp
unit_basic_socket_SOURCES = unit/basic_socket.cpp
unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp
+unit_basic_stream_file_SOURCES = unit/basic_stream_file.cpp
unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp
unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp
unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp
+unit_basic_writable_pipe_SOURCES = unit/basic_writable_pipe.cpp
+unit_bind_allocator_SOURCES = unit/bind_allocator.cpp
unit_bind_cancellation_slot_SOURCES = unit/bind_cancellation_slot.cpp
unit_bind_executor_SOURCES = unit/bind_executor.cpp
+unit_bind_immediate_executor_SOURCES = unit/bind_immediate_executor.cpp
unit_buffer_SOURCES = unit/buffer.cpp
+unit_buffer_registration_SOURCES = unit/buffer_registration.cpp
unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp
unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp
unit_buffered_stream_SOURCES = unit/buffered_stream.cpp
@@ -2264,39 +2505,29 @@ unit_co_spawn_SOURCES = unit/co_spawn.cpp
unit_completion_condition_SOURCES = unit/completion_condition.cpp
unit_compose_SOURCES = unit/compose.cpp
unit_connect_SOURCES = unit/connect.cpp
+unit_connect_pipe_SOURCES = unit/connect_pipe.cpp
+unit_consign_SOURCES = unit/consign.cpp
unit_coroutine_SOURCES = unit/coroutine.cpp
unit_deadline_timer_SOURCES = unit/deadline_timer.cpp
unit_defer_SOURCES = unit/defer.cpp
+unit_deferred_SOURCES = unit/deferred.cpp
unit_detached_SOURCES = unit/detached.cpp
unit_dispatch_SOURCES = unit/dispatch.cpp
unit_error_SOURCES = unit/error.cpp
unit_execution_any_executor_SOURCES = unit/execution/any_executor.cpp
unit_execution_blocking_SOURCES = unit/execution/blocking.cpp
unit_execution_blocking_adaptation_SOURCES = unit/execution/blocking_adaptation.cpp
-unit_execution_bulk_execute_SOURCES = unit/execution/bulk_execute.cpp
-unit_execution_bulk_guarantee_SOURCES = unit/execution/bulk_guarantee.cpp
-unit_execution_connect_SOURCES = unit/execution/connect.cpp
unit_execution_context_as_SOURCES = unit/execution/context_as.cpp
-unit_execution_execute_SOURCES = unit/execution/execute.cpp
unit_execution_executor_SOURCES = unit/execution/executor.cpp
unit_execution_invocable_archetype_SOURCES = unit/execution/invocable_archetype.cpp
unit_execution_mapping_SOURCES = unit/execution/mapping.cpp
unit_execution_outstanding_work_SOURCES = unit/execution/outstanding_work.cpp
-unit_execution_operation_state_SOURCES = unit/execution/operation_state.cpp
unit_execution_prefer_only_SOURCES = unit/execution/prefer_only.cpp
-unit_execution_receiver_SOURCES = unit/execution/receiver.cpp
unit_execution_relationship_SOURCES = unit/execution/relationship.cpp
-unit_execution_schedule_SOURCES = unit/execution/schedule.cpp
-unit_execution_scheduler_SOURCES = unit/execution/scheduler.cpp
-unit_execution_sender_SOURCES = unit/execution/sender.cpp
-unit_execution_set_done_SOURCES = unit/execution/set_done.cpp
-unit_execution_set_error_SOURCES = unit/execution/set_error.cpp
-unit_execution_set_value_SOURCES = unit/execution/set_value.cpp
-unit_execution_start_SOURCES = unit/execution/start.cpp
-unit_execution_submit_SOURCES = unit/execution/submit.cpp
unit_execution_context_SOURCES = unit/execution_context.cpp
unit_executor_SOURCES = unit/executor.cpp
unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp
+unit_file_base_SOURCES = unit/file_base.cpp
unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp
unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp
unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp
@@ -2332,6 +2563,7 @@ unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp
unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp
unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp
unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp
+unit_local_seq_packet_protocol_SOURCES = unit/local/seq_packet_protocol.cpp
unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp
unit_packaged_task_SOURCES = unit/packaged_task.cpp
unit_placeholders_SOURCES = unit/placeholders.cpp
@@ -2341,17 +2573,24 @@ unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp
unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp
unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp
unit_post_SOURCES = unit/post.cpp
+unit_prepend_SOURCES = unit/prepend.cpp
+unit_random_access_file_SOURCES = unit/random_access_file.cpp
unit_read_SOURCES = unit/read.cpp
unit_read_at_SOURCES = unit/read_at.cpp
unit_read_until_SOURCES = unit/read_until.cpp
+unit_readable_pipe_SOURCES = unit/readable_pipe.cpp
+unit_recycling_allocator_SOURCES = unit/recycling_allocator.cpp
unit_redirect_error_SOURCES = unit/redirect_error.cpp
+unit_registered_buffer_SOURCES = unit/registered_buffer.cpp
unit_serial_port_SOURCES = unit/serial_port.cpp
unit_serial_port_base_SOURCES = unit/serial_port_base.cpp
unit_signal_set_SOURCES = unit/signal_set.cpp
+unit_signal_set_base_SOURCES = unit/signal_set_base.cpp
unit_socket_base_SOURCES = unit/socket_base.cpp
unit_static_thread_pool_SOURCES = unit/static_thread_pool.cpp
unit_steady_timer_SOURCES = unit/steady_timer.cpp
unit_strand_SOURCES = unit/strand.cpp
+unit_stream_file_SOURCES = unit/stream_file.cpp
unit_streambuf_SOURCES = unit/streambuf.cpp
unit_system_context_SOURCES = unit/system_context.cpp
unit_system_executor_SOURCES = unit/system_executor.cpp
@@ -2381,13 +2620,23 @@ unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp
unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp
unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp
unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp
+unit_writable_pipe_SOURCES = unit/writable_pipe.cpp
unit_write_SOURCES = unit/write.cpp
unit_write_at_SOURCES = unit/write_at.cpp
-@HAVE_CXX14_TRUE@unit_experimental_deferred_SOURCES = unit/experimental/deferred.cpp
+@HAVE_CXX11_TRUE@unit_experimental_basic_channel_SOURCES = unit/experimental/basic_channel.cpp
+@HAVE_CXX11_TRUE@unit_experimental_basic_concurrent_channel_SOURCES = unit/experimental/basic_concurrent_channel.cpp
+@HAVE_CXX11_TRUE@unit_experimental_channel_SOURCES = unit/experimental/channel.cpp
+@HAVE_CXX11_TRUE@unit_experimental_channel_traits_SOURCES = unit/experimental/channel_traits.cpp
+@HAVE_CXX11_TRUE@unit_experimental_concurrent_channel_SOURCES = unit/experimental/concurrent_channel.cpp
+@HAVE_CXX11_TRUE@unit_experimental_parallel_group_SOURCES = unit/experimental/parallel_group.cpp
@HAVE_CXX20_TRUE@unit_experimental_promise_SOURCES = unit/experimental/promise.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_awaitable_operators_SOURCES = unit/experimental/awaitable_operators.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_co_composed_SOURCES = unit/experimental/co_composed.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_allocator_SOURCES = unit/experimental/coro/allocator.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_cancel_SOURCES = unit/experimental/coro/cancel.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_co_spawn_SOURCES = unit/experimental/coro/co_spawn.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_exception_SOURCES = unit/experimental/coro/exception.cpp
+@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_executor_SOURCES = unit/experimental/coro/executor.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_partial_SOURCES = unit/experimental/coro/partial.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_simple_test_SOURCES = unit/experimental/coro/simple_test.cpp
@HAVE_COROUTINES_TRUE@@HAVE_CXX20_TRUE@unit_experimental_coro_stack_test_SOURCES = unit/experimental/coro/stack_test.cpp
@@ -2520,6 +2769,36 @@ unit/$(am__dirstamp):
unit/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) unit/$(DEPDIR)
@: > unit/$(DEPDIR)/$(am__dirstamp)
+unit/any_completion_executor.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/any_completion_executor$(EXEEXT): $(unit_any_completion_executor_OBJECTS) $(unit_any_completion_executor_DEPENDENCIES) $(EXTRA_unit_any_completion_executor_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/any_completion_executor$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_any_completion_executor_OBJECTS) $(unit_any_completion_executor_LDADD) $(LIBS)
+unit/any_completion_handler.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/any_completion_handler$(EXEEXT): $(unit_any_completion_handler_OBJECTS) $(unit_any_completion_handler_DEPENDENCIES) $(EXTRA_unit_any_completion_handler_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/any_completion_handler$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_any_completion_handler_OBJECTS) $(unit_any_completion_handler_LDADD) $(LIBS)
+unit/any_io_executor.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/any_io_executor$(EXEEXT): $(unit_any_io_executor_OBJECTS) $(unit_any_io_executor_DEPENDENCIES) $(EXTRA_unit_any_io_executor_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/any_io_executor$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_any_io_executor_OBJECTS) $(unit_any_io_executor_LDADD) $(LIBS)
+unit/append.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/append$(EXEEXT): $(unit_append_OBJECTS) $(unit_append_DEPENDENCIES) $(EXTRA_unit_append_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/append$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_append_OBJECTS) $(unit_append_LDADD) $(LIBS)
+unit/as_tuple.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/as_tuple$(EXEEXT): $(unit_as_tuple_OBJECTS) $(unit_as_tuple_DEPENDENCIES) $(EXTRA_unit_as_tuple_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/as_tuple$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_as_tuple_OBJECTS) $(unit_as_tuple_LDADD) $(LIBS)
unit/associated_allocator.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2538,6 +2817,12 @@ unit/associated_executor.$(OBJEXT): unit/$(am__dirstamp) \
unit/associated_executor$(EXEEXT): $(unit_associated_executor_OBJECTS) $(unit_associated_executor_DEPENDENCIES) $(EXTRA_unit_associated_executor_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/associated_executor$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_associated_executor_OBJECTS) $(unit_associated_executor_LDADD) $(LIBS)
+unit/associated_immediate_executor.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/associated_immediate_executor$(EXEEXT): $(unit_associated_immediate_executor_OBJECTS) $(unit_associated_immediate_executor_DEPENDENCIES) $(EXTRA_unit_associated_immediate_executor_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/associated_immediate_executor$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_immediate_executor_OBJECTS) $(unit_associated_immediate_executor_LDADD) $(LIBS)
unit/associator.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2568,12 +2853,30 @@ unit/basic_deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \
unit/basic_deadline_timer$(EXEEXT): $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_DEPENDENCIES) $(EXTRA_unit_basic_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/basic_deadline_timer$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_LDADD) $(LIBS)
+unit/basic_file.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/basic_file$(EXEEXT): $(unit_basic_file_OBJECTS) $(unit_basic_file_DEPENDENCIES) $(EXTRA_unit_basic_file_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/basic_file$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_file_OBJECTS) $(unit_basic_file_LDADD) $(LIBS)
+unit/basic_random_access_file.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/basic_random_access_file$(EXEEXT): $(unit_basic_random_access_file_OBJECTS) $(unit_basic_random_access_file_DEPENDENCIES) $(EXTRA_unit_basic_random_access_file_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/basic_random_access_file$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_random_access_file_OBJECTS) $(unit_basic_random_access_file_LDADD) $(LIBS)
unit/basic_raw_socket.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
unit/basic_raw_socket$(EXEEXT): $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_DEPENDENCIES) $(EXTRA_unit_basic_raw_socket_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/basic_raw_socket$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_LDADD) $(LIBS)
+unit/basic_readable_pipe.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/basic_readable_pipe$(EXEEXT): $(unit_basic_readable_pipe_OBJECTS) $(unit_basic_readable_pipe_DEPENDENCIES) $(EXTRA_unit_basic_readable_pipe_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/basic_readable_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_readable_pipe_OBJECTS) $(unit_basic_readable_pipe_LDADD) $(LIBS)
unit/basic_seq_packet_socket.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2604,6 +2907,12 @@ unit/basic_socket_acceptor.$(OBJEXT): unit/$(am__dirstamp) \
unit/basic_socket_acceptor$(EXEEXT): $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_DEPENDENCIES) $(EXTRA_unit_basic_socket_acceptor_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/basic_socket_acceptor$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_LDADD) $(LIBS)
+unit/basic_stream_file.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/basic_stream_file$(EXEEXT): $(unit_basic_stream_file_OBJECTS) $(unit_basic_stream_file_DEPENDENCIES) $(EXTRA_unit_basic_stream_file_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/basic_stream_file$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_stream_file_OBJECTS) $(unit_basic_stream_file_LDADD) $(LIBS)
unit/basic_stream_socket.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2622,6 +2931,18 @@ unit/basic_waitable_timer.$(OBJEXT): unit/$(am__dirstamp) \
unit/basic_waitable_timer$(EXEEXT): $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_DEPENDENCIES) $(EXTRA_unit_basic_waitable_timer_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/basic_waitable_timer$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_LDADD) $(LIBS)
+unit/basic_writable_pipe.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/basic_writable_pipe$(EXEEXT): $(unit_basic_writable_pipe_OBJECTS) $(unit_basic_writable_pipe_DEPENDENCIES) $(EXTRA_unit_basic_writable_pipe_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/basic_writable_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_writable_pipe_OBJECTS) $(unit_basic_writable_pipe_LDADD) $(LIBS)
+unit/bind_allocator.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/bind_allocator$(EXEEXT): $(unit_bind_allocator_OBJECTS) $(unit_bind_allocator_DEPENDENCIES) $(EXTRA_unit_bind_allocator_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/bind_allocator$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_allocator_OBJECTS) $(unit_bind_allocator_LDADD) $(LIBS)
unit/bind_cancellation_slot.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2634,12 +2955,24 @@ unit/bind_executor.$(OBJEXT): unit/$(am__dirstamp) \
unit/bind_executor$(EXEEXT): $(unit_bind_executor_OBJECTS) $(unit_bind_executor_DEPENDENCIES) $(EXTRA_unit_bind_executor_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/bind_executor$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_bind_executor_OBJECTS) $(unit_bind_executor_LDADD) $(LIBS)
+unit/bind_immediate_executor.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/bind_immediate_executor$(EXEEXT): $(unit_bind_immediate_executor_OBJECTS) $(unit_bind_immediate_executor_DEPENDENCIES) $(EXTRA_unit_bind_immediate_executor_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/bind_immediate_executor$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_immediate_executor_OBJECTS) $(unit_bind_immediate_executor_LDADD) $(LIBS)
unit/buffer.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
unit/buffer$(EXEEXT): $(unit_buffer_OBJECTS) $(unit_buffer_DEPENDENCIES) $(EXTRA_unit_buffer_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/buffer$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_OBJECTS) $(unit_buffer_LDADD) $(LIBS)
+unit/buffer_registration.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/buffer_registration$(EXEEXT): $(unit_buffer_registration_OBJECTS) $(unit_buffer_registration_DEPENDENCIES) $(EXTRA_unit_buffer_registration_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/buffer_registration$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_registration_OBJECTS) $(unit_buffer_registration_LDADD) $(LIBS)
unit/buffered_read_stream.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2706,6 +3039,18 @@ unit/connect.$(OBJEXT): unit/$(am__dirstamp) \
unit/connect$(EXEEXT): $(unit_connect_OBJECTS) $(unit_connect_DEPENDENCIES) $(EXTRA_unit_connect_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/connect$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_connect_OBJECTS) $(unit_connect_LDADD) $(LIBS)
+unit/connect_pipe.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/connect_pipe$(EXEEXT): $(unit_connect_pipe_OBJECTS) $(unit_connect_pipe_DEPENDENCIES) $(EXTRA_unit_connect_pipe_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/connect_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_connect_pipe_OBJECTS) $(unit_connect_pipe_LDADD) $(LIBS)
+unit/consign.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/consign$(EXEEXT): $(unit_consign_OBJECTS) $(unit_consign_DEPENDENCIES) $(EXTRA_unit_consign_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/consign$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_consign_OBJECTS) $(unit_consign_LDADD) $(LIBS)
unit/coroutine.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2724,6 +3069,12 @@ unit/defer.$(OBJEXT): unit/$(am__dirstamp) \
unit/defer$(EXEEXT): $(unit_defer_OBJECTS) $(unit_defer_DEPENDENCIES) $(EXTRA_unit_defer_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/defer$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_defer_OBJECTS) $(unit_defer_LDADD) $(LIBS)
+unit/deferred.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/deferred$(EXEEXT): $(unit_deferred_OBJECTS) $(unit_deferred_DEPENDENCIES) $(EXTRA_unit_deferred_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/deferred$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_deferred_OBJECTS) $(unit_deferred_LDADD) $(LIBS)
unit/detached.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2767,37 +3118,12 @@ unit/execution/blocking_adaptation.$(OBJEXT): \
unit/execution/blocking_adaptation$(EXEEXT): $(unit_execution_blocking_adaptation_OBJECTS) $(unit_execution_blocking_adaptation_DEPENDENCIES) $(EXTRA_unit_execution_blocking_adaptation_DEPENDENCIES) unit/execution/$(am__dirstamp)
@rm -f unit/execution/blocking_adaptation$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_execution_blocking_adaptation_OBJECTS) $(unit_execution_blocking_adaptation_LDADD) $(LIBS)
-unit/execution/bulk_execute.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/bulk_execute$(EXEEXT): $(unit_execution_bulk_execute_OBJECTS) $(unit_execution_bulk_execute_DEPENDENCIES) $(EXTRA_unit_execution_bulk_execute_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/bulk_execute$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_bulk_execute_OBJECTS) $(unit_execution_bulk_execute_LDADD) $(LIBS)
-unit/execution/bulk_guarantee.$(OBJEXT): \
- unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/bulk_guarantee$(EXEEXT): $(unit_execution_bulk_guarantee_OBJECTS) $(unit_execution_bulk_guarantee_DEPENDENCIES) $(EXTRA_unit_execution_bulk_guarantee_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/bulk_guarantee$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_bulk_guarantee_OBJECTS) $(unit_execution_bulk_guarantee_LDADD) $(LIBS)
-unit/execution/connect.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/connect$(EXEEXT): $(unit_execution_connect_OBJECTS) $(unit_execution_connect_DEPENDENCIES) $(EXTRA_unit_execution_connect_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/connect$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_connect_OBJECTS) $(unit_execution_connect_LDADD) $(LIBS)
unit/execution/context_as.$(OBJEXT): unit/execution/$(am__dirstamp) \
unit/execution/$(DEPDIR)/$(am__dirstamp)
unit/execution/context_as$(EXEEXT): $(unit_execution_context_as_OBJECTS) $(unit_execution_context_as_DEPENDENCIES) $(EXTRA_unit_execution_context_as_DEPENDENCIES) unit/execution/$(am__dirstamp)
@rm -f unit/execution/context_as$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_execution_context_as_OBJECTS) $(unit_execution_context_as_LDADD) $(LIBS)
-unit/execution/execute.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/execute$(EXEEXT): $(unit_execution_execute_OBJECTS) $(unit_execution_execute_DEPENDENCIES) $(EXTRA_unit_execution_execute_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/execute$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_execute_OBJECTS) $(unit_execution_execute_LDADD) $(LIBS)
unit/execution/executor.$(OBJEXT): unit/execution/$(am__dirstamp) \
unit/execution/$(DEPDIR)/$(am__dirstamp)
@@ -2817,13 +3143,6 @@ unit/execution/mapping.$(OBJEXT): unit/execution/$(am__dirstamp) \
unit/execution/mapping$(EXEEXT): $(unit_execution_mapping_OBJECTS) $(unit_execution_mapping_DEPENDENCIES) $(EXTRA_unit_execution_mapping_DEPENDENCIES) unit/execution/$(am__dirstamp)
@rm -f unit/execution/mapping$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_execution_mapping_OBJECTS) $(unit_execution_mapping_LDADD) $(LIBS)
-unit/execution/operation_state.$(OBJEXT): \
- unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/operation_state$(EXEEXT): $(unit_execution_operation_state_OBJECTS) $(unit_execution_operation_state_DEPENDENCIES) $(EXTRA_unit_execution_operation_state_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/operation_state$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_operation_state_OBJECTS) $(unit_execution_operation_state_LDADD) $(LIBS)
unit/execution/outstanding_work.$(OBJEXT): \
unit/execution/$(am__dirstamp) \
unit/execution/$(DEPDIR)/$(am__dirstamp)
@@ -2837,66 +3156,12 @@ unit/execution/prefer_only.$(OBJEXT): unit/execution/$(am__dirstamp) \
unit/execution/prefer_only$(EXEEXT): $(unit_execution_prefer_only_OBJECTS) $(unit_execution_prefer_only_DEPENDENCIES) $(EXTRA_unit_execution_prefer_only_DEPENDENCIES) unit/execution/$(am__dirstamp)
@rm -f unit/execution/prefer_only$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_execution_prefer_only_OBJECTS) $(unit_execution_prefer_only_LDADD) $(LIBS)
-unit/execution/receiver.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/receiver$(EXEEXT): $(unit_execution_receiver_OBJECTS) $(unit_execution_receiver_DEPENDENCIES) $(EXTRA_unit_execution_receiver_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/receiver$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_receiver_OBJECTS) $(unit_execution_receiver_LDADD) $(LIBS)
unit/execution/relationship.$(OBJEXT): unit/execution/$(am__dirstamp) \
unit/execution/$(DEPDIR)/$(am__dirstamp)
unit/execution/relationship$(EXEEXT): $(unit_execution_relationship_OBJECTS) $(unit_execution_relationship_DEPENDENCIES) $(EXTRA_unit_execution_relationship_DEPENDENCIES) unit/execution/$(am__dirstamp)
@rm -f unit/execution/relationship$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_execution_relationship_OBJECTS) $(unit_execution_relationship_LDADD) $(LIBS)
-unit/execution/schedule.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/schedule$(EXEEXT): $(unit_execution_schedule_OBJECTS) $(unit_execution_schedule_DEPENDENCIES) $(EXTRA_unit_execution_schedule_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/schedule$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_schedule_OBJECTS) $(unit_execution_schedule_LDADD) $(LIBS)
-unit/execution/scheduler.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/scheduler$(EXEEXT): $(unit_execution_scheduler_OBJECTS) $(unit_execution_scheduler_DEPENDENCIES) $(EXTRA_unit_execution_scheduler_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/scheduler$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_scheduler_OBJECTS) $(unit_execution_scheduler_LDADD) $(LIBS)
-unit/execution/sender.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/sender$(EXEEXT): $(unit_execution_sender_OBJECTS) $(unit_execution_sender_DEPENDENCIES) $(EXTRA_unit_execution_sender_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/sender$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_sender_OBJECTS) $(unit_execution_sender_LDADD) $(LIBS)
-unit/execution/set_done.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/set_done$(EXEEXT): $(unit_execution_set_done_OBJECTS) $(unit_execution_set_done_DEPENDENCIES) $(EXTRA_unit_execution_set_done_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/set_done$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_done_OBJECTS) $(unit_execution_set_done_LDADD) $(LIBS)
-unit/execution/set_error.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/set_error$(EXEEXT): $(unit_execution_set_error_OBJECTS) $(unit_execution_set_error_DEPENDENCIES) $(EXTRA_unit_execution_set_error_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/set_error$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_error_OBJECTS) $(unit_execution_set_error_LDADD) $(LIBS)
-unit/execution/set_value.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/set_value$(EXEEXT): $(unit_execution_set_value_OBJECTS) $(unit_execution_set_value_DEPENDENCIES) $(EXTRA_unit_execution_set_value_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/set_value$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_set_value_OBJECTS) $(unit_execution_set_value_LDADD) $(LIBS)
-unit/execution/start.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/start$(EXEEXT): $(unit_execution_start_OBJECTS) $(unit_execution_start_DEPENDENCIES) $(EXTRA_unit_execution_start_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/start$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_start_OBJECTS) $(unit_execution_start_LDADD) $(LIBS)
-unit/execution/submit.$(OBJEXT): unit/execution/$(am__dirstamp) \
- unit/execution/$(DEPDIR)/$(am__dirstamp)
-
-unit/execution/submit$(EXEEXT): $(unit_execution_submit_OBJECTS) $(unit_execution_submit_DEPENDENCIES) $(EXTRA_unit_execution_submit_DEPENDENCIES) unit/execution/$(am__dirstamp)
- @rm -f unit/execution/submit$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_submit_OBJECTS) $(unit_execution_submit_LDADD) $(LIBS)
unit/execution_context.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -2928,12 +3193,61 @@ unit/experimental/awaitable_operators.$(OBJEXT): \
unit/experimental/awaitable_operators$(EXEEXT): $(unit_experimental_awaitable_operators_OBJECTS) $(unit_experimental_awaitable_operators_DEPENDENCIES) $(EXTRA_unit_experimental_awaitable_operators_DEPENDENCIES) unit/experimental/$(am__dirstamp)
@rm -f unit/experimental/awaitable_operators$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_awaitable_operators_OBJECTS) $(unit_experimental_awaitable_operators_LDADD) $(LIBS)
+unit/experimental/basic_channel.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/basic_channel$(EXEEXT): $(unit_experimental_basic_channel_OBJECTS) $(unit_experimental_basic_channel_DEPENDENCIES) $(EXTRA_unit_experimental_basic_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/basic_channel$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_basic_channel_OBJECTS) $(unit_experimental_basic_channel_LDADD) $(LIBS)
+unit/experimental/basic_concurrent_channel.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/basic_concurrent_channel$(EXEEXT): $(unit_experimental_basic_concurrent_channel_OBJECTS) $(unit_experimental_basic_concurrent_channel_DEPENDENCIES) $(EXTRA_unit_experimental_basic_concurrent_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/basic_concurrent_channel$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_basic_concurrent_channel_OBJECTS) $(unit_experimental_basic_concurrent_channel_LDADD) $(LIBS)
+unit/experimental/channel.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/channel$(EXEEXT): $(unit_experimental_channel_OBJECTS) $(unit_experimental_channel_DEPENDENCIES) $(EXTRA_unit_experimental_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/channel$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_channel_OBJECTS) $(unit_experimental_channel_LDADD) $(LIBS)
+unit/experimental/channel_traits.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/channel_traits$(EXEEXT): $(unit_experimental_channel_traits_OBJECTS) $(unit_experimental_channel_traits_DEPENDENCIES) $(EXTRA_unit_experimental_channel_traits_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/channel_traits$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_channel_traits_OBJECTS) $(unit_experimental_channel_traits_LDADD) $(LIBS)
+unit/experimental/co_composed.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/co_composed$(EXEEXT): $(unit_experimental_co_composed_OBJECTS) $(unit_experimental_co_composed_DEPENDENCIES) $(EXTRA_unit_experimental_co_composed_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/co_composed$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_co_composed_OBJECTS) $(unit_experimental_co_composed_LDADD) $(LIBS)
+unit/experimental/concurrent_channel.$(OBJEXT): \
+ unit/experimental/$(am__dirstamp) \
+ unit/experimental/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/concurrent_channel$(EXEEXT): $(unit_experimental_concurrent_channel_OBJECTS) $(unit_experimental_concurrent_channel_DEPENDENCIES) $(EXTRA_unit_experimental_concurrent_channel_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/concurrent_channel$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_concurrent_channel_OBJECTS) $(unit_experimental_concurrent_channel_LDADD) $(LIBS)
unit/experimental/coro/$(am__dirstamp):
@$(MKDIR_P) unit/experimental/coro
@: > unit/experimental/coro/$(am__dirstamp)
unit/experimental/coro/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) unit/experimental/coro/$(DEPDIR)
@: > unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
+unit/experimental/coro/allocator.$(OBJEXT): \
+ unit/experimental/coro/$(am__dirstamp) \
+ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/coro/allocator$(EXEEXT): $(unit_experimental_coro_allocator_OBJECTS) $(unit_experimental_coro_allocator_DEPENDENCIES) $(EXTRA_unit_experimental_coro_allocator_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
+ @rm -f unit/experimental/coro/allocator$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_allocator_OBJECTS) $(unit_experimental_coro_allocator_LDADD) $(LIBS)
unit/experimental/coro/cancel.$(OBJEXT): \
unit/experimental/coro/$(am__dirstamp) \
unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
@@ -2941,6 +3255,13 @@ unit/experimental/coro/cancel.$(OBJEXT): \
unit/experimental/coro/cancel$(EXEEXT): $(unit_experimental_coro_cancel_OBJECTS) $(unit_experimental_coro_cancel_DEPENDENCIES) $(EXTRA_unit_experimental_coro_cancel_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
@rm -f unit/experimental/coro/cancel$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_cancel_OBJECTS) $(unit_experimental_coro_cancel_LDADD) $(LIBS)
+unit/experimental/coro/co_spawn.$(OBJEXT): \
+ unit/experimental/coro/$(am__dirstamp) \
+ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/coro/co_spawn$(EXEEXT): $(unit_experimental_coro_co_spawn_OBJECTS) $(unit_experimental_coro_co_spawn_DEPENDENCIES) $(EXTRA_unit_experimental_coro_co_spawn_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
+ @rm -f unit/experimental/coro/co_spawn$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_co_spawn_OBJECTS) $(unit_experimental_coro_co_spawn_LDADD) $(LIBS)
unit/experimental/coro/exception.$(OBJEXT): \
unit/experimental/coro/$(am__dirstamp) \
unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
@@ -2948,6 +3269,13 @@ unit/experimental/coro/exception.$(OBJEXT): \
unit/experimental/coro/exception$(EXEEXT): $(unit_experimental_coro_exception_OBJECTS) $(unit_experimental_coro_exception_DEPENDENCIES) $(EXTRA_unit_experimental_coro_exception_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
@rm -f unit/experimental/coro/exception$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_exception_OBJECTS) $(unit_experimental_coro_exception_LDADD) $(LIBS)
+unit/experimental/coro/executor.$(OBJEXT): \
+ unit/experimental/coro/$(am__dirstamp) \
+ unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
+
+unit/experimental/coro/executor$(EXEEXT): $(unit_experimental_coro_executor_OBJECTS) $(unit_experimental_coro_executor_DEPENDENCIES) $(EXTRA_unit_experimental_coro_executor_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
+ @rm -f unit/experimental/coro/executor$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_executor_OBJECTS) $(unit_experimental_coro_executor_LDADD) $(LIBS)
unit/experimental/coro/partial.$(OBJEXT): \
unit/experimental/coro/$(am__dirstamp) \
unit/experimental/coro/$(DEPDIR)/$(am__dirstamp)
@@ -2976,13 +3304,13 @@ unit/experimental/coro/use_coro.$(OBJEXT): \
unit/experimental/coro/use_coro$(EXEEXT): $(unit_experimental_coro_use_coro_OBJECTS) $(unit_experimental_coro_use_coro_DEPENDENCIES) $(EXTRA_unit_experimental_coro_use_coro_DEPENDENCIES) unit/experimental/coro/$(am__dirstamp)
@rm -f unit/experimental/coro/use_coro$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_coro_use_coro_OBJECTS) $(unit_experimental_coro_use_coro_LDADD) $(LIBS)
-unit/experimental/deferred.$(OBJEXT): \
+unit/experimental/parallel_group.$(OBJEXT): \
unit/experimental/$(am__dirstamp) \
unit/experimental/$(DEPDIR)/$(am__dirstamp)
-unit/experimental/deferred$(EXEEXT): $(unit_experimental_deferred_OBJECTS) $(unit_experimental_deferred_DEPENDENCIES) $(EXTRA_unit_experimental_deferred_DEPENDENCIES) unit/experimental/$(am__dirstamp)
- @rm -f unit/experimental/deferred$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_deferred_OBJECTS) $(unit_experimental_deferred_LDADD) $(LIBS)
+unit/experimental/parallel_group$(EXEEXT): $(unit_experimental_parallel_group_OBJECTS) $(unit_experimental_parallel_group_DEPENDENCIES) $(EXTRA_unit_experimental_parallel_group_DEPENDENCIES) unit/experimental/$(am__dirstamp)
+ @rm -f unit/experimental/parallel_group$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_parallel_group_OBJECTS) $(unit_experimental_parallel_group_LDADD) $(LIBS)
unit/experimental/promise.$(OBJEXT): \
unit/experimental/$(am__dirstamp) \
unit/experimental/$(DEPDIR)/$(am__dirstamp)
@@ -2990,6 +3318,12 @@ unit/experimental/promise.$(OBJEXT): \
unit/experimental/promise$(EXEEXT): $(unit_experimental_promise_OBJECTS) $(unit_experimental_promise_DEPENDENCIES) $(EXTRA_unit_experimental_promise_DEPENDENCIES) unit/experimental/$(am__dirstamp)
@rm -f unit/experimental/promise$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_experimental_promise_OBJECTS) $(unit_experimental_promise_LDADD) $(LIBS)
+unit/file_base.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/file_base$(EXEEXT): $(unit_file_base_OBJECTS) $(unit_file_base_DEPENDENCIES) $(EXTRA_unit_file_base_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/file_base$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_file_base_OBJECTS) $(unit_file_base_LDADD) $(LIBS)
unit/generic/$(am__dirstamp):
@$(MKDIR_P) unit/generic
@: > unit/generic/$(am__dirstamp)
@@ -3220,6 +3554,12 @@ unit/local/datagram_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \
unit/local/datagram_protocol$(EXEEXT): $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_local_datagram_protocol_DEPENDENCIES) unit/local/$(am__dirstamp)
@rm -f unit/local/datagram_protocol$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_LDADD) $(LIBS)
+unit/local/seq_packet_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \
+ unit/local/$(DEPDIR)/$(am__dirstamp)
+
+unit/local/seq_packet_protocol$(EXEEXT): $(unit_local_seq_packet_protocol_OBJECTS) $(unit_local_seq_packet_protocol_DEPENDENCIES) $(EXTRA_unit_local_seq_packet_protocol_DEPENDENCIES) unit/local/$(am__dirstamp)
+ @rm -f unit/local/seq_packet_protocol$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_local_seq_packet_protocol_OBJECTS) $(unit_local_seq_packet_protocol_LDADD) $(LIBS)
unit/local/stream_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \
unit/local/$(DEPDIR)/$(am__dirstamp)
@@ -3281,6 +3621,18 @@ unit/post.$(OBJEXT): unit/$(am__dirstamp) \
unit/post$(EXEEXT): $(unit_post_OBJECTS) $(unit_post_DEPENDENCIES) $(EXTRA_unit_post_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/post$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_post_OBJECTS) $(unit_post_LDADD) $(LIBS)
+unit/prepend.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/prepend$(EXEEXT): $(unit_prepend_OBJECTS) $(unit_prepend_DEPENDENCIES) $(EXTRA_unit_prepend_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/prepend$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_prepend_OBJECTS) $(unit_prepend_LDADD) $(LIBS)
+unit/random_access_file.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/random_access_file$(EXEEXT): $(unit_random_access_file_OBJECTS) $(unit_random_access_file_DEPENDENCIES) $(EXTRA_unit_random_access_file_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/random_access_file$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_random_access_file_OBJECTS) $(unit_random_access_file_LDADD) $(LIBS)
unit/read.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -3299,12 +3651,30 @@ unit/read_until.$(OBJEXT): unit/$(am__dirstamp) \
unit/read_until$(EXEEXT): $(unit_read_until_OBJECTS) $(unit_read_until_DEPENDENCIES) $(EXTRA_unit_read_until_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/read_until$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_read_until_OBJECTS) $(unit_read_until_LDADD) $(LIBS)
+unit/readable_pipe.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/readable_pipe$(EXEEXT): $(unit_readable_pipe_OBJECTS) $(unit_readable_pipe_DEPENDENCIES) $(EXTRA_unit_readable_pipe_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/readable_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_readable_pipe_OBJECTS) $(unit_readable_pipe_LDADD) $(LIBS)
+unit/recycling_allocator.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/recycling_allocator$(EXEEXT): $(unit_recycling_allocator_OBJECTS) $(unit_recycling_allocator_DEPENDENCIES) $(EXTRA_unit_recycling_allocator_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/recycling_allocator$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_recycling_allocator_OBJECTS) $(unit_recycling_allocator_LDADD) $(LIBS)
unit/redirect_error.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
unit/redirect_error$(EXEEXT): $(unit_redirect_error_OBJECTS) $(unit_redirect_error_DEPENDENCIES) $(EXTRA_unit_redirect_error_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/redirect_error$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_redirect_error_OBJECTS) $(unit_redirect_error_LDADD) $(LIBS)
+unit/registered_buffer.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/registered_buffer$(EXEEXT): $(unit_registered_buffer_OBJECTS) $(unit_registered_buffer_DEPENDENCIES) $(EXTRA_unit_registered_buffer_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/registered_buffer$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_registered_buffer_OBJECTS) $(unit_registered_buffer_LDADD) $(LIBS)
unit/serial_port.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -3323,6 +3693,12 @@ unit/signal_set.$(OBJEXT): unit/$(am__dirstamp) \
unit/signal_set$(EXEEXT): $(unit_signal_set_OBJECTS) $(unit_signal_set_DEPENDENCIES) $(EXTRA_unit_signal_set_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/signal_set$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_OBJECTS) $(unit_signal_set_LDADD) $(LIBS)
+unit/signal_set_base.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/signal_set_base$(EXEEXT): $(unit_signal_set_base_OBJECTS) $(unit_signal_set_base_DEPENDENCIES) $(EXTRA_unit_signal_set_base_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/signal_set_base$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_base_OBJECTS) $(unit_signal_set_base_LDADD) $(LIBS)
unit/socket_base.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -3395,6 +3771,12 @@ unit/strand.$(OBJEXT): unit/$(am__dirstamp) \
unit/strand$(EXEEXT): $(unit_strand_OBJECTS) $(unit_strand_DEPENDENCIES) $(EXTRA_unit_strand_DEPENDENCIES) unit/$(am__dirstamp)
@rm -f unit/strand$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_strand_OBJECTS) $(unit_strand_LDADD) $(LIBS)
+unit/stream_file.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/stream_file$(EXEEXT): $(unit_stream_file_OBJECTS) $(unit_stream_file_DEPENDENCIES) $(EXTRA_unit_stream_file_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/stream_file$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_stream_file_OBJECTS) $(unit_stream_file_LDADD) $(LIBS)
unit/streambuf.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -3587,6 +3969,12 @@ unit/windows/stream_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \
unit/windows/stream_handle$(EXEEXT): $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp)
@rm -f unit/windows/stream_handle$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_LDADD) $(LIBS)
+unit/writable_pipe.$(OBJEXT): unit/$(am__dirstamp) \
+ unit/$(DEPDIR)/$(am__dirstamp)
+
+unit/writable_pipe$(EXEEXT): $(unit_writable_pipe_OBJECTS) $(unit_writable_pipe_DEPENDENCIES) $(EXTRA_unit_writable_pipe_DEPENDENCIES) unit/$(am__dirstamp)
+ @rm -f unit/writable_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(unit_writable_pipe_OBJECTS) $(unit_writable_pipe_LDADD) $(LIBS)
unit/write.$(OBJEXT): unit/$(am__dirstamp) \
unit/$(DEPDIR)/$(am__dirstamp)
@@ -3628,26 +4016,40 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_server.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/client.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/server.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_completion_executor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_completion_handler.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/any_io_executor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/append.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/as_tuple.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_allocator.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_cancellation_slot.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_executor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_immediate_executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associator.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/async_result.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/awaitable.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_datagram_socket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_deadline_timer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_file.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_random_access_file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_raw_socket.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_readable_pipe.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_seq_packet_socket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_serial_port.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_signal_set.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket_acceptor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_socket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_streambuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_waitable_timer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_writable_pipe.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_allocator.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_cancellation_slot.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_executor.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_immediate_executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer_registration.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_read_stream.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_stream.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_write_stream.Po@am__quote@ # am--include-marker
@@ -3659,15 +4061,19 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/completion_condition.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/compose.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect_pipe.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/consign.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/coroutine.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/defer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deferred.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/detached.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/dispatch.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/error.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/execution_context.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor_work_guard.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/file_base.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/high_resolution_timer.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context_strand.Po@am__quote@ # am--include-marker
@@ -3676,17 +4082,24 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/packaged_task.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/placeholders.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/post.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/prepend.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/random_access_file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_at.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_until.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/readable_pipe.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/recycling_allocator.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/redirect_error.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/registered_buffer.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_base.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set_base.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_base.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/static_thread_pool.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/steady_timer.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/strand.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/stream_file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/streambuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_context.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_executor.Po@am__quote@ # am--include-marker
@@ -3699,37 +4112,33 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/use_future.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/uses_executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/wait_traits.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/writable_pipe.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write_at.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/any_executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/blocking.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/blocking_adaptation.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/bulk_execute.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/bulk_guarantee.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/context_as.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/execute.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/invocable_archetype.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/mapping.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/operation_state.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/outstanding_work.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/prefer_only.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/relationship.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/schedule.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/scheduler.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_done.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_error.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/set_value.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/start.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/execution/$(DEPDIR)/submit.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/awaitable_operators.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/deferred.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/basic_channel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/channel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/channel_traits.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/co_composed.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/concurrent_channel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/parallel_group.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/$(DEPDIR)/promise.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/allocator.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/cancel.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/co_spawn.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/exception.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/partial.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/simple_test.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/experimental/coro/$(DEPDIR)/stack_test.Po@am__quote@ # am--include-marker
@@ -3764,6 +4173,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/seq_packet_protocol.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_descriptor.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_stream_descriptor.Po@am__quote@ # am--include-marker
@@ -4023,7 +4433,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
@@ -4057,6 +4467,41 @@ recheck: all $(check_PROGRAMS)
am__force_recheck=am--force-recheck \
TEST_LOGS="$$log_list"; \
exit $$?
+unit/any_completion_executor.log: unit/any_completion_executor$(EXEEXT)
+ @p='unit/any_completion_executor$(EXEEXT)'; \
+ b='unit/any_completion_executor'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/any_completion_handler.log: unit/any_completion_handler$(EXEEXT)
+ @p='unit/any_completion_handler$(EXEEXT)'; \
+ b='unit/any_completion_handler'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/any_io_executor.log: unit/any_io_executor$(EXEEXT)
+ @p='unit/any_io_executor$(EXEEXT)'; \
+ b='unit/any_io_executor'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/append.log: unit/append$(EXEEXT)
+ @p='unit/append$(EXEEXT)'; \
+ b='unit/append'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/as_tuple.log: unit/as_tuple$(EXEEXT)
+ @p='unit/as_tuple$(EXEEXT)'; \
+ b='unit/as_tuple'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/associated_allocator.log: unit/associated_allocator$(EXEEXT)
@p='unit/associated_allocator$(EXEEXT)'; \
b='unit/associated_allocator'; \
@@ -4078,6 +4523,13 @@ unit/associated_executor.log: unit/associated_executor$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/associated_immediate_executor.log: unit/associated_immediate_executor$(EXEEXT)
+ @p='unit/associated_immediate_executor$(EXEEXT)'; \
+ b='unit/associated_immediate_executor'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/associator.log: unit/associator$(EXEEXT)
@p='unit/associator$(EXEEXT)'; \
b='unit/associator'; \
@@ -4113,6 +4565,20 @@ unit/basic_deadline_timer.log: unit/basic_deadline_timer$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/basic_file.log: unit/basic_file$(EXEEXT)
+ @p='unit/basic_file$(EXEEXT)'; \
+ b='unit/basic_file'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/basic_random_access_file.log: unit/basic_random_access_file$(EXEEXT)
+ @p='unit/basic_random_access_file$(EXEEXT)'; \
+ b='unit/basic_random_access_file'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT)
@p='unit/basic_raw_socket$(EXEEXT)'; \
b='unit/basic_raw_socket'; \
@@ -4120,6 +4586,13 @@ unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/basic_readable_pipe.log: unit/basic_readable_pipe$(EXEEXT)
+ @p='unit/basic_readable_pipe$(EXEEXT)'; \
+ b='unit/basic_readable_pipe'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/basic_seq_packet_socket.log: unit/basic_seq_packet_socket$(EXEEXT)
@p='unit/basic_seq_packet_socket$(EXEEXT)'; \
b='unit/basic_seq_packet_socket'; \
@@ -4155,6 +4628,13 @@ unit/basic_socket_acceptor.log: unit/basic_socket_acceptor$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/basic_stream_file.log: unit/basic_stream_file$(EXEEXT)
+ @p='unit/basic_stream_file$(EXEEXT)'; \
+ b='unit/basic_stream_file'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/basic_stream_socket.log: unit/basic_stream_socket$(EXEEXT)
@p='unit/basic_stream_socket$(EXEEXT)'; \
b='unit/basic_stream_socket'; \
@@ -4176,6 +4656,20 @@ unit/basic_waitable_timer.log: unit/basic_waitable_timer$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/basic_writable_pipe.log: unit/basic_writable_pipe$(EXEEXT)
+ @p='unit/basic_writable_pipe$(EXEEXT)'; \
+ b='unit/basic_writable_pipe'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/bind_allocator.log: unit/bind_allocator$(EXEEXT)
+ @p='unit/bind_allocator$(EXEEXT)'; \
+ b='unit/bind_allocator'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/bind_cancellation_slot.log: unit/bind_cancellation_slot$(EXEEXT)
@p='unit/bind_cancellation_slot$(EXEEXT)'; \
b='unit/bind_cancellation_slot'; \
@@ -4190,6 +4684,13 @@ unit/bind_executor.log: unit/bind_executor$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/bind_immediate_executor.log: unit/bind_immediate_executor$(EXEEXT)
+ @p='unit/bind_immediate_executor$(EXEEXT)'; \
+ b='unit/bind_immediate_executor'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/buffered_read_stream.log: unit/buffered_read_stream$(EXEEXT)
@p='unit/buffered_read_stream$(EXEEXT)'; \
b='unit/buffered_read_stream'; \
@@ -4218,6 +4719,13 @@ unit/buffer.log: unit/buffer$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/buffer_registration.log: unit/buffer_registration$(EXEEXT)
+ @p='unit/buffer_registration$(EXEEXT)'; \
+ b='unit/buffer_registration'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/buffers_iterator.log: unit/buffers_iterator$(EXEEXT)
@p='unit/buffers_iterator$(EXEEXT)'; \
b='unit/buffers_iterator'; \
@@ -4274,6 +4782,20 @@ unit/connect.log: unit/connect$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/connect_pipe.log: unit/connect_pipe$(EXEEXT)
+ @p='unit/connect_pipe$(EXEEXT)'; \
+ b='unit/connect_pipe'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/consign.log: unit/consign$(EXEEXT)
+ @p='unit/consign$(EXEEXT)'; \
+ b='unit/consign'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/deadline_timer.log: unit/deadline_timer$(EXEEXT)
@p='unit/deadline_timer$(EXEEXT)'; \
b='unit/deadline_timer'; \
@@ -4288,6 +4810,13 @@ unit/defer.log: unit/defer$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/deferred.log: unit/deferred$(EXEEXT)
+ @p='unit/deferred$(EXEEXT)'; \
+ b='unit/deferred'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/detached.log: unit/detached$(EXEEXT)
@p='unit/detached$(EXEEXT)'; \
b='unit/detached'; \
@@ -4330,27 +4859,6 @@ unit/execution/blocking_adaptation.log: unit/execution/blocking_adaptation$(EXEE
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/bulk_execute.log: unit/execution/bulk_execute$(EXEEXT)
- @p='unit/execution/bulk_execute$(EXEEXT)'; \
- b='unit/execution/bulk_execute'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/bulk_guarantee.log: unit/execution/bulk_guarantee$(EXEEXT)
- @p='unit/execution/bulk_guarantee$(EXEEXT)'; \
- b='unit/execution/bulk_guarantee'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/connect.log: unit/execution/connect$(EXEEXT)
- @p='unit/execution/connect$(EXEEXT)'; \
- b='unit/execution/connect'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/execution/context_as.log: unit/execution/context_as$(EXEEXT)
@p='unit/execution/context_as$(EXEEXT)'; \
b='unit/execution/context_as'; \
@@ -4358,13 +4866,6 @@ unit/execution/context_as.log: unit/execution/context_as$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/execute.log: unit/execution/execute$(EXEEXT)
- @p='unit/execution/execute$(EXEEXT)'; \
- b='unit/execution/execute'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/execution/executor.log: unit/execution/executor$(EXEEXT)
@p='unit/execution/executor$(EXEEXT)'; \
b='unit/execution/executor'; \
@@ -4386,13 +4887,6 @@ unit/execution/mapping.log: unit/execution/mapping$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/operation_state.log: unit/execution/operation_state$(EXEEXT)
- @p='unit/execution/operation_state$(EXEEXT)'; \
- b='unit/execution/operation_state'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/execution/outstanding_work.log: unit/execution/outstanding_work$(EXEEXT)
@p='unit/execution/outstanding_work$(EXEEXT)'; \
b='unit/execution/outstanding_work'; \
@@ -4407,13 +4901,6 @@ unit/execution/prefer_only.log: unit/execution/prefer_only$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/receiver.log: unit/execution/receiver$(EXEEXT)
- @p='unit/execution/receiver$(EXEEXT)'; \
- b='unit/execution/receiver'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/execution/relationship.log: unit/execution/relationship$(EXEEXT)
@p='unit/execution/relationship$(EXEEXT)'; \
b='unit/execution/relationship'; \
@@ -4421,62 +4908,6 @@ unit/execution/relationship.log: unit/execution/relationship$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/schedule.log: unit/execution/schedule$(EXEEXT)
- @p='unit/execution/schedule$(EXEEXT)'; \
- b='unit/execution/schedule'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/scheduler.log: unit/execution/scheduler$(EXEEXT)
- @p='unit/execution/scheduler$(EXEEXT)'; \
- b='unit/execution/scheduler'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/sender.log: unit/execution/sender$(EXEEXT)
- @p='unit/execution/sender$(EXEEXT)'; \
- b='unit/execution/sender'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/set_done.log: unit/execution/set_done$(EXEEXT)
- @p='unit/execution/set_done$(EXEEXT)'; \
- b='unit/execution/set_done'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/set_error.log: unit/execution/set_error$(EXEEXT)
- @p='unit/execution/set_error$(EXEEXT)'; \
- b='unit/execution/set_error'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/set_value.log: unit/execution/set_value$(EXEEXT)
- @p='unit/execution/set_value$(EXEEXT)'; \
- b='unit/execution/set_value'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/start.log: unit/execution/start$(EXEEXT)
- @p='unit/execution/start$(EXEEXT)'; \
- b='unit/execution/start'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/execution/submit.log: unit/execution/submit$(EXEEXT)
- @p='unit/execution/submit$(EXEEXT)'; \
- b='unit/execution/submit'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/execution_context.log: unit/execution_context$(EXEEXT)
@p='unit/execution_context$(EXEEXT)'; \
b='unit/execution_context'; \
@@ -4498,6 +4929,13 @@ unit/executor_work_guard.log: unit/executor_work_guard$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/file_base.log: unit/file_base$(EXEEXT)
+ @p='unit/file_base$(EXEEXT)'; \
+ b='unit/file_base'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/high_resolution_timer.log: unit/high_resolution_timer$(EXEEXT)
@p='unit/high_resolution_timer$(EXEEXT)'; \
b='unit/high_resolution_timer'; \
@@ -4708,6 +5146,13 @@ unit/local/datagram_protocol.log: unit/local/datagram_protocol$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/local/seq_packet_protocol.log: unit/local/seq_packet_protocol$(EXEEXT)
+ @p='unit/local/seq_packet_protocol$(EXEEXT)'; \
+ b='unit/local/seq_packet_protocol'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/local/stream_protocol.log: unit/local/stream_protocol$(EXEEXT)
@p='unit/local/stream_protocol$(EXEEXT)'; \
b='unit/local/stream_protocol'; \
@@ -4771,6 +5216,20 @@ unit/post.log: unit/post$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/prepend.log: unit/prepend$(EXEEXT)
+ @p='unit/prepend$(EXEEXT)'; \
+ b='unit/prepend'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/random_access_file.log: unit/random_access_file$(EXEEXT)
+ @p='unit/random_access_file$(EXEEXT)'; \
+ b='unit/random_access_file'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/read.log: unit/read$(EXEEXT)
@p='unit/read$(EXEEXT)'; \
b='unit/read'; \
@@ -4792,6 +5251,20 @@ unit/read_until.log: unit/read_until$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/readable_pipe.log: unit/readable_pipe$(EXEEXT)
+ @p='unit/readable_pipe$(EXEEXT)'; \
+ b='unit/readable_pipe'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/recycling_allocator.log: unit/recycling_allocator$(EXEEXT)
+ @p='unit/recycling_allocator$(EXEEXT)'; \
+ b='unit/recycling_allocator'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/redirect_error.log: unit/redirect_error$(EXEEXT)
@p='unit/redirect_error$(EXEEXT)'; \
b='unit/redirect_error'; \
@@ -4799,6 +5272,13 @@ unit/redirect_error.log: unit/redirect_error$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/registered_buffer.log: unit/registered_buffer$(EXEEXT)
+ @p='unit/registered_buffer$(EXEEXT)'; \
+ b='unit/registered_buffer'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/serial_port.log: unit/serial_port$(EXEEXT)
@p='unit/serial_port$(EXEEXT)'; \
b='unit/serial_port'; \
@@ -4820,6 +5300,13 @@ unit/signal_set.log: unit/signal_set$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/signal_set_base.log: unit/signal_set_base$(EXEEXT)
+ @p='unit/signal_set_base$(EXEEXT)'; \
+ b='unit/signal_set_base'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/socket_base.log: unit/socket_base$(EXEEXT)
@p='unit/socket_base$(EXEEXT)'; \
b='unit/socket_base'; \
@@ -4848,6 +5335,13 @@ unit/strand.log: unit/strand$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/stream_file.log: unit/stream_file$(EXEEXT)
+ @p='unit/stream_file$(EXEEXT)'; \
+ b='unit/stream_file'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/streambuf.log: unit/streambuf$(EXEEXT)
@p='unit/streambuf$(EXEEXT)'; \
b='unit/streambuf'; \
@@ -5051,6 +5545,13 @@ unit/windows/stream_handle.log: unit/windows/stream_handle$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/writable_pipe.log: unit/writable_pipe$(EXEEXT)
+ @p='unit/writable_pipe$(EXEEXT)'; \
+ b='unit/writable_pipe'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/write.log: unit/write$(EXEEXT)
@p='unit/write$(EXEEXT)'; \
b='unit/write'; \
@@ -5065,9 +5566,44 @@ unit/write_at.log: unit/write_at$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-unit/experimental/deferred.log: unit/experimental/deferred$(EXEEXT)
- @p='unit/experimental/deferred$(EXEEXT)'; \
- b='unit/experimental/deferred'; \
+unit/experimental/basic_channel.log: unit/experimental/basic_channel$(EXEEXT)
+ @p='unit/experimental/basic_channel$(EXEEXT)'; \
+ b='unit/experimental/basic_channel'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/basic_concurrent_channel.log: unit/experimental/basic_concurrent_channel$(EXEEXT)
+ @p='unit/experimental/basic_concurrent_channel$(EXEEXT)'; \
+ b='unit/experimental/basic_concurrent_channel'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/channel.log: unit/experimental/channel$(EXEEXT)
+ @p='unit/experimental/channel$(EXEEXT)'; \
+ b='unit/experimental/channel'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/channel_traits.log: unit/experimental/channel_traits$(EXEEXT)
+ @p='unit/experimental/channel_traits$(EXEEXT)'; \
+ b='unit/experimental/channel_traits'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/concurrent_channel.log: unit/experimental/concurrent_channel$(EXEEXT)
+ @p='unit/experimental/concurrent_channel$(EXEEXT)'; \
+ b='unit/experimental/concurrent_channel'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/parallel_group.log: unit/experimental/parallel_group$(EXEEXT)
+ @p='unit/experimental/parallel_group$(EXEEXT)'; \
+ b='unit/experimental/parallel_group'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
@@ -5086,6 +5622,20 @@ unit/experimental/awaitable_operators.log: unit/experimental/awaitable_operators
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/co_composed.log: unit/experimental/co_composed$(EXEEXT)
+ @p='unit/experimental/co_composed$(EXEEXT)'; \
+ b='unit/experimental/co_composed'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/coro/allocator.log: unit/experimental/coro/allocator$(EXEEXT)
+ @p='unit/experimental/coro/allocator$(EXEEXT)'; \
+ b='unit/experimental/coro/allocator'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/experimental/coro/cancel.log: unit/experimental/coro/cancel$(EXEEXT)
@p='unit/experimental/coro/cancel$(EXEEXT)'; \
b='unit/experimental/coro/cancel'; \
@@ -5093,6 +5643,13 @@ unit/experimental/coro/cancel.log: unit/experimental/coro/cancel$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/coro/co_spawn.log: unit/experimental/coro/co_spawn$(EXEEXT)
+ @p='unit/experimental/coro/co_spawn$(EXEEXT)'; \
+ b='unit/experimental/coro/co_spawn'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/experimental/coro/exception.log: unit/experimental/coro/exception$(EXEEXT)
@p='unit/experimental/coro/exception$(EXEEXT)'; \
b='unit/experimental/coro/exception'; \
@@ -5100,6 +5657,13 @@ unit/experimental/coro/exception.log: unit/experimental/coro/exception$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+unit/experimental/coro/executor.log: unit/experimental/coro/executor$(EXEEXT)
+ @p='unit/experimental/coro/executor$(EXEEXT)'; \
+ b='unit/experimental/coro/executor'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
unit/experimental/coro/partial.log: unit/experimental/coro/partial$(EXEEXT)
@p='unit/experimental/coro/partial$(EXEEXT)'; \
b='unit/experimental/coro/partial'; \
@@ -5191,7 +5755,6 @@ unit/ssl/stream.log: unit/ssl/stream$(EXEEXT)
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
@@ -5333,26 +5896,40 @@ distclean: distclean-recursive
-rm -f latency/$(DEPDIR)/udp_server.Po
-rm -f performance/$(DEPDIR)/client.Po
-rm -f performance/$(DEPDIR)/server.Po
+ -rm -f unit/$(DEPDIR)/any_completion_executor.Po
+ -rm -f unit/$(DEPDIR)/any_completion_handler.Po
+ -rm -f unit/$(DEPDIR)/any_io_executor.Po
+ -rm -f unit/$(DEPDIR)/append.Po
+ -rm -f unit/$(DEPDIR)/as_tuple.Po
-rm -f unit/$(DEPDIR)/associated_allocator.Po
-rm -f unit/$(DEPDIR)/associated_cancellation_slot.Po
-rm -f unit/$(DEPDIR)/associated_executor.Po
+ -rm -f unit/$(DEPDIR)/associated_immediate_executor.Po
-rm -f unit/$(DEPDIR)/associator.Po
-rm -f unit/$(DEPDIR)/async_result.Po
-rm -f unit/$(DEPDIR)/awaitable.Po
-rm -f unit/$(DEPDIR)/basic_datagram_socket.Po
-rm -f unit/$(DEPDIR)/basic_deadline_timer.Po
+ -rm -f unit/$(DEPDIR)/basic_file.Po
+ -rm -f unit/$(DEPDIR)/basic_random_access_file.Po
-rm -f unit/$(DEPDIR)/basic_raw_socket.Po
+ -rm -f unit/$(DEPDIR)/basic_readable_pipe.Po
-rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po
-rm -f unit/$(DEPDIR)/basic_serial_port.Po
-rm -f unit/$(DEPDIR)/basic_signal_set.Po
-rm -f unit/$(DEPDIR)/basic_socket.Po
-rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po
+ -rm -f unit/$(DEPDIR)/basic_stream_file.Po
-rm -f unit/$(DEPDIR)/basic_stream_socket.Po
-rm -f unit/$(DEPDIR)/basic_streambuf.Po
-rm -f unit/$(DEPDIR)/basic_waitable_timer.Po
+ -rm -f unit/$(DEPDIR)/basic_writable_pipe.Po
+ -rm -f unit/$(DEPDIR)/bind_allocator.Po
-rm -f unit/$(DEPDIR)/bind_cancellation_slot.Po
-rm -f unit/$(DEPDIR)/bind_executor.Po
+ -rm -f unit/$(DEPDIR)/bind_immediate_executor.Po
-rm -f unit/$(DEPDIR)/buffer.Po
+ -rm -f unit/$(DEPDIR)/buffer_registration.Po
-rm -f unit/$(DEPDIR)/buffered_read_stream.Po
-rm -f unit/$(DEPDIR)/buffered_stream.Po
-rm -f unit/$(DEPDIR)/buffered_write_stream.Po
@@ -5364,15 +5941,19 @@ distclean: distclean-recursive
-rm -f unit/$(DEPDIR)/completion_condition.Po
-rm -f unit/$(DEPDIR)/compose.Po
-rm -f unit/$(DEPDIR)/connect.Po
+ -rm -f unit/$(DEPDIR)/connect_pipe.Po
+ -rm -f unit/$(DEPDIR)/consign.Po
-rm -f unit/$(DEPDIR)/coroutine.Po
-rm -f unit/$(DEPDIR)/deadline_timer.Po
-rm -f unit/$(DEPDIR)/defer.Po
+ -rm -f unit/$(DEPDIR)/deferred.Po
-rm -f unit/$(DEPDIR)/detached.Po
-rm -f unit/$(DEPDIR)/dispatch.Po
-rm -f unit/$(DEPDIR)/error.Po
-rm -f unit/$(DEPDIR)/execution_context.Po
-rm -f unit/$(DEPDIR)/executor.Po
-rm -f unit/$(DEPDIR)/executor_work_guard.Po
+ -rm -f unit/$(DEPDIR)/file_base.Po
-rm -f unit/$(DEPDIR)/high_resolution_timer.Po
-rm -f unit/$(DEPDIR)/io_context.Po
-rm -f unit/$(DEPDIR)/io_context_strand.Po
@@ -5381,17 +5962,24 @@ distclean: distclean-recursive
-rm -f unit/$(DEPDIR)/packaged_task.Po
-rm -f unit/$(DEPDIR)/placeholders.Po
-rm -f unit/$(DEPDIR)/post.Po
+ -rm -f unit/$(DEPDIR)/prepend.Po
+ -rm -f unit/$(DEPDIR)/random_access_file.Po
-rm -f unit/$(DEPDIR)/read.Po
-rm -f unit/$(DEPDIR)/read_at.Po
-rm -f unit/$(DEPDIR)/read_until.Po
+ -rm -f unit/$(DEPDIR)/readable_pipe.Po
+ -rm -f unit/$(DEPDIR)/recycling_allocator.Po
-rm -f unit/$(DEPDIR)/redirect_error.Po
+ -rm -f unit/$(DEPDIR)/registered_buffer.Po
-rm -f unit/$(DEPDIR)/serial_port.Po
-rm -f unit/$(DEPDIR)/serial_port_base.Po
-rm -f unit/$(DEPDIR)/signal_set.Po
+ -rm -f unit/$(DEPDIR)/signal_set_base.Po
-rm -f unit/$(DEPDIR)/socket_base.Po
-rm -f unit/$(DEPDIR)/static_thread_pool.Po
-rm -f unit/$(DEPDIR)/steady_timer.Po
-rm -f unit/$(DEPDIR)/strand.Po
+ -rm -f unit/$(DEPDIR)/stream_file.Po
-rm -f unit/$(DEPDIR)/streambuf.Po
-rm -f unit/$(DEPDIR)/system_context.Po
-rm -f unit/$(DEPDIR)/system_executor.Po
@@ -5404,37 +5992,33 @@ distclean: distclean-recursive
-rm -f unit/$(DEPDIR)/use_future.Po
-rm -f unit/$(DEPDIR)/uses_executor.Po
-rm -f unit/$(DEPDIR)/wait_traits.Po
+ -rm -f unit/$(DEPDIR)/writable_pipe.Po
-rm -f unit/$(DEPDIR)/write.Po
-rm -f unit/$(DEPDIR)/write_at.Po
-rm -f unit/execution/$(DEPDIR)/any_executor.Po
-rm -f unit/execution/$(DEPDIR)/blocking.Po
-rm -f unit/execution/$(DEPDIR)/blocking_adaptation.Po
- -rm -f unit/execution/$(DEPDIR)/bulk_execute.Po
- -rm -f unit/execution/$(DEPDIR)/bulk_guarantee.Po
- -rm -f unit/execution/$(DEPDIR)/connect.Po
-rm -f unit/execution/$(DEPDIR)/context_as.Po
- -rm -f unit/execution/$(DEPDIR)/execute.Po
-rm -f unit/execution/$(DEPDIR)/executor.Po
-rm -f unit/execution/$(DEPDIR)/invocable_archetype.Po
-rm -f unit/execution/$(DEPDIR)/mapping.Po
- -rm -f unit/execution/$(DEPDIR)/operation_state.Po
-rm -f unit/execution/$(DEPDIR)/outstanding_work.Po
-rm -f unit/execution/$(DEPDIR)/prefer_only.Po
- -rm -f unit/execution/$(DEPDIR)/receiver.Po
-rm -f unit/execution/$(DEPDIR)/relationship.Po
- -rm -f unit/execution/$(DEPDIR)/schedule.Po
- -rm -f unit/execution/$(DEPDIR)/scheduler.Po
- -rm -f unit/execution/$(DEPDIR)/sender.Po
- -rm -f unit/execution/$(DEPDIR)/set_done.Po
- -rm -f unit/execution/$(DEPDIR)/set_error.Po
- -rm -f unit/execution/$(DEPDIR)/set_value.Po
- -rm -f unit/execution/$(DEPDIR)/start.Po
- -rm -f unit/execution/$(DEPDIR)/submit.Po
-rm -f unit/experimental/$(DEPDIR)/awaitable_operators.Po
- -rm -f unit/experimental/$(DEPDIR)/deferred.Po
+ -rm -f unit/experimental/$(DEPDIR)/basic_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/channel_traits.Po
+ -rm -f unit/experimental/$(DEPDIR)/co_composed.Po
+ -rm -f unit/experimental/$(DEPDIR)/concurrent_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/parallel_group.Po
-rm -f unit/experimental/$(DEPDIR)/promise.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/allocator.Po
-rm -f unit/experimental/coro/$(DEPDIR)/cancel.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/co_spawn.Po
-rm -f unit/experimental/coro/$(DEPDIR)/exception.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/executor.Po
-rm -f unit/experimental/coro/$(DEPDIR)/partial.Po
-rm -f unit/experimental/coro/$(DEPDIR)/simple_test.Po
-rm -f unit/experimental/coro/$(DEPDIR)/stack_test.Po
@@ -5469,6 +6053,7 @@ distclean: distclean-recursive
-rm -f unit/local/$(DEPDIR)/basic_endpoint.Po
-rm -f unit/local/$(DEPDIR)/connect_pair.Po
-rm -f unit/local/$(DEPDIR)/datagram_protocol.Po
+ -rm -f unit/local/$(DEPDIR)/seq_packet_protocol.Po
-rm -f unit/local/$(DEPDIR)/stream_protocol.Po
-rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po
-rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po
@@ -5552,26 +6137,40 @@ maintainer-clean: maintainer-clean-recursive
-rm -f latency/$(DEPDIR)/udp_server.Po
-rm -f performance/$(DEPDIR)/client.Po
-rm -f performance/$(DEPDIR)/server.Po
+ -rm -f unit/$(DEPDIR)/any_completion_executor.Po
+ -rm -f unit/$(DEPDIR)/any_completion_handler.Po
+ -rm -f unit/$(DEPDIR)/any_io_executor.Po
+ -rm -f unit/$(DEPDIR)/append.Po
+ -rm -f unit/$(DEPDIR)/as_tuple.Po
-rm -f unit/$(DEPDIR)/associated_allocator.Po
-rm -f unit/$(DEPDIR)/associated_cancellation_slot.Po
-rm -f unit/$(DEPDIR)/associated_executor.Po
+ -rm -f unit/$(DEPDIR)/associated_immediate_executor.Po
-rm -f unit/$(DEPDIR)/associator.Po
-rm -f unit/$(DEPDIR)/async_result.Po
-rm -f unit/$(DEPDIR)/awaitable.Po
-rm -f unit/$(DEPDIR)/basic_datagram_socket.Po
-rm -f unit/$(DEPDIR)/basic_deadline_timer.Po
+ -rm -f unit/$(DEPDIR)/basic_file.Po
+ -rm -f unit/$(DEPDIR)/basic_random_access_file.Po
-rm -f unit/$(DEPDIR)/basic_raw_socket.Po
+ -rm -f unit/$(DEPDIR)/basic_readable_pipe.Po
-rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po
-rm -f unit/$(DEPDIR)/basic_serial_port.Po
-rm -f unit/$(DEPDIR)/basic_signal_set.Po
-rm -f unit/$(DEPDIR)/basic_socket.Po
-rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po
+ -rm -f unit/$(DEPDIR)/basic_stream_file.Po
-rm -f unit/$(DEPDIR)/basic_stream_socket.Po
-rm -f unit/$(DEPDIR)/basic_streambuf.Po
-rm -f unit/$(DEPDIR)/basic_waitable_timer.Po
+ -rm -f unit/$(DEPDIR)/basic_writable_pipe.Po
+ -rm -f unit/$(DEPDIR)/bind_allocator.Po
-rm -f unit/$(DEPDIR)/bind_cancellation_slot.Po
-rm -f unit/$(DEPDIR)/bind_executor.Po
+ -rm -f unit/$(DEPDIR)/bind_immediate_executor.Po
-rm -f unit/$(DEPDIR)/buffer.Po
+ -rm -f unit/$(DEPDIR)/buffer_registration.Po
-rm -f unit/$(DEPDIR)/buffered_read_stream.Po
-rm -f unit/$(DEPDIR)/buffered_stream.Po
-rm -f unit/$(DEPDIR)/buffered_write_stream.Po
@@ -5583,15 +6182,19 @@ maintainer-clean: maintainer-clean-recursive
-rm -f unit/$(DEPDIR)/completion_condition.Po
-rm -f unit/$(DEPDIR)/compose.Po
-rm -f unit/$(DEPDIR)/connect.Po
+ -rm -f unit/$(DEPDIR)/connect_pipe.Po
+ -rm -f unit/$(DEPDIR)/consign.Po
-rm -f unit/$(DEPDIR)/coroutine.Po
-rm -f unit/$(DEPDIR)/deadline_timer.Po
-rm -f unit/$(DEPDIR)/defer.Po
+ -rm -f unit/$(DEPDIR)/deferred.Po
-rm -f unit/$(DEPDIR)/detached.Po
-rm -f unit/$(DEPDIR)/dispatch.Po
-rm -f unit/$(DEPDIR)/error.Po
-rm -f unit/$(DEPDIR)/execution_context.Po
-rm -f unit/$(DEPDIR)/executor.Po
-rm -f unit/$(DEPDIR)/executor_work_guard.Po
+ -rm -f unit/$(DEPDIR)/file_base.Po
-rm -f unit/$(DEPDIR)/high_resolution_timer.Po
-rm -f unit/$(DEPDIR)/io_context.Po
-rm -f unit/$(DEPDIR)/io_context_strand.Po
@@ -5600,17 +6203,24 @@ maintainer-clean: maintainer-clean-recursive
-rm -f unit/$(DEPDIR)/packaged_task.Po
-rm -f unit/$(DEPDIR)/placeholders.Po
-rm -f unit/$(DEPDIR)/post.Po
+ -rm -f unit/$(DEPDIR)/prepend.Po
+ -rm -f unit/$(DEPDIR)/random_access_file.Po
-rm -f unit/$(DEPDIR)/read.Po
-rm -f unit/$(DEPDIR)/read_at.Po
-rm -f unit/$(DEPDIR)/read_until.Po
+ -rm -f unit/$(DEPDIR)/readable_pipe.Po
+ -rm -f unit/$(DEPDIR)/recycling_allocator.Po
-rm -f unit/$(DEPDIR)/redirect_error.Po
+ -rm -f unit/$(DEPDIR)/registered_buffer.Po
-rm -f unit/$(DEPDIR)/serial_port.Po
-rm -f unit/$(DEPDIR)/serial_port_base.Po
-rm -f unit/$(DEPDIR)/signal_set.Po
+ -rm -f unit/$(DEPDIR)/signal_set_base.Po
-rm -f unit/$(DEPDIR)/socket_base.Po
-rm -f unit/$(DEPDIR)/static_thread_pool.Po
-rm -f unit/$(DEPDIR)/steady_timer.Po
-rm -f unit/$(DEPDIR)/strand.Po
+ -rm -f unit/$(DEPDIR)/stream_file.Po
-rm -f unit/$(DEPDIR)/streambuf.Po
-rm -f unit/$(DEPDIR)/system_context.Po
-rm -f unit/$(DEPDIR)/system_executor.Po
@@ -5623,37 +6233,33 @@ maintainer-clean: maintainer-clean-recursive
-rm -f unit/$(DEPDIR)/use_future.Po
-rm -f unit/$(DEPDIR)/uses_executor.Po
-rm -f unit/$(DEPDIR)/wait_traits.Po
+ -rm -f unit/$(DEPDIR)/writable_pipe.Po
-rm -f unit/$(DEPDIR)/write.Po
-rm -f unit/$(DEPDIR)/write_at.Po
-rm -f unit/execution/$(DEPDIR)/any_executor.Po
-rm -f unit/execution/$(DEPDIR)/blocking.Po
-rm -f unit/execution/$(DEPDIR)/blocking_adaptation.Po
- -rm -f unit/execution/$(DEPDIR)/bulk_execute.Po
- -rm -f unit/execution/$(DEPDIR)/bulk_guarantee.Po
- -rm -f unit/execution/$(DEPDIR)/connect.Po
-rm -f unit/execution/$(DEPDIR)/context_as.Po
- -rm -f unit/execution/$(DEPDIR)/execute.Po
-rm -f unit/execution/$(DEPDIR)/executor.Po
-rm -f unit/execution/$(DEPDIR)/invocable_archetype.Po
-rm -f unit/execution/$(DEPDIR)/mapping.Po
- -rm -f unit/execution/$(DEPDIR)/operation_state.Po
-rm -f unit/execution/$(DEPDIR)/outstanding_work.Po
-rm -f unit/execution/$(DEPDIR)/prefer_only.Po
- -rm -f unit/execution/$(DEPDIR)/receiver.Po
-rm -f unit/execution/$(DEPDIR)/relationship.Po
- -rm -f unit/execution/$(DEPDIR)/schedule.Po
- -rm -f unit/execution/$(DEPDIR)/scheduler.Po
- -rm -f unit/execution/$(DEPDIR)/sender.Po
- -rm -f unit/execution/$(DEPDIR)/set_done.Po
- -rm -f unit/execution/$(DEPDIR)/set_error.Po
- -rm -f unit/execution/$(DEPDIR)/set_value.Po
- -rm -f unit/execution/$(DEPDIR)/start.Po
- -rm -f unit/execution/$(DEPDIR)/submit.Po
-rm -f unit/experimental/$(DEPDIR)/awaitable_operators.Po
- -rm -f unit/experimental/$(DEPDIR)/deferred.Po
+ -rm -f unit/experimental/$(DEPDIR)/basic_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/basic_concurrent_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/channel_traits.Po
+ -rm -f unit/experimental/$(DEPDIR)/co_composed.Po
+ -rm -f unit/experimental/$(DEPDIR)/concurrent_channel.Po
+ -rm -f unit/experimental/$(DEPDIR)/parallel_group.Po
-rm -f unit/experimental/$(DEPDIR)/promise.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/allocator.Po
-rm -f unit/experimental/coro/$(DEPDIR)/cancel.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/co_spawn.Po
-rm -f unit/experimental/coro/$(DEPDIR)/exception.Po
+ -rm -f unit/experimental/coro/$(DEPDIR)/executor.Po
-rm -f unit/experimental/coro/$(DEPDIR)/partial.Po
-rm -f unit/experimental/coro/$(DEPDIR)/simple_test.Po
-rm -f unit/experimental/coro/$(DEPDIR)/stack_test.Po
@@ -5688,6 +6294,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f unit/local/$(DEPDIR)/basic_endpoint.Po
-rm -f unit/local/$(DEPDIR)/connect_pair.Po
-rm -f unit/local/$(DEPDIR)/datagram_protocol.Po
+ -rm -f unit/local/$(DEPDIR)/seq_packet_protocol.Po
-rm -f unit/local/$(DEPDIR)/stream_protocol.Po
-rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po
-rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po
diff --git a/3rdparty/asio/src/tests/latency/allocator.hpp b/3rdparty/asio/src/tests/latency/allocator.hpp
index ec437013eb7..2b186aef8ec 100644
--- a/3rdparty/asio/src/tests/latency/allocator.hpp
+++ b/3rdparty/asio/src/tests/latency/allocator.hpp
@@ -2,7 +2,7 @@
// allocator.hpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/latency/high_res_clock.hpp b/3rdparty/asio/src/tests/latency/high_res_clock.hpp
index 1467f86cb80..a497834d6d8 100644
--- a/3rdparty/asio/src/tests/latency/high_res_clock.hpp
+++ b/3rdparty/asio/src/tests/latency/high_res_clock.hpp
@@ -2,7 +2,7 @@
// high_res_clock.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/latency/tcp_client.cpp b/3rdparty/asio/src/tests/latency/tcp_client.cpp
index eb4c96d6d3b..2a4c5b7640f 100644
--- a/3rdparty/asio/src/tests/latency/tcp_client.cpp
+++ b/3rdparty/asio/src/tests/latency/tcp_client.cpp
@@ -2,7 +2,7 @@
// tcp_client.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/latency/tcp_server.cpp b/3rdparty/asio/src/tests/latency/tcp_server.cpp
index 59569509b24..c26c8509a45 100644
--- a/3rdparty/asio/src/tests/latency/tcp_server.cpp
+++ b/3rdparty/asio/src/tests/latency/tcp_server.cpp
@@ -2,7 +2,7 @@
// tcp_server.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/latency/udp_client.cpp b/3rdparty/asio/src/tests/latency/udp_client.cpp
index cb55cfdb210..484ba085cd8 100644
--- a/3rdparty/asio/src/tests/latency/udp_client.cpp
+++ b/3rdparty/asio/src/tests/latency/udp_client.cpp
@@ -2,7 +2,7 @@
// udp_client.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/latency/udp_server.cpp b/3rdparty/asio/src/tests/latency/udp_server.cpp
index 0bf333cfc4f..13483fab76f 100644
--- a/3rdparty/asio/src/tests/latency/udp_server.cpp
+++ b/3rdparty/asio/src/tests/latency/udp_server.cpp
@@ -2,7 +2,7 @@
// udp_server.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/performance/client.cpp b/3rdparty/asio/src/tests/performance/client.cpp
index 720b909ad4a..b42a6c50930 100644
--- a/3rdparty/asio/src/tests/performance/client.cpp
+++ b/3rdparty/asio/src/tests/performance/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/performance/handler_allocator.hpp b/3rdparty/asio/src/tests/performance/handler_allocator.hpp
index 4f4a94e9195..6c1b98532ab 100644
--- a/3rdparty/asio/src/tests/performance/handler_allocator.hpp
+++ b/3rdparty/asio/src/tests/performance/handler_allocator.hpp
@@ -2,7 +2,7 @@
// handler_allocator.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/performance/server.cpp b/3rdparty/asio/src/tests/performance/server.cpp
index 374992178b3..9de3c1294f8 100644
--- a/3rdparty/asio/src/tests/performance/server.cpp
+++ b/3rdparty/asio/src/tests/performance/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/Makefile.in b/3rdparty/asio/src/tests/properties/Makefile.in
index 344bf54cf0e..fb6b500f02e 100644
--- a/3rdparty/asio/src/tests/properties/Makefile.in
+++ b/3rdparty/asio/src/tests/properties/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1898,8 +1898,6 @@ am__define_uniq_tagged_files = \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
@@ -2082,6 +2080,7 @@ am__set_TESTS_bases = \
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
@@ -2118,8 +2117,9 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
CXX = @CXX@
-CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -2128,9 +2128,8 @@ DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
-EGREP = @EGREP@
+ETAGS = @ETAGS@
EXEEXT = @EXEEXT@
-GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -2197,9 +2196,11 @@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -3828,7 +3829,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
@@ -5073,7 +5074,6 @@ cpp14/can_prefer_not_preferable_unsupported.log: cpp14/can_prefer_not_preferable
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
diff --git a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp
index e24f31bb0c1..e9784f60661 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp
index ef2d216581a..693a46150d1 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp
index 968e252aad5..011a34764dc 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp
index d388248b142..9364391c935 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp
index 1f87fa26591..8fd11c6f659 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp
index 03816adb6a8..5c205ada2e7 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp
index f86fa17cea9..15e93fd3a51 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp
index 9f99138e175..0a0f1f6ecf0 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp
index 493405acdac..f564d2fae01 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp
index 4699ef77b51..0711d7c4a4d 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp
index 1d49f4c2c7b..3a522e5bed4 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp
index 47fa9662103..39ea91fefcb 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp
index 31d460f6057..e61f89872d0 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp
index b6be9cac436..0052cc3ee50 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp
index d634c64a517..f3428066587 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp
index 3fb6f0bc14c..14695938c99 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_not_preferable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp
index 3adeb26d02c..ac1f5c186aa 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp
index c3d95841f17..e59e5d098f8 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp
index 9664a989e7d..d0d42fe7bdd 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp
index 040dbba8baf..9ead9be9751 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp
index 3a0344320f5..b360327c132 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp
index b846c332943..be339d05522 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp
index 4f41e2c2d6c..127e2ace42e 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp
index a59edd14b2b..ec1c07affc1 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp
index a8c5e95d24d..9a305712f1d 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp
index bebd3cb3201..8eefbe9bd14 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_query_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_query_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp
index a8cb9bbea0c..810dfc240a2 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp
index ca478809cfc..615e8a09cd7 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp
index 67b4b5fb245..c076dd416cd 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp
index e76a9838587..e6e258e8424 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp
index 171a7d254c4..c42a1b3fca4 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp
index 02a6ff17515..261c4be3728 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp
index f2c328bf355..3c7d7bf4508 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp
index 0d71c25c32c..0fbcbd36525 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_concept_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp
index e8eb9788268..fdd9241efa0 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp
index 9a89c4146c8..3f9a427333a 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp
index afa26616096..4bf8ca32a2c 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp
index 1a3bbdd3819..842c8d4bee9 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp
index f35a5a10fc2..e8d9ac63aa2 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp
index f8aa00678eb..6fe234731dc 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp
index 858c685d37f..5d4a65749b2 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_static.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp
index a58f47c64c9..f3bf74b0499 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/can_require_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/can_require_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp
index b663bbcd9ca..dcf89c7f4af 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp
index 357e25c9654..223d3a60921 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp
index 8b814d049ab..538f7b2662a 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp
index ee0b5efb090..f659b6fc2bd 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp
index e75139966a8..f5fcb7f89a0 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp
index 7fad5253acc..25e0f308a4a 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp03/prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp
index 8611f725972..a9aae563293 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/query_free.cpp
@@ -2,7 +2,7 @@
// cpp03/query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp
index 71be73d58a6..a1ab83e0200 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/query_member.cpp
@@ -2,7 +2,7 @@
// cpp03/query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp
index aab3f4e8ac4..b0e0b4040e4 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/query_static.cpp
@@ -2,7 +2,7 @@
// cpp03/query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp
index 5476d5cb69c..6cccdd2774e 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp03/require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp
index e3359eb11cf..673493292be 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp03/require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp
index 7f514cf052e..e92ffa1ef61 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp03/require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp
index 50e99283f14..04734ac3192 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_free.cpp
@@ -2,7 +2,7 @@
// cpp03/require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp
index b3fea49348b..fc6bdc2c9c9 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_member.cpp
@@ -2,7 +2,7 @@
// cpp03/require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp
index 25e9e1d4ef1..33512b32924 100644
--- a/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp03/require_static.cpp
@@ -2,7 +2,7 @@
// cpp03/require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp
index 2ccdf2c7574..860fa6fad5b 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp
index f5179ffb170..b842e9aa4e9 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp
index 6c8d00a9b73..9f00cbcaf38 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp
index 9ce08fa5cb7..a81bae1ae1c 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp
index 766ba61c76a..9079c1fc832 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp
index 29b19d39f7c..52fc618ac97 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp
index 2774f1f29ef..93f0c85c934 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp
index de3feb9e444..e17ec93f80a 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp
index 73ddc0c3f11..9087ed42332 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp
index f3fd5a6e3e0..b09d15708a1 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp
index 1d1dc98e199..28a1d151b2d 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp
index ca4d5c3c8df..cbb105416a4 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp
index a568e8b048b..2d460503b79 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp
index 29eede3bd64..4e03c02d895 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp
index 88d7fffd390..0791d8a02f5 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp
index d1de18a0a81..059944ece37 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_not_preferable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp
index a7dd5dc3051..c928f7ffd63 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp
index cd3fc009075..32d6ac5c0d3 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp
index 525c1111d80..330493ba328 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp
index c4e562d16e8..e1442d9f296 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp
index 76da584f8d6..2be49af0c64 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp
index 8ae6d284998..788148df4a9 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp
index 3f70747cb25..c57848c7a9f 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp
index 0eab9f9e0dd..79bff6231ab 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp
index 1aae961ac63..6dc25819a43 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp
index 4d5bb401b7d..369955e474a 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_query_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_query_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp
index 250bdce7df7..3dd617097a2 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp
index 81aaeadcc91..55ac468247b 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp
index 5a5acbbb962..af40b48bdec 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp
index dfa1d367d90..baf6b9f482f 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp
index ed1dbff5d45..7d7f13876d8 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp
index 05ae9ff923a..13e05b231b5 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp
index 898f132f18b..07973a5bd14 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp
index 878f16268f2..4a4fee1f705 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_concept_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp
index e248e9338f4..b66965e60e1 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp
index 8f9fd03a97c..cac464174f1 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp
index 20ed4ed0e8d..9705b87b244 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp
index e896ad061a7..cd7f75fef34 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp
index 6bb8faa0f75..f852e451513 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp
index 2dd98405224..e6286aba02c 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp
index ee8d5555a67..4c1b38fc2c0 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_static.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp
index 0426abd46a6..bc9c4ed2072 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/can_require_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/can_require_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp
index 0c42fdfc80b..3faf0019399 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp
index 8597c0d38c1..f30d0fbb06f 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp
index b97c45ff9ae..9803d5e5e95 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp
index a896efd7437..701fb2dec81 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp
index 721ff7ae037..18cd713d9d0 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp
index 0eaaf9105c5..8eb542301ec 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp11/prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp
index 0a872cd0233..17a14dc3f5a 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/query_free.cpp
@@ -2,7 +2,7 @@
// cpp11/query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp
index 0c9a576f8ea..18ea24171ab 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/query_member.cpp
@@ -2,7 +2,7 @@
// cpp11/query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp
index c7cde46cb01..3290ab0971f 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/query_static.cpp
@@ -2,7 +2,7 @@
// cpp11/query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp
index 5179852e1ae..3f422988d2a 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp11/require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp
index 4f71dc0c22a..1f8bbf65b42 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp11/require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp
index 7f57963fb3d..b2a6f9dde39 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp11/require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp
index bd1569f361c..1acd5bc78ce 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_free.cpp
@@ -2,7 +2,7 @@
// cpp11/require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp
index 545d2c3a112..e9192830811 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_member.cpp
@@ -2,7 +2,7 @@
// cpp11/require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp
index 7ea70271312..e752dac10a4 100644
--- a/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp11/require_static.cpp
@@ -2,7 +2,7 @@
// cpp11/require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp
index 30e8a97bbdf..f7f2854233c 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp
index 3f18f1c4f6e..a2a01e4d739 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp
index 2140e3175c3..b0d9622bd5b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp
index 99b1cff35fa..9d1146ad323 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp
index b1290243f7b..1a305fc3ae6 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp
index e71bf759aa9..c5d732441d7 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp
index 6caced35383..66af105ead3 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp
index 3fb4c48c74a..a2bf20b6e89 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp
index d5c275ee61d..123fd863f48 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp
index 2e9f78e7fed..ed67b39d6a2 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp
index 7dc29e0d8a6..99cb8074746 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp
index 964c259f883..0e3329de423 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp
index 2f61538ea96..12213cd57e9 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp
index 0bb32d97c5e..d801a808b4d 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp
index 38c4309e9a0..cbaf4eecc46 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp
index e9b18bf297f..aa37aedd3c6 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_not_preferable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp
index 8437f9b62ec..3933a78839b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp
index 0bf1ce07d9d..09ce8e02f18 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp
index 1a6c19e9766..7654a78a06a 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp
index 49bf42c387e..6bd6c02c98b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp
index c1b7ed540e7..bda1770699b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp
index 56e2dc5342d..25b6ab9c793 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp
index 28e27c3529d..299a5e1f2a5 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp
index 1b89d2b02a6..cec0aea9167 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp
index 7d1bb34fd7c..67b19ac74ed 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp
index 34c752c367d..7e8f63f1405 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_query_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_query_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp
index ff5163bc02b..e0dea96edf0 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp
index 8d2d1b16a53..7da0a580a6f 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp
index 80b857747ca..f6d48165356 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp
index 9e6691030b8..5252cb77447 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp
index 304acf95bdf..7da83a988fb 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp
index d6154dc4e3b..939b450be73 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp
index 845e800d64c..577363a0eea 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp
index 2b68ec48e3f..2bcdc6c7606 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_concept_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp
index 1d1bfe3cbda..f0bda074d5a 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp
index 0bb144c24a6..0eeb0aa45c5 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp
index ce377e825e3..f68576e2f1c 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_not_applicable_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp
index 2e4479ee6a7..1c7aa953aeb 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_not_applicable_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp
index 19fe61e0c12..ba7b5a80ccc 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_not_applicable_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp
index b86790f8269..25d71e35d48 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_not_applicable_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp
index 27f802e4c52..f92c0b56c8a 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_static.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp
index 9c06f0dc905..4cf2756d40b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/can_require_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/can_require_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp
index 5c49b9d56bb..fce83ed6b9f 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_free_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp
index 9244a030554..349aebeb515 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_free_require.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_free_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp
index 0b0b03055d5..56d29efd34c 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_member_prefer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp
index cdcad780c91..7b88df406e8 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_member_require.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_member_require.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp
index 874f64673d6..8fd537ae74b 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_static.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp b/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp
index 34f7e0eb330..50b8da0f9d3 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/prefer_unsupported.cpp
@@ -2,7 +2,7 @@
// cpp14/prefer_unsupported.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp
index 128e0d184c3..24be8dbe945 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/query_free.cpp
@@ -2,7 +2,7 @@
// cpp14/query_free.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp
index 8c61f5405d9..fab0bed9d03 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/query_member.cpp
@@ -2,7 +2,7 @@
// cpp14/query_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp
index c277fffaa54..d13ad85c3c6 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/query_static.cpp
@@ -2,7 +2,7 @@
// cpp14/query_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp
index 43ecc9c2328..d7323db95ba 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_free.cpp
@@ -2,7 +2,7 @@
// cpp14/require_concept_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp
index 99c43d336ed..e21dda3f6e4 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_member.cpp
@@ -2,7 +2,7 @@
// cpp14/require_concept_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp
index 1cb7c35d68c..523ed758061 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_concept_static.cpp
@@ -2,7 +2,7 @@
// cpp14/require_concept_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp
index a139175f032..32893ff26ee 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_free.cpp
@@ -2,7 +2,7 @@
// cpp14/require_free.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp
index 80bde893291..f2e58aa2f76 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_member.cpp
@@ -2,7 +2,7 @@
// cpp14/require_member.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp b/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp
index 86403d5c6d6..acdd7fbf499 100644
--- a/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp
+++ b/3rdparty/asio/src/tests/properties/cpp14/require_static.cpp
@@ -2,7 +2,7 @@
// cpp14/require_static.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/any_completion_executor.cpp b/3rdparty/asio/src/tests/unit/any_completion_executor.cpp
new file mode 100644
index 00000000000..5d1d5b1e271
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/any_completion_executor.cpp
@@ -0,0 +1,463 @@
+//
+// any_completion_executor.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/any_completion_executor.hpp"
+
+#include <cstring>
+#include <functional>
+#include "asio/system_executor.hpp"
+#include "asio/thread_pool.hpp"
+#include "unit_test.hpp"
+
+using namespace asio;
+namespace bindns = std;
+
+static bool next_nothrow_new_fails = false;
+
+void* operator new(std::size_t n,
+ const std::nothrow_t&) noexcept
+{
+ if (next_nothrow_new_fails)
+ {
+ next_nothrow_new_fails = false;
+ return 0;
+ }
+ return ::operator new(n);
+}
+
+struct fat_executor
+{
+ fat_executor(int id)
+ : id_(id)
+ {
+ std::memset(data_, 0, sizeof(data_));
+ }
+
+ template <typename F>
+ void execute(const F&) const
+ {
+ }
+
+ friend bool operator==(const fat_executor& a,
+ const fat_executor& b) noexcept
+ {
+ return a.id_ == b.id_;
+ }
+
+ friend bool operator!=(const fat_executor& a,
+ const fat_executor& b) noexcept
+ {
+ return a.id_ != b.id_;
+ }
+
+ int id_;
+ unsigned char data_[1024];
+};
+
+namespace asio {
+namespace traits {
+
+#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+
+template <typename F>
+struct execute_member<fat_executor, F>
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
+ typedef void result_type;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+
+#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+
+template <>
+struct equality_comparable<fat_executor>
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+
+} // namespace traits
+} // namespace asio
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void any_completion_executor_construction_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_completion_executor ex1;
+
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_completion_executor ex2(null_ptr);
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+ ASIO_CHECK(ex2 == null_ptr);
+ ASIO_CHECK(ex2 == ex1);
+
+ asio::any_completion_executor ex3(pool.executor());
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+ ASIO_CHECK(ex3 != null_ptr);
+ ASIO_CHECK(ex3 != ex1);
+
+ asio::any_completion_executor ex4(ex1);
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == null_ptr);
+ ASIO_CHECK(ex4 == ex1);
+
+ asio::any_completion_executor ex5(ex3);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 == ex3);
+
+ asio::any_completion_executor ex6 = fat_executor(1);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+
+ asio::any_completion_executor ex7 = fat_executor(1);
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex6);
+
+ asio::any_completion_executor ex8 = fat_executor(2);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex8 != null_ptr);
+ ASIO_CHECK(ex8 != ex1);
+ ASIO_CHECK(ex8 != ex6);
+ ASIO_CHECK(ex8 != ex7);
+
+ asio::any_completion_executor ex9(ex6);
+
+ ASIO_CHECK(ex9.target<void>() != 0);
+ ASIO_CHECK(ex9 != null_ptr);
+ ASIO_CHECK(ex9 != ex1);
+ ASIO_CHECK(ex9 == ex6);
+ ASIO_CHECK(ex9 == ex7);
+ ASIO_CHECK(ex9 != ex8);
+
+ asio::any_completion_executor ex10(std::move(ex1));
+
+ ASIO_CHECK(ex10.target<void>() == 0);
+ ASIO_CHECK(ex10 == null_ptr);
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_completion_executor ex11(std::move(ex3));
+
+ ASIO_CHECK(ex11.target<void>() != 0);
+ ASIO_CHECK(ex11 != null_ptr);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex3 == null_ptr);
+ ASIO_CHECK(ex11 == ex5);
+
+ asio::any_completion_executor ex12(std::move(ex7));
+
+ ASIO_CHECK(ex12.target<void>() != 0);
+ ASIO_CHECK(ex12 != null_ptr);
+ ASIO_CHECK(ex7.target<void>() == 0);
+ ASIO_CHECK(ex7 == null_ptr);
+ ASIO_CHECK(ex12 == ex6);
+ ASIO_CHECK(ex12 != ex8);
+}
+
+void any_completion_executor_nothrow_construction_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_completion_executor ex1;
+
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_completion_executor ex2(null_ptr);
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+ ASIO_CHECK(ex2 == null_ptr);
+ ASIO_CHECK(ex2 == ex1);
+
+ asio::any_completion_executor ex3(std::nothrow, pool.executor());
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+ ASIO_CHECK(ex3 != null_ptr);
+ ASIO_CHECK(ex3 != ex1);
+
+ asio::any_completion_executor ex4(std::nothrow, ex1);
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == null_ptr);
+ ASIO_CHECK(ex4 == ex1);
+
+ asio::any_completion_executor ex5(std::nothrow, ex3);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 == ex3);
+
+ asio::any_completion_executor ex6(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+
+ asio::any_completion_executor ex7(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex6);
+
+ asio::any_completion_executor ex8(std::nothrow, fat_executor(2));
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex8 != null_ptr);
+ ASIO_CHECK(ex8 != ex1);
+ ASIO_CHECK(ex8 != ex6);
+ ASIO_CHECK(ex8 != ex7);
+
+ asio::any_completion_executor ex9(std::nothrow, ex6);
+
+ ASIO_CHECK(ex9.target<void>() != 0);
+ ASIO_CHECK(ex9 != null_ptr);
+ ASIO_CHECK(ex9 != ex1);
+ ASIO_CHECK(ex9 == ex6);
+ ASIO_CHECK(ex9 == ex7);
+ ASIO_CHECK(ex9 != ex8);
+
+ asio::any_completion_executor ex10(std::nothrow, std::move(ex1));
+
+ ASIO_CHECK(ex10.target<void>() == 0);
+ ASIO_CHECK(ex10 == null_ptr);
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_completion_executor ex11(std::nothrow, std::move(ex3));
+
+ ASIO_CHECK(ex11.target<void>() != 0);
+ ASIO_CHECK(ex11 != null_ptr);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex3 == null_ptr);
+ ASIO_CHECK(ex11 == ex5);
+
+ asio::any_completion_executor ex12(std::nothrow, std::move(ex7));
+
+ ASIO_CHECK(ex12.target<void>() != 0);
+ ASIO_CHECK(ex12 != null_ptr);
+ ASIO_CHECK(ex7.target<void>() == 0);
+ ASIO_CHECK(ex7 == null_ptr);
+ ASIO_CHECK(ex12 == ex6);
+ ASIO_CHECK(ex12 != ex8);
+
+ next_nothrow_new_fails = true;
+ asio::any_completion_executor ex13(std::nothrow, fat_executor(3));
+
+ ASIO_CHECK(ex13.target<void>() == 0);
+ ASIO_CHECK(ex13 == null_ptr);
+ ASIO_CHECK(ex13 == ex1);
+}
+
+void any_completion_executor_assignment_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_completion_executor ex1;
+
+ asio::any_completion_executor ex2;
+ ex2 = null_ptr;
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+
+ asio::any_completion_executor ex3;
+ ex3 = pool.executor();
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+
+ asio::any_completion_executor ex4;
+ ex4 = ex1;
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == ex1);
+
+ ex4 = ex3;
+
+ ASIO_CHECK(ex4.target<void>() != 0);
+ ASIO_CHECK(ex4 == ex3);
+
+ asio::any_completion_executor ex5;
+ ex5 = fat_executor(1);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 != ex1);
+
+ asio::any_completion_executor ex6;
+ ex6 = fat_executor(1);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+ ASIO_CHECK(ex6 == ex5);
+
+ ex6 = fat_executor(2);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+ ASIO_CHECK(ex6 != ex5);
+
+ asio::any_completion_executor ex7;
+ ex7 = ex5;
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex5);
+ ASIO_CHECK(ex7 != ex6);
+
+ asio::any_completion_executor ex8;
+ ex8 = std::move(ex1);
+
+ ASIO_CHECK(ex8.target<void>() == 0);
+ ASIO_CHECK(ex1.target<void>() == 0);
+
+ ex8 = std::move(ex3);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex8 == ex4);
+
+ ex8 = std::move(ex5);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex5.target<void>() == 0);
+ ASIO_CHECK(ex8 == ex7);
+}
+
+void any_completion_executor_swap_test()
+{
+ thread_pool pool1(1);
+ thread_pool pool2(1);
+
+ asio::any_completion_executor ex1(pool1.executor());
+ asio::any_completion_executor ex2(pool2.executor());
+
+ asio::any_completion_executor ex3(ex1);
+ asio::any_completion_executor ex4(ex2);
+
+ ASIO_CHECK(ex3 == ex1);
+ ASIO_CHECK(ex4 == ex2);
+
+ ex3.swap(ex4);
+
+ ASIO_CHECK(ex3 == ex2);
+ ASIO_CHECK(ex4 == ex1);
+
+ execution::swap(ex3, ex4);
+
+ ASIO_CHECK(ex3 == ex1);
+ ASIO_CHECK(ex4 == ex2);
+}
+
+void any_completion_executor_query_test()
+{
+ thread_pool pool(1);
+ asio::any_completion_executor ex(pool.executor());
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::blocking)
+ == asio::execution::blocking.possibly);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::blocking.possibly)
+ == asio::execution::blocking.possibly);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::outstanding_work)
+ == asio::execution::outstanding_work.untracked);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::outstanding_work.untracked)
+ == asio::execution::outstanding_work.untracked);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::relationship)
+ == asio::execution::relationship.fork);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::relationship.fork)
+ == asio::execution::relationship.fork);
+}
+
+void any_completion_executor_execute_test()
+{
+ int count = 0;
+ thread_pool pool(1);
+ asio::any_completion_executor ex(pool.executor());
+
+ ex.execute(bindns::bind(increment, &count));
+
+ asio::prefer(ex, asio::execution::blocking.possibly).execute(
+ bindns::bind(increment, &count));
+
+ asio::prefer(ex,
+ asio::execution::blocking.possibly,
+ asio::execution::outstanding_work.tracked
+ ).execute(bindns::bind(increment, &count));
+
+ asio::prefer(ex,
+ asio::execution::blocking.possibly,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
+
+ asio::prefer(ex,
+ asio::execution::blocking.possibly,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
+
+ pool.wait();
+
+ ASIO_CHECK(count == 5);
+}
+
+ASIO_TEST_SUITE
+(
+ "any_completion_executor",
+ ASIO_TEST_CASE(any_completion_executor_construction_test)
+ ASIO_TEST_CASE(any_completion_executor_nothrow_construction_test)
+ ASIO_TEST_CASE(any_completion_executor_assignment_test)
+ ASIO_TEST_CASE(any_completion_executor_swap_test)
+ ASIO_TEST_CASE(any_completion_executor_query_test)
+ ASIO_TEST_CASE(any_completion_executor_execute_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/any_completion_handler.cpp b/3rdparty/asio/src/tests/unit/any_completion_handler.cpp
new file mode 100644
index 00000000000..887402de8d3
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/any_completion_handler.cpp
@@ -0,0 +1,260 @@
+//
+// any_completion_handler.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/any_completion_handler.hpp"
+
+#include "unit_test.hpp"
+
+#include <functional>
+#include "asio/bind_allocator.hpp"
+#include "asio/bind_cancellation_slot.hpp"
+#include "asio/bind_executor.hpp"
+#include "asio/bind_immediate_executor.hpp"
+#include "asio/error.hpp"
+#include "asio/thread_pool.hpp"
+
+namespace bindns = std;
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void any_completion_handler_construction_test()
+{
+ int count = 0;
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_completion_handler<void()> h1;
+
+ ASIO_CHECK(!h1);
+ ASIO_CHECK(h1 == null_ptr);
+
+ asio::any_completion_handler<void()> h2(null_ptr);
+
+ ASIO_CHECK(!h2);
+ ASIO_CHECK(h2 == null_ptr);
+
+ asio::any_completion_handler<void()> h3(
+ bindns::bind(&increment, &count));
+
+ ASIO_CHECK(!!h3);
+ ASIO_CHECK(h3 != null_ptr);
+
+ asio::any_completion_handler<void()> h4(std::move(h1));
+
+ ASIO_CHECK(!h4);
+ ASIO_CHECK(h4 == null_ptr);
+ ASIO_CHECK(!h1);
+ ASIO_CHECK(h1 == null_ptr);
+
+ asio::any_completion_handler<void()> h5(std::move(h3));
+
+ ASIO_CHECK(!!h5);
+ ASIO_CHECK(h5 != null_ptr);
+ ASIO_CHECK(!h3);
+ ASIO_CHECK(h3 == null_ptr);
+
+ asio::any_completion_handler<void()> h6(std::move(h5));
+
+ ASIO_CHECK(!!h6);
+ ASIO_CHECK(h6 != null_ptr);
+ ASIO_CHECK(!h5);
+ ASIO_CHECK(h5 == null_ptr);
+}
+
+void any_completion_handler_assignment_test()
+{
+ int count = 0;
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_completion_handler<void()> h1;
+
+ asio::any_completion_handler<void()> h2;
+ h2 = null_ptr;
+
+ ASIO_CHECK(!h2);
+
+ asio::any_completion_handler<void()> h3;
+ h3 = bindns::bind(&increment, &count);
+
+ ASIO_CHECK(!!h3);
+
+ asio::any_completion_handler<void()> h4;
+ h4 = std::move(h1);
+
+ ASIO_CHECK(!h4);
+ ASIO_CHECK(!h1);
+
+ h4 = std::move(h3);
+
+ ASIO_CHECK(!!h4);
+ ASIO_CHECK(!h3);
+}
+
+template <typename T>
+class handler_allocator
+{
+public:
+ using value_type = T;
+
+ explicit handler_allocator(int* count)
+ : count_(count)
+ {
+ }
+
+ template <typename U>
+ handler_allocator(const handler_allocator<U>& other) noexcept
+ : count_(other.count_)
+ {
+ }
+
+ bool operator==(const handler_allocator& other) const noexcept
+ {
+ return &count_ == &other.count_;
+ }
+
+ bool operator!=(const handler_allocator& other) const noexcept
+ {
+ return &count_ != &other.count_;
+ }
+
+ T* allocate(std::size_t n) const
+ {
+ ++(*count_);
+ return static_cast<T*>(::operator new(sizeof(T) * n));
+ }
+
+ void deallocate(T* p, std::size_t /*n*/) const
+ {
+ ::operator delete(p);
+ }
+
+private:
+ template <typename> friend class handler_allocator;
+
+ int* count_;
+};
+
+class cancel_handler
+{
+public:
+ explicit cancel_handler(int* count)
+ : count_(count)
+ {
+ }
+
+ void operator()(asio::cancellation_type_t)
+ {
+ ++(*count_);
+ }
+
+private:
+ int* count_;
+};
+
+void any_completion_handler_associator_test()
+{
+ typedef asio::any_completion_handler<void()> handler_type;
+
+ int count = 0;
+ int alloc_count = 0;
+ int cancel_count = 0;
+ asio::thread_pool pool(1);
+ asio::cancellation_signal sig;
+
+ asio::any_completion_handler<void()> h1(
+ asio::bind_allocator(handler_allocator<char>(&alloc_count),
+ asio::bind_cancellation_slot(sig.slot(),
+ asio::bind_executor(pool.get_executor(),
+ asio::bind_immediate_executor(asio::system_executor(),
+ bindns::bind(&increment, &count))))));
+
+ ASIO_CHECK(alloc_count == 1);
+
+ ASIO_REBIND_ALLOC(asio::associated_allocator<handler_type>::type,
+ char) alloc1(asio::get_associated_allocator(h1));
+ alloc1.deallocate(alloc1.allocate(1), 1);
+
+ ASIO_CHECK(alloc_count == 2);
+
+ asio::associated_cancellation_slot<handler_type>::type slot1
+ = asio::get_associated_cancellation_slot(h1);
+
+ ASIO_CHECK(slot1.is_connected());
+
+ slot1.emplace<cancel_handler>(&cancel_count);
+
+ ASIO_CHECK(cancel_count == 0);
+
+ sig.emit(asio::cancellation_type::terminal);
+
+ ASIO_CHECK(cancel_count == 1);
+
+ asio::associated_executor<handler_type>::type ex1
+ = asio::get_associated_executor(h1);
+
+ ASIO_CHECK(ex1 == pool.get_executor());
+
+ asio::associated_immediate_executor<
+ handler_type, asio::thread_pool::executor_type>::type ex2
+ = asio::get_associated_immediate_executor(h1, pool.get_executor());
+
+ ASIO_CHECK(ex2 == asio::system_executor());
+}
+
+void increment_with_error(asio::error_code ec,
+ asio::error_code* out_ec, int* count)
+{
+ *out_ec = ec;
+ ++(*count);
+}
+
+void any_completion_handler_invocation_test()
+{
+ int count = 0;
+ asio::error_code ec;
+
+ asio::any_completion_handler<void()> h1(
+ bindns::bind(&increment, &count));
+
+ ASIO_CHECK(count == 0);
+
+ std::move(h1)();
+
+ ASIO_CHECK(count == 1);
+
+ asio::any_completion_handler<void(asio::error_code)> h2(
+ bindns::bind(&increment_with_error,
+ bindns::placeholders::_1, &ec, &count));
+
+ ASIO_CHECK(!ec);
+ ASIO_CHECK(count == 1);
+
+ std::move(h2)(asio::error::eof);
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 2);
+}
+
+ASIO_TEST_SUITE
+(
+ "any_completion_handler",
+ ASIO_TEST_CASE(any_completion_handler_construction_test)
+ ASIO_TEST_CASE(any_completion_handler_assignment_test)
+ ASIO_TEST_CASE(any_completion_handler_associator_test)
+ ASIO_TEST_CASE(any_completion_handler_invocation_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/any_io_executor.cpp b/3rdparty/asio/src/tests/unit/any_io_executor.cpp
new file mode 100644
index 00000000000..e0a32ba3838
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/any_io_executor.cpp
@@ -0,0 +1,515 @@
+//
+// any_io_executor.cpp
+// ~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/any_io_executor.hpp"
+
+#include <cstring>
+#include <functional>
+#include "asio/system_executor.hpp"
+#include "asio/thread_pool.hpp"
+#include "unit_test.hpp"
+
+using namespace asio;
+namespace bindns = std;
+
+static bool next_nothrow_new_fails = false;
+
+void* operator new(std::size_t n,
+ const std::nothrow_t&) noexcept
+{
+ if (next_nothrow_new_fails)
+ {
+ next_nothrow_new_fails = false;
+ return 0;
+ }
+ return ::operator new(n);
+}
+
+struct fat_executor
+{
+ fat_executor(int id)
+ : id_(id)
+ {
+ std::memset(data_, 0, sizeof(data_));
+ }
+
+ template <typename F>
+ void execute(const F&) const
+ {
+ }
+
+ execution_context& query(execution::context_t) const noexcept
+ {
+ return asio::query(system_executor(), execution::context);
+ }
+
+ constexpr static execution::blocking_t::never_t query(
+ execution::blocking_t) noexcept
+ {
+ return execution::blocking.never;
+ }
+
+ friend bool operator==(const fat_executor& a,
+ const fat_executor& b) noexcept
+ {
+ return a.id_ == b.id_;
+ }
+
+ friend bool operator!=(const fat_executor& a,
+ const fat_executor& b) noexcept
+ {
+ return a.id_ != b.id_;
+ }
+
+ int id_;
+ unsigned char data_[1024];
+};
+
+namespace asio {
+namespace traits {
+
+#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+
+template <typename F>
+struct execute_member<fat_executor, F>
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
+ typedef void result_type;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+
+#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
+
+template <>
+struct query_member<fat_executor, execution::context_t>
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
+ typedef execution_context& result_type;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
+
+#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
+
+template <typename Property>
+struct query_static_constexpr_member<fat_executor, Property,
+ typename asio::enable_if<
+ asio::is_convertible<
+ Property,
+ asio::execution::blocking_t
+ >::value
+ >::type
+ >
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
+ typedef execution::blocking_t::never_t result_type;
+
+ static constexpr result_type value() noexcept
+ {
+ return result_type();
+ }
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
+
+#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+
+template <>
+struct equality_comparable<fat_executor>
+{
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+
+} // namespace traits
+} // namespace asio
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void any_io_executor_construction_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_io_executor ex1;
+
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_io_executor ex2(null_ptr);
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+ ASIO_CHECK(ex2 == null_ptr);
+ ASIO_CHECK(ex2 == ex1);
+
+ asio::any_io_executor ex3(pool.executor());
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+ ASIO_CHECK(ex3 != null_ptr);
+ ASIO_CHECK(ex3 != ex1);
+
+ asio::any_io_executor ex4(ex1);
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == null_ptr);
+ ASIO_CHECK(ex4 == ex1);
+
+ asio::any_io_executor ex5(ex3);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 == ex3);
+
+ asio::any_io_executor ex6 = fat_executor(1);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+
+ asio::any_io_executor ex7 = fat_executor(1);
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex6);
+
+ asio::any_io_executor ex8 = fat_executor(2);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex8 != null_ptr);
+ ASIO_CHECK(ex8 != ex1);
+ ASIO_CHECK(ex8 != ex6);
+ ASIO_CHECK(ex8 != ex7);
+
+ asio::any_io_executor ex9(ex6);
+
+ ASIO_CHECK(ex9.target<void>() != 0);
+ ASIO_CHECK(ex9 != null_ptr);
+ ASIO_CHECK(ex9 != ex1);
+ ASIO_CHECK(ex9 == ex6);
+ ASIO_CHECK(ex9 == ex7);
+ ASIO_CHECK(ex9 != ex8);
+
+ asio::any_io_executor ex10(std::move(ex1));
+
+ ASIO_CHECK(ex10.target<void>() == 0);
+ ASIO_CHECK(ex10 == null_ptr);
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_io_executor ex11(std::move(ex3));
+
+ ASIO_CHECK(ex11.target<void>() != 0);
+ ASIO_CHECK(ex11 != null_ptr);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex3 == null_ptr);
+ ASIO_CHECK(ex11 == ex5);
+
+ asio::any_io_executor ex12(std::move(ex7));
+
+ ASIO_CHECK(ex12.target<void>() != 0);
+ ASIO_CHECK(ex12 != null_ptr);
+ ASIO_CHECK(ex7.target<void>() == 0);
+ ASIO_CHECK(ex7 == null_ptr);
+ ASIO_CHECK(ex12 == ex6);
+ ASIO_CHECK(ex12 != ex8);
+}
+
+void any_io_executor_nothrow_construction_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_io_executor ex1;
+
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_io_executor ex2(null_ptr);
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+ ASIO_CHECK(ex2 == null_ptr);
+ ASIO_CHECK(ex2 == ex1);
+
+ asio::any_io_executor ex3(std::nothrow, pool.executor());
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+ ASIO_CHECK(ex3 != null_ptr);
+ ASIO_CHECK(ex3 != ex1);
+
+ asio::any_io_executor ex4(std::nothrow, ex1);
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == null_ptr);
+ ASIO_CHECK(ex4 == ex1);
+
+ asio::any_io_executor ex5(std::nothrow, ex3);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 == ex3);
+
+ asio::any_io_executor ex6(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+
+ asio::any_io_executor ex7(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex6);
+
+ asio::any_io_executor ex8(std::nothrow, fat_executor(2));
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex8 != null_ptr);
+ ASIO_CHECK(ex8 != ex1);
+ ASIO_CHECK(ex8 != ex6);
+ ASIO_CHECK(ex8 != ex7);
+
+ asio::any_io_executor ex9(std::nothrow, ex6);
+
+ ASIO_CHECK(ex9.target<void>() != 0);
+ ASIO_CHECK(ex9 != null_ptr);
+ ASIO_CHECK(ex9 != ex1);
+ ASIO_CHECK(ex9 == ex6);
+ ASIO_CHECK(ex9 == ex7);
+ ASIO_CHECK(ex9 != ex8);
+
+ asio::any_io_executor ex10(std::nothrow, std::move(ex1));
+
+ ASIO_CHECK(ex10.target<void>() == 0);
+ ASIO_CHECK(ex10 == null_ptr);
+ ASIO_CHECK(ex1.target<void>() == 0);
+ ASIO_CHECK(ex1 == null_ptr);
+
+ asio::any_io_executor ex11(std::nothrow, std::move(ex3));
+
+ ASIO_CHECK(ex11.target<void>() != 0);
+ ASIO_CHECK(ex11 != null_ptr);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex3 == null_ptr);
+ ASIO_CHECK(ex11 == ex5);
+
+ asio::any_io_executor ex12(std::nothrow, std::move(ex7));
+
+ ASIO_CHECK(ex12.target<void>() != 0);
+ ASIO_CHECK(ex12 != null_ptr);
+ ASIO_CHECK(ex7.target<void>() == 0);
+ ASIO_CHECK(ex7 == null_ptr);
+ ASIO_CHECK(ex12 == ex6);
+ ASIO_CHECK(ex12 != ex8);
+
+ next_nothrow_new_fails = true;
+ asio::any_io_executor ex13(std::nothrow, fat_executor(3));
+
+ ASIO_CHECK(ex13.target<void>() == 0);
+ ASIO_CHECK(ex13 == null_ptr);
+ ASIO_CHECK(ex13 == ex1);
+}
+
+void any_io_executor_assignment_test()
+{
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ asio::any_io_executor ex1;
+
+ asio::any_io_executor ex2;
+ ex2 = null_ptr;
+
+ ASIO_CHECK(ex2.target<void>() == 0);
+
+ asio::any_io_executor ex3;
+ ex3 = pool.executor();
+
+ ASIO_CHECK(ex3.target<void>() != 0);
+
+ asio::any_io_executor ex4;
+ ex4 = ex1;
+
+ ASIO_CHECK(ex4.target<void>() == 0);
+ ASIO_CHECK(ex4 == ex1);
+
+ ex4 = ex3;
+
+ ASIO_CHECK(ex4.target<void>() != 0);
+ ASIO_CHECK(ex4 == ex3);
+
+ asio::any_io_executor ex5;
+ ex5 = fat_executor(1);
+
+ ASIO_CHECK(ex5.target<void>() != 0);
+ ASIO_CHECK(ex5 != null_ptr);
+ ASIO_CHECK(ex5 != ex1);
+
+ asio::any_io_executor ex6;
+ ex6 = fat_executor(1);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+ ASIO_CHECK(ex6 == ex5);
+
+ ex6 = fat_executor(2);
+
+ ASIO_CHECK(ex6.target<void>() != 0);
+ ASIO_CHECK(ex6 != null_ptr);
+ ASIO_CHECK(ex6 != ex1);
+ ASIO_CHECK(ex6 != ex5);
+
+ asio::any_io_executor ex7;
+ ex7 = ex5;
+
+ ASIO_CHECK(ex7.target<void>() != 0);
+ ASIO_CHECK(ex7 != null_ptr);
+ ASIO_CHECK(ex7 != ex1);
+ ASIO_CHECK(ex7 == ex5);
+ ASIO_CHECK(ex7 != ex6);
+
+ asio::any_io_executor ex8;
+ ex8 = std::move(ex1);
+
+ ASIO_CHECK(ex8.target<void>() == 0);
+ ASIO_CHECK(ex1.target<void>() == 0);
+
+ ex8 = std::move(ex3);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex3.target<void>() == 0);
+ ASIO_CHECK(ex8 == ex4);
+
+ ex8 = std::move(ex5);
+
+ ASIO_CHECK(ex8.target<void>() != 0);
+ ASIO_CHECK(ex5.target<void>() == 0);
+ ASIO_CHECK(ex8 == ex7);
+}
+
+void any_io_executor_swap_test()
+{
+ thread_pool pool1(1);
+ thread_pool pool2(1);
+
+ asio::any_io_executor ex1(pool1.executor());
+ asio::any_io_executor ex2(pool2.executor());
+
+ asio::any_io_executor ex3(ex1);
+ asio::any_io_executor ex4(ex2);
+
+ ASIO_CHECK(ex3 == ex1);
+ ASIO_CHECK(ex4 == ex2);
+
+ ex3.swap(ex4);
+
+ ASIO_CHECK(ex3 == ex2);
+ ASIO_CHECK(ex4 == ex1);
+
+ execution::swap(ex3, ex4);
+
+ ASIO_CHECK(ex3 == ex1);
+ ASIO_CHECK(ex4 == ex2);
+}
+
+void any_io_executor_query_test()
+{
+ thread_pool pool(1);
+ asio::any_io_executor ex(pool.executor());
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::blocking)
+ == asio::execution::blocking.possibly);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::blocking.possibly)
+ == asio::execution::blocking.possibly);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::outstanding_work)
+ == asio::execution::outstanding_work.untracked);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::outstanding_work.untracked)
+ == asio::execution::outstanding_work.untracked);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::relationship)
+ == asio::execution::relationship.fork);
+
+ ASIO_CHECK(
+ asio::query(ex, asio::execution::relationship.fork)
+ == asio::execution::relationship.fork);
+}
+
+void any_io_executor_execute_test()
+{
+ int count = 0;
+ thread_pool pool(1);
+ asio::any_io_executor ex(pool.executor());
+
+ ex.execute(bindns::bind(increment, &count));
+
+ asio::prefer(ex, asio::execution::blocking.possibly).execute(
+ bindns::bind(increment, &count));
+
+ asio::require(ex, asio::execution::blocking.never).execute(
+ bindns::bind(increment, &count));
+
+ asio::require(
+ asio::prefer(ex, asio::execution::outstanding_work.tracked),
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
+
+ asio::require(
+ asio::prefer(ex,
+ asio::execution::outstanding_work.untracked),
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
+
+ asio::require(
+ asio::prefer(ex,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
+
+ pool.wait();
+
+ ASIO_CHECK(count == 6);
+}
+
+ASIO_TEST_SUITE
+(
+ "any_io_executor",
+ ASIO_TEST_CASE(any_io_executor_construction_test)
+ ASIO_TEST_CASE(any_io_executor_nothrow_construction_test)
+ ASIO_TEST_CASE(any_io_executor_assignment_test)
+ ASIO_TEST_CASE(any_io_executor_swap_test)
+ ASIO_TEST_CASE(any_io_executor_query_test)
+ ASIO_TEST_CASE(any_io_executor_execute_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/append.cpp b/3rdparty/asio/src/tests/unit/append.cpp
new file mode 100644
index 00000000000..9aa00e3bfa4
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/append.cpp
@@ -0,0 +1,58 @@
+//
+// append.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/append.hpp"
+
+#include "asio/bind_executor.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "asio/system_timer.hpp"
+#include "unit_test.hpp"
+
+void append_test()
+{
+ asio::io_context io1;
+ asio::io_context io2;
+ asio::system_timer timer1(io1);
+ int count = 0;
+
+ timer1.expires_after(asio::chrono::seconds(0));
+ timer1.async_wait(
+ asio::append(
+ asio::bind_executor(io2.get_executor(),
+ [&count](asio::error_code, int a, int b)
+ {
+ ++count;
+ ASIO_CHECK(a == 123);
+ ASIO_CHECK(b == 321);
+ }), 123, 321));
+
+ ASIO_CHECK(count == 0);
+
+ io1.run();
+
+ ASIO_CHECK(count == 0);
+
+ io2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+ASIO_TEST_SUITE
+(
+ "append",
+ ASIO_TEST_CASE(append_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp b/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp
index 80364af575b..3c2b1308bd8 100644
--- a/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp
+++ b/3rdparty/asio/src/tests/unit/archetypes/async_ops.hpp
@@ -1,8 +1,8 @@
//
-// async_ops.hpp
-// ~~~~~~~~~~~~~
+// archetypes/async_ops.hpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -11,30 +11,22 @@
#ifndef ARCHETYPES_ASYNC_OPS_HPP
#define ARCHETYPES_ASYNC_OPS_HPP
-#include <asio/associated_allocator.hpp>
-#include <asio/associated_executor.hpp>
-#include <asio/async_result.hpp>
-#include <asio/error.hpp>
-
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
+#include <functional>
+#include "asio/associated_allocator.hpp"
+#include "asio/associated_executor.hpp"
+#include "asio/async_result.hpp"
+#include "asio/error.hpp"
namespace archetypes {
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void())
-async_op_0(ASIO_MOVE_ARG(CompletionToken) token)
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void()>::return_type
+async_op_0(CompletionToken&& token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void()>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -46,16 +38,17 @@ async_op_0(ASIO_MOVE_ARG(CompletionToken) token)
typename asio::associated_executor<handler_type>::type ex
= asio::get_associated_executor(completion.completion_handler);
- ex.post(ASIO_MOVE_CAST(handler_type)(completion.completion_handler), a);
+ ex.post(static_cast<handler_type&&>(completion.completion_handler), a);
return completion.result.get();
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(asio::error_code))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(asio::error_code)>::return_type
async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(asio::error_code)>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -71,14 +64,14 @@ async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code()), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(asio::error::operation_aborted)), a);
}
@@ -86,10 +79,11 @@ async_op_ec_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(std::exception_ptr))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(std::exception_ptr)>::return_type
async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(std::exception_ptr)>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -105,14 +99,14 @@ async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::exception_ptr()), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::make_exception_ptr(std::runtime_error("blah"))), a);
}
@@ -120,10 +114,11 @@ async_op_ex_0(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(int)>::return_type
async_op_1(ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(int)>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -137,18 +132,18 @@ async_op_1(ASIO_MOVE_ARG(CompletionToken) token)
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
42), a);
return completion.result.get();
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken,
- void(asio::error_code, int))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(asio::error_code, int)>::return_type
async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(asio::error_code, int)>::completion_handler_type
handler_type;
@@ -165,14 +160,14 @@ async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(), 42), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(asio::error::operation_aborted),
0), a);
}
@@ -181,10 +176,11 @@ async_op_ec_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(std::exception_ptr, int))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(std::exception_ptr, int)>::return_type
async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(std::exception_ptr, int)>::completion_handler_type
handler_type;
@@ -201,14 +197,14 @@ async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::exception_ptr(), 42), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::make_exception_ptr(std::runtime_error("blah")), 0), a);
}
@@ -216,10 +212,11 @@ async_op_ex_1(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int, double))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(int, double)>::return_type
async_op_2(ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(int, double)>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -233,18 +230,18 @@ async_op_2(ASIO_MOVE_ARG(CompletionToken) token)
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
42, 2.0), a);
return completion.result.get();
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken,
- void(asio::error_code, int, double))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(asio::error_code, int, double)>::return_type
async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(asio::error_code, int, double)>::completion_handler_type
handler_type;
@@ -261,14 +258,14 @@ async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(), 42, 2.0), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(asio::error::operation_aborted),
0, 0.0), a);
}
@@ -277,11 +274,11 @@ async_op_ec_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken,
- void(std::exception_ptr, int, double))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(std::exception_ptr, int, double)>::return_type
async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(std::exception_ptr, int, double)>::completion_handler_type
handler_type;
@@ -298,14 +295,14 @@ async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::exception_ptr(), 42, 2.0), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::make_exception_ptr(std::runtime_error("blah")), 0, 0.0), a);
}
@@ -313,10 +310,11 @@ async_op_ex_2(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int, double, char))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(int, double, char)>::return_type
async_op_3(ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(int, double, char)>::completion_handler_type handler_type;
asio::async_completion<CompletionToken,
@@ -330,18 +328,18 @@ async_op_3(ASIO_MOVE_ARG(CompletionToken) token)
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
42, 2.0, 'a'), a);
return completion.result.get();
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken,
- void(asio::error_code, int, double, char))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(asio::error_code, int, double, char)>::return_type
async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(asio::error_code, int, double, char)>::completion_handler_type
handler_type;
@@ -358,14 +356,14 @@ async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(), 42, 2.0, 'a'), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
asio::error_code(asio::error::operation_aborted),
0, 0.0, 'z'), a);
}
@@ -374,11 +372,11 @@ async_op_ec_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
}
template <typename CompletionToken>
-ASIO_INITFN_RESULT_TYPE(CompletionToken,
- void(std::exception_ptr, int, double, char))
+typename asio::async_result<asio::decay_t<CompletionToken>,
+ void(std::exception_ptr, int, double, char)>::return_type
async_op_ex_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
- typedef typename asio::async_completion<CompletionToken,
+ typedef typename asio::async_result<asio::decay_t<CompletionToken>,
void(std::exception_ptr, int, double, char)>::completion_handler_type
handler_type;
@@ -395,14 +393,14 @@ async_op_ex_3(bool ok, ASIO_MOVE_ARG(CompletionToken) token)
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::exception_ptr(), 42, 2.0, 'a'), a);
}
else
{
ex.post(
bindns::bind(
- ASIO_MOVE_CAST(handler_type)(completion.completion_handler),
+ static_cast<handler_type&&>(completion.completion_handler),
std::make_exception_ptr(std::runtime_error("blah")),
0, 0.0, 'z'), a);
}
diff --git a/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp b/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp
index 4c26a3f0c61..bfd9cf1aac2 100644
--- a/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp
+++ b/3rdparty/asio/src/tests/unit/archetypes/async_result.hpp
@@ -2,7 +2,7 @@
// async_result.hpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -12,9 +12,14 @@
#define ARCHETYPES_ASYNC_RESULT_HPP
#include <asio/async_result.hpp>
+#include <asio/system_executor.hpp>
namespace archetypes {
+struct immediate_handler
+{
+};
+
struct lazy_handler
{
};
@@ -25,7 +30,7 @@ struct concrete_handler;
template <typename R, typename Arg1>
struct concrete_handler<R(Arg1)>
{
- concrete_handler(lazy_handler)
+ concrete_handler()
{
}
@@ -33,29 +38,53 @@ struct concrete_handler<R(Arg1)>
{
}
-#if defined(ASIO_HAS_MOVE)
concrete_handler(concrete_handler&&) {}
private:
concrete_handler(const concrete_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
template <typename R, typename Arg1, typename Arg2>
struct concrete_handler<R(Arg1, Arg2)>
{
- concrete_handler(lazy_handler)
+ concrete_handler()
{
}
- void operator()(typename asio::decay<Arg1>::type, typename asio::decay<Arg2>::type)
+ void operator()(typename asio::decay<Arg1>::type,
+ typename asio::decay<Arg2>::type)
{
}
+};
-#if defined(ASIO_HAS_MOVE)
- concrete_handler(concrete_handler&&) {}
+template <typename Signature>
+struct immediate_concrete_handler : concrete_handler<Signature>
+{
+ typedef asio::system_executor immediate_executor_type;
+
+ immediate_concrete_handler(immediate_handler)
+ {
+ }
+
+ immediate_executor_type get_immediate_executor() const noexcept
+ {
+ return immediate_executor_type();
+ }
+
+ immediate_concrete_handler(immediate_concrete_handler&&) {}
private:
- concrete_handler(const concrete_handler&);
-#endif // defined(ASIO_HAS_MOVE)
+ immediate_concrete_handler(const immediate_concrete_handler&);
+};
+
+template <typename Signature>
+struct lazy_concrete_handler : concrete_handler<Signature>
+{
+ lazy_concrete_handler(lazy_handler)
+ {
+ }
+
+ lazy_concrete_handler(lazy_concrete_handler&&) {}
+private:
+ lazy_concrete_handler(const lazy_concrete_handler&);
};
} // namespace archetypes
@@ -63,11 +92,38 @@ private:
namespace asio {
template <typename Signature>
+class async_result<archetypes::immediate_handler, Signature>
+{
+public:
+ // The concrete completion handler type.
+ typedef archetypes::immediate_concrete_handler<Signature>
+ completion_handler_type;
+
+ // The return type of the initiating function.
+ typedef void return_type;
+
+ // Construct an async_result from a given handler.
+ explicit async_result(completion_handler_type&)
+ {
+ }
+
+ // Obtain the value to be returned from the initiating function.
+ void get()
+ {
+ }
+
+private:
+ // Disallow copying and assignment.
+ async_result(const async_result&) = delete;
+ async_result& operator=(const async_result&) = delete;
+};
+
+template <typename Signature>
class async_result<archetypes::lazy_handler, Signature>
{
public:
// The concrete completion handler type.
- typedef archetypes::concrete_handler<Signature> completion_handler_type;
+ typedef archetypes::lazy_concrete_handler<Signature> completion_handler_type;
// The return type of the initiating function.
typedef int return_type;
@@ -85,8 +141,8 @@ public:
private:
// Disallow copying and assignment.
- async_result(const async_result&) ASIO_DELETED;
- async_result& operator=(const async_result&) ASIO_DELETED;
+ async_result(const async_result&) = delete;
+ async_result& operator=(const async_result&) = delete;
};
} // namespace asio
diff --git a/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp b/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp
index 17f1518f3ba..e1c2d3f0d4e 100644
--- a/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp
+++ b/3rdparty/asio/src/tests/unit/archetypes/gettable_socket_option.hpp
@@ -2,7 +2,7 @@
// gettable_socket_option.hpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp b/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp
index 00bdd657079..45ed07cf481 100644
--- a/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp
+++ b/3rdparty/asio/src/tests/unit/archetypes/io_control_command.hpp
@@ -2,7 +2,7 @@
// io_control_command.hpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp b/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp
index 50b33d3ffad..7a5867ba800 100644
--- a/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp
+++ b/3rdparty/asio/src/tests/unit/archetypes/settable_socket_option.hpp
@@ -2,7 +2,7 @@
// settable_socket_option.hpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/as_tuple.cpp b/3rdparty/asio/src/tests/unit/as_tuple.cpp
new file mode 100644
index 00000000000..a176d95bb2e
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/as_tuple.cpp
@@ -0,0 +1,122 @@
+//
+// as_tuple.cpp
+// ~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/as_tuple.hpp"
+
+#include "asio/bind_executor.hpp"
+#include "asio/deferred.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "asio/system_timer.hpp"
+#include "asio/use_future.hpp"
+#include "unit_test.hpp"
+
+void as_tuple_test()
+{
+ asio::io_context io1;
+ asio::io_context io2;
+ asio::system_timer timer1(io1);
+ int count = 0;
+
+ timer1.expires_after(asio::chrono::seconds(0));
+ timer1.async_wait(
+ asio::as_tuple(
+ asio::bind_executor(io2.get_executor(),
+ [&count](std::tuple<asio::error_code>)
+ {
+ ++count;
+ })));
+
+ ASIO_CHECK(count == 0);
+
+ io1.run();
+
+ ASIO_CHECK(count == 0);
+
+ io2.run();
+
+ ASIO_CHECK(count == 1);
+
+ timer1.async_wait(
+ asio::as_tuple(
+ asio::bind_executor(io2.get_executor(),
+ asio::deferred)))(
+ [&count](std::tuple<asio::error_code>)
+ {
+ ++count;
+ });
+
+ ASIO_CHECK(count == 1);
+
+ io1.restart();
+ io1.run();
+
+ ASIO_CHECK(count == 1);
+
+ io2.restart();
+ io2.run();
+
+ ASIO_CHECK(count == 2);
+
+# if defined(ASIO_HAS_STD_FUTURE_CLASS)
+ std::future<std::tuple<asio::error_code> > f = timer1.async_wait(
+ asio::as_tuple(
+ asio::bind_executor(io2.get_executor(),
+ asio::use_future)));
+
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::timeout);
+
+ io1.restart();
+ io1.run();
+
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::timeout);
+
+ io2.restart();
+ io2.run();
+
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::ready);
+# endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
+}
+
+void as_tuple_constness_test()
+{
+# if defined(ASIO_HAS_STD_FUTURE_CLASS)
+ asio::io_context io1;
+ asio::system_timer timer1(io1);
+
+ auto tok1 = asio::as_tuple(asio::use_future);
+ (void)timer1.async_wait(tok1);
+ (void)timer1.async_wait(std::move(tok1));
+
+ const auto tok2 = asio::as_tuple(asio::use_future);
+ (void)timer1.async_wait(tok2);
+ (void)timer1.async_wait(std::move(tok2));
+
+ constexpr auto tok3 = asio::as_tuple(asio::use_future);
+ (void)timer1.async_wait(tok3);
+ (void)timer1.async_wait(std::move(tok3));
+# endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
+}
+
+ASIO_TEST_SUITE
+(
+ "as_tuple",
+ ASIO_TEST_CASE(as_tuple_test)
+ ASIO_COMPILE_TEST_CASE(as_tuple_constness_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/associated_allocator.cpp b/3rdparty/asio/src/tests/unit/associated_allocator.cpp
index 63ee6828ed2..69a8afb0d41 100644
--- a/3rdparty/asio/src/tests/unit/associated_allocator.cpp
+++ b/3rdparty/asio/src/tests/unit/associated_allocator.cpp
@@ -2,7 +2,7 @@
// associated_allocator.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp b/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp
index 9e1105d5332..96d488458cb 100644
--- a/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp
+++ b/3rdparty/asio/src/tests/unit/associated_cancellation_slot.cpp
@@ -2,7 +2,7 @@
// associated_cancellation_slot.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/associated_executor.cpp b/3rdparty/asio/src/tests/unit/associated_executor.cpp
index c9533a84609..60b1f00657f 100644
--- a/3rdparty/asio/src/tests/unit/associated_executor.cpp
+++ b/3rdparty/asio/src/tests/unit/associated_executor.cpp
@@ -2,7 +2,7 @@
// associated_executor.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp b/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp
new file mode 100644
index 00000000000..f085a2cfcee
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp
@@ -0,0 +1,25 @@
+//
+// associated_immediate_executor.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2022 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/associated_immediate_executor.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "associated_immediate_executor",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/associator.cpp b/3rdparty/asio/src/tests/unit/associator.cpp
index e79fe677fe2..a35d95c66e0 100644
--- a/3rdparty/asio/src/tests/unit/associator.cpp
+++ b/3rdparty/asio/src/tests/unit/associator.cpp
@@ -2,7 +2,7 @@
// associator.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/async_result.cpp b/3rdparty/asio/src/tests/unit/async_result.cpp
index 5002559dd12..75a4e91b71e 100644
--- a/3rdparty/asio/src/tests/unit/async_result.cpp
+++ b/3rdparty/asio/src/tests/unit/async_result.cpp
@@ -2,7 +2,7 @@
// async_result.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/awaitable.cpp b/3rdparty/asio/src/tests/unit/awaitable.cpp
index a1e9077765d..39ca8ddfdbe 100644
--- a/3rdparty/asio/src/tests/unit/awaitable.cpp
+++ b/3rdparty/asio/src/tests/unit/awaitable.cpp
@@ -2,7 +2,7 @@
// awaitable.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp b/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp
index 28e78c10194..44fa2561646 100644
--- a/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_datagram_socket.cpp
@@ -2,7 +2,7 @@
// basic_datagram_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp b/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp
index 2ea478da3b3..ec6a6e37d18 100644
--- a/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_deadline_timer.cpp
@@ -2,7 +2,7 @@
// basic_deadline_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_file.cpp b/3rdparty/asio/src/tests/unit/basic_file.cpp
new file mode 100644
index 00000000000..5308d1268b0
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/basic_file.cpp
@@ -0,0 +1,25 @@
+//
+// basic_file.cpp
+// ~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/basic_file.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "basic_file",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp b/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp
new file mode 100644
index 00000000000..fffaee3e8a2
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/basic_random_access_file.cpp
@@ -0,0 +1,25 @@
+//
+// basic_random_access_file.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/basic_random_access_file.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "basic_random_access_file",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp b/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp
index 3e87d6dd915..127df060b0c 100644
--- a/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_raw_socket.cpp
@@ -2,7 +2,7 @@
// basic_raw_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp b/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp
new file mode 100644
index 00000000000..f390acf4f98
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp
@@ -0,0 +1,25 @@
+//
+// basic_readable_pipe.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/basic_readable_pipe.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "basic_readable_pipe",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp b/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp
index 3c48c0353e1..c8b9bfa67bc 100644
--- a/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_seq_packet_socket.cpp
@@ -2,7 +2,7 @@
// basic_seq_packet_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_serial_port.cpp b/3rdparty/asio/src/tests/unit/basic_serial_port.cpp
index 519c04df421..1a64348a989 100644
--- a/3rdparty/asio/src/tests/unit/basic_serial_port.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_serial_port.cpp
@@ -2,7 +2,7 @@
// basic_serial_port.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
diff --git a/3rdparty/asio/src/tests/unit/basic_signal_set.cpp b/3rdparty/asio/src/tests/unit/basic_signal_set.cpp
index d2880b544f2..01340178e69 100644
--- a/3rdparty/asio/src/tests/unit/basic_signal_set.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_signal_set.cpp
@@ -2,7 +2,7 @@
// basic_signal_set.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_socket.cpp b/3rdparty/asio/src/tests/unit/basic_socket.cpp
index def16e0fab2..c2814e6b96d 100644
--- a/3rdparty/asio/src/tests/unit/basic_socket.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_socket.cpp
@@ -2,7 +2,7 @@
// basic_socket.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp b/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp
index 49cb72a953c..021a81628ae 100644
--- a/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_socket_acceptor.cpp
@@ -2,7 +2,7 @@
// basic_socket_acceptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_stream_file.cpp b/3rdparty/asio/src/tests/unit/basic_stream_file.cpp
new file mode 100644
index 00000000000..9902122c9cb
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/basic_stream_file.cpp
@@ -0,0 +1,25 @@
+//
+// basic_stream_file.cpp
+// ~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/basic_stream_file.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "basic_stream_file",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp b/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp
index ab0e6d0759a..1edbe5a530c 100644
--- a/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_stream_socket.cpp
@@ -2,7 +2,7 @@
// basic_stream_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_streambuf.cpp b/3rdparty/asio/src/tests/unit/basic_streambuf.cpp
index 8172bef62b6..9529dd801fe 100644
--- a/3rdparty/asio/src/tests/unit/basic_streambuf.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_streambuf.cpp
@@ -2,7 +2,7 @@
// basic_streambuf.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp b/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp
index 8cb0ca0ffb1..9d6be41b754 100644
--- a/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/basic_waitable_timer.cpp
@@ -2,7 +2,7 @@
// basic_waitable_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp b/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp
new file mode 100644
index 00000000000..fc0d0fdd955
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp
@@ -0,0 +1,25 @@
+//
+// basic_writable_pipe.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/basic_writable_pipe.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "basic_writable_pipe",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/bind_allocator.cpp b/3rdparty/asio/src/tests/unit/bind_allocator.cpp
new file mode 100644
index 00000000000..b7c11ffb53c
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/bind_allocator.cpp
@@ -0,0 +1,237 @@
+//
+// bind_allocator.cpp
+// ~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/bind_allocator.hpp"
+
+#include <functional>
+#include "asio/io_context.hpp"
+#include "asio/steady_timer.hpp"
+#include "unit_test.hpp"
+
+#if defined(ASIO_HAS_BOOST_DATE_TIME)
+# include "asio/deadline_timer.hpp"
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
+# include "asio/steady_timer.hpp"
+#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
+
+using namespace asio;
+namespace bindns = std;
+
+#if defined(ASIO_HAS_BOOST_DATE_TIME)
+typedef deadline_timer timer;
+namespace chronons = boost::posix_time;
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
+typedef steady_timer timer;
+namespace chronons = asio::chrono;
+#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
+
+template <typename T>
+class test_allocator
+{
+public:
+ typedef T value_type;
+
+ explicit test_allocator(int* allocations)
+ : allocations_(allocations)
+ {
+ }
+
+ template <typename U>
+ test_allocator(const test_allocator<U>& other)
+ : allocations_(other.allocations_)
+ {
+ }
+
+ template <typename U>
+ struct rebind
+ {
+ typedef test_allocator<U> other;
+ };
+
+ bool operator==(const test_allocator&) const
+ {
+ return true;
+ }
+
+ bool operator!=(const test_allocator&) const
+ {
+ return false;
+ }
+
+ T* allocate(std::size_t n) const
+ {
+ ++(*allocations_);
+ return static_cast<T*>(::operator new(sizeof(T) * n));
+ }
+
+ void deallocate(T* p, std::size_t /*n*/) const
+ {
+ --(*allocations_);
+ ::operator delete(p);
+ }
+
+//private:
+ int* allocations_;
+};
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void bind_allocator_to_function_object_test()
+{
+ io_context ioc;
+
+ int count = 0;
+ int allocations = 0;
+
+ timer t(ioc, chronons::seconds(1));
+ t.async_wait(
+ bind_allocator(
+ test_allocator<int>(&allocations),
+ bindns::bind(&increment, &count)));
+
+ ASIO_CHECK(count == 0);
+ ASIO_CHECK(allocations == 1);
+
+ ioc.run();
+
+ ASIO_CHECK(count == 1);
+ ASIO_CHECK(allocations == 0);
+
+ t.async_wait(
+ bind_allocator(
+ test_allocator<int>(&allocations),
+ bind_allocator(
+ std::allocator<void>(),
+ bindns::bind(&increment, &count))));
+
+ ASIO_CHECK(count == 1);
+ ASIO_CHECK(allocations == 1);
+
+ ioc.restart();
+ ioc.run();
+
+ ASIO_CHECK(count == 2);
+ ASIO_CHECK(allocations == 0);
+}
+
+struct incrementer_token_v1
+{
+ explicit incrementer_token_v1(int* c) : count(c) {}
+ int* count;
+};
+
+struct incrementer_handler_v1
+{
+ explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {}
+ void operator()(asio::error_code){ increment(count); }
+ int* count;
+};
+
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v1, void(asio::error_code)>
+{
+public:
+ typedef incrementer_handler_v1 completion_handler_type;
+ typedef void return_type;
+ explicit async_result(completion_handler_type&) {}
+ return_type get() {}
+};
+
+} // namespace asio
+
+void bind_allocator_to_completion_token_v1_test()
+{
+ io_context ioc;
+
+ int count = 0;
+ int allocations = 0;
+
+ timer t(ioc, chronons::seconds(1));
+ t.async_wait(
+ bind_allocator(
+ test_allocator<int>(&allocations),
+ incrementer_token_v1(&count)));
+
+ ASIO_CHECK(count == 0);
+ ASIO_CHECK(allocations == 1);
+
+ ioc.run();
+
+ ASIO_CHECK(count == 1);
+ ASIO_CHECK(allocations == 0);
+}
+
+struct incrementer_token_v2
+{
+ explicit incrementer_token_v2(int* c) : count(c) {}
+ int* count;
+};
+
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v2, void(asio::error_code)>
+{
+public:
+#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+ typedef void return_type;
+#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+
+ template <typename Initiation, typename... Args>
+ static void initiate(Initiation initiation,
+ incrementer_token_v2 token, Args&&... args)
+ {
+ initiation(bindns::bind(&increment, token.count),
+ static_cast<Args&&>(args)...);
+ }
+};
+
+} // namespace asio
+
+void bind_allocator_to_completion_token_v2_test()
+{
+ io_context ioc;
+
+ int count = 0;
+ int allocations = 0;
+
+ timer t(ioc, chronons::seconds(1));
+ t.async_wait(
+ bind_allocator(
+ test_allocator<int>(&allocations),
+ incrementer_token_v2(&count)));
+
+ ASIO_CHECK(count == 0);
+ ASIO_CHECK(allocations == 1);
+
+ ioc.run();
+
+ ASIO_CHECK(count == 1);
+ ASIO_CHECK(allocations == 0);
+}
+
+ASIO_TEST_SUITE
+(
+ "bind_allocator",
+ ASIO_TEST_CASE(bind_allocator_to_function_object_test)
+ ASIO_TEST_CASE(bind_allocator_to_completion_token_v1_test)
+ ASIO_TEST_CASE(bind_allocator_to_completion_token_v2_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp b/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp
index 48cc1baf17b..25b0ff1c995 100644
--- a/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp
+++ b/3rdparty/asio/src/tests/unit/bind_cancellation_slot.cpp
@@ -2,7 +2,7 @@
// bind_cancellation_slot.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include "asio/bind_cancellation_slot.hpp"
+#include <functional>
#include "asio/cancellation_signal.hpp"
#include "asio/io_context.hpp"
#include "asio/steady_timer.hpp"
@@ -27,24 +28,13 @@
# include "asio/steady_timer.hpp"
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
#if defined(ASIO_HAS_BOOST_DATE_TIME)
typedef deadline_timer timer;
namespace chronons = boost::posix_time;
-#elif defined(ASIO_HAS_CHRONO)
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
typedef steady_timer timer;
namespace chronons = asio::chrono;
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
@@ -77,64 +67,110 @@ void bind_cancellation_slot_to_function_object_test()
ioc.run();
ASIO_CHECK(count == 1);
+
+ t.async_wait(
+ bind_cancellation_slot(sig.slot(),
+ bind_cancellation_slot(sig.slot(),
+ bindns::bind(&increment_on_cancel,
+ &count, bindns::placeholders::_1))));
+
+ ioc.restart();
+ ioc.poll();
+
+ ASIO_CHECK(count == 1);
+
+ sig.emit(asio::cancellation_type::all);
+
+ ioc.run();
+
+ ASIO_CHECK(count == 2);
}
-struct incrementer_token
+struct incrementer_token_v1
+{
+ explicit incrementer_token_v1(int* c) : count(c) {}
+ int* count;
+};
+
+struct incrementer_handler_v1
{
- explicit incrementer_token(int* c) : count(c) {}
+ explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {}
+
+ void operator()(asio::error_code error)
+ {
+ increment_on_cancel(count, error);
+ }
+
int* count;
};
namespace asio {
template <>
-class async_result<incrementer_token, void(asio::error_code)>
+class async_result<incrementer_token_v1, void(asio::error_code)>
{
public:
+ typedef incrementer_handler_v1 completion_handler_type;
typedef void return_type;
+ explicit async_result(completion_handler_type&) {}
+ return_type get() {}
+};
+
+} // namespace asio
+
+void bind_cancellation_slot_to_completion_token_v1_test()
+{
+ io_context ioc;
+ cancellation_signal sig;
+
+ int count = 0;
-#if defined(ASIO_HAS_VARIADIC_TEMPLATES)
+ timer t(ioc, chronons::seconds(5));
+ t.async_wait(
+ bind_cancellation_slot(sig.slot(),
+ incrementer_token_v1(&count)));
+
+ ioc.poll();
+
+ ASIO_CHECK(count == 0);
+
+ sig.emit(asio::cancellation_type::all);
+
+ ioc.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+struct incrementer_token_v2
+{
+ explicit incrementer_token_v2(int* c) : count(c) {}
+ int* count;
+};
+
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v2, void(asio::error_code)>
+{
+public:
+#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+ typedef void return_type;
+#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
template <typename Initiation, typename... Args>
static void initiate(Initiation initiation,
- incrementer_token token, ASIO_MOVE_ARG(Args)... args)
+ incrementer_token_v2 token, Args&&... args)
{
initiation(
bindns::bind(&increment_on_cancel,
token.count, bindns::placeholders::_1),
- ASIO_MOVE_CAST(Args)(args)...);
- }
-
-#else // defined(ASIO_HAS_VARIADIC_TEMPLATES)
-
- template <typename Initiation>
- static void initiate(Initiation initiation, incrementer_token token)
- {
- initiation(
- bindns::bind(&increment_on_cancel,
- token.count, bindns::placeholders::_1));
+ static_cast<Args&&>(args)...);
}
-
-#define ASIO_PRIVATE_INITIATE_DEF(n) \
- template <typename Initiation, ASIO_VARIADIC_TPARAMS(n)> \
- static return_type initiate(Initiation initiation, \
- incrementer_token token, ASIO_VARIADIC_MOVE_PARAMS(n)) \
- { \
- initiation( \
- bindns::bind(&increment_on_cancel, \
- token.count, bindns::placeholders::_1), \
- ASIO_VARIADIC_MOVE_ARGS(n)); \
- } \
- /**/
- ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF)
-#undef ASIO_PRIVATE_INITIATE_DEF
-
-#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES)
};
} // namespace asio
-void bind_cancellation_slot_to_completion_token_test()
+void bind_cancellation_slot_to_completion_token_v2_test()
{
io_context ioc;
cancellation_signal sig;
@@ -144,7 +180,7 @@ void bind_cancellation_slot_to_completion_token_test()
timer t(ioc, chronons::seconds(5));
t.async_wait(
bind_cancellation_slot(sig.slot(),
- incrementer_token(&count)));
+ incrementer_token_v2(&count)));
ioc.poll();
@@ -161,5 +197,6 @@ ASIO_TEST_SUITE
(
"bind_cancellation_slot",
ASIO_TEST_CASE(bind_cancellation_slot_to_function_object_test)
- ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_test)
+ ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_v1_test)
+ ASIO_TEST_CASE(bind_cancellation_slot_to_completion_token_v2_test)
)
diff --git a/3rdparty/asio/src/tests/unit/bind_executor.cpp b/3rdparty/asio/src/tests/unit/bind_executor.cpp
index 8b1ea70f6b2..59be1cd14f3 100644
--- a/3rdparty/asio/src/tests/unit/bind_executor.cpp
+++ b/3rdparty/asio/src/tests/unit/bind_executor.cpp
@@ -2,7 +2,7 @@
// bind_executor.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include "asio/bind_executor.hpp"
+#include <functional>
#include "asio/io_context.hpp"
#include "asio/steady_timer.hpp"
#include "unit_test.hpp"
@@ -26,24 +27,13 @@
# include "asio/steady_timer.hpp"
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
#if defined(ASIO_HAS_BOOST_DATE_TIME)
typedef deadline_timer timer;
namespace chronons = boost::posix_time;
-#elif defined(ASIO_HAS_CHRONO)
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
typedef steady_timer timer;
namespace chronons = asio::chrono;
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
@@ -73,58 +63,102 @@ void bind_executor_to_function_object_test()
ioc2.run();
ASIO_CHECK(count == 1);
+
+ t.async_wait(
+ bind_executor(
+ ioc2.get_executor(),
+ bind_executor(
+ asio::system_executor(),
+ bindns::bind(&increment, &count))));
+
+ ioc1.restart();
+ ioc1.run();
+
+ ASIO_CHECK(count == 1);
+
+ ioc2.restart();
+ ioc2.run();
+
+ ASIO_CHECK(count == 2);
}
-struct incrementer_token
+struct incrementer_token_v1
{
- explicit incrementer_token(int* c) : count(c) {}
+ explicit incrementer_token_v1(int* c) : count(c) {}
+ int* count;
+};
+
+struct incrementer_handler_v1
+{
+ explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {}
+ void operator()(asio::error_code){ increment(count); }
int* count;
};
namespace asio {
template <>
-class async_result<incrementer_token, void(asio::error_code)>
+class async_result<incrementer_token_v1, void(asio::error_code)>
{
public:
+ typedef incrementer_handler_v1 completion_handler_type;
typedef void return_type;
+ explicit async_result(completion_handler_type&) {}
+ return_type get() {}
+};
+
+} // namespace asio
+
+void bind_executor_to_completion_token_v1_test()
+{
+ io_context ioc1;
+ io_context ioc2;
+
+ int count = 0;
+
+ timer t(ioc1, chronons::seconds(1));
+ t.async_wait(
+ bind_executor(
+ ioc2.get_executor(),
+ incrementer_token_v1(&count)));
+
+ ioc1.run();
+
+ ASIO_CHECK(count == 0);
+
+ ioc2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+struct incrementer_token_v2
+{
+ explicit incrementer_token_v2(int* c) : count(c) {}
+ int* count;
+};
-#if defined(ASIO_HAS_VARIADIC_TEMPLATES)
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v2, void(asio::error_code)>
+{
+public:
+#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+ typedef void return_type;
+#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
template <typename Initiation, typename... Args>
static void initiate(Initiation initiation,
- incrementer_token token, ASIO_MOVE_ARG(Args)... args)
+ incrementer_token_v2 token, Args&&... args)
{
initiation(bindns::bind(&increment, token.count),
- ASIO_MOVE_CAST(Args)(args)...);
+ static_cast<Args&&>(args)...);
}
-
-#else // defined(ASIO_HAS_VARIADIC_TEMPLATES)
-
- template <typename Initiation>
- static void initiate(Initiation initiation, incrementer_token token)
- {
- initiation(bindns::bind(&increment, token.count));
- }
-
-#define ASIO_PRIVATE_INITIATE_DEF(n) \
- template <typename Initiation, ASIO_VARIADIC_TPARAMS(n)> \
- static return_type initiate(Initiation initiation, \
- incrementer_token token, ASIO_VARIADIC_MOVE_PARAMS(n)) \
- { \
- initiation(bindns::bind(&increment, token.count), \
- ASIO_VARIADIC_MOVE_ARGS(n)); \
- } \
- /**/
- ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF)
-#undef ASIO_PRIVATE_INITIATE_DEF
-
-#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES)
};
} // namespace asio
-void bind_executor_to_completion_token_test()
+void bind_executor_to_completion_token_v2_test()
{
io_context ioc1;
io_context ioc2;
@@ -135,7 +169,7 @@ void bind_executor_to_completion_token_test()
t.async_wait(
bind_executor(
ioc2.get_executor(),
- incrementer_token(&count)));
+ incrementer_token_v2(&count)));
ioc1.run();
@@ -150,5 +184,6 @@ ASIO_TEST_SUITE
(
"bind_executor",
ASIO_TEST_CASE(bind_executor_to_function_object_test)
- ASIO_TEST_CASE(bind_executor_to_completion_token_test)
+ ASIO_TEST_CASE(bind_executor_to_completion_token_v1_test)
+ ASIO_TEST_CASE(bind_executor_to_completion_token_v2_test)
)
diff --git a/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp b/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp
new file mode 100644
index 00000000000..ecf82de7470
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp
@@ -0,0 +1,199 @@
+//
+// bind_immediate_executor.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/bind_immediate_executor.hpp"
+
+#include <functional>
+#include "asio/dispatch.hpp"
+#include "asio/io_context.hpp"
+#include "unit_test.hpp"
+
+#if defined(ASIO_HAS_BOOST_DATE_TIME)
+# include "asio/deadline_timer.hpp"
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
+# include "asio/steady_timer.hpp"
+#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
+
+using namespace asio;
+namespace bindns = std;
+
+struct initiate_immediate
+{
+ template <typename Handler>
+ void operator()(Handler&& handler, io_context* ctx) const
+ {
+ typename associated_immediate_executor<
+ Handler, io_context::executor_type>::type ex =
+ get_associated_immediate_executor(handler, ctx->get_executor());
+ dispatch(ex, static_cast<Handler&&>(handler));
+ }
+};
+
+template <ASIO_COMPLETION_TOKEN_FOR(void()) Token>
+ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(Token, void())
+async_immediate(io_context& ctx, Token&& token)
+ ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX((
+ async_initiate<Token, void()>(declval<initiate_immediate>(), token)))
+{
+ return async_initiate<Token, void()>(initiate_immediate(), token, &ctx);
+}
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void bind_immediate_executor_to_function_object_test()
+{
+ io_context ioc1;
+ io_context ioc2;
+
+ int count = 0;
+
+ async_immediate(ioc1,
+ bind_immediate_executor(
+ ioc2.get_executor(),
+ bindns::bind(&increment, &count)));
+
+ ioc1.run();
+
+ ASIO_CHECK(count == 0);
+
+ ioc2.run();
+
+ ASIO_CHECK(count == 1);
+
+ async_immediate(ioc1,
+ bind_immediate_executor(
+ ioc2.get_executor(),
+ bind_immediate_executor(
+ asio::system_executor(),
+ bindns::bind(&increment, &count))));
+
+ ioc1.restart();
+ ioc1.run();
+
+ ASIO_CHECK(count == 1);
+
+ ioc2.restart();
+ ioc2.run();
+
+ ASIO_CHECK(count == 2);
+}
+
+struct incrementer_token_v1
+{
+ explicit incrementer_token_v1(int* c) : count(c) {}
+ int* count;
+};
+
+struct incrementer_handler_v1
+{
+ explicit incrementer_handler_v1(incrementer_token_v1 t) : count(t.count) {}
+ void operator()(){ increment(count); }
+ int* count;
+};
+
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v1, void()>
+{
+public:
+ typedef incrementer_handler_v1 completion_handler_type;
+ typedef void return_type;
+ explicit async_result(completion_handler_type&) {}
+ return_type get() {}
+};
+
+} // namespace asio
+
+void bind_immediate_executor_to_completion_token_v1_test()
+{
+ io_context ioc1;
+ io_context ioc2;
+
+ int count = 0;
+
+ async_immediate(ioc1,
+ bind_immediate_executor(
+ ioc2.get_executor(),
+ incrementer_token_v1(&count)));
+
+ ioc1.run();
+
+ ASIO_CHECK(count == 0);
+
+ ioc2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+struct incrementer_token_v2
+{
+ explicit incrementer_token_v2(int* c) : count(c) {}
+ int* count;
+};
+
+namespace asio {
+
+template <>
+class async_result<incrementer_token_v2, void()>
+{
+public:
+#if !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+ typedef void return_type;
+#endif // !defined(ASIO_HAS_RETURN_TYPE_DEDUCTION)
+
+ template <typename Initiation, typename... Args>
+ static void initiate(Initiation initiation,
+ incrementer_token_v2 token, Args&&... args)
+ {
+ initiation(bindns::bind(&increment, token.count),
+ static_cast<Args&&>(args)...);
+ }
+};
+
+} // namespace asio
+
+void bind_immediate_executor_to_completion_token_v2_test()
+{
+ io_context ioc1;
+ io_context ioc2;
+
+ int count = 0;
+
+ async_immediate(ioc1,
+ bind_immediate_executor(
+ ioc2.get_executor(),
+ incrementer_token_v2(&count)));
+
+ ioc1.run();
+
+ ASIO_CHECK(count == 0);
+
+ ioc2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+ASIO_TEST_SUITE
+(
+ "bind_immediate_executor",
+ ASIO_TEST_CASE(bind_immediate_executor_to_function_object_test)
+ ASIO_TEST_CASE(bind_immediate_executor_to_completion_token_v1_test)
+ ASIO_TEST_CASE(bind_immediate_executor_to_completion_token_v2_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/buffer.cpp b/3rdparty/asio/src/tests/unit/buffer.cpp
index f66a8f0122e..9fa1db6e67f 100644
--- a/3rdparty/asio/src/tests/unit/buffer.cpp
+++ b/3rdparty/asio/src/tests/unit/buffer.cpp
@@ -2,7 +2,7 @@
// buffer.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,16 +16,14 @@
// Test that header file is self-contained.
#include "asio/buffer.hpp"
+#include <array>
+#include <cstring>
#include "unit_test.hpp"
#if defined(ASIO_HAS_BOOST_ARRAY)
# include <boost/array.hpp>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
//------------------------------------------------------------------------------
// buffer_compile test
@@ -37,6 +35,42 @@ namespace buffer_compile {
using namespace asio;
+template <typename T>
+class mutable_contiguous_container
+{
+public:
+ typedef T value_type;
+ typedef T* iterator;
+ typedef const T* const_iterator;
+ typedef T& reference;
+ typedef const T& const_reference;
+
+ mutable_contiguous_container() {}
+ std::size_t size() const { return 0; }
+ iterator begin() { return 0; }
+ const_iterator begin() const { return 0; }
+ iterator end() { return 0; }
+ const_iterator end() const { return 0; }
+};
+
+template <typename T>
+class const_contiguous_container
+{
+public:
+ typedef const T value_type;
+ typedef const T* iterator;
+ typedef const T* const_iterator;
+ typedef const T& reference;
+ typedef const T& const_reference;
+
+ const_contiguous_container() {}
+ std::size_t size() const { return 0; }
+ iterator begin() { return 0; }
+ const_iterator begin() const { return 0; }
+ iterator end() { return 0; }
+ const_iterator end() const { return 0; }
+};
+
void test()
{
try
@@ -50,11 +84,9 @@ void test()
const boost::array<char, 1024>& const_array_data_1 = array_data;
boost::array<const char, 1024> const_array_data_2 = { { 0 } };
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
std::array<char, 1024> std_array_data;
const std::array<char, 1024>& const_std_array_data_1 = std_array_data;
std::array<const char, 1024> const_std_array_data_2 = { { 0 } };
-#endif // defined(ASIO_HAS_STD_ARRAY)
std::vector<char> vector_data(1024);
const std::vector<char>& const_vector_data = vector_data;
std::string string_data(1024, ' ');
@@ -66,6 +98,10 @@ void test()
#elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
std::experimental::string_view string_view_data(string_data);
#endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+ mutable_contiguous_container<char> mutable_contiguous_data;
+ const mutable_contiguous_container<char> const_mutable_contiguous_data;
+ const_contiguous_container<char> const_contiguous_data;
+ const const_contiguous_container<char> const_const_contiguous_data;
// mutable_buffer constructors.
@@ -189,14 +225,12 @@ void test()
cb1 = buffer(const_array_data_2);
cb1 = buffer(const_array_data_2, 1024);
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
mb1 = buffer(std_array_data);
mb1 = buffer(std_array_data, 1024);
cb1 = buffer(const_std_array_data_1);
cb1 = buffer(const_std_array_data_1, 1024);
cb1 = buffer(const_std_array_data_2);
cb1 = buffer(const_std_array_data_2, 1024);
-#endif // defined(ASIO_HAS_STD_ARRAY)
mb1 = buffer(vector_data);
mb1 = buffer(vector_data, 1024);
cb1 = buffer(const_vector_data);
@@ -209,6 +243,14 @@ void test()
cb1 = buffer(string_view_data);
cb1 = buffer(string_view_data, 1024);
#endif // defined(ASIO_HAS_STRING_VIEW)
+ mb1 = buffer(mutable_contiguous_data);
+ mb1 = buffer(mutable_contiguous_data, 1024);
+ cb1 = buffer(const_mutable_contiguous_data);
+ cb1 = buffer(const_mutable_contiguous_data, 1024);
+ cb1 = buffer(const_contiguous_data);
+ cb1 = buffer(const_contiguous_data, 1024);
+ cb1 = buffer(const_const_contiguous_data);
+ cb1 = buffer(const_const_contiguous_data, 1024);
// buffer_copy function overloads.
@@ -600,13 +642,11 @@ struct valid_const_a
const_buffer* end() const { return 0; }
};
-#if defined(ASIO_HAS_DECLTYPE)
struct valid_const_b
{
const_buffer* begin() const { return 0; }
const_buffer* end() const { return 0; }
};
-#endif // defined(ASIO_HAS_DECLTYPE)
struct valid_mutable_a
{
@@ -616,13 +656,11 @@ struct valid_mutable_a
mutable_buffer* end() const { return 0; }
};
-#if defined(ASIO_HAS_DECLTYPE)
struct valid_mutable_b
{
mutable_buffer* begin() const { return 0; }
mutable_buffer* end() const { return 0; }
};
-#endif // defined(ASIO_HAS_DECLTYPE)
struct invalid_const_a
{
@@ -643,7 +681,6 @@ struct invalid_const_c
const_buffer* end() const { return 0; }
};
-#if defined(ASIO_HAS_DECLTYPE)
struct invalid_const_d
{
int* begin() const { return 0; }
@@ -659,7 +696,6 @@ struct invalid_const_f
{
const_buffer* end() const { return 0; }
};
-#endif // defined(ASIO_HAS_DECLTYPE)
struct invalid_mutable_a
{
@@ -680,7 +716,6 @@ struct invalid_mutable_c
mutable_buffer* end() const { return 0; }
};
-#if defined(ASIO_HAS_DECLTYPE)
struct invalid_mutable_d
{
int* begin() const { return 0; }
@@ -696,7 +731,6 @@ struct invalid_mutable_f
{
mutable_buffer* end() const { return 0; }
};
-#endif // defined(ASIO_HAS_DECLTYPE)
void test()
{
@@ -751,14 +785,12 @@ void test()
ASIO_CHECK(buffer_sequence_begin(b7) == b7.begin());
ASIO_CHECK(buffer_sequence_end(b7) == b7.end());
-#if defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(is_const_buffer_sequence<valid_const_b>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<valid_const_b>::value);
valid_const_b b8;
ASIO_CHECK(buffer_sequence_begin(b8) == b8.begin());
ASIO_CHECK(buffer_sequence_end(b8) == b8.end());
-#endif // defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(is_const_buffer_sequence<valid_mutable_a>::value);
ASIO_CHECK(is_mutable_buffer_sequence<valid_mutable_a>::value);
@@ -767,14 +799,12 @@ void test()
ASIO_CHECK(buffer_sequence_begin(b9) == b9.begin());
ASIO_CHECK(buffer_sequence_end(b9) == b9.end());
-#if defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(is_const_buffer_sequence<valid_mutable_b>::value);
ASIO_CHECK(is_mutable_buffer_sequence<valid_mutable_b>::value);
valid_mutable_b b10;
ASIO_CHECK(buffer_sequence_begin(b10) == b10.begin());
ASIO_CHECK(buffer_sequence_end(b10) == b10.end());
-#endif // defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(!is_const_buffer_sequence<invalid_const_a>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_a>::value);
@@ -785,7 +815,6 @@ void test()
ASIO_CHECK(!is_const_buffer_sequence<invalid_const_c>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_c>::value);
-#if defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(!is_const_buffer_sequence<invalid_const_d>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_d>::value);
@@ -794,7 +823,6 @@ void test()
ASIO_CHECK(!is_const_buffer_sequence<invalid_const_f>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_const_f>::value);
-#endif // defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_a>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_a>::value);
@@ -805,7 +833,6 @@ void test()
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_c>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_c>::value);
-#if defined(ASIO_HAS_DECLTYPE)
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_d>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_d>::value);
@@ -814,11 +841,66 @@ void test()
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_f>::value);
ASIO_CHECK(!is_mutable_buffer_sequence<invalid_mutable_f>::value);
-#endif // defined(ASIO_HAS_DECLTYPE)
}
} // namespace buffer_sequence
+namespace buffer_literals {
+
+void test()
+{
+#if defined(ASIO_HAS_USER_DEFINED_LITERALS)
+ using namespace asio::buffer_literals;
+ using namespace std; // For memcmp.
+
+ asio::const_buffer b1 = ""_buf;
+ ASIO_CHECK(b1.size() == 0);
+
+ asio::const_buffer b2 = "hello"_buf;
+ ASIO_CHECK(b2.size() == 5);
+ ASIO_CHECK(memcmp(b2.data(), "hello", 5) == 0);
+
+ asio::const_buffer b3 = 0x00_buf;
+ ASIO_CHECK(b3.size() == 1);
+ ASIO_CHECK(memcmp(b3.data(), "\x00", 1) == 0);
+
+ asio::const_buffer b4 = 0X01_buf;
+ ASIO_CHECK(b4.size() == 1);
+ ASIO_CHECK(memcmp(b4.data(), "\x01", 1) == 0);
+
+ asio::const_buffer b5 = 0xaB_buf;
+ ASIO_CHECK(b5.size() == 1);
+ ASIO_CHECK(memcmp(b5.data(), "\xab", 1) == 0);
+
+ asio::const_buffer b6 = 0xABcd_buf;
+ ASIO_CHECK(b6.size() == 2);
+ ASIO_CHECK(memcmp(b6.data(), "\xab\xcd", 2) == 0);
+
+ asio::const_buffer b7 = 0x01ab01cd01ef01ba01dc01fe_buf;
+ ASIO_CHECK(b7.size() == 12);
+ ASIO_CHECK(memcmp(b7.data(),
+ "\x01\xab\x01\xcd\x01\xef\x01\xba\x01\xdc\x01\xfe", 12) == 0);
+
+ asio::const_buffer b8 = 0b00000000_buf;
+ ASIO_CHECK(b8.size() == 1);
+ ASIO_CHECK(memcmp(b8.data(), "\x00", 1) == 0);
+
+ asio::const_buffer b9 = 0B00000001_buf;
+ ASIO_CHECK(b9.size() == 1);
+ ASIO_CHECK(memcmp(b9.data(), "\x01", 1) == 0);
+
+ asio::const_buffer b10 = 0B11111111_buf;
+ ASIO_CHECK(b10.size() == 1);
+ ASIO_CHECK(memcmp(b10.data(), "\xFF", 1) == 0);
+
+ asio::const_buffer b11 = 0b1111000000001111_buf;
+ ASIO_CHECK(b11.size() == 2);
+ ASIO_CHECK(memcmp(b11.data(), "\xF0\x0F", 2) == 0);
+#endif // (defined(ASIO_HAS_USER_DEFINED_LITERALS)
+}
+
+} // namespace buffer_literals
+
//------------------------------------------------------------------------------
ASIO_TEST_SUITE
@@ -827,4 +909,5 @@ ASIO_TEST_SUITE
ASIO_COMPILE_TEST_CASE(buffer_compile::test)
ASIO_TEST_CASE(buffer_copy_runtime::test)
ASIO_TEST_CASE(buffer_sequence::test)
+ ASIO_TEST_CASE(buffer_literals::test)
)
diff --git a/3rdparty/asio/src/tests/unit/buffer_registration.cpp b/3rdparty/asio/src/tests/unit/buffer_registration.cpp
new file mode 100644
index 00000000000..72826a394cc
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/buffer_registration.cpp
@@ -0,0 +1,25 @@
+//
+// buffer_registration.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/buffer_registration.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "buffer_registration",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp
index d517dbb96ea..21b4abc0bbb 100644
--- a/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp
+++ b/3rdparty/asio/src/tests/unit/buffered_read_stream.cpp
@@ -2,7 +2,7 @@
// buffered_read_stream.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,6 +17,7 @@
#include "asio/buffered_read_stream.hpp"
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/buffer.hpp"
#include "asio/io_context.hpp"
@@ -30,12 +31,6 @@
# include <array>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
typedef asio::buffered_read_stream<
asio::ip::tcp::socket> stream_type;
@@ -247,11 +242,7 @@ void test_async_operations()
{
using namespace std; // For memcmp.
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -332,7 +323,7 @@ void test_async_operations()
ASIO_TEST_SUITE
(
"buffered_read_stream",
- ASIO_TEST_CASE(test_compile)
+ ASIO_COMPILE_TEST_CASE(test_compile)
ASIO_TEST_CASE(test_sync_operations)
ASIO_TEST_CASE(test_async_operations)
)
diff --git a/3rdparty/asio/src/tests/unit/buffered_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_stream.cpp
index d9cf845c0d0..4830ec277de 100644
--- a/3rdparty/asio/src/tests/unit/buffered_stream.cpp
+++ b/3rdparty/asio/src/tests/unit/buffered_stream.cpp
@@ -2,7 +2,7 @@
// buffered_stream.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,6 +17,7 @@
#include "asio/buffered_stream.hpp"
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/buffer.hpp"
#include "asio/io_context.hpp"
@@ -30,12 +31,6 @@
# include <array>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
typedef asio::buffered_stream<
asio::ip::tcp::socket> stream_type;
@@ -265,11 +260,7 @@ void test_async_operations()
{
using namespace std; // For memcmp.
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -358,7 +349,7 @@ void test_async_operations()
ASIO_TEST_SUITE
(
"buffered_stream",
- ASIO_TEST_CASE(test_compile)
+ ASIO_COMPILE_TEST_CASE(test_compile)
ASIO_TEST_CASE(test_sync_operations)
ASIO_TEST_CASE(test_async_operations)
)
diff --git a/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp b/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp
index 8ddbec7abb1..635ff984b8d 100644
--- a/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp
+++ b/3rdparty/asio/src/tests/unit/buffered_write_stream.cpp
@@ -2,7 +2,7 @@
// buffered_write_stream.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,6 +17,7 @@
#include "asio/buffered_write_stream.hpp"
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/buffer.hpp"
#include "asio/io_context.hpp"
@@ -30,12 +31,6 @@
# include <array>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
typedef asio::buffered_write_stream<
asio::ip::tcp::socket> stream_type;
@@ -254,11 +249,7 @@ void test_async_operations()
{
using namespace std; // For memcmp.
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -347,7 +338,7 @@ void test_async_operations()
ASIO_TEST_SUITE
(
"buffered_write_stream",
- ASIO_TEST_CASE(test_compile)
+ ASIO_COMPILE_TEST_CASE(test_compile)
ASIO_TEST_CASE(test_sync_operations)
ASIO_TEST_CASE(test_async_operations)
)
diff --git a/3rdparty/asio/src/tests/unit/buffers_iterator.cpp b/3rdparty/asio/src/tests/unit/buffers_iterator.cpp
index 27df26340a4..071dc1bb8b3 100644
--- a/3rdparty/asio/src/tests/unit/buffers_iterator.cpp
+++ b/3rdparty/asio/src/tests/unit/buffers_iterator.cpp
@@ -2,7 +2,7 @@
// buffers_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,17 +16,10 @@
// Test that header file is self-contained.
#include "asio/buffers_iterator.hpp"
+#include <array>
#include "asio/buffer.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_ARRAY)
-# include <boost/array.hpp>
-#endif // defined(ASIO_HAS_BOOST_ARRAY)
-
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
//------------------------------------------------------------------------------
// buffers_iterator_compile test
@@ -36,11 +29,7 @@
namespace buffers_iterator_compile {
-#if defined(ASIO_HAS_BOOST_ARRAY)
-using boost::array;
-#elif defined(ASIO_HAS_STD_ARRAY)
using std::array;
-#endif // defined(ASIO_HAS_BOOST_ARRAY)
using std::vector;
using namespace asio;
@@ -288,5 +277,5 @@ void test()
ASIO_TEST_SUITE
(
"buffers_iterator",
- ASIO_TEST_CASE(buffers_iterator_compile::test)
+ ASIO_COMPILE_TEST_CASE(buffers_iterator_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/cancellation_signal.cpp b/3rdparty/asio/src/tests/unit/cancellation_signal.cpp
index 50ca93221d0..0b0f72fcbcb 100644
--- a/3rdparty/asio/src/tests/unit/cancellation_signal.cpp
+++ b/3rdparty/asio/src/tests/unit/cancellation_signal.cpp
@@ -2,7 +2,7 @@
// cancellation_signal.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/cancellation_state.cpp b/3rdparty/asio/src/tests/unit/cancellation_state.cpp
index 3e6023f4182..74bc6566916 100644
--- a/3rdparty/asio/src/tests/unit/cancellation_state.cpp
+++ b/3rdparty/asio/src/tests/unit/cancellation_state.cpp
@@ -2,7 +2,7 @@
// cancellation_state.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/cancellation_type.cpp b/3rdparty/asio/src/tests/unit/cancellation_type.cpp
index edf6ccf0c4c..fd6accb0a05 100644
--- a/3rdparty/asio/src/tests/unit/cancellation_type.cpp
+++ b/3rdparty/asio/src/tests/unit/cancellation_type.cpp
@@ -2,7 +2,7 @@
// cancellation_type.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/co_spawn.cpp b/3rdparty/asio/src/tests/unit/co_spawn.cpp
index e902e1f2d0a..c5d1fbf776d 100644
--- a/3rdparty/asio/src/tests/unit/co_spawn.cpp
+++ b/3rdparty/asio/src/tests/unit/co_spawn.cpp
@@ -2,7 +2,7 @@
// co_spawn.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -18,8 +18,116 @@
#include "unit_test.hpp"
+#if defined(ASIO_HAS_CO_AWAIT)
+
+#include <stdexcept>
+#include "asio/any_completion_handler.hpp"
+#include "asio/bind_cancellation_slot.hpp"
+#include "asio/io_context.hpp"
+
+asio::awaitable<void> void_returning_coroutine()
+{
+ co_return;
+}
+
+asio::awaitable<int> int_returning_coroutine()
+{
+ co_return 42;
+}
+
+void test_co_spawn_with_any_completion_handler()
+{
+ asio::io_context ctx;
+
+ bool called = false;
+ asio::co_spawn(ctx, void_returning_coroutine(),
+ asio::any_completion_handler<void(std::exception_ptr)>(
+ [&](std::exception_ptr)
+ {
+ called = true;
+ }));
+
+ ASIO_CHECK(!called);
+
+ ctx.run();
+
+ ASIO_CHECK(called);
+
+ int result = 0;
+ asio::co_spawn(ctx, int_returning_coroutine(),
+ asio::any_completion_handler<void(std::exception_ptr, int)>(
+ [&](std::exception_ptr, int i)
+ {
+ result = i;
+ }));
+
+ ASIO_CHECK(result == 0);
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(result == 42);
+}
+
+void test_co_spawn_immediate_cancel()
+{
+ asio::cancellation_signal sig;
+ asio::io_context ctx;
+
+ std::exception_ptr result = nullptr;
+ bool called = false;
+ asio::co_spawn(ctx, void_returning_coroutine(),
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](std::exception_ptr e)
+ {
+ result = e;
+ called = true;
+ }));
+
+ ASIO_CHECK(!called);
+ ASIO_CHECK(result == nullptr);
+
+ sig.emit(asio::cancellation_type::all);
+ ctx.run();
+
+ ASIO_CHECK(called);
+ ASIO_CHECK(result != nullptr);
+
+ result = nullptr;
+ called = false;
+ asio::co_spawn(ctx, int_returning_coroutine(),
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](std::exception_ptr e, int i)
+ {
+ ASIO_CHECK(i != 42);
+ result = e;
+ called = true;
+ }));
+
+ ASIO_CHECK(!called);
+ ASIO_CHECK(result == nullptr);
+
+ sig.emit(asio::cancellation_type::all);
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(called);
+ ASIO_CHECK(result != nullptr);
+}
+
+ASIO_TEST_SUITE
+(
+ "co_spawn",
+ ASIO_TEST_CASE(test_co_spawn_with_any_completion_handler)
+ ASIO_TEST_CASE(test_co_spawn_immediate_cancel)
+)
+
+#else // defined(ASIO_HAS_CO_AWAIT)
+
ASIO_TEST_SUITE
(
"co_spawn",
ASIO_TEST_CASE(null_test)
)
+
+#endif // defined(ASIO_HAS_CO_AWAIT)
diff --git a/3rdparty/asio/src/tests/unit/completion_condition.cpp b/3rdparty/asio/src/tests/unit/completion_condition.cpp
index 3986b5a545a..106789e5e3c 100644
--- a/3rdparty/asio/src/tests/unit/completion_condition.cpp
+++ b/3rdparty/asio/src/tests/unit/completion_condition.cpp
@@ -2,7 +2,7 @@
// completion_condition.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/compose.cpp b/3rdparty/asio/src/tests/unit/compose.cpp
index faf515fa184..c9820af2fd3 100644
--- a/3rdparty/asio/src/tests/unit/compose.cpp
+++ b/3rdparty/asio/src/tests/unit/compose.cpp
@@ -2,7 +2,7 @@
// compose.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,19 +16,13 @@
// Test that header file is self-contained.
#include "asio/compose.hpp"
-#include "unit_test.hpp"
-
+#include <functional>
#include "asio/bind_cancellation_slot.hpp"
#include "asio/cancellation_signal.hpp"
#include "asio/io_context.hpp"
#include "asio/post.hpp"
#include "asio/system_timer.hpp"
-
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
+#include "unit_test.hpp"
//------------------------------------------------------------------------------
@@ -48,7 +42,7 @@ public:
{
case starting:
state_ = posting;
- asio::post(ioc_, ASIO_MOVE_CAST(Self)(self));
+ asio::post(ioc_, static_cast<Self&&>(self));
break;
case posting:
self.complete();
@@ -66,7 +60,7 @@ private:
template <typename CompletionToken>
ASIO_INITFN_RESULT_TYPE(CompletionToken, void())
async_0_completion_args(asio::io_context& ioc,
- ASIO_MOVE_ARG(CompletionToken) token)
+ CompletionToken&& token)
{
return asio::async_compose<CompletionToken, void()>(
impl_0_completion_args(ioc), token);
@@ -89,11 +83,7 @@ struct compose_0_args_lvalue_handler
void compose_0_completion_args_test()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
asio::io_context ioc;
int count = 0;
@@ -145,7 +135,7 @@ public:
{
case starting:
state_ = posting;
- asio::post(ioc_, ASIO_MOVE_CAST(Self)(self));
+ asio::post(ioc_, static_cast<Self&&>(self));
break;
case posting:
self.complete(42);
@@ -163,7 +153,7 @@ private:
template <typename CompletionToken>
ASIO_INITFN_RESULT_TYPE(CompletionToken, void(int))
async_1_completion_arg(asio::io_context& ioc,
- ASIO_MOVE_ARG(CompletionToken) token)
+ CompletionToken&& token)
{
return asio::async_compose<CompletionToken, void(int)>(
impl_1_completion_arg(ioc), token);
@@ -189,11 +179,7 @@ struct compose_1_arg_lvalue_handler
void compose_1_completion_arg_test()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
asio::io_context ioc;
@@ -262,7 +248,7 @@ public:
self.reset_cancellation_state(cancellation_filter_);
state_ = waiting;
timer_.expires_after(asio::chrono::milliseconds(100));
- timer_.async_wait(ASIO_MOVE_CAST(Self)(self));
+ timer_.async_wait(static_cast<Self&&>(self));
break;
case waiting:
self.complete(!ec);
@@ -282,7 +268,7 @@ template <typename CancellationFilter, typename CompletionToken>
ASIO_INITFN_RESULT_TYPE(CompletionToken, void(bool))
async_cancellable(CancellationFilter cancellation_filter,
asio::system_timer& timer,
- ASIO_MOVE_ARG(CompletionToken) token)
+ CompletionToken&& token)
{
return asio::async_compose<CompletionToken, void(bool)>(
impl_cancellable<CancellationFilter>(cancellation_filter, timer), token);
@@ -297,11 +283,7 @@ void compose_partial_cancellation_handler(
void compose_default_cancellation_test()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
asio::io_context ioc;
@@ -379,11 +361,7 @@ void compose_default_cancellation_test()
void compose_partial_cancellation_test()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
asio::io_context ioc;
@@ -461,11 +439,7 @@ void compose_partial_cancellation_test()
void compose_total_cancellation_test()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
asio::io_context ioc;
diff --git a/3rdparty/asio/src/tests/unit/connect.cpp b/3rdparty/asio/src/tests/unit/connect.cpp
index b7306b02abe..16c0331b4a3 100644
--- a/3rdparty/asio/src/tests/unit/connect.cpp
+++ b/3rdparty/asio/src/tests/unit/connect.cpp
@@ -2,7 +2,7 @@
// connect.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,23 +16,13 @@
// Test that header file is self-contained.
#include "asio/connect.hpp"
+#include <functional>
#include <vector>
#include "asio/detail/thread.hpp"
#include "asio/ip/tcp.hpp"
-
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
diff --git a/3rdparty/asio/src/tests/unit/connect_pipe.cpp b/3rdparty/asio/src/tests/unit/connect_pipe.cpp
new file mode 100644
index 00000000000..8c71a5d093c
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/connect_pipe.cpp
@@ -0,0 +1,154 @@
+//
+// connect_pipe.cpp
+// ~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/connect_pipe.hpp"
+
+#include <functional>
+#include <string>
+#include "asio/io_context.hpp"
+#include "asio/read.hpp"
+#include "asio/readable_pipe.hpp"
+#include "asio/writable_pipe.hpp"
+#include "asio/write.hpp"
+#include "unit_test.hpp"
+
+//------------------------------------------------------------------------------
+
+// connect_pipe_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all connect_pipe functions compile and link
+// correctly. Runtime failures are ignored.
+
+namespace connect_pipe_compile {
+
+void test()
+{
+#if defined(ASIO_HAS_PIPE)
+ using namespace asio;
+
+ try
+ {
+ asio::io_context io_context;
+ asio::error_code ec1;
+
+ readable_pipe p1(io_context);
+ writable_pipe p2(io_context);
+ connect_pipe(p1, p2);
+
+ readable_pipe p3(io_context);
+ writable_pipe p4(io_context);
+ connect_pipe(p3, p4, ec1);
+ }
+ catch (std::exception&)
+ {
+ }
+#endif // defined(ASIO_HAS_PIPE)
+}
+
+} // namespace connect_pipe_compile
+
+//------------------------------------------------------------------------------
+
+// connect_pipe_runtime test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that connect_pipe operates correctly at runtime.
+
+namespace connect_pipe_runtime {
+
+static const char write_data[]
+ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+void handle_read(const asio::error_code& err,
+ size_t bytes_transferred, bool* called)
+{
+ *called = true;
+ ASIO_CHECK(!err);
+ ASIO_CHECK(bytes_transferred == sizeof(write_data));
+}
+
+void handle_write(const asio::error_code& err,
+ size_t bytes_transferred, bool* called)
+{
+ *called = true;
+ ASIO_CHECK(!err);
+ ASIO_CHECK(bytes_transferred == sizeof(write_data));
+}
+
+void test()
+{
+#if defined(ASIO_HAS_PIPE)
+ using namespace std; // For memcmp.
+ using namespace asio;
+
+ namespace bindns = std;
+ using bindns::placeholders::_1;
+ using bindns::placeholders::_2;
+
+ try
+ {
+ asio::io_context io_context;
+ asio::error_code ec1;
+ asio::error_code ec2;
+
+ readable_pipe p1(io_context);
+ writable_pipe p2(io_context);
+ connect_pipe(p1, p2);
+
+ std::string data1 = write_data;
+ asio::write(p2, asio::buffer(data1));
+
+ std::string data2;
+ data2.resize(data1.size());
+ asio::read(p1, asio::buffer(data2));
+
+ ASIO_CHECK(data1 == data2);
+
+ char read_buffer[sizeof(write_data)];
+ bool read_completed = false;
+ asio::async_read(p1,
+ asio::buffer(read_buffer),
+ bindns::bind(handle_read,
+ _1, _2, &read_completed));
+
+ bool write_completed = false;
+ asio::async_write(p2,
+ asio::buffer(write_data),
+ bindns::bind(handle_write,
+ _1, _2, &write_completed));
+
+ io_context.run();
+
+ ASIO_CHECK(read_completed);
+ ASIO_CHECK(write_completed);
+ ASIO_CHECK(memcmp(read_buffer, write_data, sizeof(write_data)) == 0);
+ }
+ catch (std::exception&)
+ {
+ ASIO_CHECK(false);
+ }
+#endif // defined(ASIO_HAS_PIPE)
+}
+
+} // namespace connect_pipe_compile
+
+//------------------------------------------------------------------------------
+
+ASIO_TEST_SUITE
+(
+ "connect_pipe",
+ ASIO_COMPILE_TEST_CASE(connect_pipe_compile::test)
+ ASIO_TEST_CASE(connect_pipe_runtime::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/consign.cpp b/3rdparty/asio/src/tests/unit/consign.cpp
new file mode 100644
index 00000000000..b24f5281c75
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/consign.cpp
@@ -0,0 +1,56 @@
+//
+// consign.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/consign.hpp"
+
+#include "asio/bind_executor.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "asio/system_timer.hpp"
+#include "unit_test.hpp"
+
+void consign_test()
+{
+ asio::io_context io1;
+ asio::io_context io2;
+ asio::system_timer timer1(io1);
+ int count = 0;
+
+ timer1.expires_after(asio::chrono::seconds(0));
+ timer1.async_wait(
+ asio::consign(
+ asio::bind_executor(io2.get_executor(),
+ [&count](asio::error_code)
+ {
+ ++count;
+ }), 123, 321));
+
+ ASIO_CHECK(count == 0);
+
+ io1.run();
+
+ ASIO_CHECK(count == 0);
+
+ io2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+ASIO_TEST_SUITE
+(
+ "consign",
+ ASIO_TEST_CASE(consign_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/coroutine.cpp b/3rdparty/asio/src/tests/unit/coroutine.cpp
index cd8fc9c12ba..72e6953a31a 100644
--- a/3rdparty/asio/src/tests/unit/coroutine.cpp
+++ b/3rdparty/asio/src/tests/unit/coroutine.cpp
@@ -2,7 +2,7 @@
// coroutine.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/deadline_timer.cpp b/3rdparty/asio/src/tests/unit/deadline_timer.cpp
index 15d00b0d83b..9bc7f16fcd2 100644
--- a/3rdparty/asio/src/tests/unit/deadline_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/deadline_timer.cpp
@@ -2,7 +2,7 @@
// deadline_timer.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -268,18 +268,18 @@ struct custom_allocation_timer_handler
typedef allocator<U> other;
};
- explicit allocator(int* count) ASIO_NOEXCEPT
+ explicit allocator(int* count) noexcept
: count_(count)
{
}
- allocator(const allocator& other) ASIO_NOEXCEPT
+ allocator(const allocator& other) noexcept
: count_(other.count_)
{
}
template <typename U>
- allocator(const allocator<U>& other) ASIO_NOEXCEPT
+ allocator(const allocator<U>& other) noexcept
: count_(other.count_)
{
}
@@ -316,7 +316,7 @@ struct custom_allocation_timer_handler
typedef allocator<int> allocator_type;
- allocator_type get_allocator() const ASIO_NOEXCEPT
+ allocator_type get_allocator() const noexcept
{
return allocator_type(count_);
}
@@ -396,7 +396,6 @@ void deadline_timer_async_result_test()
ioc.run();
}
-#if defined(ASIO_HAS_MOVE)
asio::deadline_timer make_timer(asio::io_context& ioc, int* count)
{
asio::deadline_timer t(ioc);
@@ -404,11 +403,9 @@ asio::deadline_timer make_timer(asio::io_context& ioc, int* count)
t.async_wait(boost::bind(increment, count));
return t;
}
-#endif // defined(ASIO_HAS_MOVE)
void deadline_timer_move_test()
{
-#if defined(ASIO_HAS_MOVE)
asio::io_context io_context1;
asio::io_context io_context2;
int count = 0;
@@ -426,7 +423,6 @@ void deadline_timer_move_test()
io_context1.run();
ASIO_CHECK(count == 2);
-#endif // defined(ASIO_HAS_MOVE)
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/defer.cpp b/3rdparty/asio/src/tests/unit/defer.cpp
index f7f03b326bf..f41c1b9f025 100644
--- a/3rdparty/asio/src/tests/unit/defer.cpp
+++ b/3rdparty/asio/src/tests/unit/defer.cpp
@@ -2,7 +2,7 @@
// defer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/experimental/deferred.cpp b/3rdparty/asio/src/tests/unit/deferred.cpp
index a5ae8ed85e5..b2db70d4b3d 100644
--- a/3rdparty/asio/src/tests/unit/experimental/deferred.cpp
+++ b/3rdparty/asio/src/tests/unit/deferred.cpp
@@ -1,8 +1,8 @@
//
-// experimental/deferred.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~
+// deferred.cpp
+// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -14,9 +14,9 @@
#endif // !defined(BOOST_ALL_NO_LIB)
// Test that header file is self-contained.
-#include "asio/experimental/deferred.hpp"
+#include "asio/deferred.hpp"
-#include "../unit_test.hpp"
+#include "unit_test.hpp"
ASIO_TEST_SUITE
(
diff --git a/3rdparty/asio/src/tests/unit/detached.cpp b/3rdparty/asio/src/tests/unit/detached.cpp
index 2ccd619cef0..506c13d8773 100644
--- a/3rdparty/asio/src/tests/unit/detached.cpp
+++ b/3rdparty/asio/src/tests/unit/detached.cpp
@@ -2,7 +2,7 @@
// detached.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/dispatch.cpp b/3rdparty/asio/src/tests/unit/dispatch.cpp
index 4d67530f5ba..f6fb84d4f91 100644
--- a/3rdparty/asio/src/tests/unit/dispatch.cpp
+++ b/3rdparty/asio/src/tests/unit/dispatch.cpp
@@ -2,7 +2,7 @@
// dispatch.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/error.cpp b/3rdparty/asio/src/tests/unit/error.cpp
index 79c0c75336c..3f8aa75efbe 100644
--- a/3rdparty/asio/src/tests/unit/error.cpp
+++ b/3rdparty/asio/src/tests/unit/error.cpp
@@ -2,7 +2,7 @@
// error.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/execution/any_executor.cpp b/3rdparty/asio/src/tests/unit/execution/any_executor.cpp
index d18c58c2843..3e2dabdc5a5 100644
--- a/3rdparty/asio/src/tests/unit/execution/any_executor.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/any_executor.cpp
@@ -2,7 +2,7 @@
// any_executor.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,22 +17,25 @@
#include "asio/execution/any_executor.hpp"
#include <cstring>
+#include <functional>
#include "asio/thread_pool.hpp"
#include "../unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
+
+static bool next_nothrow_new_fails = false;
+
+void* operator new(std::size_t n,
+ const std::nothrow_t&) noexcept
+{
+ if (next_nothrow_new_fails)
+ {
+ next_nothrow_new_fails = false;
+ return 0;
+ }
+ return ::operator new(n);
+}
struct fat_executor
{
@@ -53,13 +56,13 @@ struct fat_executor
}
friend bool operator==(const fat_executor& a,
- const fat_executor& b) ASIO_NOEXCEPT
+ const fat_executor& b) noexcept
{
return a.id_ == b.id_;
}
friend bool operator!=(const fat_executor& a,
- const fat_executor& b) ASIO_NOEXCEPT
+ const fat_executor& b) noexcept
{
return a.id_ != b.id_;
}
@@ -76,8 +79,8 @@ namespace traits {
template <typename F>
struct execute_member<fat_executor, F>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef void result_type;
};
@@ -88,8 +91,8 @@ struct execute_member<fat_executor, F>
template <>
struct query_member<fat_executor, execution::occupancy_t>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef std::size_t result_type;
};
@@ -100,8 +103,8 @@ struct query_member<fat_executor, execution::occupancy_t>
template <>
struct equality_comparable<fat_executor>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -189,7 +192,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_two_props_9 == ex_two_props_7);
ASIO_CHECK(ex_two_props_9 != ex_two_props_8);
-#if defined(ASIO_HAS_MOVE)
ex_two_props_t ex_two_props_10(std::move(ex_two_props_1));
ASIO_CHECK(ex_two_props_10.target<void>() == 0);
@@ -213,7 +215,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_two_props_7 == null_ptr);
ASIO_CHECK(ex_two_props_12 == ex_two_props_6);
ASIO_CHECK(ex_two_props_12 != ex_two_props_8);
-#endif // defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_1;
@@ -274,7 +275,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_one_prop_9 == ex_one_prop_7);
ASIO_CHECK(ex_one_prop_9 != ex_one_prop_8);
-#if defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_10(std::move(ex_one_prop_1));
ASIO_CHECK(ex_one_prop_10.target<void>() == 0);
@@ -298,7 +298,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_one_prop_7 == null_ptr);
ASIO_CHECK(ex_one_prop_12 == ex_one_prop_6);
ASIO_CHECK(ex_one_prop_12 != ex_one_prop_8);
-#endif // defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_13(ex_two_props_1);
@@ -374,7 +373,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_no_props_9 == ex_no_props_7);
ASIO_CHECK(ex_no_props_9 != ex_no_props_8);
-#if defined(ASIO_HAS_MOVE)
ex_no_props_t ex_no_props_10(std::move(ex_no_props_1));
ASIO_CHECK(ex_no_props_10.target<void>() == 0);
@@ -398,7 +396,6 @@ void any_executor_construction_test()
ASIO_CHECK(ex_no_props_7 == null_ptr);
ASIO_CHECK(ex_no_props_12 == ex_no_props_6);
ASIO_CHECK(ex_no_props_12 != ex_no_props_8);
-#endif // defined(ASIO_HAS_MOVE)
ex_no_props_t ex_no_props_13(ex_two_props_1);
@@ -431,6 +428,338 @@ void any_executor_construction_test()
ASIO_CHECK(ex_no_props_18 != null_ptr);
}
+void any_executor_nothrow_construction_test()
+{
+ typedef execution::any_executor<> ex_no_props_t;
+
+ typedef execution::any_executor<
+ execution::blocking_t
+ > ex_one_prop_t;
+
+ typedef execution::any_executor<
+ execution::blocking_t,
+ execution::occupancy_t
+ > ex_two_props_t;
+
+ thread_pool pool(1);
+ asio::nullptr_t null_ptr = asio::nullptr_t();
+
+ ex_two_props_t ex_two_props_1;
+
+ ASIO_CHECK(ex_two_props_1.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_1 == null_ptr);
+
+ ex_two_props_t ex_two_props_2(null_ptr);
+
+ ASIO_CHECK(ex_two_props_2.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_2 == null_ptr);
+ ASIO_CHECK(ex_two_props_2 == ex_two_props_1);
+
+ ex_two_props_t ex_two_props_3(std::nothrow, pool.executor());
+
+ ASIO_CHECK(ex_two_props_3.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_3 != null_ptr);
+ ASIO_CHECK(ex_two_props_3 != ex_two_props_1);
+
+ ex_two_props_t ex_two_props_4(std::nothrow, ex_two_props_1);
+
+ ASIO_CHECK(ex_two_props_4.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_4 == null_ptr);
+ ASIO_CHECK(ex_two_props_4 == ex_two_props_1);
+
+ ex_two_props_t ex_two_props_5(std::nothrow, ex_two_props_3);
+
+ ASIO_CHECK(ex_two_props_5.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_5 != null_ptr);
+ ASIO_CHECK(ex_two_props_5 == ex_two_props_3);
+
+ ex_two_props_t ex_two_props_6(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex_two_props_6.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_6 != null_ptr);
+ ASIO_CHECK(ex_two_props_6 != ex_two_props_1);
+
+ ex_two_props_t ex_two_props_7(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex_two_props_7.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_7 != null_ptr);
+ ASIO_CHECK(ex_two_props_7 != ex_two_props_1);
+ ASIO_CHECK(ex_two_props_7 == ex_two_props_6);
+
+ ex_two_props_t ex_two_props_8(std::nothrow, fat_executor(2));
+
+ ASIO_CHECK(ex_two_props_8.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_8 != null_ptr);
+ ASIO_CHECK(ex_two_props_8 != ex_two_props_1);
+ ASIO_CHECK(ex_two_props_8 != ex_two_props_6);
+ ASIO_CHECK(ex_two_props_8 != ex_two_props_7);
+
+ ex_two_props_t ex_two_props_9(std::nothrow, ex_two_props_6);
+
+ ASIO_CHECK(ex_two_props_9.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_9 != null_ptr);
+ ASIO_CHECK(ex_two_props_9 != ex_two_props_1);
+ ASIO_CHECK(ex_two_props_9 == ex_two_props_6);
+ ASIO_CHECK(ex_two_props_9 == ex_two_props_7);
+ ASIO_CHECK(ex_two_props_9 != ex_two_props_8);
+
+ ex_two_props_t ex_two_props_10(std::nothrow, std::move(ex_two_props_1));
+
+ ASIO_CHECK(ex_two_props_10.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_10 == null_ptr);
+ ASIO_CHECK(ex_two_props_1.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_1 == null_ptr);
+
+ ex_two_props_t ex_two_props_11(std::nothrow, std::move(ex_two_props_3));
+
+ ASIO_CHECK(ex_two_props_11.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_11 != null_ptr);
+ ASIO_CHECK(ex_two_props_3.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_3 == null_ptr);
+ ASIO_CHECK(ex_two_props_11 == ex_two_props_5);
+
+ ex_two_props_t ex_two_props_12(std::nothrow, std::move(ex_two_props_7));
+
+ ASIO_CHECK(ex_two_props_12.target<void>() != 0);
+ ASIO_CHECK(ex_two_props_12 != null_ptr);
+ ASIO_CHECK(ex_two_props_7.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_7 == null_ptr);
+ ASIO_CHECK(ex_two_props_12 == ex_two_props_6);
+ ASIO_CHECK(ex_two_props_12 != ex_two_props_8);
+
+ next_nothrow_new_fails = true;
+ ex_two_props_t ex_two_props_13(std::nothrow, fat_executor(3));
+
+ ASIO_CHECK(ex_two_props_13.target<void>() == 0);
+ ASIO_CHECK(ex_two_props_13 == null_ptr);
+ ASIO_CHECK(ex_two_props_13 == ex_two_props_1);
+
+ ex_one_prop_t ex_one_prop_1;
+
+ ASIO_CHECK(ex_one_prop_1.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_1 == null_ptr);
+
+ ex_one_prop_t ex_one_prop_2(null_ptr);
+
+ ASIO_CHECK(ex_one_prop_2.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_2 == null_ptr);
+ ASIO_CHECK(ex_one_prop_2 == ex_one_prop_1);
+
+ ex_one_prop_t ex_one_prop_3(std::nothrow, pool.executor());
+
+ ASIO_CHECK(ex_one_prop_3.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_3 != null_ptr);
+ ASIO_CHECK(ex_one_prop_3 != ex_one_prop_1);
+
+ ex_one_prop_t ex_one_prop_4(std::nothrow, ex_one_prop_1);
+
+ ASIO_CHECK(ex_one_prop_4.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_4 == null_ptr);
+ ASIO_CHECK(ex_one_prop_4 == ex_one_prop_1);
+
+ ex_one_prop_t ex_one_prop_5(std::nothrow, ex_one_prop_3);
+
+ ASIO_CHECK(ex_one_prop_5.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_5 != null_ptr);
+ ASIO_CHECK(ex_one_prop_5 == ex_one_prop_3);
+
+ ex_one_prop_t ex_one_prop_6 = fat_executor(1);
+
+ ASIO_CHECK(ex_one_prop_6.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_6 != null_ptr);
+ ASIO_CHECK(ex_one_prop_6 != ex_one_prop_1);
+
+ ex_one_prop_t ex_one_prop_7(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex_one_prop_7.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_7 != null_ptr);
+ ASIO_CHECK(ex_one_prop_7 != ex_one_prop_1);
+ ASIO_CHECK(ex_one_prop_7 == ex_one_prop_6);
+
+ ex_one_prop_t ex_one_prop_8(std::nothrow, fat_executor(2));
+
+ ASIO_CHECK(ex_one_prop_8.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_8 != null_ptr);
+ ASIO_CHECK(ex_one_prop_8 != ex_one_prop_1);
+ ASIO_CHECK(ex_one_prop_8 != ex_one_prop_6);
+ ASIO_CHECK(ex_one_prop_8 != ex_one_prop_7);
+
+ ex_one_prop_t ex_one_prop_9(std::nothrow, ex_one_prop_6);
+
+ ASIO_CHECK(ex_one_prop_9.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_9 != null_ptr);
+ ASIO_CHECK(ex_one_prop_9 != ex_one_prop_1);
+ ASIO_CHECK(ex_one_prop_9 == ex_one_prop_6);
+ ASIO_CHECK(ex_one_prop_9 == ex_one_prop_7);
+ ASIO_CHECK(ex_one_prop_9 != ex_one_prop_8);
+
+ ex_one_prop_t ex_one_prop_10(std::nothrow, std::move(ex_one_prop_1));
+
+ ASIO_CHECK(ex_one_prop_10.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_10 == null_ptr);
+ ASIO_CHECK(ex_one_prop_1.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_1 == null_ptr);
+
+ ex_one_prop_t ex_one_prop_11(std::nothrow, std::move(ex_one_prop_3));
+
+ ASIO_CHECK(ex_one_prop_11.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_11 != null_ptr);
+ ASIO_CHECK(ex_one_prop_3.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_3 == null_ptr);
+ ASIO_CHECK(ex_one_prop_11 == ex_one_prop_5);
+
+ ex_one_prop_t ex_one_prop_12(std::nothrow, std::move(ex_one_prop_7));
+
+ ASIO_CHECK(ex_one_prop_12.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_12 != null_ptr);
+ ASIO_CHECK(ex_one_prop_7.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_7 == null_ptr);
+ ASIO_CHECK(ex_one_prop_12 == ex_one_prop_6);
+ ASIO_CHECK(ex_one_prop_12 != ex_one_prop_8);
+
+ ex_one_prop_t ex_one_prop_13(std::nothrow, ex_two_props_1);
+
+ ASIO_CHECK(ex_one_prop_13.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_13 == null_ptr);
+
+ ex_one_prop_t ex_one_prop_14(std::nothrow, ex_two_props_5);
+
+ ASIO_CHECK(ex_one_prop_14.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_14 != null_ptr);
+
+ ex_one_prop_t ex_one_prop_15(std::nothrow, ex_two_props_9);
+
+ ASIO_CHECK(ex_one_prop_15.target<void>() != 0);
+ ASIO_CHECK(ex_one_prop_15 != null_ptr);
+
+ next_nothrow_new_fails = true;
+ ex_one_prop_t ex_one_prop_16(std::nothrow, fat_executor(3));
+
+ ASIO_CHECK(ex_one_prop_16.target<void>() == 0);
+ ASIO_CHECK(ex_one_prop_16 == null_ptr);
+ ASIO_CHECK(ex_one_prop_16 == ex_one_prop_1);
+
+ ex_no_props_t ex_no_props_1;
+
+ ASIO_CHECK(ex_no_props_1.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_1 == null_ptr);
+
+ ex_no_props_t ex_no_props_2(null_ptr);
+
+ ASIO_CHECK(ex_no_props_2.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_2 == null_ptr);
+ ASIO_CHECK(ex_no_props_2 == ex_no_props_1);
+
+ ex_no_props_t ex_no_props_3(std::nothrow, pool.executor());
+
+ ASIO_CHECK(ex_no_props_3.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_3 != null_ptr);
+ ASIO_CHECK(ex_no_props_3 != ex_no_props_1);
+
+ ex_no_props_t ex_no_props_4(std::nothrow, ex_no_props_1);
+
+ ASIO_CHECK(ex_no_props_4.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_4 == null_ptr);
+ ASIO_CHECK(ex_no_props_4 == ex_no_props_1);
+
+ ex_no_props_t ex_no_props_5(std::nothrow, ex_no_props_3);
+
+ ASIO_CHECK(ex_no_props_5.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_5 != null_ptr);
+ ASIO_CHECK(ex_no_props_5 == ex_no_props_3);
+
+ ex_no_props_t ex_no_props_6(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex_no_props_6.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_6 != null_ptr);
+ ASIO_CHECK(ex_no_props_6 != ex_no_props_1);
+
+ ex_no_props_t ex_no_props_7(std::nothrow, fat_executor(1));
+
+ ASIO_CHECK(ex_no_props_7.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_7 != null_ptr);
+ ASIO_CHECK(ex_no_props_7 != ex_no_props_1);
+ ASIO_CHECK(ex_no_props_7 == ex_no_props_6);
+
+ ex_no_props_t ex_no_props_8(std::nothrow, fat_executor(2));
+
+ ASIO_CHECK(ex_no_props_8.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_8 != null_ptr);
+ ASIO_CHECK(ex_no_props_8 != ex_no_props_1);
+ ASIO_CHECK(ex_no_props_8 != ex_no_props_6);
+ ASIO_CHECK(ex_no_props_8 != ex_no_props_7);
+
+ ex_no_props_t ex_no_props_9(std::nothrow, ex_no_props_6);
+
+ ASIO_CHECK(ex_no_props_9.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_9 != null_ptr);
+ ASIO_CHECK(ex_no_props_9 != ex_no_props_1);
+ ASIO_CHECK(ex_no_props_9 == ex_no_props_6);
+ ASIO_CHECK(ex_no_props_9 == ex_no_props_7);
+ ASIO_CHECK(ex_no_props_9 != ex_no_props_8);
+
+ ex_no_props_t ex_no_props_10(std::nothrow, std::move(ex_no_props_1));
+
+ ASIO_CHECK(ex_no_props_10.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_10 == null_ptr);
+ ASIO_CHECK(ex_no_props_1.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_1 == null_ptr);
+
+ ex_no_props_t ex_no_props_11(std::nothrow, std::move(ex_no_props_3));
+
+ ASIO_CHECK(ex_no_props_11.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_11 != null_ptr);
+ ASIO_CHECK(ex_no_props_3.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_3 == null_ptr);
+ ASIO_CHECK(ex_no_props_11 == ex_no_props_5);
+
+ ex_no_props_t ex_no_props_12(std::nothrow, std::move(ex_no_props_7));
+
+ ASIO_CHECK(ex_no_props_12.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_12 != null_ptr);
+ ASIO_CHECK(ex_no_props_7.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_7 == null_ptr);
+ ASIO_CHECK(ex_no_props_12 == ex_no_props_6);
+ ASIO_CHECK(ex_no_props_12 != ex_no_props_8);
+
+ ex_no_props_t ex_no_props_13(std::nothrow, ex_two_props_1);
+
+ ASIO_CHECK(ex_no_props_13.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_13 == null_ptr);
+
+ ex_no_props_t ex_no_props_14(std::nothrow, ex_two_props_5);
+
+ ASIO_CHECK(ex_no_props_14.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_14 != null_ptr);
+
+ ex_no_props_t ex_no_props_15(std::nothrow, ex_two_props_9);
+
+ ASIO_CHECK(ex_no_props_15.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_15 != null_ptr);
+
+ ex_no_props_t ex_no_props_16(std::nothrow, ex_one_prop_1);
+
+ ASIO_CHECK(ex_no_props_16.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_16 == null_ptr);
+
+ ex_no_props_t ex_no_props_17(std::nothrow, ex_one_prop_5);
+
+ ASIO_CHECK(ex_no_props_17.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_17 != null_ptr);
+
+ ex_no_props_t ex_no_props_18(std::nothrow, ex_one_prop_9);
+
+ ASIO_CHECK(ex_no_props_18.target<void>() != 0);
+ ASIO_CHECK(ex_no_props_18 != null_ptr);
+
+ next_nothrow_new_fails = true;
+ ex_no_props_t ex_no_props_19(std::nothrow, fat_executor(3));
+
+ ASIO_CHECK(ex_no_props_19.target<void>() == 0);
+ ASIO_CHECK(ex_no_props_19 == null_ptr);
+ ASIO_CHECK(ex_no_props_19 == ex_no_props_1);
+}
+
void any_executor_assignment_test()
{
typedef execution::any_executor<> ex_no_props_t;
@@ -501,7 +830,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_two_props_7 == ex_two_props_5);
ASIO_CHECK(ex_two_props_7 != ex_two_props_6);
-#if defined(ASIO_HAS_MOVE)
ex_two_props_t ex_two_props_8;
ex_two_props_8 = std::move(ex_two_props_1);
@@ -519,7 +847,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_two_props_8.target<void>() != 0);
ASIO_CHECK(ex_two_props_5.target<void>() == 0);
ASIO_CHECK(ex_two_props_8 == ex_two_props_7);
-#endif // defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_1;
@@ -575,7 +902,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_one_prop_7 == ex_one_prop_5);
ASIO_CHECK(ex_one_prop_7 != ex_one_prop_6);
-#if defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_8;
ex_one_prop_8 = std::move(ex_one_prop_1);
@@ -593,7 +919,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_one_prop_8.target<void>() != 0);
ASIO_CHECK(ex_one_prop_5.target<void>() == 0);
ASIO_CHECK(ex_one_prop_8 == ex_one_prop_7);
-#endif // defined(ASIO_HAS_MOVE)
ex_one_prop_t ex_one_prop_9;
ex_one_prop_9 = ex_two_props_1;
@@ -662,7 +987,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_no_props_7 == ex_no_props_5);
ASIO_CHECK(ex_no_props_7 != ex_no_props_6);
-#if defined(ASIO_HAS_MOVE)
ex_no_props_t ex_no_props_8;
ex_no_props_8 = std::move(ex_no_props_1);
@@ -680,7 +1004,6 @@ void any_executor_assignment_test()
ASIO_CHECK(ex_no_props_8.target<void>() != 0);
ASIO_CHECK(ex_no_props_5.target<void>() == 0);
ASIO_CHECK(ex_no_props_8 == ex_no_props_7);
-#endif // defined(ASIO_HAS_MOVE)
ex_no_props_t ex_no_props_9;
ex_no_props_9 = ex_two_props_1;
@@ -838,37 +1161,29 @@ void any_executor_execute_test()
execution::relationship_t::continuation_t>
ex(pool.executor());
- asio::execution::execute(pool.executor(),
- bindns::bind(increment, &count));
+ ex.execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.possibly),
+ asio::require(ex, asio::execution::blocking.possibly).execute(
bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never),
+ asio::require(ex, asio::execution::blocking.never).execute(
bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked),
- bindns::bind(increment, &count));
+ asio::require(ex,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.tracked
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked),
- bindns::bind(increment, &count));
+ asio::require(ex,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- bindns::bind(increment, &count));
+ asio::require(ex,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
pool.wait();
@@ -879,6 +1194,7 @@ ASIO_TEST_SUITE
(
"any_executor",
ASIO_TEST_CASE(any_executor_construction_test)
+ ASIO_TEST_CASE(any_executor_nothrow_construction_test)
ASIO_TEST_CASE(any_executor_assignment_test)
ASIO_TEST_CASE(any_executor_swap_test)
ASIO_TEST_CASE(any_executor_query_test)
diff --git a/3rdparty/asio/src/tests/unit/execution/blocking.cpp b/3rdparty/asio/src/tests/unit/execution/blocking.cpp
index 848841b6278..ce2ba2f8ea5 100644
--- a/3rdparty/asio/src/tests/unit/execution/blocking.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/blocking.cpp
@@ -2,7 +2,7 @@
// blocking.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -35,12 +35,12 @@ struct ex_nq_nr
{
}
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return false;
}
@@ -64,7 +64,7 @@ struct is_executor<ex_nq_nr> : asio::true_type
template <typename ResultType, typename ParamType, typename Result>
struct ex_cq_nr
{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
+ static constexpr ResultType query(ParamType) noexcept
{
return Result();
}
@@ -74,12 +74,12 @@ struct ex_cq_nr
{
}
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return false;
}
@@ -114,12 +114,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef Result result_type; // Must return raw result type.
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return Result();
}
@@ -133,7 +133,7 @@ struct query_static_constexpr_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_mq_nr
{
- ResultType query(ParamType) const ASIO_NOEXCEPT
+ ResultType query(ParamType) const noexcept
{
return Result();
}
@@ -143,12 +143,12 @@ struct ex_mq_nr
{
}
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return false;
}
@@ -183,8 +183,8 @@ struct query_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -197,7 +197,7 @@ struct query_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_fq_nr
{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
+ friend ResultType query(const ex_fq_nr&, ParamType) noexcept
{
return Result();
}
@@ -207,12 +207,12 @@ struct ex_fq_nr
{
}
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return false;
}
@@ -247,8 +247,8 @@ struct query_free<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -261,24 +261,24 @@ struct query_free<
template <typename CurrentType, typename OtherType>
struct ex_mq_mr
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
- CurrentType query(OtherType) const ASIO_NOEXCEPT
+ CurrentType query(OtherType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, OtherType>();
}
ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
+ OtherType) const noexcept
{
return ex_mq_mr<OtherType, CurrentType>();
}
@@ -288,12 +288,12 @@ struct ex_mq_mr
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -302,13 +302,13 @@ struct ex_mq_mr
template <typename CurrentType>
struct ex_mq_mr<CurrentType, CurrentType>
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, CurrentType>();
}
@@ -318,12 +318,12 @@ struct ex_mq_mr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -358,8 +358,8 @@ struct query_member<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -375,8 +375,8 @@ struct require_member<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<CurrentType, OtherType> result_type;
};
@@ -389,8 +389,8 @@ struct require_member<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<OtherType, CurrentType> result_type;
};
@@ -403,36 +403,36 @@ struct require_member<
template <typename CurrentType, typename OtherType>
struct ex_fq_fr
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, OtherType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
@@ -442,12 +442,12 @@ struct ex_fq_fr
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -456,19 +456,19 @@ struct ex_fq_fr
template <typename CurrentType>
struct ex_fq_fr<CurrentType, CurrentType>
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
@@ -478,12 +478,12 @@ struct ex_fq_fr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -518,8 +518,8 @@ struct query_free<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -535,8 +535,8 @@ struct require_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -549,8 +549,8 @@ struct require_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -566,8 +566,8 @@ struct prefer_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -580,8 +580,8 @@ struct prefer_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -594,19 +594,19 @@ struct prefer_free<
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_query()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_query<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_query<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_query<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_query<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -629,29 +629,27 @@ void test_query()
template <typename Executor, typename Param, typename ExpectedResult>
void test_constexpr_query()
{
-#if defined(ASIO_HAS_CONSTEXPR)
constexpr Executor ex1 = {};
constexpr exec::blocking_t result1 = asio::query(ex1, Param());
ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
}
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_require()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_require<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_require<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_require<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_require<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -680,19 +678,19 @@ void test_require()
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_prefer()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_prefer<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_prefer<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_prefer<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_prefer<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -721,9 +719,18 @@ void test_prefer()
void test_vars()
{
ASIO_CHECK(s() == exec::blocking);
+ ASIO_CHECK(s() != exec::blocking.possibly);
+ ASIO_CHECK(s() != exec::blocking.always);
+ ASIO_CHECK(s() != exec::blocking.never);
ASIO_CHECK(n1() == exec::blocking.possibly);
+ ASIO_CHECK(n1() != exec::blocking.always);
+ ASIO_CHECK(n1() != exec::blocking.never);
ASIO_CHECK(n2() == exec::blocking.always);
+ ASIO_CHECK(n2() != exec::blocking.possibly);
+ ASIO_CHECK(n2() != exec::blocking.never);
ASIO_CHECK(n3() == exec::blocking.never);
+ ASIO_CHECK(n3() != exec::blocking.possibly);
+ ASIO_CHECK(n3() != exec::blocking.always);
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp b/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp
index d16650ae799..b6e77dd31a9 100644
--- a/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/blocking_adaptation.cpp
@@ -2,7 +2,7 @@
// blocking_adaptation.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -34,12 +34,12 @@ struct ex_nq_nr
{
}
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return false;
}
@@ -53,8 +53,8 @@ namespace traits {
template <>
struct equality_comparable<ex_nq_nr>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -64,8 +64,8 @@ struct equality_comparable<ex_nq_nr>
template <typename Function>
struct execute_member<ex_nq_nr, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -78,7 +78,7 @@ struct execute_member<ex_nq_nr, Function>
template <typename ResultType, typename ParamType, typename Result>
struct ex_cq_nr
{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
+ static constexpr ResultType query(ParamType) noexcept
{
return Result();
}
@@ -88,12 +88,12 @@ struct ex_cq_nr
{
}
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return false;
}
@@ -107,8 +107,8 @@ namespace traits {
template <typename ResultType, typename ParamType, typename Result>
struct equality_comparable<ex_cq_nr<ResultType, ParamType, Result> >
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -119,8 +119,8 @@ template <typename ResultType, typename ParamType,
typename Result, typename Function>
struct execute_member<ex_cq_nr<ResultType, ParamType, Result>, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -137,12 +137,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef Result result_type; // Must return raw result type.
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return Result();
}
@@ -156,7 +156,7 @@ struct query_static_constexpr_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_mq_nr
{
- ResultType query(ParamType) const ASIO_NOEXCEPT
+ ResultType query(ParamType) const noexcept
{
return Result();
}
@@ -166,12 +166,12 @@ struct ex_mq_nr
{
}
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return false;
}
@@ -185,8 +185,8 @@ namespace traits {
template <typename ResultType, typename ParamType, typename Result>
struct equality_comparable<ex_mq_nr<ResultType, ParamType, Result> >
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -197,8 +197,8 @@ template <typename ResultType, typename ParamType,
typename Result, typename Function>
struct execute_member<ex_mq_nr<ResultType, ParamType, Result>, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -215,8 +215,8 @@ struct query_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -229,7 +229,7 @@ struct query_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_fq_nr
{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
+ friend ResultType query(const ex_fq_nr&, ParamType) noexcept
{
return Result();
}
@@ -239,12 +239,12 @@ struct ex_fq_nr
{
}
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return false;
}
@@ -258,8 +258,8 @@ namespace traits {
template <typename ResultType, typename ParamType, typename Result>
struct equality_comparable<ex_fq_nr<ResultType, ParamType, Result> >
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -270,8 +270,8 @@ template <typename ResultType, typename ParamType,
typename Result, typename Function>
struct execute_member<ex_fq_nr<ResultType, ParamType, Result>, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -288,8 +288,8 @@ struct query_free<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -302,24 +302,24 @@ struct query_free<
template <typename CurrentType, typename OtherType>
struct ex_mq_mr
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
- CurrentType query(OtherType) const ASIO_NOEXCEPT
+ CurrentType query(OtherType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, OtherType>();
}
ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
+ OtherType) const noexcept
{
return ex_mq_mr<OtherType, CurrentType>();
}
@@ -329,12 +329,12 @@ struct ex_mq_mr
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -343,13 +343,13 @@ struct ex_mq_mr
template <typename CurrentType>
struct ex_mq_mr<CurrentType, CurrentType>
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, CurrentType>();
}
@@ -359,12 +359,12 @@ struct ex_mq_mr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -378,8 +378,8 @@ namespace traits {
template <typename CurrentType, typename OtherType>
struct equality_comparable<ex_mq_mr<CurrentType, OtherType> >
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -389,8 +389,8 @@ struct equality_comparable<ex_mq_mr<CurrentType, OtherType> >
template <typename CurrentType, typename OtherType, typename Function>
struct execute_member<ex_mq_mr<CurrentType, OtherType>, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -407,8 +407,8 @@ struct query_member<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -424,8 +424,8 @@ struct require_member<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<CurrentType, OtherType> result_type;
};
@@ -438,8 +438,8 @@ struct require_member<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<OtherType, CurrentType> result_type;
};
@@ -452,36 +452,36 @@ struct require_member<
template <typename CurrentType, typename OtherType>
struct ex_fq_fr
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, OtherType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
@@ -491,12 +491,12 @@ struct ex_fq_fr
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -505,19 +505,19 @@ struct ex_fq_fr
template <typename CurrentType>
struct ex_fq_fr<CurrentType, CurrentType>
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
@@ -527,12 +527,12 @@ struct ex_fq_fr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -546,8 +546,8 @@ namespace traits {
template <typename CurrentType, typename OtherType>
struct equality_comparable<ex_fq_fr<CurrentType, OtherType> >
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -557,8 +557,8 @@ struct equality_comparable<ex_fq_fr<CurrentType, OtherType> >
template <typename CurrentType, typename OtherType, typename Function>
struct execute_member<ex_fq_fr<CurrentType, OtherType>, Function>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef void result_type;
};
@@ -575,8 +575,8 @@ struct query_free<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -592,8 +592,8 @@ struct require_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -606,8 +606,8 @@ struct require_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -623,8 +623,8 @@ struct prefer_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -637,8 +637,8 @@ struct prefer_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -651,19 +651,19 @@ struct prefer_free<
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_query()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_query<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_query<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_query<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_query<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -686,29 +686,27 @@ void test_query()
template <typename Executor, typename Param, typename ExpectedResult>
void test_constexpr_query()
{
-#if defined(ASIO_HAS_CONSTEXPR)
constexpr Executor ex1 = {};
constexpr exec::blocking_adaptation_t result1 = asio::query(ex1, Param());
ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
}
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_require()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_require<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_require<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_require<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_require<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -757,19 +755,19 @@ void test_require()
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_prefer()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_prefer<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_prefer<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_prefer<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_prefer<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -798,8 +796,12 @@ void test_prefer()
void test_vars()
{
ASIO_CHECK(s() == exec::blocking_adaptation);
+ ASIO_CHECK(s() != exec::blocking_adaptation.disallowed);
+ ASIO_CHECK(s() != exec::blocking_adaptation.allowed);
ASIO_CHECK(n1() == exec::blocking_adaptation.disallowed);
+ ASIO_CHECK(n1() != exec::blocking_adaptation.allowed);
ASIO_CHECK(n2() == exec::blocking_adaptation.allowed);
+ ASIO_CHECK(n2() != exec::blocking_adaptation.disallowed);
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp b/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp
deleted file mode 100644
index 55a2118e955..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-//
-// bulk_execute.cpp
-// ~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/bulk_execute.hpp"
-
-#include "asio/execution.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-int call_count = 0;
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct sender : exec::sender_base
-{
- sender()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- return operation_state();
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<const sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct no_bulk_execute
-{
-};
-
-struct const_member_bulk_execute
-{
- const_member_bulk_execute()
- {
- }
-
- template <typename F>
- sender bulk_execute(ASIO_MOVE_ARG(F), std::size_t) const
- {
- ++call_count;
- return sender();
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-template <typename F, typename N>
-struct bulk_execute_member<const const_member_bulk_execute, F, N>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef sender result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct free_bulk_execute
-{
- free_bulk_execute()
- {
- }
-
- template <typename F>
- friend sender bulk_execute(const free_bulk_execute&,
- ASIO_MOVE_ARG(F), std::size_t)
- {
- ++call_count;
- return sender();
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-template <typename F, typename N>
-struct bulk_execute_free<const free_bulk_execute, F, N>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef sender result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_can_bulk_execute()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_bulk_execute<
- no_bulk_execute&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_bulk_execute<
- const no_bulk_execute&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_bulk_execute<
- const_member_bulk_execute&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_bulk_execute<
- const const_member_bulk_execute&,
- exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_bulk_execute<
- free_bulk_execute&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_bulk_execute<
- const free_bulk_execute&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b6 == true);
-
- ASIO_CONSTEXPR bool b7 = exec::can_bulk_execute<
- executor&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_bulk_execute<
- const executor&, exec::invocable_archetype, std::size_t>::value;
- ASIO_CHECK(b8 == true);
-}
-
-void handler(std::size_t)
-{
-}
-
-void counting_handler(std::size_t)
-{
- ++call_count;
-}
-
-void completion_handler()
-{
- ++call_count;
-}
-
-void test_bulk_execute()
-{
- call_count = 0;
- const_member_bulk_execute ex1;
- exec::bulk_execute(ex1, handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_bulk_execute ex2;
- exec::bulk_execute(ex2, handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::bulk_execute(const_member_bulk_execute(), handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_bulk_execute ex3;
- exec::bulk_execute(ex3, handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_bulk_execute ex4;
- exec::bulk_execute(ex4, handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::bulk_execute(free_bulk_execute(), handler, 2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- executor ex5;
- exec::execute(
- exec::bulk_execute(ex5, counting_handler, 10u),
- completion_handler);
- ASIO_CHECK(call_count == 11);
-
- call_count = 0;
- const executor ex6;
- exec::execute(
- exec::bulk_execute(ex6, counting_handler, 10u),
- completion_handler);
- ASIO_CHECK(call_count == 11);
-
- call_count = 0;
- exec::execute(
- exec::bulk_execute(executor(), counting_handler, 10u),
- completion_handler);
- ASIO_CHECK(call_count == 11);
-}
-
-ASIO_TEST_SUITE
-(
- "bulk_execute",
- ASIO_TEST_CASE(test_can_bulk_execute)
- ASIO_TEST_CASE(test_bulk_execute)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp b/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp
deleted file mode 100644
index 3127ff89db3..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp
+++ /dev/null
@@ -1,1978 +0,0 @@
-//
-// bulk_guarantee.cpp
-// ~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/bulk_guarantee.hpp"
-
-#include "asio/prefer.hpp"
-#include "asio/query.hpp"
-#include "asio/require.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-typedef exec::bulk_guarantee_t s;
-typedef exec::bulk_guarantee_t::unsequenced_t n1;
-typedef exec::bulk_guarantee_t::sequenced_t n2;
-typedef exec::bulk_guarantee_t::parallel_t n3;
-
-struct ex_nq_nr
-{
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <>
-struct is_executor<ex_nq_nr> : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-template <typename ResultType, typename ParamType, typename Result>
-struct ex_cq_nr
-{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
- {
- return Result();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <typename ResultType, typename ParamType, typename Result>
-struct is_executor<ex_cq_nr<ResultType, ParamType, Result> >
- : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
-
-template <typename ResultType, typename ParamType,
- typename Result, typename Param>
-struct query_static_constexpr_member<
- ex_cq_nr<ResultType, ParamType, Result>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, ParamType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef Result result_type; // Must return raw result type.
-
- static ASIO_CONSTEXPR result_type value()
- {
- return Result();
- }
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-template <typename ResultType, typename ParamType, typename Result>
-struct ex_mq_nr
-{
- ResultType query(ParamType) const ASIO_NOEXCEPT
- {
- return Result();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <typename ResultType, typename ParamType, typename Result>
-struct is_executor<ex_mq_nr<ResultType, ParamType, Result> >
- : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
-
-template <typename ResultType, typename ParamType,
- typename Result, typename Param>
-struct query_member<
- ex_mq_nr<ResultType, ParamType, Result>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, ParamType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ResultType result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-template <typename ResultType, typename ParamType, typename Result>
-struct ex_fq_nr
-{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
- {
- return Result();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <typename ResultType, typename ParamType, typename Result>
-struct is_executor<ex_fq_nr<ResultType, ParamType, Result> >
- : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
-
-template <typename ResultType, typename ParamType,
- typename Result, typename Param>
-struct query_free<
- ex_fq_nr<ResultType, ParamType, Result>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, ParamType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ResultType result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-template <typename CurrentType, typename OtherType>
-struct ex_mq_mr
-{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- CurrentType query(OtherType) const ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
- {
- return ex_mq_mr<CurrentType, OtherType>();
- }
-
- ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
- {
- return ex_mq_mr<OtherType, CurrentType>();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-template <typename CurrentType>
-struct ex_mq_mr<CurrentType, CurrentType>
-{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
- {
- return ex_mq_mr<CurrentType, CurrentType>();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <typename CurrentType, typename OtherType>
-struct is_executor<ex_mq_mr<CurrentType, OtherType> >
- : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct query_member<
- ex_mq_mr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, CurrentType>::value
- || asio::is_convertible<Param, OtherType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef CurrentType result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct require_member<
- ex_mq_mr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, CurrentType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_mq_mr<CurrentType, OtherType> result_type;
-};
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct require_member<
- ex_mq_mr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, OtherType>::value
- && !asio::is_same<CurrentType, OtherType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_mq_mr<OtherType, CurrentType> result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-template <typename CurrentType, typename OtherType>
-struct ex_fq_fr
-{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<CurrentType, OtherType>();
- }
-
- friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<OtherType, CurrentType>();
- }
-
- friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<CurrentType, OtherType>();
- }
-
- friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<OtherType, CurrentType>();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-template <typename CurrentType>
-struct ex_fq_fr<CurrentType, CurrentType>
-{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return CurrentType();
- }
-
- friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<CurrentType, CurrentType>();
- }
-
- friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
- {
- return ex_fq_fr<CurrentType, CurrentType>();
- }
-
- template <typename F>
- void execute(const F&) const
- {
- }
-
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
- {
- return true;
- }
-
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace execution {
-
-template <typename CurrentType, typename OtherType>
-struct is_executor<ex_fq_fr<CurrentType, OtherType> >
- : asio::true_type
-{
-};
-
-} // namespace execution
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct query_free<
- ex_fq_fr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, CurrentType>::value
- || asio::is_convertible<Param, OtherType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef CurrentType result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct require_free<
- ex_fq_fr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, CurrentType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_fq_fr<CurrentType, OtherType> result_type;
-};
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct require_free<
- ex_fq_fr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, OtherType>::value
- && !asio::is_same<CurrentType, OtherType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_fq_fr<OtherType, CurrentType> result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct prefer_free<
- ex_fq_fr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, CurrentType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_fq_fr<CurrentType, OtherType> result_type;
-};
-
-template <typename CurrentType, typename OtherType, typename Param>
-struct prefer_free<
- ex_fq_fr<CurrentType, OtherType>, Param,
- typename asio::enable_if<
- asio::is_convertible<Param, OtherType>::value
- && !asio::is_same<CurrentType, OtherType>::value
- >::type>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-
- typedef ex_fq_fr<OtherType, CurrentType> result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-template <typename Executor, typename Param, bool ExpectedResult>
-void test_can_query()
-{
- ASIO_CONSTEXPR bool b1 =
- asio::can_query<Executor, Param>::value;
- ASIO_CHECK(b1 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b2 =
- asio::can_query<const Executor, Param>::value;
- ASIO_CHECK(b2 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b3 =
- asio::can_query<Executor&, Param>::value;
- ASIO_CHECK(b3 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b4 =
- asio::can_query<const Executor&, Param>::value;
- ASIO_CHECK(b4 == ExpectedResult);
-}
-
-template <typename Executor, typename Param, typename ExpectedResult>
-void test_query()
-{
- exec::bulk_guarantee_t result1 = asio::query(Executor(), Param());
- ASIO_CHECK(result1 == ExpectedResult());
-
- Executor ex1 = {};
- exec::bulk_guarantee_t result2 = asio::query(ex1, Param());
- ASIO_CHECK(result2 == ExpectedResult());
-
- const Executor ex2 = {};
- exec::bulk_guarantee_t result3 = asio::query(ex2, Param());
- ASIO_CHECK(result3 == ExpectedResult());
-}
-
-template <typename Executor, typename Param, typename ExpectedResult>
-void test_constexpr_query()
-{
-#if defined(ASIO_HAS_CONSTEXPR)
- constexpr Executor ex1 = {};
- constexpr exec::bulk_guarantee_t result1 = asio::query(ex1, Param());
- ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
-}
-
-template <typename Executor, typename Param, bool ExpectedResult>
-void test_can_require()
-{
- ASIO_CONSTEXPR bool b1 =
- asio::can_require<Executor, Param>::value;
- ASIO_CHECK(b1 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b2 =
- asio::can_require<const Executor, Param>::value;
- ASIO_CHECK(b2 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b3 =
- asio::can_require<Executor&, Param>::value;
- ASIO_CHECK(b3 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b4 =
- asio::can_require<const Executor&, Param>::value;
- ASIO_CHECK(b4 == ExpectedResult);
-}
-
-template <typename Executor, typename Param, typename ExpectedResult>
-void test_require()
-{
- ASIO_CHECK(
- asio::query(
- asio::require(Executor(), Param()),
- Param()) == ExpectedResult());
-
- Executor ex1 = {};
- ASIO_CHECK(
- asio::query(
- asio::require(ex1, Param()),
- Param()) == ExpectedResult());
-
- const Executor ex2 = {};
- ASIO_CHECK(
- asio::query(
- asio::require(ex2, Param()),
- Param()) == ExpectedResult());
-}
-
-template <typename Executor, typename Param, bool ExpectedResult>
-void test_can_prefer()
-{
- ASIO_CONSTEXPR bool b1 =
- asio::can_prefer<Executor, Param>::value;
- ASIO_CHECK(b1 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b2 =
- asio::can_prefer<const Executor, Param>::value;
- ASIO_CHECK(b2 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b3 =
- asio::can_prefer<Executor&, Param>::value;
- ASIO_CHECK(b3 == ExpectedResult);
-
- ASIO_CONSTEXPR bool b4 =
- asio::can_prefer<const Executor&, Param>::value;
- ASIO_CHECK(b4 == ExpectedResult);
-}
-
-template <typename Executor, typename Param, typename ExpectedResult>
-void test_prefer()
-{
- ASIO_CHECK(
- s(asio::query(
- asio::prefer(Executor(), Param()),
- s())) == s(ExpectedResult()));
-
- Executor ex1 = {};
- ASIO_CHECK(
- s(asio::query(
- asio::prefer(ex1, Param()),
- s())) == s(ExpectedResult()));
-
- const Executor ex2 = {};
- ASIO_CHECK(
- s(asio::query(
- asio::prefer(ex2, Param()),
- s())) == s(ExpectedResult()));
-}
-
-void test_vars()
-{
- ASIO_CHECK(s() == exec::bulk_guarantee);
- ASIO_CHECK(n1() == exec::bulk_guarantee.unsequenced);
- ASIO_CHECK(n2() == exec::bulk_guarantee.sequenced);
- ASIO_CHECK(n3() == exec::bulk_guarantee.parallel);
-}
-
-ASIO_TEST_SUITE
-(
- "bulk_guarantee",
-
- ASIO_TEST_CASE3(test_can_query<ex_nq_nr, s, true>)
- ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n1, true>)
- ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n2, false>)
- ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n3, false>)
-
- ASIO_TEST_CASE3(test_query<ex_nq_nr, s, n1>)
- ASIO_TEST_CASE3(test_query<ex_nq_nr, n1, n1>)
-
- ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, s, n1>)
- ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, n1, n1>)
-
- ASIO_TEST_CASE3(test_can_require<ex_nq_nr, s, false>)
- ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n1, true>)
- ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n2, false>)
- ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n3, false>)
-
- ASIO_TEST_CASE3(test_require<ex_nq_nr, n1, n1>)
-
- ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, s, false>)
- ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n1, true>)
- ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n2, true>)
- ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n3, true>)
-
- ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n1, n1>)
- ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n2, n1>)
- ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n3, n1>)
-
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, s, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, s, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, s, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, s, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, s, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, s, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, s, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, s, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, s, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_require<ex_cq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n3, false>)
-
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, s, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, s, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, s, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, s, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n3, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n1, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n2, false>)
- ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n3, false>)
-
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n3, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, s, false>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n1, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n2, true>)
- ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n3, true>)
-
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n3, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n1, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n2, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n3, n1>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n1, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n2, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n3, n2>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n1, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n2, n3>)
- ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n2, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n3, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n3, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n2, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n3, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n1, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n3, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n1, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n2, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n1, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n1, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n2, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, s, true>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, s, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, s, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, s, n3>)
- ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n3, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n1, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n2, false>)
- ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n3, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, s, false>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n1, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n2, true>)
- ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n3, true>)
-
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n2, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n3, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n3, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n2, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n3, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n1, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n3, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n1, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n1, n1>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n2, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n1, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n2, n2>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n3, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n1, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n2, n3>)
- ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n3, n3>)
-
- ASIO_TEST_CASE(test_vars)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/connect.cpp b/3rdparty/asio/src/tests/unit/execution/connect.cpp
deleted file mode 100644
index 1f32e77cbe8..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/connect.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-//
-// connect.cpp
-// ~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/connect.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct no_connect_1
-{
-};
-
-struct no_connect_2 : exec::sender_base
-{
-};
-
-struct no_connect_3
-{
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- return operation_state();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct connect_member<no_connect_3, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-struct const_member_connect : exec::sender_base
-{
- const_member_connect()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- ++call_count;
- return operation_state();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct connect_member<const const_member_connect, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-struct free_connect_const_receiver : exec::sender_base
-{
- free_connect_const_receiver()
- {
- }
-
- template <typename R>
- friend operation_state connect(
- const free_connect_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- return operation_state();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct connect_free<const free_connect_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-struct non_const_member_connect : exec::sender_base
-{
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- return operation_state();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct connect_member<non_const_member_connect, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-struct free_connect_non_const_receiver : exec::sender_base
-{
- free_connect_non_const_receiver()
- {
- }
-
- template <typename R>
- friend operation_state connect(
- free_connect_non_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- return operation_state();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct connect_free<free_connect_non_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-struct receiver
-{
- receiver()
- {
- }
-
- receiver(const receiver&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver(receiver&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- (void)f;
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_can_connect()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_connect<
- no_connect_1&, receiver>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_connect<
- const no_connect_1&, receiver>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_connect<
- no_connect_2&, receiver>::value;
- ASIO_CHECK(b3 == false);
-
- ASIO_CONSTEXPR bool b4 = exec::can_connect<
- const no_connect_2&, receiver>::value;
- ASIO_CHECK(b4 == false);
-
- ASIO_CONSTEXPR bool b5 = exec::can_connect<
- no_connect_3&, receiver>::value;
- ASIO_CHECK(b5 == false);
-
- ASIO_CONSTEXPR bool b6 = exec::can_connect<
- const no_connect_3&, receiver>::value;
- ASIO_CHECK(b6 == false);
-
- ASIO_CONSTEXPR bool b7 = exec::can_connect<
- const_member_connect&, receiver>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_connect<
- const const_member_connect&, receiver>::value;
- ASIO_CHECK(b8 == true);
-
- ASIO_CONSTEXPR bool b9 = exec::can_connect<
- free_connect_const_receiver&, receiver>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_connect<
- const free_connect_const_receiver&, receiver>::value;
- ASIO_CHECK(b10 == true);
-
- ASIO_CONSTEXPR bool b11 = exec::can_connect<
- non_const_member_connect&, receiver>::value;
- ASIO_CHECK(b11 == true);
-
- ASIO_CONSTEXPR bool b12 = exec::can_connect<
- const non_const_member_connect&, receiver>::value;
- ASIO_CHECK(b12 == false);
-
- ASIO_CONSTEXPR bool b13 = exec::can_connect<
- free_connect_non_const_receiver&, receiver>::value;
- ASIO_CHECK(b13 == true);
-
- ASIO_CONSTEXPR bool b14 = exec::can_connect<
- const free_connect_non_const_receiver&, receiver>::value;
- ASIO_CHECK(b14 == false);
-
- ASIO_CONSTEXPR bool b15 = exec::can_connect<
- executor&, receiver>::value;
- ASIO_CHECK(b15 == true);
-
- ASIO_CONSTEXPR bool b16 = exec::can_connect<
- const executor&, receiver>::value;
- ASIO_CHECK(b16 == true);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_connect()
-{
- receiver r;
-
- call_count = 0;
- const_member_connect s1;
- operation_state o1 = exec::connect(s1, r);
- ASIO_CHECK(call_count == 1);
- (void)o1;
-
- call_count = 0;
- const const_member_connect s2;
- operation_state o2 = exec::connect(s2, r);
- ASIO_CHECK(call_count == 1);
- (void)o2;
-
- call_count = 0;
- operation_state o3 = exec::connect(const_member_connect(), r);
- ASIO_CHECK(call_count == 1);
- (void)o3;
-
- call_count = 0;
- free_connect_const_receiver s3;
- operation_state o4 = exec::connect(s3, r);
- ASIO_CHECK(call_count == 1);
- (void)o4;
-
- call_count = 0;
- const free_connect_const_receiver s4;
- operation_state o5 = exec::connect(s4, r);
- ASIO_CHECK(call_count == 1);
- (void)o5;
-
- call_count = 0;
- operation_state o6 = exec::connect(free_connect_const_receiver(), r);
- ASIO_CHECK(call_count == 1);
- (void)o6;
-
- call_count = 0;
- non_const_member_connect s5;
- operation_state o7 = exec::connect(s5, r);
- ASIO_CHECK(call_count == 1);
- (void)o7;
-
- call_count = 0;
- free_connect_non_const_receiver s6;
- operation_state o8 = exec::connect(s6, r);
- ASIO_CHECK(call_count == 1);
- (void)o8;
-
- executor s7;
- exec::connect_result<executor&,
- receiver&>::type o9 = exec::connect(s7, r);
- ASIO_CHECK((
- exec::is_operation_state<
- exec::connect_result<executor&, receiver&>::type
- >::value));
- (void)o9;
-
- const executor s8;
- exec::connect_result<const executor&,
- receiver&>::type o10 = exec::connect(s8, r);
- (void)exec::connect(s8, r);
- ASIO_CHECK((
- exec::is_operation_state<
- exec::connect_result<const executor&, receiver&>::type
- >::value));
- (void)o10;
-}
-
-ASIO_TEST_SUITE
-(
- "connect",
- ASIO_TEST_CASE(test_can_connect)
- ASIO_TEST_CASE(test_connect)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/context_as.cpp b/3rdparty/asio/src/tests/unit/execution/context_as.cpp
index d2bd956c1c9..13311ba262b 100644
--- a/3rdparty/asio/src/tests/unit/execution/context_as.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/context_as.cpp
@@ -2,7 +2,7 @@
// context_as.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,24 +16,14 @@
// Test that header file is self-contained.
#include "asio/execution/context_as.hpp"
+#include <functional>
#include "asio/execution/any_executor.hpp"
#include "asio/io_context.hpp"
#include "asio/static_thread_pool.hpp"
#include "../unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
void context_as_executor_query_test()
{
diff --git a/3rdparty/asio/src/tests/unit/execution/execute.cpp b/3rdparty/asio/src/tests/unit/execution/execute.cpp
deleted file mode 100644
index 409233ed0e6..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/execute.cpp
+++ /dev/null
@@ -1,388 +0,0 @@
-//
-// execute.cpp
-// ~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/execute.hpp"
-#include "asio/execution/sender.hpp"
-#include "asio/execution/submit.hpp"
-
-#include "asio/execution/invocable_archetype.hpp"
-#include "../unit_test.hpp"
-
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
-namespace exec = asio::execution;
-
-struct no_execute
-{
-};
-
-struct const_member_execute
-{
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename F>
-struct execute_member<const_member_execute, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-struct free_execute_const_executor
-{
- template <typename F>
- friend void execute(const free_execute_const_executor&,
- ASIO_MOVE_ARG(F) f)
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename F>
-struct execute_free<free_execute_const_executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
-
-#if defined(ASIO_HAS_MOVE)
-
-// Support for rvalue references is required in order to use the execute
-// customisation point with non-const member functions and free functions
-// taking non-const arguments.
-
-struct non_const_member_execute
-{
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f)
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename F>
-struct execute_member<non_const_member_execute, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-template <typename F>
-struct execute_member<const non_const_member_execute, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = false);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-template <typename F>
-struct execute_member<const non_const_member_execute&, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = false);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-struct free_execute_non_const_executor
-{
- template <typename F>
- friend void execute(free_execute_non_const_executor&,
- ASIO_MOVE_ARG(F) f)
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename F>
-struct execute_free<free_execute_non_const_executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-template <typename F>
-struct execute_free<const free_execute_non_const_executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = false);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-template <typename F>
-struct execute_free<const free_execute_non_const_executor&, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = false);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
-
-#endif // defined(ASIO_HAS_MOVE)
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct sender : exec::sender_base
-{
- sender()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- void submit(ASIO_MOVE_ARG(R) r) const
- {
- exec::set_value(ASIO_MOVE_CAST(R)(r));
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<const sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-template <typename R>
-struct submit_member<const sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_can_execute()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_execute<
- no_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_execute<
- const no_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_execute<
- const_member_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_execute<
- const const_member_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_execute<
- free_execute_const_executor&, exec::invocable_archetype>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_execute<
- const free_execute_const_executor&, exec::invocable_archetype>::value;
- ASIO_CHECK(b6 == true);
-
-#if defined(ASIO_HAS_MOVE)
- ASIO_CONSTEXPR bool b7 = exec::can_execute<
- non_const_member_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_execute<
- const non_const_member_execute&, exec::invocable_archetype>::value;
- ASIO_CHECK(b8 == false);
-
- ASIO_CONSTEXPR bool b9 = exec::can_execute<
- free_execute_non_const_executor&, exec::invocable_archetype>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_execute<
- const free_execute_non_const_executor&, exec::invocable_archetype>::value;
- ASIO_CHECK(b10 == false);
-#endif // defined(ASIO_HAS_MOVE)
-
- ASIO_CONSTEXPR bool b11 = exec::can_execute<
- sender&, exec::invocable_archetype>::value;
- ASIO_CHECK(b11 == true);
-
- ASIO_CONSTEXPR bool b12 = exec::can_execute<
- const sender&, exec::invocable_archetype>::value;
- ASIO_CHECK(b12 == true);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_execute()
-{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
- int count = 0;
- const_member_execute ex1 = {};
- exec::execute(ex1, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const const_member_execute ex2 = {};
- exec::execute(ex2, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- exec::execute(const_member_execute(), bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- free_execute_const_executor ex3 = {};
- exec::execute(ex3, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const free_execute_const_executor ex4 = {};
- exec::execute(ex4, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- exec::execute(free_execute_const_executor(),
- bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
-#if defined(ASIO_HAS_MOVE)
- count = 0;
- non_const_member_execute ex5 = {};
- exec::execute(ex5, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- free_execute_non_const_executor ex6 = {};
- exec::execute(ex6, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-#endif // defined(ASIO_HAS_MOVE)
-
- count = 0;
- sender ex7;
- exec::execute(ex3, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const sender ex8;
- exec::execute(ex4, bindns::bind(&increment, &count));
- ASIO_CHECK(count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "blocking",
- ASIO_TEST_CASE(test_can_execute)
- ASIO_TEST_CASE(test_execute)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/executor.cpp b/3rdparty/asio/src/tests/unit/execution/executor.cpp
index 497c5835684..8b02622bdca 100644
--- a/3rdparty/asio/src/tests/unit/execution/executor.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/executor.cpp
@@ -2,7 +2,7 @@
// executor.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -28,28 +28,26 @@ struct executor
{
}
- executor(const executor&) ASIO_NOEXCEPT
+ executor(const executor&) noexcept
{
}
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
+ executor(executor&&) noexcept
{
}
-#endif // defined(ASIO_HAS_MOVE)
template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
+ void execute(F&& f) const noexcept
{
(void)f;
}
- bool operator==(const executor&) const ASIO_NOEXCEPT
+ bool operator==(const executor&) const noexcept
{
return true;
}
- bool operator!=(const executor&) const ASIO_NOEXCEPT
+ bool operator!=(const executor&) const noexcept
{
return false;
}
@@ -63,8 +61,8 @@ namespace traits {
template <typename F>
struct execute_member<executor, F>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef void result_type;
};
@@ -74,8 +72,8 @@ struct execute_member<executor, F>
template <>
struct equality_comparable<executor>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -101,84 +99,8 @@ void is_executor_test()
>::value));
}
-void is_executor_of_test()
-{
- ASIO_CHECK((
- !asio::execution::is_executor_of<
- void,
- void(*)()
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_executor_of<
- not_an_executor,
- void(*)()
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_executor_of<
- executor,
- void(*)()
- >::value));
-}
-
-struct executor_with_other_shape_type
-{
- typedef double shape_type;
-};
-
-void executor_shape_test()
-{
- ASIO_CHECK((
- asio::is_same<
- asio::execution::executor_shape<executor>::type,
- std::size_t
- >::value));
-
- ASIO_CHECK((
- asio::is_same<
- asio::execution::executor_shape<
- executor_with_other_shape_type
- >::type,
- double
- >::value));
-}
-
-struct executor_with_other_index_type
-{
- typedef unsigned char index_type;
-};
-
-void executor_index_test()
-{
- ASIO_CHECK((
- asio::is_same<
- asio::execution::executor_index<executor>::type,
- std::size_t
- >::value));
-
- ASIO_CHECK((
- asio::is_same<
- asio::execution::executor_index<
- executor_with_other_shape_type
- >::type,
- double
- >::value));
-
- ASIO_CHECK((
- asio::is_same<
- asio::execution::executor_index<
- executor_with_other_index_type
- >::type,
- unsigned char
- >::value));
-}
-
ASIO_TEST_SUITE
(
"executor",
ASIO_TEST_CASE(is_executor_test)
- ASIO_TEST_CASE(is_executor_of_test)
- ASIO_TEST_CASE(executor_shape_test)
- ASIO_TEST_CASE(executor_index_test)
)
diff --git a/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp b/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp
index 7ef66d9cdd2..5dbfb94d9f4 100644
--- a/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/invocable_archetype.cpp
@@ -2,7 +2,7 @@
// invocable_archetype.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/execution/mapping.cpp b/3rdparty/asio/src/tests/unit/execution/mapping.cpp
index ca2deefe0ad..399aae3ea90 100644
--- a/3rdparty/asio/src/tests/unit/execution/mapping.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/mapping.cpp
@@ -2,7 +2,7 @@
// mapping.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -35,12 +35,12 @@ struct ex_nq_nr
{
}
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return false;
}
@@ -64,7 +64,7 @@ struct is_executor<ex_nq_nr> : asio::true_type
template <typename ResultType, typename ParamType, typename Result>
struct ex_cq_nr
{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
+ static constexpr ResultType query(ParamType) noexcept
{
return Result();
}
@@ -74,12 +74,12 @@ struct ex_cq_nr
{
}
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return false;
}
@@ -114,12 +114,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef Result result_type; // Must return raw result type.
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return Result();
}
@@ -133,7 +133,7 @@ struct query_static_constexpr_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_mq_nr
{
- ResultType query(ParamType) const ASIO_NOEXCEPT
+ ResultType query(ParamType) const noexcept
{
return Result();
}
@@ -143,12 +143,12 @@ struct ex_mq_nr
{
}
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return false;
}
@@ -183,8 +183,8 @@ struct query_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -197,7 +197,7 @@ struct query_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_fq_nr
{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
+ friend ResultType query(const ex_fq_nr&, ParamType) noexcept
{
return Result();
}
@@ -207,12 +207,12 @@ struct ex_fq_nr
{
}
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return false;
}
@@ -247,8 +247,8 @@ struct query_free<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -261,24 +261,24 @@ struct query_free<
template <typename CurrentType, typename OtherType>
struct ex_mq_mr
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
- CurrentType query(OtherType) const ASIO_NOEXCEPT
+ CurrentType query(OtherType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, OtherType>();
}
ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
+ OtherType) const noexcept
{
return ex_mq_mr<OtherType, CurrentType>();
}
@@ -288,12 +288,12 @@ struct ex_mq_mr
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -302,13 +302,13 @@ struct ex_mq_mr
template <typename CurrentType>
struct ex_mq_mr<CurrentType, CurrentType>
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, CurrentType>();
}
@@ -318,12 +318,12 @@ struct ex_mq_mr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -358,8 +358,8 @@ struct query_member<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -375,8 +375,8 @@ struct require_member<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<CurrentType, OtherType> result_type;
};
@@ -389,8 +389,8 @@ struct require_member<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<OtherType, CurrentType> result_type;
};
@@ -403,36 +403,36 @@ struct require_member<
template <typename CurrentType, typename OtherType>
struct ex_fq_fr
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, OtherType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
@@ -442,12 +442,12 @@ struct ex_fq_fr
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -456,19 +456,19 @@ struct ex_fq_fr
template <typename CurrentType>
struct ex_fq_fr<CurrentType, CurrentType>
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
@@ -478,12 +478,12 @@ struct ex_fq_fr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -518,8 +518,8 @@ struct query_free<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -535,8 +535,8 @@ struct require_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -549,8 +549,8 @@ struct require_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -566,8 +566,8 @@ struct prefer_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -580,8 +580,8 @@ struct prefer_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -594,19 +594,19 @@ struct prefer_free<
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_query()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_query<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_query<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_query<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_query<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -629,29 +629,27 @@ void test_query()
template <typename Executor, typename Param, typename ExpectedResult>
void test_constexpr_query()
{
-#if defined(ASIO_HAS_CONSTEXPR)
constexpr Executor ex1 = {};
constexpr exec::mapping_t result1 = asio::query(ex1, Param());
ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
}
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_require()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_require<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_require<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_require<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_require<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -680,19 +678,19 @@ void test_require()
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_prefer()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_prefer<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_prefer<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_prefer<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_prefer<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -721,9 +719,18 @@ void test_prefer()
void test_vars()
{
ASIO_CHECK(s() == exec::mapping);
+ ASIO_CHECK(s() != exec::mapping.thread);
+ ASIO_CHECK(s() != exec::mapping.new_thread);
+ ASIO_CHECK(s() != exec::mapping.other);
ASIO_CHECK(n1() == exec::mapping.thread);
+ ASIO_CHECK(n1() != exec::mapping.new_thread);
+ ASIO_CHECK(n1() != exec::mapping.other);
ASIO_CHECK(n2() == exec::mapping.new_thread);
+ ASIO_CHECK(n2() != exec::mapping.thread);
+ ASIO_CHECK(n2() != exec::mapping.other);
ASIO_CHECK(n3() == exec::mapping.other);
+ ASIO_CHECK(n3() != exec::mapping.thread);
+ ASIO_CHECK(n3() != exec::mapping.new_thread);
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/execution/operation_state.cpp b/3rdparty/asio/src/tests/unit/execution/operation_state.cpp
deleted file mode 100644
index d492816a158..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/operation_state.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// operation_state.cpp
-// ~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/operation_state.hpp"
-
-#include <string>
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-struct not_an_operation_state_1
-{
-};
-
-struct not_an_operation_state_2
-{
- void start()
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<not_an_operation_state_2>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void is_operation_state_test()
-{
- ASIO_CHECK((
- !asio::execution::is_operation_state<
- void
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_operation_state<
- not_an_operation_state_1
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_operation_state<
- not_an_operation_state_2
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_operation_state<
- operation_state
- >::value));
-}
-
-ASIO_TEST_SUITE
-(
- "operation_state",
- ASIO_TEST_CASE(is_operation_state_test)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp b/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp
index 3546a6b1d6a..cddd0b52c23 100644
--- a/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/outstanding_work.cpp
@@ -2,7 +2,7 @@
// outstanding_work.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -34,12 +34,12 @@ struct ex_nq_nr
{
}
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return false;
}
@@ -63,7 +63,7 @@ struct is_executor<ex_nq_nr> : asio::true_type
template <typename ResultType, typename ParamType, typename Result>
struct ex_cq_nr
{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
+ static constexpr ResultType query(ParamType) noexcept
{
return Result();
}
@@ -73,12 +73,12 @@ struct ex_cq_nr
{
}
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return false;
}
@@ -113,12 +113,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef Result result_type; // Must return raw result type.
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return Result();
}
@@ -132,7 +132,7 @@ struct query_static_constexpr_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_mq_nr
{
- ResultType query(ParamType) const ASIO_NOEXCEPT
+ ResultType query(ParamType) const noexcept
{
return Result();
}
@@ -142,12 +142,12 @@ struct ex_mq_nr
{
}
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return false;
}
@@ -182,8 +182,8 @@ struct query_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -196,7 +196,7 @@ struct query_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_fq_nr
{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
+ friend ResultType query(const ex_fq_nr&, ParamType) noexcept
{
return Result();
}
@@ -206,12 +206,12 @@ struct ex_fq_nr
{
}
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return false;
}
@@ -246,8 +246,8 @@ struct query_free<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -260,24 +260,24 @@ struct query_free<
template <typename CurrentType, typename OtherType>
struct ex_mq_mr
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
- CurrentType query(OtherType) const ASIO_NOEXCEPT
+ CurrentType query(OtherType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, OtherType>();
}
ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
+ OtherType) const noexcept
{
return ex_mq_mr<OtherType, CurrentType>();
}
@@ -287,12 +287,12 @@ struct ex_mq_mr
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -301,13 +301,13 @@ struct ex_mq_mr
template <typename CurrentType>
struct ex_mq_mr<CurrentType, CurrentType>
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, CurrentType>();
}
@@ -317,12 +317,12 @@ struct ex_mq_mr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -357,8 +357,8 @@ struct query_member<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -374,8 +374,8 @@ struct require_member<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<CurrentType, OtherType> result_type;
};
@@ -388,8 +388,8 @@ struct require_member<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<OtherType, CurrentType> result_type;
};
@@ -402,36 +402,36 @@ struct require_member<
template <typename CurrentType, typename OtherType>
struct ex_fq_fr
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, OtherType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
@@ -441,12 +441,12 @@ struct ex_fq_fr
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -455,19 +455,19 @@ struct ex_fq_fr
template <typename CurrentType>
struct ex_fq_fr<CurrentType, CurrentType>
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
@@ -477,12 +477,12 @@ struct ex_fq_fr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -517,8 +517,8 @@ struct query_free<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -534,8 +534,8 @@ struct require_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -548,8 +548,8 @@ struct require_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -565,8 +565,8 @@ struct prefer_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -579,8 +579,8 @@ struct prefer_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -593,19 +593,19 @@ struct prefer_free<
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_query()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_query<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_query<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_query<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_query<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -628,29 +628,27 @@ void test_query()
template <typename Executor, typename Param, typename ExpectedResult>
void test_constexpr_query()
{
-#if defined(ASIO_HAS_CONSTEXPR)
constexpr Executor ex1 = {};
constexpr exec::outstanding_work_t result1 = asio::query(ex1, Param());
ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
}
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_require()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_require<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_require<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_require<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_require<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -679,19 +677,19 @@ void test_require()
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_prefer()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_prefer<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_prefer<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_prefer<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_prefer<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -720,8 +718,12 @@ void test_prefer()
void test_vars()
{
ASIO_CHECK(s() == exec::outstanding_work);
+ ASIO_CHECK(s() != exec::outstanding_work.untracked);
+ ASIO_CHECK(s() != exec::outstanding_work.tracked);
ASIO_CHECK(n1() == exec::outstanding_work.untracked);
+ ASIO_CHECK(n1() != exec::outstanding_work.tracked);
ASIO_CHECK(n2() == exec::outstanding_work.tracked);
+ ASIO_CHECK(n2() != exec::outstanding_work.untracked);
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp b/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp
index d7467d81114..60500002475 100644
--- a/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/prefer_only.cpp
@@ -2,7 +2,7 @@
// prefer_only.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,22 +16,12 @@
// Test that header file is self-contained.
#include "asio/execution/prefer_only.hpp"
+#include <functional>
#include "asio/execution/any_executor.hpp"
#include "../unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
static int possibly_blocking_count = 0;
static int never_blocking_count = 0;
@@ -45,13 +35,13 @@ struct possibly_blocking_executor
}
friend bool operator==(const possibly_blocking_executor&,
- const possibly_blocking_executor&) ASIO_NOEXCEPT
+ const possibly_blocking_executor&) noexcept
{
return true;
}
friend bool operator!=(const possibly_blocking_executor&,
- const possibly_blocking_executor&) ASIO_NOEXCEPT
+ const possibly_blocking_executor&) noexcept
{
return false;
}
@@ -65,8 +55,8 @@ namespace traits {
template <typename F>
struct execute_member<possibly_blocking_executor, F>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef void result_type;
};
@@ -77,8 +67,8 @@ struct execute_member<possibly_blocking_executor, F>
template <>
struct equality_comparable<possibly_blocking_executor>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -88,8 +78,8 @@ struct equality_comparable<possibly_blocking_executor>
struct never_blocking_executor
{
- static ASIO_CONSTEXPR execution::blocking_t::never_t
- query(execution::blocking_t) ASIO_NOEXCEPT
+ static constexpr execution::blocking_t::never_t
+ query(execution::blocking_t) noexcept
{
return execution::blocking_t::never_t();
}
@@ -101,13 +91,13 @@ struct never_blocking_executor
}
friend bool operator==(const never_blocking_executor&,
- const never_blocking_executor&) ASIO_NOEXCEPT
+ const never_blocking_executor&) noexcept
{
return true;
}
friend bool operator!=(const never_blocking_executor&,
- const never_blocking_executor&) ASIO_NOEXCEPT
+ const never_blocking_executor&) noexcept
{
return false;
}
@@ -121,8 +111,8 @@ namespace traits {
template <typename F>
struct execute_member<never_blocking_executor, F>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef void result_type;
};
@@ -133,8 +123,8 @@ struct execute_member<never_blocking_executor, F>
template <>
struct equality_comparable<never_blocking_executor>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -148,12 +138,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, execution::blocking_t>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef execution::blocking_t::never_t result_type;
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return result_type();
}
@@ -173,7 +163,7 @@ struct either_blocking_executor
{
}
- execution::blocking_t query(execution::blocking_t) const ASIO_NOEXCEPT
+ execution::blocking_t query(execution::blocking_t) const noexcept
{
return blocking_;
}
@@ -198,13 +188,13 @@ struct either_blocking_executor
}
friend bool operator==(const either_blocking_executor& a,
- const either_blocking_executor& b) ASIO_NOEXCEPT
+ const either_blocking_executor& b) noexcept
{
return a.blocking_ == b.blocking_;
}
friend bool operator!=(const either_blocking_executor& a,
- const either_blocking_executor& b) ASIO_NOEXCEPT
+ const either_blocking_executor& b) noexcept
{
return a.blocking_ != b.blocking_;
}
@@ -218,8 +208,8 @@ namespace traits {
template <typename F>
struct execute_member<either_blocking_executor, F>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef void result_type;
};
@@ -230,8 +220,8 @@ struct execute_member<either_blocking_executor, F>
template <>
struct equality_comparable<either_blocking_executor>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
};
#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
@@ -245,8 +235,8 @@ struct query_member<
asio::is_convertible<Param, execution::blocking_t>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef execution::blocking_t result_type;
};
@@ -262,8 +252,8 @@ struct require_member<
asio::is_convertible<Param, execution::blocking_t>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = false;
typedef either_blocking_executor result_type;
};
@@ -464,73 +454,73 @@ void prefer_only_executor_execute_test()
executor_type ex1 = possibly_blocking_executor();
- execution::execute(ex1, &do_nothing);
+ ex1.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 1);
ASIO_CHECK(never_blocking_count == 0);
executor_type ex2 = asio::prefer(ex1, execution::blocking.possibly);
- execution::execute(ex2, &do_nothing);
+ ex2.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 2);
ASIO_CHECK(never_blocking_count == 0);
executor_type ex3 = asio::prefer(ex1, execution::blocking.never);
- execution::execute(ex3, &do_nothing);
+ ex3.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 3);
ASIO_CHECK(never_blocking_count == 0);
executor_type ex4 = never_blocking_executor();
- execution::execute(ex4, &do_nothing);
+ ex4.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 3);
ASIO_CHECK(never_blocking_count == 1);
executor_type ex5 = asio::prefer(ex4, execution::blocking.possibly);
- execution::execute(ex5, &do_nothing);
+ ex5.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 3);
ASIO_CHECK(never_blocking_count == 2);
executor_type ex6 = asio::prefer(ex4, execution::blocking.never);
- execution::execute(ex6, &do_nothing);
+ ex6.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 3);
ASIO_CHECK(never_blocking_count == 3);
executor_type ex7 = either_blocking_executor(execution::blocking.possibly);
- execution::execute(ex7, &do_nothing);
+ ex7.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 4);
ASIO_CHECK(never_blocking_count == 3);
executor_type ex8 = asio::prefer(ex7, execution::blocking.possibly);
- execution::execute(ex8, &do_nothing);
+ ex8.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 5);
ASIO_CHECK(never_blocking_count == 3);
executor_type ex9 = asio::prefer(ex7, execution::blocking.never);
- execution::execute(ex9, &do_nothing);
+ ex9.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 5);
ASIO_CHECK(never_blocking_count == 4);
executor_type ex10 = either_blocking_executor(execution::blocking.never);
- execution::execute(ex10, &do_nothing);
+ ex10.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 5);
ASIO_CHECK(never_blocking_count == 5);
executor_type ex11 = asio::prefer(ex7, execution::blocking.possibly);
- execution::execute(ex11, &do_nothing);
+ ex11.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 6);
ASIO_CHECK(never_blocking_count == 5);
executor_type ex12 = asio::prefer(ex7, execution::blocking.never);
- execution::execute(ex12, &do_nothing);
+ ex12.execute(&do_nothing);
ASIO_CHECK(possibly_blocking_count == 6);
ASIO_CHECK(never_blocking_count == 6);
}
diff --git a/3rdparty/asio/src/tests/unit/execution/receiver.cpp b/3rdparty/asio/src/tests/unit/execution/receiver.cpp
deleted file mode 100644
index ec373866e80..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/receiver.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-//
-// receiver.cpp
-// ~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/receiver.hpp"
-
-#include <string>
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-struct not_a_receiver
-{
-};
-
-struct receiver
-{
- receiver()
- {
- }
-
- receiver(const receiver&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver(receiver&&)
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct receiver_of_0
-{
- receiver_of_0()
- {
- }
-
- receiver_of_0(const receiver_of_0&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver_of_0(receiver_of_0&&)
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-
- void set_value()
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver_of_0, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver_of_0>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_value_member<receiver_of_0, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct receiver_of_1
-{
- receiver_of_1()
- {
- }
-
- receiver_of_1(const receiver_of_1&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver_of_1(receiver_of_1&&)
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-
- void set_value(int) ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver_of_1, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver_of_1>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_value_member<receiver_of_1, void(int)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct receiver_of_2
-{
- receiver_of_2()
- {
- }
-
- receiver_of_2(const receiver_of_2&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver_of_2(receiver_of_2&&)
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-
- void set_value(int, std::string)
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver_of_2, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver_of_2>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_value_member<receiver_of_2, void(int, std::string)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void is_receiver_test()
-{
- ASIO_CHECK((
- !asio::execution::is_receiver<
- void,
- asio::error_code
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver<
- not_a_receiver,
- asio::error_code
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver<
- receiver,
- asio::error_code
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver<
- receiver_of_0,
- asio::error_code
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver<
- receiver_of_1,
- asio::error_code
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver<
- receiver_of_2,
- asio::error_code
- >::value));
-}
-
-void is_receiver_of_test()
-{
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- void
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- void,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- not_a_receiver
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- not_a_receiver,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- not_a_receiver,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver_of<
- receiver_of_0
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_0,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_0,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_1
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver_of<
- receiver_of_1,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_1,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_2
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_receiver_of<
- receiver_of_2,
- int
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_receiver_of<
- receiver_of_2,
- int,
- std::string
- >::value));
-}
-
-void is_nothrow_receiver_of_test()
-{
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- void
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- void,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- not_a_receiver
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- not_a_receiver,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- not_a_receiver,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_0
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_0,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_0,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_1
- >::value));
-
- ASIO_CHECK((
- asio::execution::is_nothrow_receiver_of<
- receiver_of_1,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_1,
- int,
- std::string
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_2
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_2,
- int
- >::value));
-
- ASIO_CHECK((
- !asio::execution::is_nothrow_receiver_of<
- receiver_of_2,
- int,
- std::string
- >::value));
-}
-
-ASIO_TEST_SUITE
-(
- "receiver",
- ASIO_TEST_CASE(is_receiver_test)
- ASIO_TEST_CASE(is_receiver_of_test)
- ASIO_TEST_CASE(is_nothrow_receiver_of_test)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/relationship.cpp b/3rdparty/asio/src/tests/unit/execution/relationship.cpp
index 3c3f2c3900e..a91144e8125 100644
--- a/3rdparty/asio/src/tests/unit/execution/relationship.cpp
+++ b/3rdparty/asio/src/tests/unit/execution/relationship.cpp
@@ -2,7 +2,7 @@
// relationship.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -34,12 +34,12 @@ struct ex_nq_nr
{
}
- friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) noexcept
{
return false;
}
@@ -63,7 +63,7 @@ struct is_executor<ex_nq_nr> : asio::true_type
template <typename ResultType, typename ParamType, typename Result>
struct ex_cq_nr
{
- static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
+ static constexpr ResultType query(ParamType) noexcept
{
return Result();
}
@@ -73,12 +73,12 @@ struct ex_cq_nr
{
}
- friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) noexcept
{
return false;
}
@@ -113,12 +113,12 @@ struct query_static_constexpr_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef Result result_type; // Must return raw result type.
- static ASIO_CONSTEXPR result_type value()
+ static constexpr result_type value()
{
return Result();
}
@@ -132,7 +132,7 @@ struct query_static_constexpr_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_mq_nr
{
- ResultType query(ParamType) const ASIO_NOEXCEPT
+ ResultType query(ParamType) const noexcept
{
return Result();
}
@@ -142,12 +142,12 @@ struct ex_mq_nr
{
}
- friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) noexcept
{
return false;
}
@@ -182,8 +182,8 @@ struct query_member<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -196,7 +196,7 @@ struct query_member<
template <typename ResultType, typename ParamType, typename Result>
struct ex_fq_nr
{
- friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
+ friend ResultType query(const ex_fq_nr&, ParamType) noexcept
{
return Result();
}
@@ -206,12 +206,12 @@ struct ex_fq_nr
{
}
- friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) noexcept
{
return false;
}
@@ -246,8 +246,8 @@ struct query_free<
asio::is_convertible<Param, ParamType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ResultType result_type;
};
@@ -260,24 +260,24 @@ struct query_free<
template <typename CurrentType, typename OtherType>
struct ex_mq_mr
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
- CurrentType query(OtherType) const ASIO_NOEXCEPT
+ CurrentType query(OtherType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, OtherType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, OtherType>();
}
ex_mq_mr<OtherType, CurrentType> require(
- OtherType) const ASIO_NOEXCEPT
+ OtherType) const noexcept
{
return ex_mq_mr<OtherType, CurrentType>();
}
@@ -287,12 +287,12 @@ struct ex_mq_mr
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -301,13 +301,13 @@ struct ex_mq_mr
template <typename CurrentType>
struct ex_mq_mr<CurrentType, CurrentType>
{
- CurrentType query(CurrentType) const ASIO_NOEXCEPT
+ CurrentType query(CurrentType) const noexcept
{
return CurrentType();
}
ex_mq_mr<CurrentType, CurrentType> require(
- CurrentType) const ASIO_NOEXCEPT
+ CurrentType) const noexcept
{
return ex_mq_mr<CurrentType, CurrentType>();
}
@@ -317,12 +317,12 @@ struct ex_mq_mr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) noexcept
{
return false;
}
@@ -357,8 +357,8 @@ struct query_member<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -374,8 +374,8 @@ struct require_member<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<CurrentType, OtherType> result_type;
};
@@ -388,8 +388,8 @@ struct require_member<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_mq_mr<OtherType, CurrentType> result_type;
};
@@ -402,36 +402,36 @@ struct require_member<
template <typename CurrentType, typename OtherType>
struct ex_fq_fr
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
- friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, OtherType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, OtherType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> require(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
friend ex_fq_fr<CurrentType, OtherType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, OtherType>();
}
friend ex_fq_fr<OtherType, CurrentType> prefer(
- const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
+ const ex_fq_fr&, OtherType) noexcept
{
return ex_fq_fr<OtherType, CurrentType>();
}
@@ -441,12 +441,12 @@ struct ex_fq_fr
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -455,19 +455,19 @@ struct ex_fq_fr
template <typename CurrentType>
struct ex_fq_fr<CurrentType, CurrentType>
{
- friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ friend CurrentType query(const ex_fq_fr&, CurrentType) noexcept
{
return CurrentType();
}
friend ex_fq_fr<CurrentType, CurrentType> require(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
friend ex_fq_fr<CurrentType, CurrentType> prefer(
- const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
+ const ex_fq_fr&, CurrentType) noexcept
{
return ex_fq_fr<CurrentType, CurrentType>();
}
@@ -477,12 +477,12 @@ struct ex_fq_fr<CurrentType, CurrentType>
{
}
- friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return true;
}
- friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
+ friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) noexcept
{
return false;
}
@@ -517,8 +517,8 @@ struct query_free<
|| asio::is_convertible<Param, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef CurrentType result_type;
};
@@ -534,8 +534,8 @@ struct require_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -548,8 +548,8 @@ struct require_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -565,8 +565,8 @@ struct prefer_free<
asio::is_convertible<Param, CurrentType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<CurrentType, OtherType> result_type;
};
@@ -579,8 +579,8 @@ struct prefer_free<
&& !asio::is_same<CurrentType, OtherType>::value
>::type>
{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
+ static constexpr bool is_valid = true;
+ static constexpr bool is_noexcept = true;
typedef ex_fq_fr<OtherType, CurrentType> result_type;
};
@@ -593,19 +593,19 @@ struct prefer_free<
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_query()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_query<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_query<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_query<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_query<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -628,29 +628,27 @@ void test_query()
template <typename Executor, typename Param, typename ExpectedResult>
void test_constexpr_query()
{
-#if defined(ASIO_HAS_CONSTEXPR)
constexpr Executor ex1 = {};
constexpr exec::relationship_t result1 = asio::query(ex1, Param());
ASIO_CHECK(result1 == ExpectedResult());
-#endif // defined(ASIO_HAS_CONSTEXPR)
}
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_require()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_require<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_require<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_require<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_require<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -679,19 +677,19 @@ void test_require()
template <typename Executor, typename Param, bool ExpectedResult>
void test_can_prefer()
{
- ASIO_CONSTEXPR bool b1 =
+ constexpr bool b1 =
asio::can_prefer<Executor, Param>::value;
ASIO_CHECK(b1 == ExpectedResult);
- ASIO_CONSTEXPR bool b2 =
+ constexpr bool b2 =
asio::can_prefer<const Executor, Param>::value;
ASIO_CHECK(b2 == ExpectedResult);
- ASIO_CONSTEXPR bool b3 =
+ constexpr bool b3 =
asio::can_prefer<Executor&, Param>::value;
ASIO_CHECK(b3 == ExpectedResult);
- ASIO_CONSTEXPR bool b4 =
+ constexpr bool b4 =
asio::can_prefer<const Executor&, Param>::value;
ASIO_CHECK(b4 == ExpectedResult);
}
@@ -720,8 +718,12 @@ void test_prefer()
void test_vars()
{
ASIO_CHECK(s() == exec::relationship);
+ ASIO_CHECK(s() != exec::relationship.fork);
+ ASIO_CHECK(s() != exec::relationship.continuation);
ASIO_CHECK(n1() == exec::relationship.fork);
+ ASIO_CHECK(n1() != exec::relationship.continuation);
ASIO_CHECK(n2() == exec::relationship.continuation);
+ ASIO_CHECK(n2() != exec::relationship.fork);
}
ASIO_TEST_SUITE
diff --git a/3rdparty/asio/src/tests/unit/execution/schedule.cpp b/3rdparty/asio/src/tests/unit/execution/schedule.cpp
deleted file mode 100644
index a18b9520c2e..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/schedule.cpp
+++ /dev/null
@@ -1,490 +0,0 @@
-//
-// schedule.cpp
-// ~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/schedule.hpp"
-
-#include "asio/error_code.hpp"
-#include "asio/execution/sender.hpp"
-#include "asio/execution/submit.hpp"
-#include "asio/traits/connect_member.hpp"
-#include "asio/traits/start_member.hpp"
-#include "asio/traits/submit_member.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct sender : exec::sender_base
-{
- sender()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- void submit(ASIO_MOVE_ARG(R) r) const
- {
- typename asio::decay<R>::type tmp(ASIO_MOVE_CAST(R)(r));
- exec::set_value(tmp);
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<const sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-template <typename R>
-struct submit_member<const sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct no_schedule
-{
-};
-
-struct const_member_schedule
-{
- sender schedule() const ASIO_NOEXCEPT
- {
- return sender();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct schedule_member<const const_member_schedule>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef sender result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT)
-
-struct free_schedule_const_receiver
-{
- friend sender schedule(
- const free_schedule_const_receiver&) ASIO_NOEXCEPT
- {
- return sender();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct schedule_free<const free_schedule_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef sender result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT)
-
-struct non_const_member_schedule
-{
- sender schedule() ASIO_NOEXCEPT
- {
- return sender();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct schedule_member<non_const_member_schedule>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef sender result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_MEMBER_TRAIT)
-
-struct free_schedule_non_const_receiver
-{
- friend sender schedule(
- free_schedule_non_const_receiver&) ASIO_NOEXCEPT
- {
- return sender();
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct schedule_free<free_schedule_non_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef sender result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SCHEDULE_FREE_TRAIT)
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- typename asio::decay<F>::type tmp(ASIO_MOVE_CAST(F)(f));
- tmp();
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_can_schedule()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_schedule<
- no_schedule&>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_schedule<
- const no_schedule&>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_schedule<
- const_member_schedule&>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_schedule<
- const const_member_schedule&>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_schedule<
- free_schedule_const_receiver&>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_schedule<
- const free_schedule_const_receiver&>::value;
- ASIO_CHECK(b6 == true);
-
- ASIO_CONSTEXPR bool b7 = exec::can_schedule<
- non_const_member_schedule&>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_schedule<
- const non_const_member_schedule&>::value;
- ASIO_CHECK(b8 == false);
-
- ASIO_CONSTEXPR bool b9 = exec::can_schedule<
- free_schedule_non_const_receiver&>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_schedule<
- const free_schedule_non_const_receiver&>::value;
- ASIO_CHECK(b10 == false);
-
- ASIO_CONSTEXPR bool b11 = exec::can_schedule<
- executor&>::value;
- ASIO_CHECK(b11 == true);
-
- ASIO_CONSTEXPR bool b12 = exec::can_schedule<
- const executor&>::value;
- ASIO_CHECK(b12 == true);
-}
-
-struct receiver
-{
- int* count_;
-
- receiver(int* count)
- : count_(count)
- {
- }
-
- receiver(const receiver& other) ASIO_NOEXCEPT
- : count_(other.count_)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver(receiver&& other) ASIO_NOEXCEPT
- : count_(other.count_)
- {
- other.count_ = 0;
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- void set_value() ASIO_NOEXCEPT
- {
- ++(*count_);
- }
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-template <>
-struct set_value_member<receiver, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_schedule()
-{
- int count = 0;
- const_member_schedule ex1 = {};
- exec::submit(
- exec::schedule(ex1),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const const_member_schedule ex2 = {};
- exec::submit(
- exec::schedule(ex2),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- exec::submit(
- exec::schedule(const_member_schedule()),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- free_schedule_const_receiver ex3 = {};
- exec::submit(
- exec::schedule(ex3),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const free_schedule_const_receiver ex4 = {};
- exec::submit(
- exec::schedule(ex4),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- exec::submit(
- exec::schedule(free_schedule_const_receiver()),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- non_const_member_schedule ex5 = {};
- exec::submit(
- exec::schedule(ex5),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- free_schedule_non_const_receiver ex6 = {};
- exec::submit(
- exec::schedule(ex6),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- executor ex7;
- exec::submit(
- exec::schedule(ex7),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- const executor ex8;
- exec::submit(
- exec::schedule(ex8),
- receiver(&count));
- ASIO_CHECK(count == 1);
-
- count = 0;
- exec::submit(
- exec::schedule(executor()),
- receiver(&count));
- ASIO_CHECK(count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "schedule",
- ASIO_TEST_CASE(test_can_schedule)
- ASIO_TEST_CASE(test_schedule)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/scheduler.cpp b/3rdparty/asio/src/tests/unit/execution/scheduler.cpp
deleted file mode 100644
index bdcab4dac25..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/scheduler.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// scheduler.cpp
-// ~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/scheduler.hpp"
-
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-struct not_a_scheduler
-{
-};
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- (void)f;
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_is_scheduler()
-{
- ASIO_CHECK(!exec::is_scheduler<void>::value);
- ASIO_CHECK(!exec::is_scheduler<not_a_scheduler>::value);
- ASIO_CHECK(exec::is_scheduler<executor>::value);
-}
-
-ASIO_TEST_SUITE
-(
- "scheduler",
- ASIO_TEST_CASE(test_is_scheduler)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/sender.cpp b/3rdparty/asio/src/tests/unit/execution/sender.cpp
deleted file mode 100644
index 4a497e819f7..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/sender.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-//
-// sender.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/sender.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-struct not_a_sender
-{
-};
-
-struct sender_using_base :
- asio::execution::sender_base
-{
- sender_using_base()
- {
- }
-};
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- (void)f;
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct typed_sender
-{
- template <
- template <typename...> class Tuple,
- template <typename...> class Variant>
- using value_types = Variant<Tuple<int>>;
-
- template <template <typename...> class Variant>
- using error_types = Variant<asio::error_code>;
-
- ASIO_STATIC_CONSTEXPR(bool, sends_done = true);
-
- typed_sender()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- return operation_state();
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<const typed_sender, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
-
-template <typename T>
-bool is_unspecialised(T*, ...)
-{
- return false;
-}
-
-template <typename T>
-bool is_unspecialised(T*,
- typename asio::void_type<
- typename exec::sender_traits<
- T>::asio_execution_sender_traits_base_is_unspecialised
- >::type*)
-{
- return true;
-}
-
-void test_sender_traits()
-{
- not_a_sender s1;
- ASIO_CHECK(is_unspecialised(&s1, static_cast<void*>(0)));
-
- sender_using_base s2;
- ASIO_CHECK(!is_unspecialised(&s2, static_cast<void*>(0)));
-
- executor s3;
- ASIO_CHECK(!is_unspecialised(&s3, static_cast<void*>(0)));
-
-#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
- typed_sender s4;
- ASIO_CHECK(!is_unspecialised(&s4, static_cast<void*>(0)));
-#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
-}
-
-void test_is_sender()
-{
- ASIO_CHECK(!exec::is_sender<void>::value);
- ASIO_CHECK(!exec::is_sender<not_a_sender>::value);
- ASIO_CHECK(exec::is_sender<sender_using_base>::value);
- ASIO_CHECK(exec::is_sender<executor>::value);
-
-#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
- ASIO_CHECK(exec::is_sender<typed_sender>::value);
-#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
-}
-
-void test_is_typed_sender()
-{
- ASIO_CHECK(!exec::is_typed_sender<void>::value);
- ASIO_CHECK(!exec::is_typed_sender<not_a_sender>::value);
- ASIO_CHECK(!exec::is_typed_sender<sender_using_base>::value);
-
-#if defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
- ASIO_CHECK(exec::is_typed_sender<executor>::value);
- ASIO_CHECK(exec::is_typed_sender<typed_sender>::value);
-#endif // defined(ASIO_HAS_DEDUCED_EXECUTION_IS_TYPED_SENDER_TRAIT)
-}
-
-ASIO_TEST_SUITE
-(
- "sender",
- ASIO_TEST_CASE(test_sender_traits)
- ASIO_TEST_CASE(test_is_sender)
- ASIO_TEST_CASE(test_is_typed_sender)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/set_done.cpp b/3rdparty/asio/src/tests/unit/execution/set_done.cpp
deleted file mode 100644
index 723a8fc515d..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/set_done.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-//
-// set_done.cpp
-// ~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/set_done.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct no_set_done
-{
-};
-
-struct const_member_set_done
-{
- void set_done() const ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_done_member<const const_member_set_done>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-struct free_set_done_const_receiver
-{
- friend void set_done(const free_set_done_const_receiver&) ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_done_free<const free_set_done_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT)
-
-struct non_const_member_set_done
-{
- void set_done() ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_done_member<non_const_member_set_done>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-struct free_set_done_non_const_receiver
-{
- friend void set_done(free_set_done_non_const_receiver&) ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_done_free<free_set_done_non_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_FREE_TRAIT)
-
-void test_can_set_done()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_set_done<
- no_set_done&>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_set_done<
- const no_set_done&>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_set_done<
- const_member_set_done&>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_set_done<
- const const_member_set_done&>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_set_done<
- free_set_done_const_receiver&>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_set_done<
- const free_set_done_const_receiver&>::value;
- ASIO_CHECK(b6 == true);
-
- ASIO_CONSTEXPR bool b7 = exec::can_set_done<
- non_const_member_set_done&>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_set_done<
- const non_const_member_set_done&>::value;
- ASIO_CHECK(b8 == false);
-
- ASIO_CONSTEXPR bool b9 = exec::can_set_done<
- free_set_done_non_const_receiver&>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_set_done<
- const free_set_done_non_const_receiver&>::value;
- ASIO_CHECK(b10 == false);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_set_done()
-{
- call_count = 0;
- const_member_set_done ex1 = {};
- exec::set_done(ex1);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_set_done ex2 = {};
- exec::set_done(ex2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_done(const_member_set_done());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_done_const_receiver ex3 = {};
- exec::set_done(ex3);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_set_done_const_receiver ex4 = {};
- exec::set_done(ex4);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_done(free_set_done_const_receiver());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_set_done ex5 = {};
- exec::set_done(ex5);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_done_non_const_receiver ex6 = {};
- exec::set_done(ex6);
- ASIO_CHECK(call_count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "set_done",
- ASIO_TEST_CASE(test_can_set_done)
- ASIO_TEST_CASE(test_set_done)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/set_error.cpp b/3rdparty/asio/src/tests/unit/execution/set_error.cpp
deleted file mode 100644
index 3b5924053b2..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/set_error.cpp
+++ /dev/null
@@ -1,244 +0,0 @@
-//
-// set_error.cpp
-// ~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/set_error.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct no_set_error
-{
-};
-
-struct const_member_set_error
-{
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) const ASIO_NOEXCEPT
- {
- typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename E>
-struct set_error_member<const const_member_set_error, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-struct free_set_error_const_receiver
-{
- template <typename E>
- friend void set_error(const free_set_error_const_receiver&,
- ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename E>
-struct set_error_free<const free_set_error_const_receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT)
-
-struct non_const_member_set_error
-{
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename E>
-struct set_error_member<non_const_member_set_error, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-struct free_set_error_non_const_receiver
-{
- template <typename E>
- friend void set_error(free_set_error_non_const_receiver&,
- ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- typename asio::decay<E>::type tmp(ASIO_MOVE_CAST(E)(e));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename E>
-struct set_error_free<free_set_error_non_const_receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_FREE_TRAIT)
-
-void test_can_set_error()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_set_error<
- no_set_error&, asio::error_code>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_set_error<
- const no_set_error&, asio::error_code>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_set_error<
- const_member_set_error&, asio::error_code>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_set_error<
- const const_member_set_error&, asio::error_code>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_set_error<
- free_set_error_const_receiver&, asio::error_code>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_set_error<
- const free_set_error_const_receiver&, asio::error_code>::value;
- ASIO_CHECK(b6 == true);
-
- ASIO_CONSTEXPR bool b7 = exec::can_set_error<
- non_const_member_set_error&, asio::error_code>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_set_error<
- const non_const_member_set_error&, asio::error_code>::value;
- ASIO_CHECK(b8 == false);
-
- ASIO_CONSTEXPR bool b9 = exec::can_set_error<
- free_set_error_non_const_receiver&, asio::error_code>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_set_error<
- const free_set_error_non_const_receiver&, asio::error_code>::value;
- ASIO_CHECK(b10 == false);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_set_error()
-{
- asio::error_code ec;
-
- call_count = 0;
- const_member_set_error ex1 = {};
- exec::set_error(ex1, ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_set_error ex2 = {};
- exec::set_error(ex2, ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_error(const_member_set_error(), ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_error_const_receiver ex3 = {};
- exec::set_error(ex3, ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_set_error_const_receiver ex4 = {};
- exec::set_error(ex4, ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_error(free_set_error_const_receiver(), ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_set_error ex5 = {};
- exec::set_error(ex5, ec);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_error_non_const_receiver ex6 = {};
- exec::set_error(ex6, ec);
- ASIO_CHECK(call_count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "set_error",
- ASIO_TEST_CASE(test_can_set_error)
- ASIO_TEST_CASE(test_set_error)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/set_value.cpp b/3rdparty/asio/src/tests/unit/execution/set_value.cpp
deleted file mode 100644
index ed22478b3c9..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/set_value.cpp
+++ /dev/null
@@ -1,820 +0,0 @@
-//
-// set_value.cpp
-// ~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/set_value.hpp"
-
-#include <string>
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct no_set_value
-{
-};
-
-struct const_member_set_value_0
-{
- void set_value() const
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_value_member<const const_member_set_value_0, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct const_member_set_value_1
-{
- template <typename V1>
- void set_value(ASIO_MOVE_ARG(V1) v1) const
- {
- typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1>
-struct set_value_member<const const_member_set_value_1, void(V1)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct const_member_set_value_2
-{
- template <typename V1, typename V2>
- void set_value(ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2) const
- {
- typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp1;
- typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2));
- (void)tmp2;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1, typename V2>
-struct set_value_member<const const_member_set_value_2, void(V1, V2)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct free_set_value_const_receiver_0
-{
- friend void set_value(const free_set_value_const_receiver_0&)
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_value_free<const free_set_value_const_receiver_0, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-struct free_set_value_const_receiver_1
-{
- template <typename V1>
- friend void set_value(const free_set_value_const_receiver_1&,
- ASIO_MOVE_ARG(V1) v1)
- {
- typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1>
-struct set_value_free<const free_set_value_const_receiver_1, void(V1)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-struct free_set_value_const_receiver_2
-{
- template <typename V1, typename V2>
- friend void set_value(const free_set_value_const_receiver_2&,
- ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2)
- {
- typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp1;
- typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2));
- (void)tmp2;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1, typename V2>
-struct set_value_free<const free_set_value_const_receiver_2, void(V1, V2)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-struct non_const_member_set_value_0
-{
- void set_value()
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_value_member<non_const_member_set_value_0, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct non_const_member_set_value_1
-{
- template <typename V1>
- void set_value(ASIO_MOVE_ARG(V1) v1)
- {
- typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1>
-struct set_value_member<non_const_member_set_value_1, void(V1)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct non_const_member_set_value_2
-{
- template <typename V1, typename V2>
- void set_value(ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2)
- {
- typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp1;
- typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2));
- (void)tmp2;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1, typename V2>
-struct set_value_member<non_const_member_set_value_2, void(V1, V2)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-struct free_set_value_non_const_receiver_0
-{
- friend void set_value(free_set_value_non_const_receiver_0&)
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct set_value_free<free_set_value_non_const_receiver_0, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-struct free_set_value_non_const_receiver_1
-{
- template <typename V1>
- friend void set_value(free_set_value_non_const_receiver_1&,
- ASIO_MOVE_ARG(V1) v1)
- {
- typename asio::decay<V1>::type tmp(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1>
-struct set_value_free<free_set_value_non_const_receiver_1, void(V1)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-struct free_set_value_non_const_receiver_2
-{
- template <typename V1, typename V2>
- friend void set_value(free_set_value_non_const_receiver_2&,
- ASIO_MOVE_ARG(V1) v1, ASIO_MOVE_ARG(V2) v2)
- {
- typename asio::decay<V1>::type tmp1(ASIO_MOVE_CAST(V1)(v1));
- (void)tmp1;
- typename asio::decay<V2>::type tmp2(ASIO_MOVE_CAST(V2)(v2));
- (void)tmp2;
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename V1, typename V2>
-struct set_value_free<free_set_value_non_const_receiver_2, void(V1, V2)>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_FREE_TRAIT)
-
-void test_can_set_value()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_set_value<
- no_set_value&>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_set_value<
- const no_set_value&>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_set_value<
- no_set_value&, int>::value;
- ASIO_CHECK(b3 == false);
-
- ASIO_CONSTEXPR bool b4 = exec::can_set_value<
- const no_set_value&, int>::value;
- ASIO_CHECK(b4 == false);
-
- ASIO_CONSTEXPR bool b5 = exec::can_set_value<
- no_set_value&, int, std::string>::value;
- ASIO_CHECK(b5 == false);
-
- ASIO_CONSTEXPR bool b6 = exec::can_set_value<
- const no_set_value&, int, std::string>::value;
- ASIO_CHECK(b6 == false);
-
- ASIO_CONSTEXPR bool b7 = exec::can_set_value<
- const_member_set_value_0&>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_set_value<
- const const_member_set_value_0&>::value;
- ASIO_CHECK(b8 == true);
-
- ASIO_CONSTEXPR bool b9 = exec::can_set_value<
- const_member_set_value_0&, int>::value;
- ASIO_CHECK(b9 == false);
-
- ASIO_CONSTEXPR bool b10 = exec::can_set_value<
- const const_member_set_value_0&, int>::value;
- ASIO_CHECK(b10 == false);
-
- ASIO_CONSTEXPR bool b11 = exec::can_set_value<
- const_member_set_value_0&, int, std::string>::value;
- ASIO_CHECK(b11 == false);
-
- ASIO_CONSTEXPR bool b12 = exec::can_set_value<
- const const_member_set_value_0&, int, std::string>::value;
- ASIO_CHECK(b12 == false);
-
- ASIO_CONSTEXPR bool b13 = exec::can_set_value<
- const_member_set_value_1&>::value;
- ASIO_CHECK(b13 == false);
-
- ASIO_CONSTEXPR bool b14 = exec::can_set_value<
- const const_member_set_value_1&>::value;
- ASIO_CHECK(b14 == false);
-
- ASIO_CONSTEXPR bool b15 = exec::can_set_value<
- const_member_set_value_1&, int>::value;
- ASIO_CHECK(b15 == true);
-
- ASIO_CONSTEXPR bool b16 = exec::can_set_value<
- const const_member_set_value_1&, int>::value;
- ASIO_CHECK(b16 == true);
-
- ASIO_CONSTEXPR bool b17 = exec::can_set_value<
- const_member_set_value_1&, int, std::string>::value;
- ASIO_CHECK(b17 == false);
-
- ASIO_CONSTEXPR bool b18 = exec::can_set_value<
- const const_member_set_value_1&, int, std::string>::value;
- ASIO_CHECK(b18 == false);
-
- ASIO_CONSTEXPR bool b19 = exec::can_set_value<
- const_member_set_value_2&>::value;
- ASIO_CHECK(b19 == false);
-
- ASIO_CONSTEXPR bool b20 = exec::can_set_value<
- const const_member_set_value_2&>::value;
- ASIO_CHECK(b20 == false);
-
- ASIO_CONSTEXPR bool b21 = exec::can_set_value<
- const_member_set_value_2&, int>::value;
- ASIO_CHECK(b21 == false);
-
- ASIO_CONSTEXPR bool b22 = exec::can_set_value<
- const const_member_set_value_2&, int>::value;
- ASIO_CHECK(b22 == false);
-
- ASIO_CONSTEXPR bool b23 = exec::can_set_value<
- const_member_set_value_2&, int, std::string>::value;
- ASIO_CHECK(b23 == true);
-
- ASIO_CONSTEXPR bool b24 = exec::can_set_value<
- const const_member_set_value_2&, int, std::string>::value;
- ASIO_CHECK(b24 == true);
-
- ASIO_CONSTEXPR bool b25 = exec::can_set_value<
- free_set_value_const_receiver_0&>::value;
- ASIO_CHECK(b25 == true);
-
- ASIO_CONSTEXPR bool b26 = exec::can_set_value<
- const free_set_value_const_receiver_0&>::value;
- ASIO_CHECK(b26 == true);
-
- ASIO_CONSTEXPR bool b27 = exec::can_set_value<
- free_set_value_const_receiver_0&, int>::value;
- ASIO_CHECK(b27 == false);
-
- ASIO_CONSTEXPR bool b28 = exec::can_set_value<
- const free_set_value_const_receiver_0&, int>::value;
- ASIO_CHECK(b28 == false);
-
- ASIO_CONSTEXPR bool b29 = exec::can_set_value<
- free_set_value_const_receiver_0&, int, std::string>::value;
- ASIO_CHECK(b29 == false);
-
- ASIO_CONSTEXPR bool b30 = exec::can_set_value<
- const free_set_value_const_receiver_0&, int, std::string>::value;
- ASIO_CHECK(b30 == false);
-
- ASIO_CONSTEXPR bool b31 = exec::can_set_value<
- free_set_value_const_receiver_1&>::value;
- ASIO_CHECK(b31 == false);
-
- ASIO_CONSTEXPR bool b32 = exec::can_set_value<
- const free_set_value_const_receiver_1&>::value;
- ASIO_CHECK(b32 == false);
-
- ASIO_CONSTEXPR bool b33 = exec::can_set_value<
- free_set_value_const_receiver_1&, int>::value;
- ASIO_CHECK(b33 == true);
-
- ASIO_CONSTEXPR bool b34 = exec::can_set_value<
- const free_set_value_const_receiver_1&, int>::value;
- ASIO_CHECK(b34 == true);
-
- ASIO_CONSTEXPR bool b35 = exec::can_set_value<
- free_set_value_const_receiver_1&, int, std::string>::value;
- ASIO_CHECK(b35 == false);
-
- ASIO_CONSTEXPR bool b36 = exec::can_set_value<
- const free_set_value_const_receiver_1&, int, std::string>::value;
- ASIO_CHECK(b36 == false);
-
- ASIO_CONSTEXPR bool b37 = exec::can_set_value<
- free_set_value_const_receiver_2&>::value;
- ASIO_CHECK(b37 == false);
-
- ASIO_CONSTEXPR bool b38 = exec::can_set_value<
- const free_set_value_const_receiver_2&>::value;
- ASIO_CHECK(b38 == false);
-
- ASIO_CONSTEXPR bool b39 = exec::can_set_value<
- free_set_value_const_receiver_2&, int>::value;
- ASIO_CHECK(b39 == false);
-
- ASIO_CONSTEXPR bool b40 = exec::can_set_value<
- const free_set_value_const_receiver_2&, int>::value;
- ASIO_CHECK(b40 == false);
-
- ASIO_CONSTEXPR bool b41 = exec::can_set_value<
- free_set_value_const_receiver_2&, int, std::string>::value;
- ASIO_CHECK(b41 == true);
-
- ASIO_CONSTEXPR bool b42 = exec::can_set_value<
- const free_set_value_const_receiver_2&, int, std::string>::value;
- ASIO_CHECK(b42 == true);
-
- ASIO_CONSTEXPR bool b43 = exec::can_set_value<
- non_const_member_set_value_0&>::value;
- ASIO_CHECK(b43 == true);
-
- ASIO_CONSTEXPR bool b44 = exec::can_set_value<
- const non_const_member_set_value_0&>::value;
- ASIO_CHECK(b44 == false);
-
- ASIO_CONSTEXPR bool b45 = exec::can_set_value<
- non_const_member_set_value_0&, int>::value;
- ASIO_CHECK(b45 == false);
-
- ASIO_CONSTEXPR bool b46 = exec::can_set_value<
- const non_const_member_set_value_0&, int>::value;
- ASIO_CHECK(b46 == false);
-
- ASIO_CONSTEXPR bool b47 = exec::can_set_value<
- non_const_member_set_value_0&, int, std::string>::value;
- ASIO_CHECK(b47 == false);
-
- ASIO_CONSTEXPR bool b48 = exec::can_set_value<
- const non_const_member_set_value_0&, int, std::string>::value;
- ASIO_CHECK(b48 == false);
-
- ASIO_CONSTEXPR bool b49 = exec::can_set_value<
- non_const_member_set_value_1&>::value;
- ASIO_CHECK(b49 == false);
-
- ASIO_CONSTEXPR bool b50 = exec::can_set_value<
- const non_const_member_set_value_1&>::value;
- ASIO_CHECK(b50 == false);
-
- ASIO_CONSTEXPR bool b51 = exec::can_set_value<
- non_const_member_set_value_1&, int>::value;
- ASIO_CHECK(b51 == true);
-
- ASIO_CONSTEXPR bool b52 = exec::can_set_value<
- const non_const_member_set_value_1&, int>::value;
- ASIO_CHECK(b52 == false);
-
- ASIO_CONSTEXPR bool b53 = exec::can_set_value<
- non_const_member_set_value_1&, int, std::string>::value;
- ASIO_CHECK(b53 == false);
-
- ASIO_CONSTEXPR bool b54 = exec::can_set_value<
- const non_const_member_set_value_1&, int, std::string>::value;
- ASIO_CHECK(b54 == false);
-
- ASIO_CONSTEXPR bool b55 = exec::can_set_value<
- non_const_member_set_value_2&>::value;
- ASIO_CHECK(b55 == false);
-
- ASIO_CONSTEXPR bool b56 = exec::can_set_value<
- const non_const_member_set_value_2&>::value;
- ASIO_CHECK(b56 == false);
-
- ASIO_CONSTEXPR bool b57 = exec::can_set_value<
- non_const_member_set_value_2&, int>::value;
- ASIO_CHECK(b57 == false);
-
- ASIO_CONSTEXPR bool b58 = exec::can_set_value<
- const non_const_member_set_value_2&, int>::value;
- ASIO_CHECK(b58 == false);
-
- ASIO_CONSTEXPR bool b59 = exec::can_set_value<
- non_const_member_set_value_2&, int, std::string>::value;
- ASIO_CHECK(b59 == true);
-
- ASIO_CONSTEXPR bool b60 = exec::can_set_value<
- const non_const_member_set_value_2&, int, std::string>::value;
- ASIO_CHECK(b60 == false);
-
- ASIO_CONSTEXPR bool b61 = exec::can_set_value<
- free_set_value_non_const_receiver_0&>::value;
- ASIO_CHECK(b61 == true);
-
- ASIO_CONSTEXPR bool b62 = exec::can_set_value<
- const free_set_value_non_const_receiver_0&>::value;
- ASIO_CHECK(b62 == false);
-
- ASIO_CONSTEXPR bool b63 = exec::can_set_value<
- free_set_value_non_const_receiver_0&, int>::value;
- ASIO_CHECK(b63 == false);
-
- ASIO_CONSTEXPR bool b64 = exec::can_set_value<
- const free_set_value_non_const_receiver_0&, int>::value;
- ASIO_CHECK(b64 == false);
-
- ASIO_CONSTEXPR bool b65 = exec::can_set_value<
- free_set_value_non_const_receiver_0&, int, std::string>::value;
- ASIO_CHECK(b65 == false);
-
- ASIO_CONSTEXPR bool b66 = exec::can_set_value<
- const free_set_value_non_const_receiver_0&, int, std::string>::value;
- ASIO_CHECK(b66 == false);
-
- ASIO_CONSTEXPR bool b67 = exec::can_set_value<
- free_set_value_non_const_receiver_1&>::value;
- ASIO_CHECK(b67 == false);
-
- ASIO_CONSTEXPR bool b68 = exec::can_set_value<
- const free_set_value_non_const_receiver_1&>::value;
- ASIO_CHECK(b68 == false);
-
- ASIO_CONSTEXPR bool b69 = exec::can_set_value<
- free_set_value_non_const_receiver_1&, int>::value;
- ASIO_CHECK(b69 == true);
-
- ASIO_CONSTEXPR bool b70 = exec::can_set_value<
- const free_set_value_non_const_receiver_1&, int>::value;
- ASIO_CHECK(b70 == false);
-
- ASIO_CONSTEXPR bool b71 = exec::can_set_value<
- free_set_value_non_const_receiver_1&, int, std::string>::value;
- ASIO_CHECK(b71 == false);
-
- ASIO_CONSTEXPR bool b72 = exec::can_set_value<
- const free_set_value_non_const_receiver_1&, int, std::string>::value;
- ASIO_CHECK(b72 == false);
-
- ASIO_CONSTEXPR bool b73 = exec::can_set_value<
- free_set_value_non_const_receiver_2&>::value;
- ASIO_CHECK(b73 == false);
-
- ASIO_CONSTEXPR bool b74 = exec::can_set_value<
- const free_set_value_non_const_receiver_2&>::value;
- ASIO_CHECK(b74 == false);
-
- ASIO_CONSTEXPR bool b75 = exec::can_set_value<
- free_set_value_non_const_receiver_2&, int>::value;
- ASIO_CHECK(b75 == false);
-
- ASIO_CONSTEXPR bool b76 = exec::can_set_value<
- const free_set_value_non_const_receiver_2&, int>::value;
- ASIO_CHECK(b76 == false);
-
- ASIO_CONSTEXPR bool b77 = exec::can_set_value<
- free_set_value_non_const_receiver_2&, int, std::string>::value;
- ASIO_CHECK(b77 == true);
-
- ASIO_CONSTEXPR bool b78 = exec::can_set_value<
- const free_set_value_non_const_receiver_2&, int, std::string>::value;
- ASIO_CHECK(b78 == false);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_set_value()
-{
- call_count = 0;
- const_member_set_value_0 ex1 = {};
- exec::set_value(ex1);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_set_value_0 ex2 = {};
- exec::set_value(ex2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(const_member_set_value_0());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const_member_set_value_1 ex3 = {};
- exec::set_value(ex3, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_set_value_1 ex4 = {};
- exec::set_value(ex4, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(const_member_set_value_1(), 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const_member_set_value_2 ex5 = {};
- exec::set_value(ex5, 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_set_value_2 ex6 = {};
- exec::set_value(ex6, 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(const_member_set_value_2(), 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_const_receiver_0 ex7 = {};
- exec::set_value(ex7);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_set_value_const_receiver_0 ex8 = {};
- exec::set_value(ex8);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(free_set_value_const_receiver_0());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_const_receiver_1 ex9 = {};
- exec::set_value(ex9, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_set_value_const_receiver_1 ex10 = {};
- exec::set_value(ex10, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(free_set_value_const_receiver_1(), 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_const_receiver_2 ex11 = {};
- exec::set_value(ex11, 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_set_value_const_receiver_2 ex12 = {};
- exec::set_value(ex12, 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::set_value(free_set_value_const_receiver_2(), 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_set_value_0 ex13 = {};
- exec::set_value(ex13);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_set_value_1 ex14 = {};
- exec::set_value(ex14, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_set_value_2 ex15 = {};
- exec::set_value(ex15, 123, std::string());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_non_const_receiver_0 ex16 = {};
- exec::set_value(ex16);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_non_const_receiver_1 ex17 = {};
- exec::set_value(ex17, 123);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_set_value_non_const_receiver_2 ex18 = {};
- exec::set_value(ex18, 123, std::string());
- ASIO_CHECK(call_count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "set_value",
- ASIO_TEST_CASE(test_can_set_value)
- ASIO_TEST_CASE(test_set_value)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/start.cpp b/3rdparty/asio/src/tests/unit/execution/start.cpp
deleted file mode 100644
index 8faae16d961..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/start.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-//
-// start.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/start.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct no_start
-{
-};
-
-struct const_member_start
-{
- void start() const ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct start_member<const const_member_start>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-struct free_start_const_receiver
-{
- friend void start(const free_start_const_receiver&) ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct start_free<const free_start_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT)
-
-struct non_const_member_start
-{
- void start() ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct start_member<non_const_member_start>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-struct free_start_non_const_receiver
-{
- friend void start(free_start_non_const_receiver&) ASIO_NOEXCEPT
- {
- ++call_count;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <>
-struct start_free<free_start_non_const_receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_FREE_TRAIT)
-
-void test_can_start()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_start<
- no_start&>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_start<
- const no_start&>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_start<
- const_member_start&>::value;
- ASIO_CHECK(b3 == true);
-
- ASIO_CONSTEXPR bool b4 = exec::can_start<
- const const_member_start&>::value;
- ASIO_CHECK(b4 == true);
-
- ASIO_CONSTEXPR bool b5 = exec::can_start<
- free_start_const_receiver&>::value;
- ASIO_CHECK(b5 == true);
-
- ASIO_CONSTEXPR bool b6 = exec::can_start<
- const free_start_const_receiver&>::value;
- ASIO_CHECK(b6 == true);
-
- ASIO_CONSTEXPR bool b7 = exec::can_start<
- non_const_member_start&>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_start<
- const non_const_member_start&>::value;
- ASIO_CHECK(b8 == false);
-
- ASIO_CONSTEXPR bool b9 = exec::can_start<
- free_start_non_const_receiver&>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_start<
- const free_start_non_const_receiver&>::value;
- ASIO_CHECK(b10 == false);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_start()
-{
- call_count = 0;
- const_member_start ex1 = {};
- exec::start(ex1);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_start ex2 = {};
- exec::start(ex2);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::start(const_member_start());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_start_const_receiver ex3 = {};
- exec::start(ex3);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_start_const_receiver ex4 = {};
- exec::start(ex4);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::start(free_start_const_receiver());
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_start ex5 = {};
- exec::start(ex5);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_start_non_const_receiver ex6 = {};
- exec::start(ex6);
- ASIO_CHECK(call_count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "start",
- ASIO_TEST_CASE(test_can_start)
- ASIO_TEST_CASE(test_start)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution/submit.cpp b/3rdparty/asio/src/tests/unit/execution/submit.cpp
deleted file mode 100644
index 6042ef18f1e..00000000000
--- a/3rdparty/asio/src/tests/unit/execution/submit.cpp
+++ /dev/null
@@ -1,546 +0,0 @@
-//
-// submit.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2021 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)
-//
-
-// Disable autolinking for unit tests.
-#if !defined(BOOST_ALL_NO_LIB)
-#define BOOST_ALL_NO_LIB 1
-#endif // !defined(BOOST_ALL_NO_LIB)
-
-// Test that header file is self-contained.
-#include "asio/execution/submit.hpp"
-
-#include "asio/error_code.hpp"
-#include "../unit_test.hpp"
-
-namespace exec = asio::execution;
-
-static int call_count = 0;
-
-struct operation_state
-{
- void start() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-template <>
-struct start_member<operation_state>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct no_submit_1
-{
-};
-
-struct no_submit_2 : exec::sender_base
-{
-};
-
-struct no_submit_3
-{
- template <typename R>
- void submit(ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- }
-};
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-namespace asio {
-namespace traits {
-
-template <typename R>
-struct submit_member<no_submit_3, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-} // namespace traits
-} // namespace asio
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-struct const_member_submit : exec::sender_base
-{
- const_member_submit()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- void submit(ASIO_MOVE_ARG(R) r) const
- {
- (void)r;
- ++call_count;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<const const_member_submit, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-template <typename R>
-struct submit_member<const const_member_submit, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct free_submit_const_receiver : exec::sender_base
-{
- free_submit_const_receiver()
- {
- }
-
- template <typename R>
- friend operation_state connect(
- const free_submit_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- friend void submit(
- const free_submit_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-template <typename R>
-struct connect_free<const free_submit_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-template <typename R>
-struct submit_free<const free_submit_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct non_const_member_submit : exec::sender_base
-{
- non_const_member_submit()
- {
- }
-
- template <typename R>
- operation_state connect(ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- void submit(ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-template <typename R>
-struct connect_member<non_const_member_submit, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-template <typename R>
-struct submit_member<non_const_member_submit, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct free_submit_non_const_receiver : exec::sender_base
-{
- free_submit_non_const_receiver()
- {
- }
-
- template <typename R>
- friend operation_state connect(
- free_submit_non_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- return operation_state();
- }
-
- template <typename R>
- friend void submit(
- free_submit_non_const_receiver&, ASIO_MOVE_ARG(R) r)
- {
- (void)r;
- ++call_count;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-template <typename R>
-struct connect_free<free_submit_non_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef operation_state result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_CONNECT_FREE_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-template <typename R>
-struct submit_free<free_submit_non_const_receiver, R>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SUBMIT_FREE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct receiver
-{
- receiver()
- {
- }
-
- receiver(const receiver&)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver(receiver&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-struct executor
-{
- executor()
- {
- }
-
- executor(const executor&) ASIO_NOEXCEPT
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- executor(executor&&) ASIO_NOEXCEPT
- {
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- template <typename F>
- void execute(ASIO_MOVE_ARG(F) f) const ASIO_NOEXCEPT
- {
- (void)f;
- ++call_count;
- }
-
- bool operator==(const executor&) const ASIO_NOEXCEPT
- {
- return true;
- }
-
- bool operator!=(const executor&) const ASIO_NOEXCEPT
- {
- return false;
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
-
-template <typename F>
-struct execute_member<executor, F>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-template <>
-struct equality_comparable<executor>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void test_can_submit()
-{
- ASIO_CONSTEXPR bool b1 = exec::can_submit<
- no_submit_1&, receiver>::value;
- ASIO_CHECK(b1 == false);
-
- ASIO_CONSTEXPR bool b2 = exec::can_submit<
- const no_submit_1&, receiver>::value;
- ASIO_CHECK(b2 == false);
-
- ASIO_CONSTEXPR bool b3 = exec::can_submit<
- no_submit_2&, receiver>::value;
- ASIO_CHECK(b3 == false);
-
- ASIO_CONSTEXPR bool b4 = exec::can_submit<
- const no_submit_2&, receiver>::value;
- ASIO_CHECK(b4 == false);
-
- ASIO_CONSTEXPR bool b5 = exec::can_submit<
- no_submit_3&, receiver>::value;
- ASIO_CHECK(b5 == false);
-
- ASIO_CONSTEXPR bool b6 = exec::can_submit<
- const no_submit_3&, receiver>::value;
- ASIO_CHECK(b6 == false);
-
- ASIO_CONSTEXPR bool b7 = exec::can_submit<
- const_member_submit&, receiver>::value;
- ASIO_CHECK(b7 == true);
-
- ASIO_CONSTEXPR bool b8 = exec::can_submit<
- const const_member_submit&, receiver>::value;
- ASIO_CHECK(b8 == true);
-
- ASIO_CONSTEXPR bool b9 = exec::can_submit<
- free_submit_const_receiver&, receiver>::value;
- ASIO_CHECK(b9 == true);
-
- ASIO_CONSTEXPR bool b10 = exec::can_submit<
- const free_submit_const_receiver&, receiver>::value;
- ASIO_CHECK(b10 == true);
-
- ASIO_CONSTEXPR bool b11 = exec::can_submit<
- non_const_member_submit&, receiver>::value;
- ASIO_CHECK(b11 == true);
-
- ASIO_CONSTEXPR bool b12 = exec::can_submit<
- const non_const_member_submit&, receiver>::value;
- ASIO_CHECK(b12 == false);
-
- ASIO_CONSTEXPR bool b13 = exec::can_submit<
- free_submit_non_const_receiver&, receiver>::value;
- ASIO_CHECK(b13 == true);
-
- ASIO_CONSTEXPR bool b14 = exec::can_submit<
- const free_submit_non_const_receiver&, receiver>::value;
- ASIO_CHECK(b14 == false);
-
- ASIO_CONSTEXPR bool b15 = exec::can_submit<
- executor&, receiver>::value;
- ASIO_CHECK(b15 == true);
-
- ASIO_CONSTEXPR bool b16 = exec::can_submit<
- const executor&, receiver>::value;
- ASIO_CHECK(b16 == true);
-}
-
-void increment(int* count)
-{
- ++(*count);
-}
-
-void test_submit()
-{
- receiver r;
-
- call_count = 0;
- const_member_submit s1;
- exec::submit(s1, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const const_member_submit s2;
- exec::submit(s2, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::submit(const_member_submit(), r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_submit_const_receiver s3;
- exec::submit(s3, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const free_submit_const_receiver s4;
- exec::submit(s4, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::submit(free_submit_const_receiver(), r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- non_const_member_submit s5;
- exec::submit(s5, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- free_submit_non_const_receiver s6;
- exec::submit(s6, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- executor s7;
- exec::submit(s7, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- const executor s8;
- exec::submit(s8, r);
- ASIO_CHECK(call_count == 1);
-
- call_count = 0;
- exec::submit(executor(), r);
- ASIO_CHECK(call_count == 1);
-}
-
-ASIO_TEST_SUITE
-(
- "submit",
- ASIO_TEST_CASE(test_can_submit)
- ASIO_TEST_CASE(test_submit)
-)
diff --git a/3rdparty/asio/src/tests/unit/execution_context.cpp b/3rdparty/asio/src/tests/unit/execution_context.cpp
index fff86c98a73..cf5a499e256 100644
--- a/3rdparty/asio/src/tests/unit/execution_context.cpp
+++ b/3rdparty/asio/src/tests/unit/execution_context.cpp
@@ -2,7 +2,7 @@
// execution_context.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/executor.cpp b/3rdparty/asio/src/tests/unit/executor.cpp
index 4ec2258c2fd..7ea75055aa4 100644
--- a/3rdparty/asio/src/tests/unit/executor.cpp
+++ b/3rdparty/asio/src/tests/unit/executor.cpp
@@ -2,7 +2,7 @@
// executor.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/executor_work_guard.cpp b/3rdparty/asio/src/tests/unit/executor_work_guard.cpp
index 9fb0b08da61..5d7aecd5c7c 100644
--- a/3rdparty/asio/src/tests/unit/executor_work_guard.cpp
+++ b/3rdparty/asio/src/tests/unit/executor_work_guard.cpp
@@ -2,7 +2,7 @@
// executor_work_guard.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp b/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp
index 2323f0d7932..e79eeae3eea 100644
--- a/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/awaitable_operators.cpp
@@ -2,7 +2,7 @@
// experimental/awaitable_operators.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp
new file mode 100644
index 00000000000..a277efeb27c
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp
@@ -0,0 +1,25 @@
+//
+// experimental/basic_channel.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/basic_channel.hpp"
+
+#include "../unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "experimental/basic_channel",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp
new file mode 100644
index 00000000000..413d1870bd9
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp
@@ -0,0 +1,25 @@
+//
+// experimental/basic_concurrent_channel.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/basic_concurrent_channel.hpp"
+
+#include "../unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "experimental/basic_concurrent_channel",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/channel.cpp b/3rdparty/asio/src/tests/unit/experimental/channel.cpp
new file mode 100644
index 00000000000..6c5b67fe570
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/channel.cpp
@@ -0,0 +1,888 @@
+//
+// experimental/channel.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/channel.hpp"
+
+#include <utility>
+#include "asio/any_completion_handler.hpp"
+#include "asio/bind_executor.hpp"
+#include "asio/bind_immediate_executor.hpp"
+#include "asio/error.hpp"
+#include "asio/io_context.hpp"
+#include "asio/system_executor.hpp"
+#include "../unit_test.hpp"
+
+using namespace asio;
+using namespace asio::experimental;
+
+void unbuffered_channel_test()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send(asio::error::eof, "hello");
+
+ ASIO_CHECK(!b1);
+
+ std::string s1 = "abcdefghijklmnopqrstuvwxyz";
+ bool b2 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(!b2);
+ ASIO_CHECK(!s1.empty());
+
+ asio::error_code ec1;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s2 = std::move(s);
+ });
+
+ bool b3 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(b3);
+ ASIO_CHECK(s1.empty());
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz");
+
+ bool b4 = ch1.try_receive([](asio::error_code, std::string){});
+
+ ASIO_CHECK(!b4);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s3 = "zyxwvutsrqponmlkjihgfedcba";
+ ch1.async_send(asio::error::eof, std::move(s3),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ asio::error_code ec3;
+ std::string s4;
+ bool b5 = ch1.try_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec3 = ec;
+ s4 = s;
+ });
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec3 == asio::error::eof);
+ ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba");
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec2);
+}
+
+void buffered_channel_test()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send(asio::error::eof, "hello");
+
+ ASIO_CHECK(b1);
+
+ std::string s1 = "abcdefghijklmnopqrstuvwxyz";
+ bool b2 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(!b2);
+ ASIO_CHECK(!s1.empty());
+
+ asio::error_code ec1;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s2 = std::move(s);
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s2 == "hello");
+
+ bool b4 = ch1.try_receive([](asio::error_code, std::string){});
+
+ ASIO_CHECK(!b4);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s3 = "zyxwvutsrqponmlkjihgfedcba";
+ ch1.async_send(asio::error::eof, std::move(s3),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ asio::error_code ec3;
+ std::string s4;
+ bool b5 = ch1.try_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec3 = ec;
+ s4 = s;
+ });
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec3 == asio::error::eof);
+ ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba");
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec2);
+
+ bool b6 = ch1.try_send(asio::error_code(), "goodbye");
+
+ ASIO_CHECK(b6);
+
+ ch1.close();
+
+ asio::error_code ec4;
+ std::string s5;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec4 = ec;
+ s5 = std::move(s);
+ });
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec4);
+ ASIO_CHECK(s5 == "goodbye");
+
+ asio::error_code ec5;
+ std::string s6;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec5 = ec;
+ s6 = std::move(s);
+ });
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec5 == asio::experimental::channel_errc::channel_closed);
+ ASIO_CHECK(s6.empty());
+}
+
+void buffered_error_channel_test()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code)> ch1(ctx, 1);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send(asio::error::eof);
+
+ ASIO_CHECK(b1);
+
+ bool b2 = ch1.try_send(asio::error::eof);
+
+ ASIO_CHECK(!b2);
+
+ asio::error_code ec1;
+ ch1.async_receive(
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+
+ bool b4 = ch1.try_receive([](asio::error_code){});
+
+ ASIO_CHECK(!b4);
+
+ asio::error_code ec2 = asio::error::would_block;
+ ch1.async_send(asio::error::eof,
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ asio::error_code ec3;
+ bool b5 = ch1.try_receive(
+ [&](asio::error_code ec)
+ {
+ ec3 = ec;
+ });
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec3 == asio::error::eof);
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec2);
+}
+
+void unbuffered_non_immediate_receive()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ });
+
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+}
+
+void unbuffered_immediate_receive()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ bind_immediate_executor(system_executor(),
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+}
+
+void unbuffered_executor_receive()
+{
+ io_context ctx;
+ io_context ctx2;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ bind_executor(ctx2,
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx2.run();
+
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+}
+
+void unbuffered_non_immediate_send()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s2),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "0123456789");
+ ASIO_CHECK(!ec2);
+}
+
+void unbuffered_immediate_send()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s2),
+ bind_immediate_executor(system_executor(),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(!ec2);
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "0123456789");
+}
+
+void unbuffered_executor_send()
+{
+ io_context ctx;
+ io_context ctx2;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s2),
+ bind_executor(ctx2,
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "0123456789");
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx2.run();
+
+ ASIO_CHECK(!ec2);
+}
+
+void buffered_non_immediate_receive()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ });
+
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+}
+
+void buffered_immediate_receive()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ bind_immediate_executor(system_executor(),
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+
+ ctx.restart();
+ ctx.run();
+}
+
+void buffered_executor_receive()
+{
+ io_context ctx;
+ io_context ctx2;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ bind_executor(ctx2,
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx2.run();
+
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+}
+
+void buffered_non_immediate_send()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ });
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(!ec1);
+}
+
+void buffered_immediate_send()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ bind_immediate_executor(system_executor(),
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ }));
+
+ ASIO_CHECK(!ec1);
+
+ ctx.run();
+}
+
+void buffered_executor_send()
+{
+ io_context ctx;
+ io_context ctx2;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1 = "0123456789";
+ ch1.async_send(asio::error::eof, std::move(s1),
+ bind_executor(ctx2,
+ [&](asio::error_code ec)
+ {
+ ec1 = ec;
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx2.run();
+
+ ASIO_CHECK(!ec1);
+}
+
+void try_send_via_dispatch()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ bind_executor(asio::system_executor(),
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.poll();
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ std::string s2 = "0123456789";
+ ch1.try_send_via_dispatch(asio::error::eof, std::move(s2));
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "0123456789");
+ ASIO_CHECK(s2.empty());
+}
+
+void try_send_n_via_dispatch()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ bind_executor(asio::system_executor(),
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2;
+ ch1.async_receive(
+ bind_executor(asio::system_executor(),
+ [&](asio::error_code ec, std::string s)
+ {
+ ec2 = ec;
+ s2 = std::move(s);
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ ctx.poll();
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ std::string s3 = "0123456789";
+ ch1.try_send_n_via_dispatch(2, asio::error::eof, std::move(s3));
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "0123456789");
+ ASIO_CHECK(ec2 == asio::error::eof);
+ ASIO_CHECK(s2 == "0123456789");
+ ASIO_CHECK(s3.empty());
+}
+
+struct multi_signature_handler
+{
+ std::string* s_;
+ asio::error_code* ec_;
+
+ void operator()(std::string s)
+ {
+ *s_ = s;
+ }
+
+ void operator()(asio::error_code ec)
+ {
+ *ec_ = ec;
+ }
+};
+
+void implicit_error_signature_channel_test()
+{
+ io_context ctx;
+
+ channel<void(std::string)> ch1(ctx);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send("hello");
+
+ ASIO_CHECK(!b1);
+
+ std::string s1 = "abcdefghijklmnopqrstuvwxyz";
+ bool b2 = ch1.try_send(std::move(s1));
+
+ ASIO_CHECK(!b2);
+ ASIO_CHECK(!s1.empty());
+
+ std::string s2;
+ asio::error_code ec1 = asio::error::would_block;
+ multi_signature_handler h1 = {&s2, &ec1};
+ ch1.async_receive(h1);
+
+ bool b3 = ch1.try_send(std::move(s1));
+
+ ASIO_CHECK(b3);
+ ASIO_CHECK(s1.empty());
+
+ ctx.run();
+
+ ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz");
+ ASIO_CHECK(ec1 == asio::error::would_block);
+
+ std::string s3;
+ asio::error_code ec2;
+ multi_signature_handler h2 = {&s3, &ec2};
+ bool b4 = ch1.try_receive(h2);
+
+ ASIO_CHECK(!b4);
+
+ std::string s4 = "zyxwvutsrqponmlkjihgfedcba";
+ asio::error_code ec3;
+ ch1.async_send(std::move(s4),
+ [&](asio::error_code ec)
+ {
+ ec3 = ec;
+ });
+
+ std::string s5;
+ asio::error_code ec4 = asio::error::would_block;
+ multi_signature_handler h3 = {&s5, &ec4};
+ bool b5 = ch1.try_receive(h3);
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec4 == asio::error::would_block);
+ ASIO_CHECK(s5 == "zyxwvutsrqponmlkjihgfedcba");
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec3);
+
+ std::string s6;
+ asio::error_code ec5 = asio::error::would_block;
+ multi_signature_handler h4 = {&s6, &ec5};
+ ch1.async_receive(h4);
+
+ ch1.close();
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(s6.empty());
+ ASIO_CHECK(ec5 == asio::experimental::channel_errc::channel_closed);
+}
+
+void channel_with_any_completion_handler_test()
+{
+ io_context ctx;
+
+ channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ asio::error_code ec1 = asio::error::would_block;
+ std::string s1;
+ ch1.async_receive(
+ asio::any_completion_handler<
+ void(asio::error_code, std::string)>(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s1 = std::move(s);
+ }));
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s2 = "zyxwvutsrqponmlkjihgfedcba";
+ ch1.async_send(asio::error::eof, std::move(s2),
+ asio::any_completion_handler<void(asio::error_code)>(
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ }));
+
+ ASIO_CHECK(ec1 == asio::error::would_block);
+ ASIO_CHECK(ec2 == asio::error::would_block);
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s1 == "zyxwvutsrqponmlkjihgfedcba");
+ ASIO_CHECK(!ec2);
+}
+
+ASIO_TEST_SUITE
+(
+ "experimental/channel",
+ ASIO_TEST_CASE(unbuffered_channel_test)
+ ASIO_TEST_CASE(buffered_channel_test)
+ ASIO_TEST_CASE(buffered_error_channel_test)
+ ASIO_TEST_CASE(unbuffered_non_immediate_receive)
+ ASIO_TEST_CASE(unbuffered_immediate_receive)
+ ASIO_TEST_CASE(unbuffered_executor_receive)
+ ASIO_TEST_CASE(unbuffered_non_immediate_send)
+ ASIO_TEST_CASE(unbuffered_immediate_send)
+ ASIO_TEST_CASE(unbuffered_executor_send)
+ ASIO_TEST_CASE(buffered_non_immediate_receive)
+ ASIO_TEST_CASE(buffered_immediate_receive)
+ ASIO_TEST_CASE(buffered_executor_receive)
+ ASIO_TEST_CASE(buffered_non_immediate_send)
+ ASIO_TEST_CASE(buffered_immediate_send)
+ ASIO_TEST_CASE(buffered_executor_send)
+ ASIO_TEST_CASE(try_send_via_dispatch)
+ ASIO_TEST_CASE(try_send_n_via_dispatch)
+ ASIO_TEST_CASE(implicit_error_signature_channel_test)
+ ASIO_TEST_CASE(channel_with_any_completion_handler_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp b/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp
new file mode 100644
index 00000000000..b1c326f874d
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp
@@ -0,0 +1,25 @@
+//
+// experimental/channel_traits.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/channel_traits.hpp"
+
+#include "../unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "experimental/channel_traits",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp b/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp
new file mode 100644
index 00000000000..755cd46d788
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/co_composed.cpp
@@ -0,0 +1,518 @@
+//
+// experimental/co_composed.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Prevent link dependency on the Boost.System library.
+#if !defined(BOOST_SYSTEM_NO_DEPRECATED)
+#define BOOST_SYSTEM_NO_DEPRECATED
+#endif // !defined(BOOST_SYSTEM_NO_DEPRECATED)
+
+// Test that header file is self-contained.
+#include "asio/experimental/co_composed.hpp"
+
+#include "asio/bind_cancellation_slot.hpp"
+#include "asio/deferred.hpp"
+#include "asio/detached.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "../unit_test.hpp"
+
+template <typename CompletionToken>
+auto async_throw(CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ [](auto) { throw 42; }, token);
+}
+
+template <typename CompletionToken>
+auto throw_first(CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed(
+ [](auto state) -> void
+ {
+ throw 42;
+ co_yield state.complete();
+ }), token);
+}
+
+void test_throw_first()
+{
+ try
+ {
+ throw_first(asio::detached);
+ ASIO_CHECK(0);
+ }
+ catch (int)
+ {
+ }
+}
+
+template <typename CompletionToken>
+auto throw_after_await(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ co_await asio::post(ctx, asio::deferred);
+ throw 42;
+ co_yield state.complete();
+ }), token, std::ref(ctx));
+}
+
+void test_throw_after_await()
+{
+ try
+ {
+ asio::io_context ctx(1);
+ throw_after_await(ctx, asio::detached);
+ ctx.run();
+ ASIO_CHECK(0);
+ }
+ catch (int)
+ {
+ }
+}
+
+template <typename CompletionToken>
+auto throw_in_first_suspend(CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed(
+ [](auto state) -> void
+ {
+ co_await async_throw(asio::deferred);
+ co_yield state.complete();
+ }), token);
+}
+
+void test_throw_in_first_suspend()
+{
+ try
+ {
+ throw_in_first_suspend(asio::detached);
+ ASIO_CHECK(0);
+ }
+ catch (int)
+ {
+ }
+}
+
+template <typename CompletionToken>
+auto throw_in_suspend_after_await(
+ asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ co_await asio::post(ctx, asio::deferred);
+ co_await async_throw(asio::deferred);
+ co_yield state.complete();
+ }), token, std::ref(ctx));
+}
+
+void test_throw_in_suspend_after_await()
+{
+ try
+ {
+ asio::io_context ctx(1);
+ throw_in_suspend_after_await(ctx, asio::detached);
+ ctx.run();
+ ASIO_CHECK(0);
+ }
+ catch (int)
+ {
+ }
+}
+
+template <typename CompletionToken>
+auto post_loop(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void(int)>(
+ asio::experimental::co_composed(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_yield state.complete(i);
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_post_loop()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ post_loop(ctx, [&](int i){ count = i; });
+ ctx.run();
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto nested_post(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ co_await asio::post(ctx, asio::deferred);
+ co_yield state.complete();
+ }, ctx), token, std::ref(ctx));
+}
+
+template <typename CompletionToken>
+auto nested_post_loop(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void(int)>(
+ asio::experimental::co_composed(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await nested_post(ctx, asio::deferred);
+ co_yield state.complete(i);
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_nested_post_loop()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ nested_post_loop(ctx, [&](int i){ count = i; });
+ ctx.run();
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto post_loop_return_1_0(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void()>(
+ asio::experimental::co_composed<void()>(
+ [](auto, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_post_loop_return_1_0()
+{
+ asio::io_context ctx(1);
+ bool done = false;
+ post_loop_return_1_0(ctx, [&]{ done = true; });
+ ctx.run();
+ ASIO_CHECK(done);
+}
+
+template <typename CompletionToken>
+auto post_loop_return_1_1(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void(int)>(
+ asio::experimental::co_composed<void(int)>(
+ [](auto, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {i};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_post_loop_return_1_1()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ post_loop_return_1_1(ctx, [&](int i){ count = i; });
+ ctx.run();
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto post_loop_return_1_2(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void(int, char)>(
+ asio::experimental::co_composed<void(int, char)>(
+ [](auto, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {i, 'A'};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_post_loop_return_1_2()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ char ch = 0;
+ post_loop_return_1_2(ctx, [&](int i, char c){ count = i, ch = c; });
+ ctx.run();
+ ASIO_CHECK(count == 100);
+ ASIO_CHECK(ch == 'A');
+}
+
+template <typename CompletionToken>
+auto post_loop_return_2(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<CompletionToken, void(), void(int)>(
+ asio::experimental::co_composed<void(), void(int)>(
+ [](auto, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {i};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_post_loop_return_2()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ post_loop_return_2(ctx, [&](int i = 0){ count = i; });
+ ctx.run();
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto complete_on_cancel(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<
+ CompletionToken, void(asio::error_code, int)>(
+ asio::experimental::co_composed<
+ void(asio::error_code, int)>(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ state.on_cancellation_complete_with(
+ asio::error::invalid_argument, 42);
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {asio::error::eof, i};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_complete_on_cancel()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ asio::error_code ec;
+ asio::cancellation_signal cancel;
+
+ complete_on_cancel(ctx,
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+
+ complete_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run_one();
+ cancel.emit(asio::cancellation_type::all);
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::invalid_argument);
+ ASIO_CHECK(count == 42);
+
+ complete_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto complete_with_default_on_cancel(
+ asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<
+ CompletionToken, void(asio::error_code, int)>(
+ asio::experimental::co_composed<
+ void(asio::error_code, int)>(
+ [](auto, asio::io_context& ctx) -> void
+ {
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {asio::error::eof, i};
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_complete_with_default_on_cancel()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ asio::error_code ec;
+ asio::cancellation_signal cancel;
+
+ complete_with_default_on_cancel(ctx,
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+
+ complete_with_default_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run_one();
+ cancel.emit(asio::cancellation_type::all);
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::operation_aborted);
+ ASIO_CHECK(count == 0);
+
+ complete_with_default_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+}
+
+template <typename CompletionToken>
+auto throw_on_cancel(asio::io_context& ctx, CompletionToken&& token)
+{
+ return asio::async_initiate<
+ CompletionToken, void(asio::error_code, int)>(
+ asio::experimental::co_composed<
+ void(asio::error_code, int)>(
+ [](auto state, asio::io_context& ctx) -> void
+ {
+ try
+ {
+ state.throw_if_cancelled(true);
+ int i = 0;
+ for (; i < 100; ++i)
+ co_await asio::post(ctx, asio::deferred);
+ co_return {asio::error::eof, i};
+ }
+ catch (...)
+ {
+ co_return {asio::error::invalid_argument, 42};
+ }
+ }, ctx), token, std::ref(ctx));
+}
+
+void test_throw_on_cancel()
+{
+ asio::io_context ctx(1);
+ int count = 0;
+ asio::error_code ec;
+ asio::cancellation_signal cancel;
+
+ throw_on_cancel(ctx,
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+
+ throw_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run_one();
+ cancel.emit(asio::cancellation_type::all);
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::invalid_argument);
+ ASIO_CHECK(count == 42);
+
+ throw_on_cancel(ctx,
+ asio::bind_cancellation_slot(cancel.slot(),
+ [&](asio::error_code e, int i)
+ {
+ ec = e;
+ count = i;
+ }));
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(ec == asio::error::eof);
+ ASIO_CHECK(count == 100);
+}
+
+ASIO_TEST_SUITE
+(
+ "experimental/co_composed",
+ ASIO_TEST_CASE(test_throw_first)
+ ASIO_TEST_CASE(test_throw_after_await)
+ ASIO_TEST_CASE(test_throw_in_first_suspend)
+ ASIO_TEST_CASE(test_throw_in_suspend_after_await)
+ ASIO_TEST_CASE(test_post_loop)
+ ASIO_TEST_CASE(test_nested_post_loop)
+ ASIO_TEST_CASE(test_post_loop_return_1_0)
+ ASIO_TEST_CASE(test_post_loop_return_1_1)
+ ASIO_TEST_CASE(test_post_loop_return_1_2)
+ ASIO_TEST_CASE(test_post_loop_return_2)
+ ASIO_TEST_CASE(test_complete_on_cancel)
+ ASIO_TEST_CASE(test_complete_with_default_on_cancel)
+ ASIO_TEST_CASE(test_throw_on_cancel)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp b/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp
new file mode 100644
index 00000000000..e64e9051638
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp
@@ -0,0 +1,165 @@
+//
+// experimental/concurrent_channel.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/concurrent_channel.hpp"
+
+#include <utility>
+#include "asio/error.hpp"
+#include "asio/io_context.hpp"
+#include "../unit_test.hpp"
+
+using namespace asio;
+using namespace asio::experimental;
+
+void unbuffered_concurrent_channel_test()
+{
+ io_context ctx;
+
+ concurrent_channel<void(asio::error_code, std::string)> ch1(ctx);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send(asio::error::eof, "hello");
+
+ ASIO_CHECK(!b1);
+
+ std::string s1 = "abcdefghijklmnopqrstuvwxyz";
+ bool b2 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(!b2);
+ ASIO_CHECK(!s1.empty());
+
+ asio::error_code ec1;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s2 = std::move(s);
+ });
+
+ bool b3 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(b3);
+ ASIO_CHECK(s1.empty());
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s2 == "abcdefghijklmnopqrstuvwxyz");
+
+ bool b4 = ch1.try_receive([](asio::error_code, std::string){});
+
+ ASIO_CHECK(!b4);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s3 = "zyxwvutsrqponmlkjihgfedcba";
+ ch1.async_send(asio::error::eof, std::move(s3),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ asio::error_code ec3;
+ std::string s4;
+ bool b5 = ch1.try_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec3 = ec;
+ s4 = s;
+ });
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec3 == asio::error::eof);
+ ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba");
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec2);
+};
+
+void buffered_concurrent_channel_test()
+{
+ io_context ctx;
+
+ concurrent_channel<void(asio::error_code, std::string)> ch1(ctx, 1);
+
+ ASIO_CHECK(ch1.is_open());
+ ASIO_CHECK(!ch1.ready());
+
+ bool b1 = ch1.try_send(asio::error::eof, "hello");
+
+ ASIO_CHECK(b1);
+
+ std::string s1 = "abcdefghijklmnopqrstuvwxyz";
+ bool b2 = ch1.try_send(asio::error::eof, std::move(s1));
+
+ ASIO_CHECK(!b2);
+ ASIO_CHECK(!s1.empty());
+
+ asio::error_code ec1;
+ std::string s2;
+ ch1.async_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec1 = ec;
+ s2 = std::move(s);
+ });
+
+ ctx.run();
+
+ ASIO_CHECK(ec1 == asio::error::eof);
+ ASIO_CHECK(s2 == "hello");
+
+ bool b4 = ch1.try_receive([](asio::error_code, std::string){});
+
+ ASIO_CHECK(!b4);
+
+ asio::error_code ec2 = asio::error::would_block;
+ std::string s3 = "zyxwvutsrqponmlkjihgfedcba";
+ ch1.async_send(asio::error::eof, std::move(s3),
+ [&](asio::error_code ec)
+ {
+ ec2 = ec;
+ });
+
+ asio::error_code ec3;
+ std::string s4;
+ bool b5 = ch1.try_receive(
+ [&](asio::error_code ec, std::string s)
+ {
+ ec3 = ec;
+ s4 = s;
+ });
+
+ ASIO_CHECK(b5);
+ ASIO_CHECK(ec3 == asio::error::eof);
+ ASIO_CHECK(s4 == "zyxwvutsrqponmlkjihgfedcba");
+
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(!ec2);
+};
+
+ASIO_TEST_SUITE
+(
+ "experimental/concurrent_channel",
+ ASIO_TEST_CASE(unbuffered_concurrent_channel_test)
+ ASIO_TEST_CASE(buffered_concurrent_channel_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp
new file mode 100644
index 00000000000..845906df853
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp
@@ -0,0 +1,113 @@
+//
+// experimental/coro/partial.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
+//
+// 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/coro.hpp"
+
+#include <vector>
+#include "asio/io_context.hpp"
+#include "../../unit_test.hpp"
+
+namespace exp = asio::experimental;
+
+namespace coro {
+
+template<typename Value = void>
+struct tracked_allocator
+{
+ using value_type = Value;
+ std::vector<std::pair<void*, std::size_t>> & allocs, &deallocs;
+
+ tracked_allocator(std::vector<std::pair<void*, std::size_t>> & allocs,
+ std::vector<std::pair<void*, std::size_t>> & deallocs) : allocs(allocs), deallocs(deallocs) {}
+
+
+ template<typename T>
+ tracked_allocator(const tracked_allocator<T> & a) : allocs(a.allocs), deallocs(a.deallocs) {}
+
+ value_type* allocate(std::size_t n)
+ {
+ auto p = new char[n * sizeof(Value)];
+ allocs.emplace_back(p, n);
+ return reinterpret_cast<value_type*>(p);
+ }
+
+ void deallocate(void* p, std::size_t n)
+ {
+ deallocs.emplace_back(p, n);
+ delete[] static_cast<char*>(p);
+// ASIO_CHECK(allocs.back() == deallocs.back());
+ }
+
+ bool operator==(const tracked_allocator & rhs) const
+ {
+ return &allocs == &rhs.allocs
+ && &deallocs == &rhs.deallocs;
+ }
+};
+
+exp::coro<void, void, asio::any_io_executor, tracked_allocator<void>>
+ alloc_test_impl(asio::io_context & ctx, int, std::allocator_arg_t, tracked_allocator<void> ta, double)
+{
+ co_return ;
+}
+
+void alloc_test()
+{
+ std::vector<std::pair<void*, std::size_t>> allocs, deallocs;
+ asio::io_context ctx;
+ bool ran = false;
+
+ {
+ auto pp = alloc_test_impl(ctx, 42, std::allocator_arg, {allocs, deallocs}, 42.);
+
+ ASIO_CHECK(allocs.size() == 1u);
+ ASIO_CHECK(deallocs.empty());
+
+ pp.async_resume([&](auto e){ran = true; ASIO_CHECK(!e);});
+ ctx.run();
+ ASIO_CHECK(deallocs.size() == 0u);
+ }
+ ctx.restart();
+ ctx.run();
+ ASIO_CHECK(deallocs.size() == 1u);
+ ASIO_CHECK(allocs == deallocs);
+
+ ASIO_CHECK(ran);
+
+ ran = false;
+
+ auto p = asio::experimental::detail::post_coroutine(
+ ctx,
+ asio::bind_allocator(tracked_allocator{allocs, deallocs}, [&]{ran = true;})).handle;
+ ASIO_CHECK(allocs.size() == 2u);
+ ASIO_CHECK(deallocs.size() == 1u);
+ p.resume();
+ ASIO_CHECK(allocs.size() == 3u);
+ ASIO_CHECK(deallocs.size() == 2u);
+ ctx.restart();
+ ctx.run();
+
+ ASIO_CHECK(allocs == deallocs);
+}
+
+} // namespace coro
+
+ASIO_TEST_SUITE
+(
+ "coro/allocate",
+ ASIO_TEST_CASE(::coro::alloc_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp
index 4f99ebd580d..38cf1067908 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/cancel.cpp
@@ -2,8 +2,8 @@
// experimental/coro/cancel.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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,10 +17,10 @@
// Test that header file is self-contained.
#include "asio/experimental/coro.hpp"
#include <iostream>
+#include "asio/bind_cancellation_slot.hpp"
#include "asio/io_context.hpp"
#include "asio/steady_timer.hpp"
#include "asio/this_coro.hpp"
-#include <boost/scope_exit.hpp>
#include "../../unit_test.hpp"
using namespace asio::experimental;
@@ -32,6 +32,9 @@ namespace coro {
auto coro_simple_cancel_impl(asio::io_context& ) noexcept
-> asio::experimental::coro<void() noexcept, asio::error_code>
{
+ ASIO_CHECK(
+ !(co_await this_coro::cancellation_state).cancelled());
+
asio::steady_timer timer{
co_await this_coro::executor,
std::chrono::seconds(1)};
@@ -50,12 +53,15 @@ auto coro_simple_cancel_impl(asio::io_context& ) noexcept
void coro_simple_cancel()
{
asio::io_context ctx;
+ asio::cancellation_signal sig;
auto k = coro_simple_cancel_impl(ctx);
asio::error_code res_ec;
- k.async_resume([&](asio::error_code ec) {res_ec = ec;});
- asio::post(ctx, [&]{k.cancel();});
+ k.async_resume(
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](asio::error_code ec) {res_ec = ec;}));
+ asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);});
ASIO_CHECK(!res_ec);
@@ -76,12 +82,15 @@ auto coro_throw_cancel_impl(asio::io_context& )
void coro_throw_cancel()
{
asio::io_context ctx;
+ asio::cancellation_signal sig;
auto k = coro_throw_cancel_impl(ctx);
std::exception_ptr res_ex;
- k.async_resume([&](std::exception_ptr ex) {res_ex = ex;});
- asio::post(ctx, [&]{k.cancel();});
+ k.async_resume(
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](std::exception_ptr ex) {res_ex = ex;}));
+ asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);});
ASIO_CHECK(!res_ex);
@@ -90,7 +99,8 @@ void coro_throw_cancel()
ASIO_CHECK(res_ex);
try
{
- std::rethrow_exception(res_ex);
+ if (res_ex)
+ std::rethrow_exception(res_ex);
}
catch (asio::system_error& se)
{
@@ -132,21 +142,26 @@ auto coro_simple_cancel_nested_kouter(
void coro_simple_cancel_nested()
{
asio::io_context ctx;
+ asio::cancellation_signal sig;
int cnt = 0;
auto kouter = coro_simple_cancel_nested_kouter(ctx, cnt);
asio::error_code res_ec;
- kouter.async_resume([&](asio::error_code ec) {res_ec = ec;});
- asio::post(ctx, [&]{kouter.cancel();});
+ kouter.async_resume(
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](asio::error_code ec) {res_ec = ec;}));
+ asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);});
ASIO_CHECK(!res_ec);
ctx.run();
ASIO_CHECK(res_ec == asio::error::operation_aborted);
ctx.restart();
res_ec = {};
- kouter.async_resume([&](asio::error_code ec) {res_ec = ec;});
- asio::post(ctx, [&]{kouter.cancel();});
+ kouter.async_resume(
+ asio::bind_cancellation_slot(sig.slot(),
+ [&](asio::error_code ec) {res_ec = ec;}));
+ asio::post(ctx, [&]{sig.emit(asio::cancellation_type::all);});
ASIO_CHECK(!res_ec);
ctx.run();
ASIO_CHECK(res_ec == asio::error::operation_aborted);
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp
new file mode 100644
index 00000000000..8e6586252f2
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp
@@ -0,0 +1,67 @@
+//
+// experimental/coro/co_spawn.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
+//
+// 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/co_spawn.hpp"
+
+#include <iostream>
+#include "asio/io_context.hpp"
+#include "asio/steady_timer.hpp"
+#include "asio/this_coro.hpp"
+#include "../../unit_test.hpp"
+
+using namespace asio::experimental;
+namespace this_coro = asio::this_coro;
+
+namespace coro {
+
+auto coro_simple_co_spawn_impl(asio::io_context& , bool &done) noexcept
+ -> asio::experimental::coro<void() noexcept, int>
+{
+ asio::steady_timer timer(
+ co_await this_coro::executor,
+ std::chrono::milliseconds(10));
+
+ done = true;
+
+ co_return 42;
+}
+
+void coro_co_spawn()
+{
+ asio::io_context ctx;
+
+ bool done1 = false;
+ bool done2 = false;
+ int res = 0;
+
+ co_spawn(coro_simple_co_spawn_impl(ctx, done1),
+ [&](int r){done2= true; res = r;});
+
+ ctx.run();
+
+ ASIO_CHECK(done1);
+ ASIO_CHECK(done2);
+ ASIO_CHECK(res == 42);
+}
+
+} // namespace coro
+
+ASIO_TEST_SUITE
+(
+ "coro/co_spawn",
+ ASIO_TEST_CASE(::coro::coro_co_spawn)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp
index 49a91dc32e2..f4d782e9903 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/exception.cpp
@@ -2,8 +2,8 @@
// experimental/coro/exception.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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)
@@ -109,6 +109,8 @@ asio::experimental::coro<int(int)> throwing_stacked(
asio::any_io_executor exec, int &val,
bool &destroyed_inner, bool &destroyed)
{
+ ASIO_CHECK((co_await asio::this_coro::throw_if_cancelled()));
+
on_scope_exit x = [&]() noexcept { destroyed = true; };
(void)x;
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp
new file mode 100644
index 00000000000..e0893da2e50
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp
@@ -0,0 +1,116 @@
+//
+// experimental/coro/executor.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
+//
+// 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/coro.hpp"
+
+#include "asio/thread_pool.hpp"
+#include "asio/io_context.hpp"
+#include "../../unit_test.hpp"
+
+using namespace asio::experimental;
+
+namespace coro {
+
+#define ASIO_CHECKPOINT() \
+ ASIO_TEST_IOSTREAM << __FILE__ << "(" << __LINE__ << "): " \
+ << asio::detail::test_name() << ": " \
+ << "Checkpoint" << std::endl;
+
+template <typename T>
+void different_execs()
+{
+ asio::thread_pool th_ctx{1u};
+ asio::io_context ctx;
+
+ auto o = std::make_optional(
+ asio::prefer(th_ctx.get_executor(),
+ asio::execution::outstanding_work.tracked));
+
+ static bool ran_inner = false, ran_outer = false;
+
+ struct c_inner_t
+ {
+ auto operator()(asio::any_io_executor e) -> asio::experimental::coro<T>
+ {
+ auto p = e.target<asio::thread_pool::executor_type>();
+ ASIO_CHECKPOINT();
+ ASIO_CHECK(p);
+ ASIO_CHECK(p->running_in_this_thread());
+ ran_inner = true;
+ co_return;
+ };
+
+ };
+
+ c_inner_t c_inner;
+
+ struct c_outer_t
+ {
+
+ auto operator()(asio::any_io_executor e, int,
+ asio::experimental::coro<T> tp)
+ -> asio::experimental::coro<void>
+ {
+ auto p = e.target<asio::io_context::executor_type>();
+
+ ASIO_CHECK(p);
+ ASIO_CHECK(p->running_in_this_thread());
+ ASIO_CHECKPOINT();
+
+ co_await tp;
+
+ ASIO_CHECKPOINT();
+ ASIO_CHECK(p->running_in_this_thread());
+
+ ran_outer = true;
+ };
+ };
+
+ c_outer_t c_outer;
+
+ bool ran = false;
+ std::exception_ptr ex;
+
+ auto c = c_outer(ctx.get_executor(), 10, c_inner(th_ctx.get_executor()));
+ c.async_resume(
+ [&](std::exception_ptr e)
+ {
+ ASIO_CHECK(!e);
+ ASIO_CHECKPOINT();
+ ran = true;
+ });
+
+ ASIO_CHECK(!ran);
+ ctx.run();
+ o.reset();
+ ASIO_CHECK(ran);
+ ASIO_CHECK(ran_inner);
+ ASIO_CHECK(ran_outer);
+ ASIO_CHECK(!ex);
+
+ th_ctx.stop();
+ th_ctx.join();
+}
+
+} // namespace coro
+
+ASIO_TEST_SUITE
+(
+ "coro/partial",
+ ASIO_TEST_CASE(::coro::different_execs<void>)
+ ASIO_TEST_CASE(::coro::different_execs<int()>)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp
index 6a615a47461..651b8292204 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/partial.cpp
@@ -2,8 +2,8 @@
// experimental/coro/partial.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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)
@@ -28,7 +28,7 @@ void partial()
{
asio::io_context ctx;
bool ran = false;
- auto p = detail::post_coroutine(ctx, [&]{ran = true;});
+ auto p = detail::post_coroutine(ctx, [&]{ran = true;}).handle;
ASIO_CHECK(!ran);
p.resume();
ASIO_CHECK(!ran);
diff --git a/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp
index 92eecd1d95a..5eac0688548 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/simple_test.cpp
@@ -2,8 +2,8 @@
// experimental/coro/simple_test.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp
index 8b06587028e..9177161afcf 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/stack_test.cpp
@@ -2,8 +2,8 @@
// experimental/coro/stack_test.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp b/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp
index e8d13afeacf..f2cb7adfcdd 100644
--- a/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/coro/use_coro.cpp
@@ -2,8 +2,8 @@
// experimental/coro/use_coro.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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)
@@ -37,7 +37,7 @@ asio::experimental::coro<void() noexcept, int>
awaiter_noexcept(asio::any_io_executor exec)
{
asio::steady_timer timer{exec};
- auto ec = co_await timer.async_wait(use_coro);
+ auto ec = co_await timer.async_wait(asio::deferred);
ASIO_CHECK(ec == asio::error_code{});
co_return 42;
}
diff --git a/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp b/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp
new file mode 100644
index 00000000000..c91c95f157d
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp
@@ -0,0 +1,25 @@
+//
+// experimental/parallel_group.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/experimental/parallel_group.hpp"
+
+#include "../unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "experimental/parallel_group",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/experimental/promise.cpp b/3rdparty/asio/src/tests/unit/experimental/promise.cpp
index 540cae2008b..67923a4c726 100644
--- a/3rdparty/asio/src/tests/unit/experimental/promise.cpp
+++ b/3rdparty/asio/src/tests/unit/experimental/promise.cpp
@@ -2,8 +2,8 @@
// promise.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2021 Klemens D. Morgenstern
-// (klemens dot morgenstern at gmx dot net)
+// Copyright (c) 2021-2023 Klemens D. Morgenstern
+// (klemens dot morgenstern at gmx dot net)
//
// 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,6 +17,11 @@
// Test that header file is self-contained.
#include "asio/experimental/promise.hpp"
+#include "asio/append.hpp"
+#include "asio/bind_cancellation_slot.hpp"
+#include "asio/compose.hpp"
+#include "asio/deferred.hpp"
+#include "asio/experimental/use_promise.hpp"
#include "asio/steady_timer.hpp"
#include "../unit_test.hpp"
@@ -25,7 +30,6 @@ namespace promise {
void promise_tester()
{
using namespace asio;
- using asio::error_code;
using namespace std::chrono;
io_context ctx;
@@ -33,16 +37,15 @@ void promise_tester()
steady_timer timer1{ctx}, timer2{ctx};
const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
+ timer1.expires_at(started_when + milliseconds(5000));
timer2.expires_at(started_when + milliseconds(1000));
- auto p = timer1.async_wait(experimental::use_promise);
+ auto p1 = timer1.async_wait(experimental::use_promise);
steady_clock::time_point completed_when;
- error_code ec;
+ asio::error_code ec;
bool called = false;
- p.async_wait(
- [&](auto ec_)
+ p1([&](asio::error_code ec_)
{
ec = ec_;
called = true;
@@ -50,271 +53,174 @@ void promise_tester()
});
steady_clock::time_point timer2_done;
- timer2.async_wait([&](auto) {
- timer2_done = steady_clock::now();;
- p.cancel();
- });
+ timer2.async_wait(
+ [&](asio::error_code)
+ {
+ timer2_done = steady_clock::now();
+ p1.cancel();
+ });
ctx.run();
- ASIO_CHECK(timer2_done + milliseconds(1) > completed_when);
+ static_assert(
+ asio::is_async_operation<decltype(p1)>::value,
+ "promise is async_op");
+
+ ASIO_CHECK(timer2_done + milliseconds(1) > started_when);
+ ASIO_CHECK(completed_when > timer2_done);
ASIO_CHECK(called);
ASIO_CHECK(ec == error::operation_aborted);
-}
-void promise_race_tester()
-{
- using namespace asio;
- using asio::error_code;
- using namespace std::chrono;
-
- io_context ctx;
+ timer1.expires_after(milliseconds(0));
+ auto p2 = timer1.async_wait(
+ asio::append(experimental::use_promise, 123));
- steady_timer timer1{ctx}, timer2{ctx};
+ ec = asio::error::would_block;
+ called = false;
- const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
- timer2.expires_at(started_when + milliseconds(1000));
-
- experimental::promise<void(std::variant<error_code, error_code>)> p =
- experimental::promise<>::race(
- timer1.async_wait(experimental::use_promise),
- timer2.async_wait(experimental::use_promise));
-
- auto called = false;
- error_code ec;
- steady_clock::time_point completed_when;
- p.async_wait(
- [&](auto v)
+ p2([&](asio::error_code ec_, int i)
{
- ASIO_CHECK(v.index() == 1);
- ec = get<1>(v);
+ ASIO_CHECK(i == 123);
+ ec = ec_;
called = true;
- completed_when = steady_clock::now();
});
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(!called);
+
+ ctx.restart();
ctx.run();
- ASIO_CHECK(started_when + milliseconds(1000) <= completed_when);
- ASIO_CHECK(started_when + milliseconds(1500) > completed_when);
- ASIO_CHECK(called);
+ static_assert(
+ asio::is_async_operation<decltype(p2)>::value,
+ "promise is async_op");
+
ASIO_CHECK(!ec);
+ ASIO_CHECK(called);
}
-void promise_all_tester()
+void promise_slot_tester()
{
using namespace asio;
- using asio::error_code;
using namespace std::chrono;
io_context ctx;
- steady_timer timer1{ctx},
- timer2{ctx};
+ steady_timer timer1{ctx}, timer2{ctx};
const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
+ timer1.expires_at(started_when + milliseconds(2500));
timer2.expires_at(started_when + milliseconds(1000));
+ auto p = timer1.async_wait(experimental::use_promise);
- experimental::promise<void(error_code, error_code)> p =
- experimental::promise<>::all(
- timer1.async_wait(experimental::use_promise),
- timer2.async_wait(experimental::use_promise));
-
- bool called = false;
steady_clock::time_point completed_when;
+ asio::error_code ec;
+ bool called = false;
- p.async_wait(
- [&](auto ec1, auto ec2)
- {
- ASIO_CHECK(!ec1);
- ASIO_CHECK(!ec2);
- called = true;
- completed_when = steady_clock::now();
- });
-
- ctx.run();
-
- ASIO_CHECK(started_when + milliseconds(2000) <= completed_when);
- ASIO_CHECK(started_when + milliseconds(2500) > completed_when);
- ASIO_CHECK(called);
-}
-
-void promise_race_ranged_tester()
-{
- using namespace asio;
- using asio::error_code;
- using namespace std::chrono;
-
- io_context ctx;
-
- steady_timer timer1{ctx}, timer2{ctx};
+ asio::cancellation_signal sig;
- const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
- timer2.expires_at(started_when + milliseconds(1000));
+ p(asio::bind_cancellation_slot(
+ sig.slot(),
+ [&](asio::error_code ec_)
+ {
+ ec = ec_;
+ called = true;
+ completed_when = steady_clock::now();
+ }));
- // promise<
- // std::variant<
- // tuple<error_code, std::size_t>,
- // tuple<error_code, std::size_t>>>
- experimental::promise<void(std::size_t, error_code)> p =
- experimental::promise<>::race(
- std::array{
- timer1.async_wait(experimental::use_promise),
- timer2.async_wait(experimental::use_promise)
- });
-
- auto called = false;
- auto completed_when = steady_clock::time_point();
-
- p.async_wait([&](auto idx, auto ec )
+ steady_clock::time_point timer2_done;
+ timer2.async_wait(
+ [&](asio::error_code)
{
- ASIO_CHECK(idx == 1);
- called = true;
- completed_when = steady_clock::now();
- ASIO_CHECK(!ec);
+ timer2_done = steady_clock::now();
+ sig.emit(asio::cancellation_type::all);
});
- std::array<experimental::promise<void()>, 0u> arr;
-
- experimental::promise<>::race(
- ctx.get_executor(), std::move(arr)
- ).async_wait(
- [](std::size_t idx) {ASIO_CHECK(idx == std::size_t(-1));}
- );
-
ctx.run();
- ASIO_CHECK(started_when + milliseconds(1000) <= completed_when);
- ASIO_CHECK(started_when + milliseconds(1500) > completed_when);
- ASIO_CHECK(called);
-
- std::exception_ptr ex;
-
- try
- {
- experimental::promise<>::race(std::move(arr));
- }
- catch (...)
- {
- ex = std::current_exception();
- }
+ static_assert(
+ asio::is_async_operation<decltype(p)>::value,
+ "promise is async_op");
- ASIO_CHECK(ex);
+ ASIO_CHECK(timer2_done + milliseconds(1) > started_when);
+ ASIO_CHECK(completed_when > timer2_done);
+ ASIO_CHECK(called);
+ ASIO_CHECK(ec == error::operation_aborted);
}
-void promise_all_ranged_tester()
+void early_completion()
{
using namespace asio;
- using asio::error_code;
using namespace std::chrono;
io_context ctx;
+ auto p = asio::post(ctx, asio::experimental::use_promise);
+ ctx.run();
- steady_timer timer1{ctx}, timer2{ctx};
-
- const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
- timer2.expires_at(started_when + milliseconds(1000));
-
- // promise<
- // std::variant<
- // tuple<error_code, std::size_t>,
- // tuple<error_code, std::size_t>>>
- experimental::promise<void(std::vector<error_code>)> p =
- experimental::promise<>::all(
- std::array{
- timer1.async_wait(experimental::use_promise),
- timer2.async_wait(experimental::use_promise)
- });
-
- auto called = false;
- auto completed_when = steady_clock::time_point();
-
- p.async_wait(
- [&](auto v){
- ASIO_CHECK(v.size() == 2u);
- completed_when = steady_clock::now();
- ASIO_CHECK(!v[0]);
- ASIO_CHECK(!v[1]);
- called = true;
- });
-
- std::array<experimental::promise<void()>, 0u> arr;
- experimental::promise<>::all(
- ctx.get_executor(), std::move(arr)
- ).async_wait(
- [](auto v) {ASIO_CHECK(v.size() == 0);}
- );
+ ASIO_CHECK(p.completed());
+ bool completed = false;
+ p([&]{completed = true;});
+ ASIO_CHECK(!completed);
+ ctx.restart();
ctx.run();
+ ASIO_CHECK(completed);
+}
- ASIO_CHECK(started_when + milliseconds(2000) <= completed_when);
- ASIO_CHECK(started_when + milliseconds(2500) > completed_when);
- ASIO_CHECK(called == true);
-
- std::exception_ptr ex;
- try
+struct test_cancel_impl_op
+{
+ asio::steady_timer & tim;
+ asio::error_code &ec;
+ template<typename Self>
+ void operator()(Self& self)
{
- experimental::promise<>::all(std::move(arr));
+ tim.async_wait(std::forward<Self>(self));
}
- catch (...)
+
+ template<typename Self>
+ void operator()(Self& self, asio::error_code ec_)
{
- ex = std::current_exception();
+ ec = ec_;
+ self.complete(ec_);
}
-
- ASIO_CHECK(ex);
+};
+
+template <typename CompletionToken>
+ASIO_INITFN_AUTO_RESULT_TYPE(
+ CompletionToken, void(asio::error_code))
+test_cancel_impl(asio::steady_timer & tim,
+ asio::error_code &ec,
+ CompletionToken&& token)
+{
+ return asio::async_compose<CompletionToken, void(asio::error_code)>(
+ test_cancel_impl_op{tim, ec}, token, tim);
}
-void promise_cancel_tester()
+void test_cancel()
{
- using namespace asio;
- using asio::error_code;
- using namespace std::chrono;
-
- io_context ctx;
-
- steady_timer timer1{ctx}, timer2{ctx};
+ asio::io_context ctx;
+ asio::steady_timer tim{ctx, std::chrono::seconds(10)};
+ asio::error_code ec;
- const auto started_when = steady_clock::now();
- timer1.expires_at(started_when + milliseconds(2000));
- timer2.expires_at(started_when + milliseconds(1000));
-
- // promise<
- // std::variant<
- // tuple<error_code, std::size_t>,
- // tuple<error_code, std::size_t>>>
- experimental::promise<void(error_code, error_code)> p =
- experimental::promise<>::all(
- timer1.async_wait(experimental::use_promise),
- timer2.async_wait(experimental::use_promise));
-
- bool called = false;
- p.async_wait(
- [&](auto ec1, auto ec2)
- {
- called = true;
- ASIO_CHECK(ec1 == error::operation_aborted);
- ASIO_CHECK(ec2 == error::operation_aborted);
- });
-
- post(ctx, [&]{p.cancel();});
+ {
+ auto p = test_cancel_impl(
+ tim, ec, asio::experimental::use_promise);
+ }
ctx.run();
- ASIO_CHECK(called);
+ ASIO_CHECK_MESSAGE(
+ ec == asio::error::operation_aborted,
+ ec.message());
}
} // namespace promise
ASIO_TEST_SUITE
(
- "promise",
- ASIO_TEST_CASE(promise::promise_tester)
- ASIO_TEST_CASE(promise::promise_race_tester)
- ASIO_TEST_CASE(promise::promise_all_tester)
- ASIO_TEST_CASE(promise::promise_race_ranged_tester)
- ASIO_TEST_CASE(promise::promise_all_ranged_tester)
- ASIO_TEST_CASE(promise::promise_cancel_tester)
+ "promise",
+ ASIO_TEST_CASE(promise::promise_tester)
+ ASIO_TEST_CASE(promise::promise_slot_tester)
+ ASIO_TEST_CASE(promise::early_completion)
+ ASIO_TEST_CASE(promise::test_cancel)
)
diff --git a/3rdparty/asio/src/tests/unit/file_base.cpp b/3rdparty/asio/src/tests/unit/file_base.cpp
new file mode 100644
index 00000000000..9f517fd8e37
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/file_base.cpp
@@ -0,0 +1,25 @@
+//
+// file_base.cpp
+// ~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/post.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "file_base",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp
index 72d9d428184..c02f32b8c73 100644
--- a/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp
+++ b/3rdparty/asio/src/tests/unit/generic/basic_endpoint.cpp
@@ -2,7 +2,7 @@
// generic/basic_endpoint.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp
index c072a8bc0a2..23957a7a15d 100644
--- a/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/generic/datagram_protocol.cpp
@@ -2,7 +2,7 @@
// generic/datagram_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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 "asio/io_context.hpp"
#include "asio/ip/udp.hpp"
#include "../unit_test.hpp"
+#include "../archetypes/async_result.hpp"
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
# define generic cpp_generic
@@ -65,6 +66,7 @@ void test()
socket_base::message_flags in_flags = 0;
socket_base::send_buffer_size socket_option;
socket_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
asio::error_code ec;
// basic_datagram_socket constructors.
@@ -78,19 +80,15 @@ void test()
dp::socket socket4(ioc, dp(af_inet, ipproto_udp), native_socket1);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
dp::socket socket5(std::move(socket4));
asio::ip::udp::socket udp_socket(ioc);
dp::socket socket6(std::move(udp_socket));
-#endif // defined(ASIO_HAS_MOVE)
// basic_datagram_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = dp::socket(ioc);
socket1 = std::move(socket2);
socket1 = asio::ip::udp::socket(ioc);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -143,6 +141,7 @@ void test()
socket1.connect(dp::endpoint(), ec);
socket1.async_connect(dp::endpoint(), connect_handler);
+ socket1.async_connect(dp::endpoint(), immediate);
socket1.set_option(socket_option);
socket1.set_option(socket_option, ec);
@@ -184,6 +183,12 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
socket1.async_send(null_buffers(), in_flags, send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
socket1.send_to(buffer(mutable_char_buffer),
dp::endpoint());
@@ -216,6 +221,18 @@ void test()
dp::endpoint(), in_flags, send_handler);
socket1.async_send_to(null_buffers(),
dp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ dp::endpoint(), immediate);
+ socket1.async_send_to(null_buffers(),
+ dp::endpoint(), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ dp::endpoint(), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ dp::endpoint(), in_flags, immediate);
socket1.receive(buffer(mutable_char_buffer));
socket1.receive(null_buffers());
@@ -229,6 +246,10 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
receive_handler);
socket1.async_receive(null_buffers(), in_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
dp::endpoint endpoint;
socket1.receive_from(buffer(mutable_char_buffer), endpoint);
@@ -246,6 +267,14 @@ void test()
endpoint, in_flags, receive_handler);
socket1.async_receive_from(null_buffers(),
endpoint, in_flags, receive_handler);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, immediate);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, immediate);
}
catch (std::exception&)
{
@@ -259,5 +288,5 @@ void test()
ASIO_TEST_SUITE
(
"generic/datagram_protocol",
- ASIO_TEST_CASE(generic_datagram_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(generic_datagram_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp
index afe17cf7065..d20ef5ba870 100644
--- a/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/generic/raw_protocol.cpp
@@ -2,7 +2,7 @@
// generic/raw_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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 "asio/io_context.hpp"
#include "asio/ip/icmp.hpp"
#include "../unit_test.hpp"
+#include "../archetypes/async_result.hpp"
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
# define generic cpp_generic
@@ -65,6 +66,7 @@ void test()
socket_base::message_flags in_flags = 0;
socket_base::send_buffer_size socket_option;
socket_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
asio::error_code ec;
// basic_raw_socket constructors.
@@ -78,19 +80,15 @@ void test()
rp::socket socket4(ioc, rp(af_inet, ipproto_icmp), native_socket1);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
rp::socket socket5(std::move(socket4));
asio::ip::icmp::socket icmp_socket(ioc);
rp::socket socket6(std::move(icmp_socket));
-#endif // defined(ASIO_HAS_MOVE)
// basic_datagram_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = rp::socket(ioc);
socket1 = std::move(socket2);
socket1 = asio::ip::icmp::socket(ioc);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -143,6 +141,7 @@ void test()
socket1.connect(rp::endpoint(), ec);
socket1.async_connect(rp::endpoint(), connect_handler);
+ socket1.async_connect(rp::endpoint(), immediate);
socket1.set_option(socket_option);
socket1.set_option(socket_option, ec);
@@ -184,6 +183,12 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
socket1.async_send(null_buffers(), in_flags, send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
socket1.send_to(buffer(mutable_char_buffer),
rp::endpoint());
@@ -216,6 +221,18 @@ void test()
rp::endpoint(), in_flags, send_handler);
socket1.async_send_to(null_buffers(),
rp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ rp::endpoint(), immediate);
+ socket1.async_send_to(null_buffers(),
+ rp::endpoint(), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ rp::endpoint(), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ rp::endpoint(), in_flags, immediate);
socket1.receive(buffer(mutable_char_buffer));
socket1.receive(null_buffers());
@@ -229,6 +246,11 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
receive_handler);
socket1.async_receive(null_buffers(), in_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
rp::endpoint endpoint;
socket1.receive_from(buffer(mutable_char_buffer), endpoint);
@@ -246,6 +268,14 @@ void test()
endpoint, in_flags, receive_handler);
socket1.async_receive_from(null_buffers(),
endpoint, in_flags, receive_handler);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, immediate);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, immediate);
}
catch (std::exception&)
{
@@ -259,5 +289,5 @@ void test()
ASIO_TEST_SUITE
(
"generic/raw_protocol",
- ASIO_TEST_CASE(generic_raw_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(generic_raw_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp
index c4de03bc58b..587445b1f05 100644
--- a/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/generic/seq_packet_protocol.cpp
@@ -2,7 +2,7 @@
// generic/seq_packet_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,6 +19,7 @@
#include <cstring>
#include "asio/io_context.hpp"
#include "../unit_test.hpp"
+#include "../archetypes/async_result.hpp"
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
# define generic cpp_generic
@@ -64,6 +65,7 @@ void test()
socket_base::message_flags out_flags = 0;
socket_base::send_buffer_size socket_option;
socket_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
asio::error_code ec;
// basic_seq_packet_socket constructors.
@@ -77,16 +79,12 @@ void test()
spp::socket socket4(ioc, spp(af_inet, 0), native_socket1);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
spp::socket socket5(std::move(socket4));
-#endif // defined(ASIO_HAS_MOVE)
// basic_seq_packet_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = spp::socket(ioc);
socket1 = std::move(socket2);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -139,6 +137,7 @@ void test()
socket1.connect(spp::endpoint(), ec);
socket1.async_connect(spp::endpoint(), connect_handler);
+ socket1.async_connect(spp::endpoint(), immediate);
socket1.set_option(socket_option);
socket1.set_option(socket_option, ec);
@@ -174,6 +173,9 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
socket1.async_send(null_buffers(), in_flags, send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
socket1.receive(buffer(mutable_char_buffer), out_flags);
socket1.receive(null_buffers(), out_flags);
@@ -188,6 +190,11 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
out_flags, receive_handler);
socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), out_flags, immediate);
+ socket1.async_receive(null_buffers(), out_flags, immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ out_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, out_flags, immediate);
}
catch (std::exception&)
{
@@ -201,5 +208,5 @@ void test()
ASIO_TEST_SUITE
(
"generic/seq_packet_protocol",
- ASIO_TEST_CASE(generic_seq_packet_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(generic_seq_packet_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp b/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp
index 48c681db9f7..dedf6d76cee 100644
--- a/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/generic/stream_protocol.cpp
@@ -2,7 +2,7 @@
// generic/stream_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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 "asio/io_context.hpp"
#include "asio/ip/tcp.hpp"
#include "../unit_test.hpp"
+#include "../archetypes/async_result.hpp"
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
# define generic cpp_generic
@@ -73,6 +74,7 @@ void test()
socket_base::message_flags in_flags = 0;
socket_base::keep_alive socket_option;
socket_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
asio::error_code ec;
// basic_stream_socket constructors.
@@ -88,19 +90,15 @@ void test()
#endif // defined(ASIO_WINDOWS_RUNTIME)
sp::socket socket4(ioc, sp(af_inet, ipproto_tcp), native_socket1);
-#if defined(ASIO_HAS_MOVE)
sp::socket socket5(std::move(socket4));
asio::ip::tcp::socket tcp_socket(ioc);
sp::socket socket6(std::move(tcp_socket));
-#endif // defined(ASIO_HAS_MOVE)
// basic_stream_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = sp::socket(ioc);
socket1 = std::move(socket2);
socket1 = asio::ip::tcp::socket(ioc);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -159,6 +157,7 @@ void test()
socket1.connect(sp::endpoint(), ec);
socket1.async_connect(sp::endpoint(), connect_handler);
+ socket1.async_connect(sp::endpoint(), immediate);
socket1.set_option(socket_option);
socket1.set_option(socket_option, ec);
@@ -200,6 +199,12 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
socket1.async_send(null_buffers(), in_flags, send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
socket1.receive(buffer(mutable_char_buffer));
socket1.receive(null_buffers());
@@ -213,6 +218,11 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
receive_handler);
socket1.async_receive(null_buffers(), in_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
socket1.write_some(buffer(mutable_char_buffer));
socket1.write_some(buffer(const_char_buffer));
@@ -224,6 +234,9 @@ void test()
socket1.async_write_some(buffer(mutable_char_buffer), write_some_handler);
socket1.async_write_some(buffer(const_char_buffer), write_some_handler);
socket1.async_write_some(null_buffers(), write_some_handler);
+ socket1.async_write_some(buffer(mutable_char_buffer), immediate);
+ socket1.async_write_some(buffer(const_char_buffer), immediate);
+ socket1.async_write_some(null_buffers(), immediate);
socket1.read_some(buffer(mutable_char_buffer));
socket1.read_some(buffer(mutable_char_buffer), ec);
@@ -231,6 +244,8 @@ void test()
socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
socket1.async_read_some(null_buffers(), read_some_handler);
+ socket1.async_read_some(buffer(mutable_char_buffer), immediate);
+ socket1.async_read_some(null_buffers(), immediate);
}
catch (std::exception&)
{
@@ -244,5 +259,5 @@ void test()
ASIO_TEST_SUITE
(
"generic/stream_protocol",
- ASIO_TEST_CASE(generic_stream_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(generic_stream_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp b/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp
index d47717c98ab..b8dd448c321 100644
--- a/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/high_resolution_timer.cpp
@@ -2,7 +2,7 @@
// high_resolution_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/io_context.cpp b/3rdparty/asio/src/tests/unit/io_context.cpp
index 9e05fd9f78f..4341fb62e1e 100644
--- a/3rdparty/asio/src/tests/unit/io_context.cpp
+++ b/3rdparty/asio/src/tests/unit/io_context.cpp
@@ -2,7 +2,7 @@
// io_context.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include "asio/io_context.hpp"
+#include <functional>
#include <sstream>
#include "asio/bind_executor.hpp"
#include "asio/dispatch.hpp"
@@ -29,24 +30,13 @@
# include "asio/steady_timer.hpp"
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
#if defined(ASIO_HAS_BOOST_DATE_TIME)
typedef deadline_timer timer;
namespace chronons = boost::posix_time;
-#elif defined(ASIO_HAS_CHRONO)
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
typedef steady_timer timer;
namespace chronons = asio::chrono;
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
@@ -409,8 +399,7 @@ void io_context_executor_execute_test()
io_context ioc;
int count = 0;
- asio::execution::execute(ioc.get_executor(),
- bindns::bind(increment, &count));
+ ioc.get_executor().execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -424,10 +413,9 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.possibly),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.possibly
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -441,10 +429,9 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -460,11 +447,10 @@ void io_context_executor_execute_test()
ioc.restart();
ASIO_CHECK(!ioc.stopped());
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.tracked
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -478,11 +464,10 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -496,12 +481,11 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.fork
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -515,12 +499,11 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- bindns::bind(increment, &count));
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -534,14 +517,13 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::prefer(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())),
- bindns::bind(increment, &count));
+ asio::prefer(
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator(std::allocator<void>())
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -555,14 +537,13 @@ void io_context_executor_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::prefer(
- asio::require(ioc.get_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator),
- bindns::bind(increment, &count));
+ asio::prefer(
+ asio::require(ioc.get_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
diff --git a/3rdparty/asio/src/tests/unit/io_context_strand.cpp b/3rdparty/asio/src/tests/unit/io_context_strand.cpp
index 45cb943eb23..be03eb40dd2 100644
--- a/3rdparty/asio/src/tests/unit/io_context_strand.cpp
+++ b/3rdparty/asio/src/tests/unit/io_context_strand.cpp
@@ -2,7 +2,7 @@
// io_context_strand.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include "asio/io_context_strand.hpp"
+#include <functional>
#include <sstream>
#include "asio/io_context.hpp"
#include "asio/dispatch.hpp"
@@ -29,24 +30,14 @@
# include "asio/steady_timer.hpp"
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
#if defined(ASIO_HAS_BOOST_DATE_TIME)
typedef deadline_timer timer;
namespace chronons = boost::posix_time;
-#elif defined(ASIO_HAS_CHRONO)
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
typedef steady_timer timer;
namespace chronons = asio::chrono;
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
diff --git a/3rdparty/asio/src/tests/unit/ip/address.cpp b/3rdparty/asio/src/tests/unit/ip/address.cpp
index 1a7024d5d53..a13a343c8e9 100644
--- a/3rdparty/asio/src/tests/unit/ip/address.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address.cpp
@@ -2,7 +2,7 @@
// address.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -128,10 +128,8 @@ void test()
wos << addr1;
#endif // !defined(BOOST_NO_STD_WSTREAMBUF)
-#if defined(ASIO_HAS_STD_HASH)
std::size_t hash1 = std::hash<ip::address>()(addr1);
(void)hash1;
-#endif // defined(ASIO_HAS_STD_HASH)
}
catch (std::exception&)
{
@@ -145,5 +143,5 @@ void test()
ASIO_TEST_SUITE
(
"ip/address",
- ASIO_TEST_CASE(ip_address_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_address_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/address_v4.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4.cpp
index 8885f469d48..6fb361b9544 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v4.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v4.cpp
@@ -2,7 +2,7 @@
// address_v4.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -324,6 +324,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/address_v4",
- ASIO_TEST_CASE(ip_address_v4_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_address_v4_compile::test)
ASIO_TEST_CASE(ip_address_v4_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp
index babcaeae268..8b651b52582 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v4_iterator.cpp
@@ -2,7 +2,7 @@
// address_v4_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp b/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp
index 0733c18d089..1b36744cb53 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v4_range.cpp
@@ -2,7 +2,7 @@
// address_v4_range.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/address_v6.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6.cpp
index 8d5ee8a0965..026c5fa4f9a 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v6.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v6.cpp
@@ -2,7 +2,7 @@
// address_v6.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -409,6 +409,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/address_v6",
- ASIO_TEST_CASE(ip_address_v6_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_address_v6_compile::test)
ASIO_TEST_CASE(ip_address_v6_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp
index c2a37dea8e2..ef62dc645c2 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v6_iterator.cpp
@@ -2,7 +2,7 @@
// address_v6_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp b/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp
index 1dbc6808c5c..b0477214d7e 100644
--- a/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/address_v6_range.cpp
@@ -2,7 +2,7 @@
// address_v6_range.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp
index 7fc95dc246d..d4aadb6febc 100644
--- a/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/basic_endpoint.cpp
@@ -2,7 +2,7 @@
// basic_endpoint.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp
index a0d6d3e3353..698a2bad25f 100644
--- a/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver.cpp
@@ -2,7 +2,7 @@
// basic_resolver.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp
index cdd4e567757..7de5b6fc2c0 100644
--- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_entry.cpp
@@ -2,7 +2,7 @@
// basic_resolver_entry.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp
index 7fcf85732d7..df7a54a79af 100644
--- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_iterator.cpp
@@ -2,7 +2,7 @@
// basic_resolver_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp b/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp
index ebdb6aa5f2f..6d10e449482 100644
--- a/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/basic_resolver_query.cpp
@@ -2,7 +2,7 @@
// basic_resolver_query.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/host_name.cpp b/3rdparty/asio/src/tests/unit/ip/host_name.cpp
index 61a2d8a24d1..6972cbf6f4a 100644
--- a/3rdparty/asio/src/tests/unit/ip/host_name.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/host_name.cpp
@@ -2,7 +2,7 @@
// host_name.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -51,5 +51,5 @@ void test()
ASIO_TEST_SUITE
(
"ip/host_name",
- ASIO_TEST_CASE(ip_host_name_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_host_name_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/icmp.cpp b/3rdparty/asio/src/tests/unit/ip/icmp.cpp
index 644e7bb9cde..ec60267b30f 100644
--- a/3rdparty/asio/src/tests/unit/ip/icmp.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/icmp.cpp
@@ -2,7 +2,7 @@
// icmp.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -38,33 +38,27 @@ struct connect_handler
{
connect_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
connect_handler(connect_handler&&) {}
private:
connect_handler(const connect_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct send_handler
{
send_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
send_handler(send_handler&&) {}
private:
send_handler(const send_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct receive_handler
{
receive_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
receive_handler(receive_handler&&) {}
private:
receive_handler(const receive_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -86,6 +80,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::immediate_handler immediate;
archetypes::lazy_handler lazy;
asio::error_code ec;
@@ -113,16 +108,12 @@ void test()
ip::icmp::socket socket12(ioc_ex, ip::icmp::v4(), native_socket2);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
ip::icmp::socket socket13(std::move(socket6));
-#endif // defined(ASIO_HAS_MOVE)
// basic_datagram_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = ip::icmp::socket(ioc);
socket1 = std::move(socket2);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -193,6 +184,8 @@ void test()
connect_handler());
socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0),
connect_handler());
+ socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
+ socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
int i1 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
(void)i1;
int i2 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
@@ -256,6 +249,12 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler());
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler());
socket1.async_send(null_buffers(), in_flags, send_handler());
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
(void)i3;
int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
@@ -330,6 +329,30 @@ void test()
ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, send_handler());
socket1.async_send_to(null_buffers(),
ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, send_handler());
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
int i9 = socket1.async_send_to(buffer(mutable_char_buffer),
ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
(void)i9;
@@ -379,6 +402,10 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
receive_handler());
socket1.async_receive(null_buffers(), in_flags, receive_handler());
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
(void)i21;
int i22 = socket1.async_receive(null_buffers(), lazy);
@@ -405,6 +432,14 @@ void test()
endpoint, in_flags, receive_handler());
socket1.async_receive_from(null_buffers(),
endpoint, in_flags, receive_handler());
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, immediate);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, immediate);
int i25 = socket1.async_receive_from(buffer(mutable_char_buffer),
endpoint, lazy);
(void)i25;
@@ -439,11 +474,9 @@ struct resolve_handler
resolve_handler() {}
void operator()(const asio::error_code&,
asio::ip::icmp::resolver::results_type) {}
-#if defined(ASIO_HAS_MOVE)
resolve_handler(resolve_handler&&) {}
private:
resolve_handler(const resolve_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -467,16 +500,12 @@ void test()
ip::icmp::resolver resolver(ioc);
ip::icmp::resolver resolver2(ioc_ex);
-#if defined(ASIO_HAS_MOVE)
ip::icmp::resolver resolver3(std::move(resolver));
-#endif // defined(ASIO_HAS_MOVE)
// basic_resolver operators.
-#if defined(ASIO_HAS_MOVE)
resolver = ip::icmp::resolver(ioc);
resolver = std::move(resolver3);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -572,6 +601,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/icmp",
- ASIO_TEST_CASE(ip_icmp_socket_compile::test)
- ASIO_TEST_CASE(ip_icmp_resolver_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_icmp_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_icmp_resolver_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/multicast.cpp b/3rdparty/asio/src/tests/unit/ip/multicast.cpp
index 7d8a9e7bc33..4f0b3f45e14 100644
--- a/3rdparty/asio/src/tests/unit/ip/multicast.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/multicast.cpp
@@ -2,7 +2,7 @@
// multicast.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -358,6 +358,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/multicast",
- ASIO_TEST_CASE(ip_multicast_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_multicast_compile::test)
ASIO_TEST_CASE(ip_multicast_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/network_v4.cpp b/3rdparty/asio/src/tests/unit/ip/network_v4.cpp
index 06fb34d0dbd..0b7a7a9c783 100644
--- a/3rdparty/asio/src/tests/unit/ip/network_v4.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/network_v4.cpp
@@ -2,7 +2,7 @@
// network_v4.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -309,6 +309,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/network_v4",
- ASIO_TEST_CASE(ip_network_v4_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_network_v4_compile::test)
ASIO_TEST_CASE(ip_network_v4_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
index e1c7bcff6b4..d80b1d447b6 100644
--- a/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/network_v6.cpp
@@ -2,7 +2,7 @@
// network_v6.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -233,6 +233,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/network_v6",
- ASIO_TEST_CASE(ip_network_v6_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_network_v6_compile::test)
ASIO_TEST_CASE(ip_network_v6_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp b/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp
index c59d75237ed..b38f5091b53 100644
--- a/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/resolver_query_base.cpp
@@ -2,7 +2,7 @@
// resolver_query_base.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ip/tcp.cpp b/3rdparty/asio/src/tests/unit/ip/tcp.cpp
index 4b7208a221b..2bbdc3a1071 100644
--- a/3rdparty/asio/src/tests/unit/ip/tcp.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/tcp.cpp
@@ -2,7 +2,7 @@
// tcp.cpp
// ~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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 "asio/ip/tcp.hpp"
#include <cstring>
+#include <functional>
#include "asio/io_context.hpp"
#include "asio/read.hpp"
#include "asio/write.hpp"
@@ -35,12 +36,6 @@
# include <array>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
//------------------------------------------------------------------------------
// ip_tcp_compile test
@@ -71,10 +66,8 @@ void test()
(void)static_cast<bool>(!no_delay1);
(void)static_cast<bool>(no_delay1.value());
-#if defined(ASIO_HAS_STD_HASH)
ip::tcp::endpoint ep;
(void)static_cast<std::size_t>(std::hash<ip::tcp::endpoint>()(ep));
-#endif // defined(ASIO_HAS_STD_HASH)
}
catch (std::exception&)
{
@@ -146,66 +139,54 @@ struct connect_handler
{
connect_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
connect_handler(connect_handler&&) {}
private:
connect_handler(const connect_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct wait_handler
{
wait_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
wait_handler(wait_handler&&) {}
private:
wait_handler(const wait_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct send_handler
{
send_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
send_handler(send_handler&&) {}
private:
send_handler(const send_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct receive_handler
{
receive_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
receive_handler(receive_handler&&) {}
private:
receive_handler(const receive_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct write_some_handler
{
write_some_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
write_some_handler(write_some_handler&&) {}
private:
write_some_handler(const write_some_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct read_some_handler
{
read_some_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
read_some_handler(read_some_handler&&) {}
private:
read_some_handler(const read_some_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -239,6 +220,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::immediate_handler immediate;
archetypes::lazy_handler lazy;
asio::error_code ec;
@@ -266,16 +248,12 @@ void test()
ip::tcp::socket socket12(ioc_ex, ip::tcp::v4(), native_socket2);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
ip::tcp::socket socket13(std::move(socket5));
-#endif // defined(ASIO_HAS_MOVE)
// basic_stream_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = ip::tcp::socket(ioc);
socket1 = std::move(socket2);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -346,6 +324,8 @@ void test()
connect_handler());
socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0),
connect_handler());
+ socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), immediate);
+ socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), immediate);
int i1 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), lazy);
(void)i1;
int i2 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), lazy);
@@ -395,6 +375,7 @@ void test()
socket1.wait(socket_base::wait_write, ec);
socket1.async_wait(socket_base::wait_read, wait_handler());
+ socket1.async_wait(socket_base::wait_read, immediate);
int i3 = socket1.async_wait(socket_base::wait_write, lazy);
(void)i3;
@@ -426,6 +407,16 @@ void test()
socket1.async_send(mutable_buffers, in_flags, send_handler());
socket1.async_send(const_buffers, in_flags, send_handler());
socket1.async_send(null_buffers(), in_flags, send_handler());
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(mutable_buffers, immediate);
+ socket1.async_send(const_buffers, immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(mutable_buffers, in_flags, immediate);
+ socket1.async_send(const_buffers, in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy);
(void)i4;
int i5 = socket1.async_send(buffer(const_char_buffer), lazy);
@@ -464,6 +455,12 @@ void test()
receive_handler());
socket1.async_receive(mutable_buffers, in_flags, receive_handler());
socket1.async_receive(null_buffers(), in_flags, receive_handler());
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(mutable_buffers, immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_receive(mutable_buffers, in_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
int i14 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
(void)i14;
int i15 = socket1.async_receive(mutable_buffers, lazy);
@@ -494,6 +491,11 @@ void test()
socket1.async_write_some(mutable_buffers, write_some_handler());
socket1.async_write_some(const_buffers, write_some_handler());
socket1.async_write_some(null_buffers(), write_some_handler());
+ socket1.async_write_some(buffer(mutable_char_buffer), immediate);
+ socket1.async_write_some(buffer(const_char_buffer), immediate);
+ socket1.async_write_some(mutable_buffers, immediate);
+ socket1.async_write_some(const_buffers, immediate);
+ socket1.async_write_some(null_buffers(), immediate);
int i20 = socket1.async_write_some(buffer(mutable_char_buffer), lazy);
(void)i20;
int i21 = socket1.async_write_some(buffer(const_char_buffer), lazy);
@@ -515,6 +517,9 @@ void test()
socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler());
socket1.async_read_some(mutable_buffers, read_some_handler());
socket1.async_read_some(null_buffers(), read_some_handler());
+ socket1.async_read_some(buffer(mutable_char_buffer), immediate);
+ socket1.async_read_some(mutable_buffers, immediate);
+ socket1.async_read_some(null_buffers(), immediate);
int i25 = socket1.async_read_some(buffer(mutable_char_buffer), lazy);
(void)i25;
int i26 = socket1.async_read_some(mutable_buffers, lazy);
@@ -594,11 +599,7 @@ void test()
using namespace asio;
namespace ip = asio::ip;
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -706,25 +707,20 @@ struct wait_handler
{
wait_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
wait_handler(wait_handler&&) {}
private:
wait_handler(const wait_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct accept_handler
{
accept_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
accept_handler(accept_handler&&) {}
private:
accept_handler(const accept_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
-#if defined(ASIO_HAS_MOVE)
struct move_accept_handler
{
move_accept_handler() {}
@@ -745,7 +741,6 @@ struct move_accept_ioc_handler
private:
move_accept_ioc_handler(const move_accept_handler&) {}
};
-#endif // defined(ASIO_HAS_MOVE)
void test()
{
@@ -767,6 +762,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::immediate_handler immediate;
archetypes::lazy_handler lazy;
asio::error_code ec;
@@ -794,16 +790,12 @@ void test()
ip::tcp::acceptor acceptor12(ioc_ex, ip::tcp::v4(), native_acceptor2);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
ip::tcp::acceptor acceptor13(std::move(acceptor5));
-#endif // defined(ASIO_HAS_MOVE)
// basic_socket_acceptor operators.
-#if defined(ASIO_HAS_MOVE)
acceptor1 = ip::tcp::acceptor(ioc);
acceptor1 = std::move(acceptor2);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -883,6 +875,7 @@ void test()
acceptor1.wait(socket_base::wait_write, ec);
acceptor1.async_wait(socket_base::wait_read, wait_handler());
+ acceptor1.async_wait(socket_base::wait_read, immediate);
int i1 = acceptor1.async_wait(socket_base::wait_write, lazy);
(void)i1;
@@ -896,7 +889,6 @@ void test()
acceptor1.accept(peer_socket2, peer_endpoint);
acceptor1.accept(peer_socket2, peer_endpoint, ec);
-#if defined(ASIO_HAS_MOVE)
peer_socket1 = acceptor1.accept();
peer_socket1 = acceptor1.accept(ioc);
peer_socket1 = acceptor1.accept(ioc_ex);
@@ -910,10 +902,11 @@ void test()
peer_socket2 = acceptor1.accept(ioc, peer_endpoint);
peer_socket2 = acceptor1.accept(ioc_ex, peer_endpoint);
(void)peer_socket2;
-#endif // defined(ASIO_HAS_MOVE)
acceptor1.async_accept(peer_socket1, accept_handler());
acceptor1.async_accept(peer_socket1, peer_endpoint, accept_handler());
+ acceptor1.async_accept(peer_socket1, immediate);
+ acceptor1.async_accept(peer_socket1, peer_endpoint, immediate);
int i2 = acceptor1.async_accept(peer_socket1, lazy);
(void)i2;
int i3 = acceptor1.async_accept(peer_socket1, peer_endpoint, lazy);
@@ -921,12 +914,13 @@ void test()
acceptor1.async_accept(peer_socket2, accept_handler());
acceptor1.async_accept(peer_socket2, peer_endpoint, accept_handler());
+ acceptor1.async_accept(peer_socket2, immediate);
+ acceptor1.async_accept(peer_socket2, peer_endpoint, immediate);
int i4 = acceptor1.async_accept(peer_socket2, lazy);
(void)i4;
int i5 = acceptor1.async_accept(peer_socket2, peer_endpoint, lazy);
(void)i5;
-#if defined(ASIO_HAS_MOVE)
acceptor1.async_accept(move_accept_handler());
acceptor1.async_accept(ioc, move_accept_handler());
acceptor1.async_accept(ioc_ex, move_accept_handler());
@@ -935,7 +929,12 @@ void test()
acceptor1.async_accept(ioc, peer_endpoint, move_accept_handler());
acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_handler());
acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_ioc_handler());
-#endif // defined(ASIO_HAS_MOVE)
+ acceptor1.async_accept(immediate);
+ acceptor1.async_accept(ioc, immediate);
+ acceptor1.async_accept(ioc_ex, immediate);
+ acceptor1.async_accept(peer_endpoint, immediate);
+ acceptor1.async_accept(ioc, peer_endpoint, immediate);
+ acceptor1.async_accept(ioc_ex, peer_endpoint, immediate);
}
catch (std::exception&)
{
@@ -1037,11 +1036,9 @@ struct resolve_handler
resolve_handler() {}
void operator()(const asio::error_code&,
asio::ip::tcp::resolver::results_type) {}
-#if defined(ASIO_HAS_MOVE)
resolve_handler(resolve_handler&&) {}
private:
resolve_handler(const resolve_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
#if !defined(ASIO_NO_DEPRECATED)
@@ -1050,11 +1047,9 @@ struct legacy_resolve_handler
legacy_resolve_handler() {}
void operator()(const asio::error_code&,
asio::ip::tcp::resolver::iterator) {}
-#if defined(ASIO_HAS_MOVE)
legacy_resolve_handler(legacy_resolve_handler&&) {}
private:
legacy_resolve_handler(const legacy_resolve_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
#endif // !defined(ASIO_NO_DEPRECATED)
@@ -1079,16 +1074,12 @@ void test()
ip::tcp::resolver resolver(ioc);
ip::tcp::resolver resolver2(ioc_ex);
-#if defined(ASIO_HAS_MOVE)
ip::tcp::resolver resolver3(std::move(resolver));
-#endif // defined(ASIO_HAS_MOVE)
// basic_resolver operators.
-#if defined(ASIO_HAS_MOVE)
resolver = ip::tcp::resolver(ioc);
resolver = std::move(resolver3);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -1224,9 +1215,7 @@ void test()
const ip::basic_resolver_entry<ip::tcp> entry1;
ip::basic_resolver_entry<ip::tcp> entry2(endpoint, host_name, service_name);
ip::basic_resolver_entry<ip::tcp> entry3(entry1);
-#if defined(ASIO_HAS_MOVE)
ip::basic_resolver_entry<ip::tcp> entry4(std::move(entry2));
-#endif // defined(ASIO_HAS_MOVE)
// basic_resolver_entry functions.
@@ -1287,19 +1276,15 @@ void test()
ip::tcp::iostream ios1;
-#if defined(ASIO_HAS_STD_IOSTREAM_MOVE)
ip::tcp::iostream ios2(std::move(sock));
-#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE)
ip::tcp::iostream ios3("hostname", "service");
// basic_socket_iostream operators.
-#if defined(ASIO_HAS_STD_IOSTREAM_MOVE)
ios1 = ip::tcp::iostream();
ios2 = std::move(ios1);
-#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE)
// basic_socket_iostream members.
@@ -1338,14 +1323,14 @@ void test()
ASIO_TEST_SUITE
(
"ip/tcp",
- ASIO_TEST_CASE(ip_tcp_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_compile::test)
ASIO_TEST_CASE(ip_tcp_runtime::test)
- ASIO_TEST_CASE(ip_tcp_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_socket_compile::test)
ASIO_TEST_CASE(ip_tcp_socket_runtime::test)
- ASIO_TEST_CASE(ip_tcp_acceptor_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_acceptor_compile::test)
ASIO_TEST_CASE(ip_tcp_acceptor_runtime::test)
- ASIO_TEST_CASE(ip_tcp_resolver_compile::test)
- ASIO_TEST_CASE(ip_tcp_resolver_entry_compile::test)
- ASIO_TEST_CASE(ip_tcp_resolver_entry_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_entry_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_tcp_resolver_entry_compile::test)
ASIO_COMPILE_TEST_CASE(ip_tcp_iostream_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/udp.cpp b/3rdparty/asio/src/tests/unit/ip/udp.cpp
index 507931d098e..ae67f9c9c73 100644
--- a/3rdparty/asio/src/tests/unit/ip/udp.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/udp.cpp
@@ -2,7 +2,7 @@
// udp.cpp
// ~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,6 +17,7 @@
#include "asio/ip/udp.hpp"
#include <cstring>
+#include <functional>
#include "asio/io_context.hpp"
#include "../unit_test.hpp"
#include "../archetypes/async_result.hpp"
@@ -24,12 +25,6 @@
#include "../archetypes/io_control_command.hpp"
#include "../archetypes/settable_socket_option.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
//------------------------------------------------------------------------------
// ip_udp_socket_compile test
@@ -43,44 +38,36 @@ struct connect_handler
{
connect_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
connect_handler(connect_handler&&) {}
private:
connect_handler(const connect_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct wait_handler
{
wait_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
wait_handler(wait_handler&&) {}
private:
wait_handler(const wait_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct send_handler
{
send_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
send_handler(send_handler&&) {}
private:
send_handler(const send_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct receive_handler
{
receive_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
receive_handler(receive_handler&&) {}
private:
receive_handler(const receive_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -102,6 +89,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::immediate_handler immediate;
archetypes::lazy_handler lazy;
asio::error_code ec;
@@ -129,16 +117,12 @@ void test()
ip::udp::socket socket12(ioc_ex, ip::udp::v4(), native_socket2);
#endif // !defined(ASIO_WINDOWS_RUNTIME)
-#if defined(ASIO_HAS_MOVE)
ip::udp::socket socket13(std::move(socket6));
-#endif // defined(ASIO_HAS_MOVE)
// basic_datagram_socket operators.
-#if defined(ASIO_HAS_MOVE)
socket1 = ip::udp::socket(ioc);
socket1 = std::move(socket2);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -209,6 +193,8 @@ void test()
connect_handler());
socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0),
connect_handler());
+ socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), immediate);
+ socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), immediate);
int i1 = socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), lazy);
(void)i1;
int i2 = socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), lazy);
@@ -258,6 +244,7 @@ void test()
socket1.wait(socket_base::wait_write, ec);
socket1.async_wait(socket_base::wait_read, wait_handler());
+ socket1.async_wait(socket_base::wait_read, immediate);
int i3 = socket1.async_wait(socket_base::wait_write, lazy);
(void)i3;
@@ -279,6 +266,12 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler());
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler());
socket1.async_send(null_buffers(), in_flags, send_handler());
+ socket1.async_send(buffer(mutable_char_buffer), immediate);
+ socket1.async_send(buffer(const_char_buffer), immediate);
+ socket1.async_send(null_buffers(), immediate);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy);
(void)i4;
int i5 = socket1.async_send(buffer(const_char_buffer), lazy);
@@ -353,6 +346,30 @@ void test()
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, send_handler());
socket1.async_send_to(null_buffers(),
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, send_handler());
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v4(), 0), immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v6(), 0), immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
+ socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
int i10 = socket1.async_send_to(buffer(mutable_char_buffer),
ip::udp::endpoint(ip::udp::v4(), 0), lazy);
(void)i10;
@@ -402,6 +419,10 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
receive_handler());
socket1.async_receive(null_buffers(), in_flags, receive_handler());
+ socket1.async_receive(buffer(mutable_char_buffer), immediate);
+ socket1.async_receive(null_buffers(), immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, immediate);
int i22 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
(void)i22;
int i23 = socket1.async_receive(null_buffers(), lazy);
@@ -428,6 +449,14 @@ void test()
endpoint, in_flags, receive_handler());
socket1.async_receive_from(null_buffers(),
endpoint, in_flags, receive_handler());
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, immediate);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, immediate);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, immediate);
int i26 = socket1.async_receive_from(buffer(mutable_char_buffer),
endpoint, lazy);
(void)i26;
@@ -476,11 +505,7 @@ void test()
using namespace asio;
namespace ip = asio::ip;
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -533,11 +558,9 @@ struct resolve_handler
resolve_handler() {}
void operator()(const asio::error_code&,
asio::ip::udp::resolver::results_type) {}
-#if defined(ASIO_HAS_MOVE)
resolve_handler(resolve_handler&&) {}
private:
resolve_handler(const resolve_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -561,16 +584,12 @@ void test()
ip::udp::resolver resolver(ioc);
ip::udp::resolver resolver2(ioc_ex);
-#if defined(ASIO_HAS_MOVE)
ip::udp::resolver resolver3(std::move(resolver));
-#endif // defined(ASIO_HAS_MOVE)
// basic_resolver operators.
-#if defined(ASIO_HAS_MOVE)
resolver = ip::udp::resolver(ioc);
resolver = std::move(resolver3);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -667,7 +686,7 @@ void test()
ASIO_TEST_SUITE
(
"ip/udp",
- ASIO_TEST_CASE(ip_udp_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_udp_socket_compile::test)
ASIO_TEST_CASE(ip_udp_socket_runtime::test)
- ASIO_TEST_CASE(ip_udp_resolver_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_udp_resolver_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/unicast.cpp b/3rdparty/asio/src/tests/unit/ip/unicast.cpp
index 84f1a8dc8b0..db3497f6e1c 100644
--- a/3rdparty/asio/src/tests/unit/ip/unicast.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/unicast.cpp
@@ -2,7 +2,7 @@
// unicast.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -166,6 +166,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/unicast",
- ASIO_TEST_CASE(ip_unicast_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_unicast_compile::test)
ASIO_TEST_CASE(ip_unicast_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ip/v6_only.cpp b/3rdparty/asio/src/tests/unit/ip/v6_only.cpp
index 9a6bb69c250..ba37fdb3954 100644
--- a/3rdparty/asio/src/tests/unit/ip/v6_only.cpp
+++ b/3rdparty/asio/src/tests/unit/ip/v6_only.cpp
@@ -2,7 +2,7 @@
// v6_only.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -130,6 +130,6 @@ void test()
ASIO_TEST_SUITE
(
"ip/v6_only",
- ASIO_TEST_CASE(ip_v6_only_compile::test)
+ ASIO_COMPILE_TEST_CASE(ip_v6_only_compile::test)
ASIO_TEST_CASE(ip_v6_only_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/is_read_buffered.cpp b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp
index 9f1d2069dc1..031cd0fb34d 100644
--- a/3rdparty/asio/src/tests/unit/is_read_buffered.cpp
+++ b/3rdparty/asio/src/tests/unit/is_read_buffered.cpp
@@ -2,7 +2,7 @@
// is_read_buffered.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/is_write_buffered.cpp b/3rdparty/asio/src/tests/unit/is_write_buffered.cpp
index eff1a35a0f7..df7a9c86d79 100644
--- a/3rdparty/asio/src/tests/unit/is_write_buffered.cpp
+++ b/3rdparty/asio/src/tests/unit/is_write_buffered.cpp
@@ -2,7 +2,7 @@
// is_write_buffered.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp b/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp
index 163bb7a1c1d..855888e52c9 100644
--- a/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp
+++ b/3rdparty/asio/src/tests/unit/local/basic_endpoint.cpp
@@ -2,7 +2,7 @@
// basic_endpoint.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/local/connect_pair.cpp b/3rdparty/asio/src/tests/unit/local/connect_pair.cpp
index 8dfb38e3083..095a0d89696 100644
--- a/3rdparty/asio/src/tests/unit/local/connect_pair.cpp
+++ b/3rdparty/asio/src/tests/unit/local/connect_pair.cpp
@@ -2,7 +2,7 @@
// connect_pair.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -72,5 +72,5 @@ void test()
ASIO_TEST_SUITE
(
"local/connect_pair",
- ASIO_TEST_CASE(local_connect_pair_compile::test)
+ ASIO_COMPILE_TEST_CASE(local_connect_pair_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp b/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp
index b73a67f02a2..23f677d6723 100644
--- a/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/local/datagram_protocol.cpp
@@ -2,7 +2,7 @@
// datagram_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -238,5 +238,5 @@ void test()
ASIO_TEST_SUITE
(
"local/datagram_protocol",
- ASIO_TEST_CASE(local_datagram_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(local_datagram_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp b/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp
new file mode 100644
index 00000000000..00934827aa6
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp
@@ -0,0 +1,209 @@
+//
+// local/seq_packet_protocol.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/local/seq_packet_protocol.hpp"
+
+#include <cstring>
+#include "asio/io_context.hpp"
+#include "../unit_test.hpp"
+#include "../archetypes/async_result.hpp"
+
+#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
+# define local cpp_local
+#endif
+
+//------------------------------------------------------------------------------
+
+// local_seq_packet_protocol_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// local::seq_packet_socket::socket compile and link correctly. Runtime
+// failures are ignored.
+
+namespace local_seq_packet_protocol_socket_compile {
+
+void connect_handler(const asio::error_code&)
+{
+}
+
+void send_handler(const asio::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const asio::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace asio;
+ namespace local = asio::local;
+ typedef local::seq_packet_protocol spp;
+
+ try
+ {
+ io_context ioc;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ const socket_base::message_flags in_flags = 0;
+ socket_base::message_flags out_flags = 0;
+ socket_base::send_buffer_size socket_option;
+ socket_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
+ asio::error_code ec;
+
+ // basic_seq_packet_socket constructors.
+
+ spp::socket socket1(ioc);
+ spp::socket socket2(ioc, spp());
+ spp::socket socket3(ioc, spp::endpoint());
+#if !defined(ASIO_WINDOWS_RUNTIME)
+ spp::socket::native_handle_type native_socket1
+ = ::socket(AF_UNIX, SOCK_SEQPACKET, 0);
+ spp::socket socket4(ioc, spp(), native_socket1);
+#endif // !defined(ASIO_WINDOWS_RUNTIME)
+
+ spp::socket socket5(std::move(socket4));
+
+ // basic_seq_packet_socket operators.
+
+ socket1 = spp::socket(ioc);
+ socket1 = std::move(socket2);
+
+ // basic_io_object functions.
+
+ spp::socket::executor_type ex = socket1.get_executor();
+ (void)ex;
+
+ // basic_socket functions.
+
+ spp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ socket1.open(spp());
+ socket1.open(spp(), ec);
+
+#if !defined(ASIO_WINDOWS_RUNTIME)
+ spp::socket::native_handle_type native_socket2
+ = ::socket(AF_UNIX, SOCK_SEQPACKET, 0);
+ socket1.assign(spp(), native_socket2);
+ spp::socket::native_handle_type native_socket3
+ = ::socket(AF_UNIX, SOCK_SEQPACKET, 0);
+ socket1.assign(spp(), native_socket3, ec);
+#endif // !defined(ASIO_WINDOWS_RUNTIME)
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ spp::socket::native_handle_type native_socket4 = socket1.native_handle();
+ (void)native_socket4;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(spp::endpoint());
+ socket1.bind(spp::endpoint(), ec);
+
+ socket1.connect(spp::endpoint());
+ socket1.connect(spp::endpoint(), ec);
+
+ socket1.async_connect(spp::endpoint(), connect_handler);
+ socket1.async_connect(spp::endpoint(), immediate);
+
+ socket1.set_option(socket_option);
+ socket1.set_option(socket_option, ec);
+
+ socket1.get_option(socket_option);
+ socket1.get_option(socket_option, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ spp::endpoint endpoint1 = socket1.local_endpoint();
+ (void)endpoint1;
+ spp::endpoint endpoint2 = socket1.local_endpoint(ec);
+ (void)endpoint2;
+
+ spp::endpoint endpoint3 = socket1.remote_endpoint();
+ (void)endpoint3;
+ spp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+ (void)endpoint4;
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_seq_packet_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
+ socket1.async_send(null_buffers(), in_flags, send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
+ socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
+ socket1.async_send(null_buffers(), in_flags, immediate);
+
+ socket1.receive(buffer(mutable_char_buffer), out_flags);
+ socket1.receive(null_buffers(), out_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags);
+ socket1.receive(null_buffers(), in_flags, out_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags, ec);
+ socket1.receive(null_buffers(), in_flags, out_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), out_flags,
+ receive_handler);
+ socket1.async_receive(null_buffers(), out_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ out_flags, receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), out_flags, immediate);
+ socket1.async_receive(null_buffers(), out_flags, immediate);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ out_flags, immediate);
+ socket1.async_receive(null_buffers(), in_flags, out_flags, immediate);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace local_seq_packet_protocol_socket_compile
+
+//------------------------------------------------------------------------------
+
+ASIO_TEST_SUITE
+(
+ "local/seq_packet_protocol",
+ ASIO_COMPILE_TEST_CASE(local_seq_packet_protocol_socket_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp b/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp
index 18a3f63c158..985d143e412 100644
--- a/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp
+++ b/3rdparty/asio/src/tests/unit/local/stream_protocol.cpp
@@ -2,7 +2,7 @@
// stream_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -215,5 +215,5 @@ void test()
ASIO_TEST_SUITE
(
"local/stream_protocol",
- ASIO_TEST_CASE(local_stream_protocol_socket_compile::test)
+ ASIO_COMPILE_TEST_CASE(local_stream_protocol_socket_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/packaged_task.cpp b/3rdparty/asio/src/tests/unit/packaged_task.cpp
index fb1b3e8a82c..90b36d9f335 100644
--- a/3rdparty/asio/src/tests/unit/packaged_task.cpp
+++ b/3rdparty/asio/src/tests/unit/packaged_task.cpp
@@ -2,7 +2,7 @@
// packaged_task.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/placeholders.cpp b/3rdparty/asio/src/tests/unit/placeholders.cpp
index 1d75daf6bf1..4f27d319b73 100644
--- a/3rdparty/asio/src/tests/unit/placeholders.cpp
+++ b/3rdparty/asio/src/tests/unit/placeholders.cpp
@@ -2,7 +2,7 @@
// placeholders.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp
index 0f1d4944168..f05ed3153cc 100644
--- a/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp
+++ b/3rdparty/asio/src/tests/unit/posix/basic_descriptor.cpp
@@ -2,7 +2,7 @@
// basic_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp
index 65c99df2c37..8ea66857eae 100644
--- a/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp
+++ b/3rdparty/asio/src/tests/unit/posix/basic_stream_descriptor.cpp
@@ -2,7 +2,7 @@
// basic_stream_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/posix/descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/descriptor.cpp
index 5a26f307f21..c08ef8f4963 100644
--- a/3rdparty/asio/src/tests/unit/posix/descriptor.cpp
+++ b/3rdparty/asio/src/tests/unit/posix/descriptor.cpp
@@ -2,7 +2,7 @@
// descriptor.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp b/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp
index 0c28c029a7a..0437c9f852c 100644
--- a/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp
+++ b/3rdparty/asio/src/tests/unit/posix/descriptor_base.cpp
@@ -2,7 +2,7 @@
// descriptor_base.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp b/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp
index 8826c937a9f..a8fdc4b2c19 100644
--- a/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp
+++ b/3rdparty/asio/src/tests/unit/posix/stream_descriptor.cpp
@@ -2,7 +2,7 @@
// stream_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -55,6 +55,7 @@ void test()
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
posix::descriptor_base::bytes_readable io_control_command;
+ archetypes::immediate_handler immediate;
archetypes::lazy_handler lazy;
asio::error_code ec;
@@ -66,16 +67,16 @@ void test()
posix::stream_descriptor descriptor3(ioc, native_descriptor1);
posix::stream_descriptor descriptor4(ioc_ex, native_descriptor1);
-#if defined(ASIO_HAS_MOVE)
posix::stream_descriptor descriptor5(std::move(descriptor2));
-#endif // defined(ASIO_HAS_MOVE)
+
+ posix::basic_stream_descriptor<io_context::executor_type> descriptor6(ioc);
+ posix::stream_descriptor descriptor7(std::move(descriptor6));
// basic_stream_descriptor operators.
-#if defined(ASIO_HAS_MOVE)
descriptor1 = posix::stream_descriptor(ioc);
descriptor1 = std::move(descriptor2);
-#endif // defined(ASIO_HAS_MOVE)
+ descriptor1 = std::move(descriptor6);
// basic_io_object functions.
@@ -88,9 +89,9 @@ void test()
= descriptor1.lowest_layer();
(void)lowest_layer;
- const posix::stream_descriptor& descriptor6 = descriptor1;
+ const posix::stream_descriptor& descriptor8 = descriptor1;
const posix::stream_descriptor::lowest_layer_type& lowest_layer2
- = descriptor6.lowest_layer();
+ = descriptor8.lowest_layer();
(void)lowest_layer2;
int native_descriptor2 = -1;
@@ -130,6 +131,7 @@ void test()
descriptor1.wait(posix::descriptor_base::wait_write, ec);
descriptor1.async_wait(posix::descriptor_base::wait_read, &wait_handler);
+ descriptor1.async_wait(posix::descriptor_base::wait_read, immediate);
int i1 = descriptor1.async_wait(posix::descriptor_base::wait_write, lazy);
(void)i1;
@@ -148,6 +150,9 @@ void test()
write_some_handler);
descriptor1.async_write_some(null_buffers(),
write_some_handler);
+ descriptor1.async_write_some(buffer(mutable_char_buffer), immediate);
+ descriptor1.async_write_some(buffer(const_char_buffer), immediate);
+ descriptor1.async_write_some(null_buffers(), immediate);
int i2 = descriptor1.async_write_some(buffer(mutable_char_buffer), lazy);
(void)i2;
int i3 = descriptor1.async_write_some(buffer(const_char_buffer), lazy);
@@ -161,6 +166,8 @@ void test()
descriptor1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
descriptor1.async_read_some(null_buffers(), read_some_handler);
+ descriptor1.async_read_some(buffer(mutable_char_buffer), immediate);
+ descriptor1.async_read_some(null_buffers(), immediate);
int i5 = descriptor1.async_read_some(buffer(mutable_char_buffer), lazy);
(void)i5;
int i6 = descriptor1.async_read_some(null_buffers(), lazy);
@@ -179,5 +186,5 @@ void test()
ASIO_TEST_SUITE
(
"posix/stream_descriptor",
- ASIO_TEST_CASE(posix_stream_descriptor_compile::test)
+ ASIO_COMPILE_TEST_CASE(posix_stream_descriptor_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/post.cpp b/3rdparty/asio/src/tests/unit/post.cpp
index 550c38201b5..d2ef2352299 100644
--- a/3rdparty/asio/src/tests/unit/post.cpp
+++ b/3rdparty/asio/src/tests/unit/post.cpp
@@ -2,7 +2,7 @@
// post.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/prepend.cpp b/3rdparty/asio/src/tests/unit/prepend.cpp
new file mode 100644
index 00000000000..cc26bf9835c
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/prepend.cpp
@@ -0,0 +1,58 @@
+//
+// prepend.cpp
+// ~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/prepend.hpp"
+
+#include "asio/bind_executor.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "asio/system_timer.hpp"
+#include "unit_test.hpp"
+
+void prepend_test()
+{
+ asio::io_context io1;
+ asio::io_context io2;
+ asio::system_timer timer1(io1);
+ int count = 0;
+
+ timer1.expires_after(asio::chrono::seconds(0));
+ timer1.async_wait(
+ asio::prepend(
+ asio::bind_executor(io2.get_executor(),
+ [&count](int a, int b, asio::error_code)
+ {
+ ++count;
+ ASIO_CHECK(a == 123);
+ ASIO_CHECK(b == 321);
+ }), 123, 321));
+
+ ASIO_CHECK(count == 0);
+
+ io1.run();
+
+ ASIO_CHECK(count == 0);
+
+ io2.run();
+
+ ASIO_CHECK(count == 1);
+}
+
+ASIO_TEST_SUITE
+(
+ "prepend",
+ ASIO_TEST_CASE(prepend_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/random_access_file.cpp b/3rdparty/asio/src/tests/unit/random_access_file.cpp
new file mode 100644
index 00000000000..be703cd395e
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/random_access_file.cpp
@@ -0,0 +1,171 @@
+//
+// random_access_file.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/random_access_file.hpp"
+
+#include "archetypes/async_result.hpp"
+#include "asio/io_context.hpp"
+#include "unit_test.hpp"
+
+// random_access_file_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// random_access_file compile and link correctly. Runtime failures are ignored.
+
+namespace random_access_file_compile {
+
+struct write_some_at_handler
+{
+ write_some_at_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ write_some_at_handler(write_some_at_handler&&) {}
+private:
+ write_some_at_handler(const write_some_at_handler&);
+};
+
+struct read_some_at_handler
+{
+ read_some_at_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ read_some_at_handler(read_some_at_handler&&) {}
+private:
+ read_some_at_handler(const read_some_at_handler&);
+};
+
+void test()
+{
+#if defined(ASIO_HAS_FILE)
+ using namespace asio;
+
+ try
+ {
+ io_context ioc;
+ const io_context::executor_type ioc_ex = ioc.get_executor();
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ archetypes::lazy_handler lazy;
+ asio::error_code ec;
+ const std::string path;
+
+ // basic_random_access_file constructors.
+
+ random_access_file file1(ioc);
+ random_access_file file2(ioc, "", random_access_file::read_only);
+ random_access_file file3(ioc, path, random_access_file::read_only);
+ random_access_file::native_handle_type native_file1 = file1.native_handle();
+ random_access_file file4(ioc, native_file1);
+
+ random_access_file file5(ioc_ex);
+ random_access_file file6(ioc_ex, "", random_access_file::read_only);
+ random_access_file file7(ioc_ex, path, random_access_file::read_only);
+ random_access_file::native_handle_type native_file2 = file1.native_handle();
+ random_access_file file8(ioc_ex, native_file2);
+
+ random_access_file file9(std::move(file8));
+
+ basic_random_access_file<io_context::executor_type> file10(ioc);
+ random_access_file file11(std::move(file10));
+
+ // basic_random_access_file operators.
+
+ file1 = random_access_file(ioc);
+ file1 = std::move(file2);
+ file1 = std::move(file10);
+
+ // basic_io_object functions.
+
+ random_access_file::executor_type ex = file1.get_executor();
+ (void)ex;
+
+ // basic_random_access_file functions.
+
+ file1.open("", random_access_file::read_only);
+ file1.open("", random_access_file::read_only, ec);
+
+ file1.open(path, random_access_file::read_only);
+ file1.open(path, random_access_file::read_only, ec);
+
+ random_access_file::native_handle_type native_file3 = file1.native_handle();
+ file1.assign(native_file3);
+ random_access_file::native_handle_type native_file4 = file1.native_handle();
+ file1.assign(native_file4, ec);
+
+ bool is_open = file1.is_open();
+ (void)is_open;
+
+ file1.close();
+ file1.close(ec);
+
+ random_access_file::native_handle_type native_file5 = file1.native_handle();
+ (void)native_file5;
+
+ random_access_file::native_handle_type native_file6 = file1.release();
+ (void)native_file6;
+ random_access_file::native_handle_type native_file7 = file1.release(ec);
+ (void)native_file7;
+
+ file1.cancel();
+ file1.cancel(ec);
+
+ asio::uint64_t s1 = file1.size();
+ (void)s1;
+ asio::uint64_t s2 = file1.size(ec);
+ (void)s2;
+
+ file1.resize(asio::uint64_t(0));
+ file1.resize(asio::uint64_t(0), ec);
+
+ file1.sync_all();
+ file1.sync_all(ec);
+
+ file1.sync_data();
+ file1.sync_data(ec);
+
+ file1.write_some_at(0, buffer(mutable_char_buffer));
+ file1.write_some_at(0, buffer(const_char_buffer));
+ file1.write_some_at(0, buffer(mutable_char_buffer), ec);
+ file1.write_some_at(0, buffer(const_char_buffer), ec);
+
+ file1.async_write_some_at(0, buffer(mutable_char_buffer),
+ write_some_at_handler());
+ file1.async_write_some_at(0, buffer(const_char_buffer),
+ write_some_at_handler());
+ int i1 = file1.async_write_some_at(0, buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = file1.async_write_some_at(0, buffer(const_char_buffer), lazy);
+ (void)i2;
+
+ file1.read_some_at(0, buffer(mutable_char_buffer));
+ file1.read_some_at(0, buffer(mutable_char_buffer), ec);
+
+ file1.async_read_some_at(0, buffer(mutable_char_buffer),
+ read_some_at_handler());
+ int i3 = file1.async_read_some_at(0, buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ }
+ catch (std::exception&)
+ {
+ }
+#endif // defined(ASIO_HAS_FILE)
+}
+
+} // namespace random_access_file_compile
+
+ASIO_TEST_SUITE
+(
+ "random_access_file",
+ ASIO_COMPILE_TEST_CASE(random_access_file_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/read.cpp b/3rdparty/asio/src/tests/unit/read.cpp
index bd0e9592ca9..a268c041d9b 100644
--- a/3rdparty/asio/src/tests/unit/read.cpp
+++ b/3rdparty/asio/src/tests/unit/read.cpp
@@ -2,7 +2,7 @@
// read.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,7 +16,9 @@
// Test that header file is self-contained.
#include "asio/read.hpp"
+#include <array>
#include <cstring>
+#include <functional>
#include <vector>
#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
@@ -24,20 +26,10 @@
#include "asio/streambuf.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
#if defined(ASIO_HAS_BOOST_ARRAY)
#include <boost/array.hpp>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
using namespace std; // For memcmp, memcpy and memset.
class test_stream
@@ -53,7 +45,7 @@ public:
{
}
- executor_type get_executor() ASIO_NOEXCEPT
+ executor_type get_executor() noexcept
{
return io_context_.get_executor();
}
@@ -121,12 +113,12 @@ public:
template <typename Mutable_Buffers, typename Handler>
void async_read_some(const Mutable_Buffers& buffers,
- ASIO_MOVE_ARG(Handler) handler)
+ Handler&& handler)
{
size_t bytes_transferred = read_some(buffers);
asio::post(get_executor(),
asio::detail::bind_handler(
- ASIO_MOVE_CAST(Handler)(handler),
+ static_cast<Handler&&>(handler),
asio::error_code(), bytes_transferred));
}
@@ -439,11 +431,7 @@ bool old_style_transfer_all(const asio::error_code& ec,
struct short_transfer
{
short_transfer() {}
-#if defined(ASIO_HAS_MOVE)
short_transfer(short_transfer&&) {}
-#else // defined(ASIO_HAS_MOVE)
- short_transfer(const short_transfer&) {}
-#endif // defined(ASIO_HAS_MOVE)
size_t operator()(const asio::error_code& ec,
size_t /*bytes_transferred*/)
{
@@ -2475,11 +2463,7 @@ void async_read_handler(const asio::error_code& e,
void test_3_arg_mutable_buffer_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2535,11 +2519,7 @@ void test_3_arg_mutable_buffer_async_read()
void test_3_arg_boost_array_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2598,15 +2578,10 @@ void test_3_arg_boost_array_buffers_async_read()
void test_3_arg_std_array_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_stream s(ioc);
char read_buf[sizeof(read_data)];
@@ -2656,16 +2631,11 @@ void test_3_arg_std_array_buffers_async_read()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_3_arg_vector_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2723,11 +2693,7 @@ void test_3_arg_vector_buffers_async_read()
void test_3_arg_dynamic_string_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2789,11 +2755,7 @@ void test_3_arg_dynamic_string_async_read()
void test_3_arg_streambuf_async_read()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2852,11 +2814,7 @@ void test_3_arg_streambuf_async_read()
void test_4_arg_mutable_buffer_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3193,11 +3151,7 @@ void test_4_arg_mutable_buffer_async_read()
void test_4_arg_boost_array_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3537,15 +3491,10 @@ void test_4_arg_boost_array_buffers_async_read()
void test_4_arg_std_array_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_stream s(ioc);
char read_buf[sizeof(read_data)];
@@ -3876,16 +3825,11 @@ void test_4_arg_std_array_buffers_async_read()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4224,11 +4168,7 @@ void test_4_arg_vector_buffers_async_read()
void test_4_arg_dynamic_string_async_read()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4595,11 +4535,7 @@ void test_4_arg_dynamic_string_async_read()
void test_4_arg_streambuf_async_read()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
diff --git a/3rdparty/asio/src/tests/unit/read_at.cpp b/3rdparty/asio/src/tests/unit/read_at.cpp
index bfe4af75d29..72d21bc3236 100644
--- a/3rdparty/asio/src/tests/unit/read_at.cpp
+++ b/3rdparty/asio/src/tests/unit/read_at.cpp
@@ -2,7 +2,7 @@
// read_at.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,27 +16,19 @@
// Test that header file is self-contained.
#include "asio/read_at.hpp"
+#include <array>
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
#include "asio/post.hpp"
#include "asio/streambuf.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
#if defined(ASIO_HAS_BOOST_ARRAY)
#include <boost/array.hpp>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
using namespace std; // For memcmp, memcpy and memset.
class test_random_access_device
@@ -51,7 +43,7 @@ public:
{
}
- executor_type get_executor() ASIO_NOEXCEPT
+ executor_type get_executor() noexcept
{
return io_context_.get_executor();
}
@@ -125,12 +117,12 @@ public:
template <typename Mutable_Buffers, typename Handler>
void async_read_some_at(asio::uint64_t offset,
- const Mutable_Buffers& buffers, ASIO_MOVE_ARG(Handler) handler)
+ const Mutable_Buffers& buffers, Handler&& handler)
{
size_t bytes_transferred = read_some_at(offset, buffers);
asio::post(get_executor(),
asio::detail::bind_handler(
- ASIO_MOVE_CAST(Handler)(handler),
+ static_cast<Handler&&>(handler),
asio::error_code(), bytes_transferred));
}
@@ -479,11 +471,7 @@ bool old_style_transfer_all(const asio::error_code& ec,
struct short_transfer
{
short_transfer() {}
-#if defined(ASIO_HAS_MOVE)
short_transfer(short_transfer&&) {}
-#else // defined(ASIO_HAS_MOVE)
- short_transfer(const short_transfer&) {}
-#endif // defined(ASIO_HAS_MOVE)
size_t operator()(const asio::error_code& ec,
size_t /*bytes_transferred*/)
{
@@ -3436,11 +3424,7 @@ void async_read_handler(const asio::error_code& e,
void test_4_arg_mutable_buffer_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3532,11 +3516,7 @@ void test_4_arg_mutable_buffer_async_read_at()
void test_4_arg_boost_array_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3631,15 +3611,10 @@ void test_4_arg_boost_array_buffers_async_read_at()
void test_4_arg_std_array_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_random_access_device s(ioc);
char read_buf[sizeof(read_data)];
@@ -3725,16 +3700,11 @@ void test_4_arg_std_array_buffers_async_read_at()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3827,11 +3797,7 @@ void test_4_arg_vector_buffers_async_read_at()
void test_4_arg_streambuf_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3927,11 +3893,7 @@ void test_4_arg_streambuf_async_read_at()
void test_5_arg_mutable_buffer_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4625,11 +4587,7 @@ void test_5_arg_mutable_buffer_async_read_at()
void test_5_arg_boost_array_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -5326,15 +5284,10 @@ void test_5_arg_boost_array_buffers_async_read_at()
void test_5_arg_std_array_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_random_access_device s(ioc);
char read_buf[sizeof(read_data)];
@@ -6022,16 +5975,11 @@ void test_5_arg_std_array_buffers_async_read_at()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_5_arg_vector_buffers_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -6726,11 +6674,7 @@ void test_5_arg_vector_buffers_async_read_at()
void test_5_arg_streambuf_async_read_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
diff --git a/3rdparty/asio/src/tests/unit/read_until.cpp b/3rdparty/asio/src/tests/unit/read_until.cpp
index 0b9979ed629..139fcf6f0a9 100644
--- a/3rdparty/asio/src/tests/unit/read_until.cpp
+++ b/3rdparty/asio/src/tests/unit/read_until.cpp
@@ -2,7 +2,7 @@
// read_until.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,18 +17,13 @@
#include "asio/read_until.hpp"
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
#include "asio/post.hpp"
#include "asio/streambuf.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
class test_stream
{
public:
@@ -42,7 +37,7 @@ public:
{
}
- executor_type get_executor() ASIO_NOEXCEPT
+ executor_type get_executor() noexcept
{
return io_context_.get_executor();
}
@@ -88,7 +83,7 @@ public:
size_t bytes_transferred = read_some(buffers);
asio::post(get_executor(),
asio::detail::bind_handler(
- ASIO_MOVE_CAST(Handler)(handler),
+ static_cast<Handler&&>(handler),
asio::error_code(), bytes_transferred));
}
@@ -673,11 +668,7 @@ void async_read_handler(
void test_dynamic_string_async_read_until_char()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -836,11 +827,7 @@ void test_dynamic_string_async_read_until_char()
void test_streambuf_async_read_until_char()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -996,11 +983,7 @@ void test_streambuf_async_read_until_char()
void test_dynamic_string_async_read_until_string()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -1159,11 +1142,7 @@ void test_dynamic_string_async_read_until_string()
void test_streambuf_async_read_until_string()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -1319,11 +1298,7 @@ void test_streambuf_async_read_until_string()
void test_dynamic_string_async_read_until_match_condition()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -1482,11 +1457,7 @@ void test_dynamic_string_async_read_until_match_condition()
void test_streambuf_async_read_until_match_condition()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
diff --git a/3rdparty/asio/src/tests/unit/readable_pipe.cpp b/3rdparty/asio/src/tests/unit/readable_pipe.cpp
new file mode 100644
index 00000000000..6f29710e3da
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/readable_pipe.cpp
@@ -0,0 +1,131 @@
+//
+// readable_pipe.cpp
+// ~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header pipe is self-contained.
+#include "asio/readable_pipe.hpp"
+
+#include "archetypes/async_result.hpp"
+#include "asio/io_context.hpp"
+#include "unit_test.hpp"
+
+// readable_pipe_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// readable_pipe compile and link correctly. Runtime failures are ignored.
+
+namespace readable_pipe_compile {
+
+struct write_some_handler
+{
+ write_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ write_some_handler(write_some_handler&&) {}
+private:
+ write_some_handler(const write_some_handler&);
+};
+
+struct read_some_handler
+{
+ read_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ read_some_handler(read_some_handler&&) {}
+private:
+ read_some_handler(const read_some_handler&);
+};
+
+void test()
+{
+#if defined(ASIO_HAS_PIPE)
+ using namespace asio;
+
+ try
+ {
+ io_context ioc;
+ const io_context::executor_type ioc_ex = ioc.get_executor();
+ char mutable_char_buffer[128] = "";
+ archetypes::lazy_handler lazy;
+ asio::error_code ec;
+ const std::string path;
+
+ // basic_readable_pipe constructors.
+
+ readable_pipe pipe1(ioc);
+ readable_pipe::native_handle_type native_pipe1 = pipe1.native_handle();
+ readable_pipe pipe2(ioc, native_pipe1);
+
+ readable_pipe pipe3(ioc_ex);
+ readable_pipe::native_handle_type native_pipe2 = pipe1.native_handle();
+ readable_pipe pipe4(ioc_ex, native_pipe2);
+
+ readable_pipe pipe5(std::move(pipe4));
+
+ basic_readable_pipe<io_context::executor_type> pipe6(ioc);
+ readable_pipe pipe7(std::move(pipe6));
+
+ // basic_readable_pipe operators.
+
+ pipe1 = readable_pipe(ioc);
+ pipe1 = std::move(pipe2);
+ pipe1 = std::move(pipe6);
+
+ // basic_io_object functions.
+
+ readable_pipe::executor_type ex = pipe1.get_executor();
+ (void)ex;
+
+ // basic_readable_pipe functions.
+
+ readable_pipe::native_handle_type native_pipe3 = pipe1.native_handle();
+ pipe1.assign(native_pipe3);
+ readable_pipe::native_handle_type native_pipe4 = pipe1.native_handle();
+ pipe1.assign(native_pipe4, ec);
+
+ bool is_open = pipe1.is_open();
+ (void)is_open;
+
+ pipe1.close();
+ pipe1.close(ec);
+
+ readable_pipe::native_handle_type native_pipe5 = pipe1.release();
+ (void)native_pipe5;
+ readable_pipe::native_handle_type native_pipe6 = pipe1.release(ec);
+ (void)native_pipe6;
+
+ readable_pipe::native_handle_type native_pipe7 = pipe1.native_handle();
+ (void)native_pipe7;
+
+ pipe1.cancel();
+ pipe1.cancel(ec);
+
+ pipe1.read_some(buffer(mutable_char_buffer));
+ pipe1.read_some(buffer(mutable_char_buffer), ec);
+
+ pipe1.async_read_some(buffer(mutable_char_buffer), read_some_handler());
+ int i3 = pipe1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ }
+ catch (std::exception&)
+ {
+ }
+#endif // defined(ASIO_HAS_PIPE)
+}
+
+} // namespace readable_pipe_compile
+
+ASIO_TEST_SUITE
+(
+ "readable_pipe",
+ ASIO_COMPILE_TEST_CASE(readable_pipe_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/recycling_allocator.cpp b/3rdparty/asio/src/tests/unit/recycling_allocator.cpp
new file mode 100644
index 00000000000..cc4654fc9f0
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/recycling_allocator.cpp
@@ -0,0 +1,80 @@
+//
+// recycling_allocator.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/recycling_allocator.hpp"
+
+#include "unit_test.hpp"
+#include <vector>
+#include "asio/detail/type_traits.hpp"
+
+void recycling_allocator_test()
+{
+ ASIO_CHECK((
+ asio::is_same<
+ asio::recycling_allocator<int>::value_type,
+ int
+ >::value));
+
+ ASIO_CHECK((
+ asio::is_same<
+ asio::recycling_allocator<void>::value_type,
+ void
+ >::value));
+
+ ASIO_CHECK((
+ asio::is_same<
+ asio::recycling_allocator<int>::rebind<char>::other,
+ asio::recycling_allocator<char>
+ >::value));
+
+ ASIO_CHECK((
+ asio::is_same<
+ asio::recycling_allocator<void>::rebind<char>::other,
+ asio::recycling_allocator<char>
+ >::value));
+
+ asio::recycling_allocator<int> a1;
+ asio::recycling_allocator<int> a2(a1);
+
+ ASIO_CHECK(a1 == a2);
+ ASIO_CHECK(!(a1 != a2));
+
+ asio::recycling_allocator<void> a3;
+ asio::recycling_allocator<void> a4(a3);
+
+ ASIO_CHECK(a3 == a4);
+ ASIO_CHECK(!(a3 != a4));
+
+ asio::recycling_allocator<int> a5(a4);
+ (void)a5;
+
+ asio::recycling_allocator<void> a6(a5);
+ (void)a6;
+
+ int* p = a1.allocate(42);
+ ASIO_CHECK(p != 0);
+
+ a1.deallocate(p, 42);
+
+ std::vector<int, asio::recycling_allocator<int> > v(42);
+ ASIO_CHECK(v.size() == 42);
+}
+
+ASIO_TEST_SUITE
+(
+ "recycling_allocator",
+ ASIO_TEST_CASE(recycling_allocator_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/redirect_error.cpp b/3rdparty/asio/src/tests/unit/redirect_error.cpp
index 219a5c5b355..7a581495566 100644
--- a/3rdparty/asio/src/tests/unit/redirect_error.cpp
+++ b/3rdparty/asio/src/tests/unit/redirect_error.cpp
@@ -2,7 +2,7 @@
// redirect_error.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,10 +16,106 @@
// Test that header file is self-contained.
#include "asio/redirect_error.hpp"
+#include "asio/bind_executor.hpp"
+#include "asio/deferred.hpp"
+#include "asio/io_context.hpp"
+#include "asio/post.hpp"
+#include "asio/system_timer.hpp"
+#include "asio/use_future.hpp"
#include "unit_test.hpp"
+struct redirect_error_handler
+{
+ int* count_;
+
+ explicit redirect_error_handler(int* c)
+ : count_(c)
+ {
+ }
+
+ void operator()()
+ {
+ ++(*count_);
+ }
+};
+
+void redirect_error_test()
+{
+ asio::io_context io1;
+ asio::io_context io2;
+ asio::system_timer timer1(io1);
+ asio::error_code ec = asio::error::would_block;
+ int count = 0;
+
+ timer1.expires_after(asio::chrono::seconds(0));
+ timer1.async_wait(
+ asio::redirect_error(
+ asio::bind_executor(io2.get_executor(),
+ redirect_error_handler(&count)), ec));
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(count == 0);
+
+ io1.run();
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(count == 0);
+
+ io2.run();
+
+ ASIO_CHECK(!ec);
+ ASIO_CHECK(count == 1);
+
+ ec = asio::error::would_block;
+ timer1.async_wait(
+ asio::redirect_error(
+ asio::bind_executor(io2.get_executor(),
+ asio::deferred), ec))(redirect_error_handler(&count));
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(count == 1);
+
+ io1.restart();
+ io1.run();
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(count == 1);
+
+ io2.restart();
+ io2.run();
+
+ ASIO_CHECK(!ec);
+ ASIO_CHECK(count == 2);
+
+#if defined(ASIO_HAS_STD_FUTURE_CLASS)
+ ec = asio::error::would_block;
+ std::future<void> f = timer1.async_wait(
+ asio::redirect_error(
+ asio::bind_executor(io2.get_executor(),
+ asio::use_future), ec));
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::timeout);
+
+ io1.restart();
+ io1.run();
+
+ ASIO_CHECK(ec == asio::error::would_block);
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::timeout);
+
+ io2.restart();
+ io2.run();
+
+ ASIO_CHECK(!ec);
+ ASIO_CHECK(f.wait_for(std::chrono::seconds(0))
+ == std::future_status::ready);
+#endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
+}
+
ASIO_TEST_SUITE
(
"redirect_error",
- ASIO_TEST_CASE(null_test)
+ ASIO_TEST_CASE(redirect_error_test)
)
diff --git a/3rdparty/asio/src/tests/unit/registered_buffer.cpp b/3rdparty/asio/src/tests/unit/registered_buffer.cpp
new file mode 100644
index 00000000000..09c33415a14
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/registered_buffer.cpp
@@ -0,0 +1,111 @@
+//
+// registered_buffer.cpp
+// ~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/registered_buffer.hpp"
+
+#include "unit_test.hpp"
+
+//------------------------------------------------------------------------------
+
+// registered_buffer_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all the mutable_registered_buffer and
+// const_registered_buffer classes compile and link correctly. Runtime
+// failures are ignored.
+
+namespace registered_buffer_compile {
+
+using namespace asio;
+
+void test()
+{
+ try
+ {
+ // mutable_registered_buffer constructors.
+
+ mutable_registered_buffer mb1;
+ mutable_registered_buffer mb2(mb1);
+ (void)mb2;
+
+ // mutable_registered_buffer functions.
+
+ mutable_buffer b1 = mb1.buffer();
+ (void)b1;
+
+ void* ptr1 = mb1.data();
+ (void)ptr1;
+
+ std::size_t n1 = mb1.size();
+ (void)n1;
+
+ registered_buffer_id id1 = mb1.id();
+ (void)id1;
+
+ // mutable_registered_buffer operators.
+
+ mb1 += 128;
+ mb1 = mb2 + 128;
+ mb1 = 128 + mb2;
+
+ // const_registered_buffer constructors.
+
+ const_registered_buffer cb1;
+ const_registered_buffer cb2(cb1);
+ (void)cb2;
+ const_registered_buffer cb3(mb1);
+ (void)cb3;
+
+ // const_registered_buffer functions.
+
+ const_buffer b2 = cb1.buffer();
+ (void)b2;
+
+ const void* ptr2 = cb1.data();
+ (void)ptr2;
+
+ std::size_t n2 = cb1.size();
+ (void)n2;
+
+ registered_buffer_id id2 = cb1.id();
+ (void)id2;
+
+ // const_registered_buffer operators.
+
+ cb1 += 128;
+ cb1 = cb2 + 128;
+ cb1 = 128 + cb2;
+
+ // buffer function overloads.
+
+ mb1 = buffer(mb2);
+ mb1 = buffer(mb2, 128);
+ cb1 = buffer(cb2);
+ cb1 = buffer(cb2, 128);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace buffer_compile
+
+//------------------------------------------------------------------------------
+
+ASIO_TEST_SUITE
+(
+ "registered_buffer",
+ ASIO_COMPILE_TEST_CASE(registered_buffer_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/serial_port.cpp b/3rdparty/asio/src/tests/unit/serial_port.cpp
index 23f9610f982..9bbafd34d9b 100644
--- a/3rdparty/asio/src/tests/unit/serial_port.cpp
+++ b/3rdparty/asio/src/tests/unit/serial_port.cpp
@@ -2,7 +2,7 @@
// serial_port.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -34,22 +34,18 @@ struct write_some_handler
{
write_some_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
write_some_handler(write_some_handler&&) {}
private:
write_some_handler(const write_some_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
struct read_some_handler
{
read_some_handler() {}
void operator()(const asio::error_code&, std::size_t) {}
-#if defined(ASIO_HAS_MOVE)
read_some_handler(read_some_handler&&) {}
private:
read_some_handler(const read_some_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void test()
@@ -83,16 +79,16 @@ void test()
serial_port::native_handle_type native_port2 = port1.native_handle();
serial_port port6(ioc_ex, native_port2);
-#if defined(ASIO_HAS_MOVE)
serial_port port7(std::move(port6));
-#endif // defined(ASIO_HAS_MOVE)
+
+ basic_serial_port<io_context::executor_type> port8(ioc);
+ serial_port port9(std::move(port8));
// basic_serial_port operators.
-#if defined(ASIO_HAS_MOVE)
port1 = serial_port(ioc);
port1 = std::move(port2);
-#endif // defined(ASIO_HAS_MOVE)
+ port1 = std::move(port8);
// basic_io_object functions.
@@ -104,8 +100,8 @@ void test()
serial_port::lowest_layer_type& lowest_layer = port1.lowest_layer();
(void)lowest_layer;
- const serial_port& port8 = port1;
- const serial_port::lowest_layer_type& lowest_layer2 = port8.lowest_layer();
+ const serial_port& port10 = port1;
+ const serial_port::lowest_layer_type& lowest_layer2 = port10.lowest_layer();
(void)lowest_layer2;
port1.open("null");
@@ -169,5 +165,5 @@ void test()
ASIO_TEST_SUITE
(
"serial_port",
- ASIO_TEST_CASE(serial_port_compile::test)
+ ASIO_COMPILE_TEST_CASE(serial_port_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/serial_port_base.cpp b/3rdparty/asio/src/tests/unit/serial_port_base.cpp
index 1575a6d3a3d..1c888ef661c 100644
--- a/3rdparty/asio/src/tests/unit/serial_port_base.cpp
+++ b/3rdparty/asio/src/tests/unit/serial_port_base.cpp
@@ -2,7 +2,7 @@
// serial_port_base.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -95,5 +95,5 @@ void test()
ASIO_TEST_SUITE
(
"serial_port_base",
- ASIO_TEST_CASE(serial_port_base_compile::test)
+ ASIO_COMPILE_TEST_CASE(serial_port_base_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/signal_set.cpp b/3rdparty/asio/src/tests/unit/signal_set.cpp
index cd8bd004154..962be8ba92e 100644
--- a/3rdparty/asio/src/tests/unit/signal_set.cpp
+++ b/3rdparty/asio/src/tests/unit/signal_set.cpp
@@ -2,7 +2,7 @@
// signal_set.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -66,6 +66,9 @@ void test()
set1.add(1);
set1.add(1, ec);
+ set1.add(1, signal_set::flags::dont_care);
+ set1.add(1, signal_set::flags::dont_care, ec);
+
set1.remove(1);
set1.remove(1, ec);
@@ -91,5 +94,5 @@ void test()
ASIO_TEST_SUITE
(
"signal_set",
- ASIO_TEST_CASE(signal_set_compile::test)
+ ASIO_COMPILE_TEST_CASE(signal_set_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/signal_set_base.cpp b/3rdparty/asio/src/tests/unit/signal_set_base.cpp
new file mode 100644
index 00000000000..7f27e8ccc2e
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/signal_set_base.cpp
@@ -0,0 +1,30 @@
+//
+// signal_set_base.cpp
+// ~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Prevent link dependency on the Boost.System library.
+#if !defined(BOOST_SYSTEM_NO_DEPRECATED)
+#define BOOST_SYSTEM_NO_DEPRECATED
+#endif // !defined(BOOST_SYSTEM_NO_DEPRECATED)
+
+// Test that header file is self-contained.
+#include "asio/signal_set_base.hpp"
+
+#include "unit_test.hpp"
+
+ASIO_TEST_SUITE
+(
+ "signal_set_base",
+ ASIO_TEST_CASE(null_test)
+)
diff --git a/3rdparty/asio/src/tests/unit/socket_base.cpp b/3rdparty/asio/src/tests/unit/socket_base.cpp
index e6eb96b2351..21f63ab433c 100644
--- a/3rdparty/asio/src/tests/unit/socket_base.cpp
+++ b/3rdparty/asio/src/tests/unit/socket_base.cpp
@@ -2,7 +2,7 @@
// socket_base.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -645,6 +645,6 @@ void test()
ASIO_TEST_SUITE
(
"socket_base",
- ASIO_TEST_CASE(socket_base_compile::test)
+ ASIO_COMPILE_TEST_CASE(socket_base_compile::test)
ASIO_TEST_CASE(socket_base_runtime::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ssl/context.cpp b/3rdparty/asio/src/tests/unit/ssl/context.cpp
index 4ba3aa98c02..621bf11c4a0 100644
--- a/3rdparty/asio/src/tests/unit/ssl/context.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/context.cpp
@@ -2,7 +2,7 @@
// context.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ssl/context_base.cpp b/3rdparty/asio/src/tests/unit/ssl/context_base.cpp
index 40f07ca3850..9ddddad3a8e 100644
--- a/3rdparty/asio/src/tests/unit/ssl/context_base.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/context_base.cpp
@@ -2,7 +2,7 @@
// context_base.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ssl/error.cpp b/3rdparty/asio/src/tests/unit/ssl/error.cpp
index 90286d681bc..633d7b61e8f 100644
--- a/3rdparty/asio/src/tests/unit/ssl/error.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/error.cpp
@@ -2,7 +2,7 @@
// error.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp b/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp
index fc16dbe0426..7126e4b083a 100644
--- a/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/host_name_verification.cpp
@@ -2,7 +2,7 @@
// host_name_verification.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp b/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp
index 21cf82f1f4e..adcfa95ded8 100644
--- a/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/rfc2818_verification.cpp
@@ -2,7 +2,7 @@
// rfc2818_verification.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ssl/stream.cpp b/3rdparty/asio/src/tests/unit/ssl/stream.cpp
index 7a6eeb1f1f1..467115169b9 100644
--- a/3rdparty/asio/src/tests/unit/ssl/stream.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/stream.cpp
@@ -2,7 +2,7 @@
// stream.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -75,17 +75,13 @@ void test()
ip::tcp::socket socket1(ioc, ip::tcp::v4());
ssl::stream<ip::tcp::socket&> stream2(socket1, context);
-#if defined(ASIO_HAS_MOVE)
ssl::stream<ip::tcp::socket> stream3
= ssl::stream<ip::tcp::socket>(ioc, context);
ssl::stream<ip::tcp::socket> stream4(std::move(stream3));
-#endif // defined(ASIO_HAS_MOVE)
// ssl::stream assignment.
-#if defined(ASIO_HAS_MOVE)
stream3 = std::move(stream4);
-#endif // defined(ASIO_HAS_MOVE)
// basic_io_object functions.
@@ -199,5 +195,5 @@ void test()
ASIO_TEST_SUITE
(
"ssl/stream",
- ASIO_TEST_CASE(ssl_stream_compile::test)
+ ASIO_COMPILE_TEST_CASE(ssl_stream_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp b/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp
index 03573e17aed..7e6a1e62ef0 100644
--- a/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp
+++ b/3rdparty/asio/src/tests/unit/ssl/stream_base.cpp
@@ -2,7 +2,7 @@
// stream_base.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/static_thread_pool.cpp b/3rdparty/asio/src/tests/unit/static_thread_pool.cpp
index 64071223942..b9b050bf7ee 100644
--- a/3rdparty/asio/src/tests/unit/static_thread_pool.cpp
+++ b/3rdparty/asio/src/tests/unit/static_thread_pool.cpp
@@ -2,7 +2,7 @@
// static_thread_pool.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/steady_timer.cpp b/3rdparty/asio/src/tests/unit/steady_timer.cpp
index 054e80c961d..fe2c041db4e 100644
--- a/3rdparty/asio/src/tests/unit/steady_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/steady_timer.cpp
@@ -2,7 +2,7 @@
// steady_timer.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/strand.cpp b/3rdparty/asio/src/tests/unit/strand.cpp
index bf801049654..90ae2bc22a8 100644
--- a/3rdparty/asio/src/tests/unit/strand.cpp
+++ b/3rdparty/asio/src/tests/unit/strand.cpp
@@ -2,7 +2,7 @@
// strand.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include "asio/strand.hpp"
+#include <functional>
#include <sstream>
#include "asio/executor.hpp"
#include "asio/io_context.hpp"
@@ -30,24 +31,13 @@
# include "asio/steady_timer.hpp"
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
#if defined(ASIO_HAS_BOOST_DATE_TIME)
typedef deadline_timer timer;
namespace chronons = boost::posix_time;
-#elif defined(ASIO_HAS_CHRONO)
+#else // defined(ASIO_HAS_BOOST_DATE_TIME)
typedef steady_timer timer;
namespace chronons = asio::chrono;
#endif // defined(ASIO_HAS_BOOST_DATE_TIME)
@@ -303,7 +293,7 @@ void strand_execute_test()
strand<io_context::executor_type> s1 = make_strand(ioc);
int count = 0;
- asio::execution::execute(s1, bindns::bind(increment, &count));
+ s1.execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -317,8 +307,7 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(s1, asio::execution::blocking.possibly),
+ asio::require(s1, asio::execution::blocking.possibly).execute(
bindns::bind(increment, &count));
// No handlers can be called until run() is called.
@@ -333,8 +322,7 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(s1, asio::execution::blocking.never),
+ asio::require(s1, asio::execution::blocking.never).execute(
bindns::bind(increment, &count));
// No handlers can be called until run() is called.
@@ -351,11 +339,10 @@ void strand_execute_test()
ioc.restart();
ASIO_CHECK(!ioc.stopped());
- asio::execution::execute(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked),
- bindns::bind(increment, &count));
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.tracked
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -369,11 +356,10 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked),
- bindns::bind(increment, &count));
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -387,12 +373,11 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork),
- bindns::bind(increment, &count));
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.fork
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -406,12 +391,11 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- bindns::bind(increment, &count));
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -425,14 +409,13 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::prefer(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())),
- bindns::bind(increment, &count));
+ asio::prefer(
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator(std::allocator<void>())
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
@@ -446,14 +429,13 @@ void strand_execute_test()
count = 0;
ioc.restart();
- asio::execution::execute(
- asio::prefer(
- asio::require(s1,
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator),
- bindns::bind(increment, &count));
+ asio::prefer(
+ asio::require(s1,
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator
+ ).execute(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
ASIO_CHECK(!ioc.stopped());
diff --git a/3rdparty/asio/src/tests/unit/stream_file.cpp b/3rdparty/asio/src/tests/unit/stream_file.cpp
new file mode 100644
index 00000000000..a4416751cd2
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/stream_file.cpp
@@ -0,0 +1,173 @@
+//
+// stream_file.cpp
+// ~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include "asio/stream_file.hpp"
+
+#include "archetypes/async_result.hpp"
+#include "asio/io_context.hpp"
+#include "unit_test.hpp"
+
+// stream_file_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// stream_file compile and link correctly. Runtime failures are ignored.
+
+namespace stream_file_compile {
+
+struct write_some_handler
+{
+ write_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ write_some_handler(write_some_handler&&) {}
+private:
+ write_some_handler(const write_some_handler&);
+};
+
+struct read_some_handler
+{
+ read_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ read_some_handler(read_some_handler&&) {}
+private:
+ read_some_handler(const read_some_handler&);
+};
+
+void test()
+{
+#if defined(ASIO_HAS_FILE)
+ using namespace asio;
+
+ try
+ {
+ io_context ioc;
+ const io_context::executor_type ioc_ex = ioc.get_executor();
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ archetypes::lazy_handler lazy;
+ asio::error_code ec;
+ const std::string path;
+
+ // basic_stream_file constructors.
+
+ stream_file file1(ioc);
+ stream_file file2(ioc, "", stream_file::read_only);
+ stream_file file3(ioc, path, stream_file::read_only);
+ stream_file::native_handle_type native_file1 = file1.native_handle();
+ stream_file file4(ioc, native_file1);
+
+ stream_file file5(ioc_ex);
+ stream_file file6(ioc_ex, "", stream_file::read_only);
+ stream_file file7(ioc_ex, path, stream_file::read_only);
+ stream_file::native_handle_type native_file2 = file1.native_handle();
+ stream_file file8(ioc_ex, native_file2);
+
+ stream_file file9(std::move(file8));
+
+ basic_stream_file<io_context::executor_type> file10(ioc);
+ stream_file file11(std::move(file10));
+
+ // basic_stream_file operators.
+
+ file1 = stream_file(ioc);
+ file1 = std::move(file2);
+ file1 = std::move(file10);
+
+ // basic_io_object functions.
+
+ stream_file::executor_type ex = file1.get_executor();
+ (void)ex;
+
+ // basic_stream_file functions.
+
+ file1.open("", stream_file::read_only);
+ file1.open("", stream_file::read_only, ec);
+
+ file1.open(path, stream_file::read_only);
+ file1.open(path, stream_file::read_only, ec);
+
+ stream_file::native_handle_type native_file3 = file1.native_handle();
+ file1.assign(native_file3);
+ stream_file::native_handle_type native_file4 = file1.native_handle();
+ file1.assign(native_file4, ec);
+
+ bool is_open = file1.is_open();
+ (void)is_open;
+
+ file1.close();
+ file1.close(ec);
+
+ stream_file::native_handle_type native_file5 = file1.native_handle();
+ (void)native_file5;
+
+ stream_file::native_handle_type native_file6 = file1.release();
+ (void)native_file6;
+ stream_file::native_handle_type native_file7 = file1.release(ec);
+ (void)native_file7;
+
+ file1.cancel();
+ file1.cancel(ec);
+
+ asio::uint64_t s1 = file1.size();
+ (void)s1;
+ asio::uint64_t s2 = file1.size(ec);
+ (void)s2;
+
+ file1.resize(asio::uint64_t(0));
+ file1.resize(asio::uint64_t(0), ec);
+
+ file1.sync_all();
+ file1.sync_all(ec);
+
+ file1.sync_data();
+ file1.sync_data(ec);
+
+ asio::uint64_t s3 = file1.seek(0, stream_file::seek_set);
+ (void)s3;
+ asio::uint64_t s4 = file1.seek(0, stream_file::seek_set, ec);
+ (void)s4;
+
+ file1.write_some(buffer(mutable_char_buffer));
+ file1.write_some(buffer(const_char_buffer));
+ file1.write_some(buffer(mutable_char_buffer), ec);
+ file1.write_some(buffer(const_char_buffer), ec);
+
+ file1.async_write_some(buffer(mutable_char_buffer), write_some_handler());
+ file1.async_write_some(buffer(const_char_buffer), write_some_handler());
+ int i1 = file1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = file1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+
+ file1.read_some(buffer(mutable_char_buffer));
+ file1.read_some(buffer(mutable_char_buffer), ec);
+
+ file1.async_read_some(buffer(mutable_char_buffer), read_some_handler());
+ int i3 = file1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ }
+ catch (std::exception&)
+ {
+ }
+#endif // defined(ASIO_HAS_FILE)
+}
+
+} // namespace stream_file_compile
+
+ASIO_TEST_SUITE
+(
+ "stream_file",
+ ASIO_COMPILE_TEST_CASE(stream_file_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/streambuf.cpp b/3rdparty/asio/src/tests/unit/streambuf.cpp
index 7409fce07dc..c1c8477a242 100644
--- a/3rdparty/asio/src/tests/unit/streambuf.cpp
+++ b/3rdparty/asio/src/tests/unit/streambuf.cpp
@@ -2,7 +2,7 @@
// streambuf.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/system_context.cpp b/3rdparty/asio/src/tests/unit/system_context.cpp
index 9d4adad4b20..297ab6bd7c1 100644
--- a/3rdparty/asio/src/tests/unit/system_context.cpp
+++ b/3rdparty/asio/src/tests/unit/system_context.cpp
@@ -2,7 +2,7 @@
// system_context.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/system_executor.cpp b/3rdparty/asio/src/tests/unit/system_executor.cpp
index 68d9236ba89..7b811ccac0c 100644
--- a/3rdparty/asio/src/tests/unit/system_executor.cpp
+++ b/3rdparty/asio/src/tests/unit/system_executor.cpp
@@ -2,7 +2,7 @@
// system_executor.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,23 +21,14 @@
// Test that header file is self-contained.
#include "asio/system_executor.hpp"
+#include <functional>
#include "asio/dispatch.hpp"
#include "asio/post.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
void increment(asio::detail::atomic_count* count)
{
@@ -83,11 +74,6 @@ void system_executor_query_test()
ASIO_CHECK(
asio::query(system_executor(),
- asio::execution::bulk_guarantee)
- == asio::execution::bulk_guarantee.unsequenced);
-
- ASIO_CHECK(
- asio::query(system_executor(),
asio::execution::mapping)
== asio::execution::mapping.thread);
@@ -101,61 +87,52 @@ void system_executor_execute_test()
{
asio::detail::atomic_count count(0);
- asio::execution::execute(system_executor(),
- bindns::bind(increment, &count));
+ system_executor().execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(system_executor(),
- asio::execution::blocking.possibly),
- bindns::bind(increment, &count));
+ asio::require(system_executor(),
+ asio::execution::blocking.possibly
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(system_executor(),
- asio::execution::blocking.always),
- bindns::bind(increment, &count));
+ asio::require(system_executor(),
+ asio::execution::blocking.always
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(system_executor(),
- asio::execution::blocking.never),
- bindns::bind(increment, &count));
+ asio::require(system_executor(),
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
- asio::require(system_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked),
- bindns::bind(increment, &count));
+ asio::require(system_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
+ asio::require(system_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.fork
+ ).execute(bindns::bind(increment, &count));
+
+ asio::require(system_executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
+
+ asio::prefer(
asio::require(system_executor(),
asio::execution::blocking.never,
asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork),
- bindns::bind(increment, &count));
+ asio::execution::relationship.continuation),
+ asio::execution::allocator(std::allocator<void>())
+ ).execute(bindns::bind(increment, &count));
- asio::execution::execute(
+ asio::prefer(
asio::require(system_executor(),
asio::execution::blocking.never,
asio::execution::outstanding_work.untracked,
asio::execution::relationship.continuation),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::prefer(
- asio::require(system_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::prefer(
- asio::require(system_executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator),
- bindns::bind(increment, &count));
+ asio::execution::allocator
+ ).execute(bindns::bind(increment, &count));
asio::query(system_executor(), execution::context).join();
diff --git a/3rdparty/asio/src/tests/unit/system_timer.cpp b/3rdparty/asio/src/tests/unit/system_timer.cpp
index 864a9f2e7fb..26a5720129f 100644
--- a/3rdparty/asio/src/tests/unit/system_timer.cpp
+++ b/3rdparty/asio/src/tests/unit/system_timer.cpp
@@ -2,7 +2,7 @@
// system_timer.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,27 +21,15 @@
// Test that header file is self-contained.
#include "asio/system_timer.hpp"
-#include "unit_test.hpp"
-
-#if defined(ASIO_HAS_STD_CHRONO)
-
+#include <functional>
#include "asio/bind_cancellation_slot.hpp"
#include "asio/cancellation_signal.hpp"
#include "asio/executor_work_guard.hpp"
#include "asio/io_context.hpp"
#include "asio/thread.hpp"
+#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
void increment(int* count)
{
@@ -237,11 +225,9 @@ struct timer_handler
{
timer_handler() {}
void operator()(const asio::error_code&) {}
-#if defined(ASIO_HAS_MOVE)
timer_handler(timer_handler&&) {}
private:
timer_handler(const timer_handler&);
-#endif // defined(ASIO_HAS_MOVE)
};
void system_timer_cancel_test()
@@ -290,18 +276,18 @@ struct custom_allocation_timer_handler
typedef allocator<U> other;
};
- explicit allocator(int* count) ASIO_NOEXCEPT
+ explicit allocator(int* count) noexcept
: count_(count)
{
}
- allocator(const allocator& other) ASIO_NOEXCEPT
+ allocator(const allocator& other) noexcept
: count_(other.count_)
{
}
template <typename U>
- allocator(const allocator<U>& other) ASIO_NOEXCEPT
+ allocator(const allocator<U>& other) noexcept
: count_(other.count_)
{
}
@@ -338,7 +324,7 @@ struct custom_allocation_timer_handler
typedef allocator<int> allocator_type;
- allocator_type get_allocator() const ASIO_NOEXCEPT
+ allocator_type get_allocator() const noexcept
{
return allocator_type(count_);
}
@@ -406,7 +392,6 @@ void system_timer_thread_test()
ASIO_CHECK(count == 1);
}
-#if defined(ASIO_HAS_MOVE)
asio::system_timer make_timer(asio::io_context& ioc, int* count)
{
asio::system_timer t(ioc);
@@ -427,11 +412,9 @@ io_context_system_timer make_convertible_timer(asio::io_context& ioc, int* count
t.async_wait(bindns::bind(increment, count));
return t;
}
-#endif
void system_timer_move_test()
{
-#if defined(ASIO_HAS_MOVE)
asio::io_context io_context1;
asio::io_context io_context2;
int count = 0;
@@ -465,7 +448,6 @@ void system_timer_move_test()
io_context1.run();
ASIO_CHECK(count == 4);
-#endif // defined(ASIO_HAS_MOVE)
}
void system_timer_op_cancel_test()
@@ -516,10 +498,3 @@ ASIO_TEST_SUITE
ASIO_TEST_CASE(system_timer_move_test)
ASIO_TEST_CASE(system_timer_op_cancel_test)
)
-#else // defined(ASIO_HAS_STD_CHRONO)
-ASIO_TEST_SUITE
-(
- "system_timer",
- ASIO_TEST_CASE(null_test)
-)
-#endif // defined(ASIO_HAS_STD_CHRONO)
diff --git a/3rdparty/asio/src/tests/unit/this_coro.cpp b/3rdparty/asio/src/tests/unit/this_coro.cpp
index ef8f67b918f..d1e0fc677c5 100644
--- a/3rdparty/asio/src/tests/unit/this_coro.cpp
+++ b/3rdparty/asio/src/tests/unit/this_coro.cpp
@@ -2,7 +2,7 @@
// this_coro.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/thread.cpp b/3rdparty/asio/src/tests/unit/thread.cpp
index a99ef219bb0..b84db72158e 100644
--- a/3rdparty/asio/src/tests/unit/thread.cpp
+++ b/3rdparty/asio/src/tests/unit/thread.cpp
@@ -2,7 +2,7 @@
// thread.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/thread_pool.cpp b/3rdparty/asio/src/tests/unit/thread_pool.cpp
index aec68023367..f65d7963c26 100644
--- a/3rdparty/asio/src/tests/unit/thread_pool.cpp
+++ b/3rdparty/asio/src/tests/unit/thread_pool.cpp
@@ -2,7 +2,7 @@
// thread_pool.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,23 +16,13 @@
// Test that header file is self-contained.
#include "asio/thread_pool.hpp"
+#include <functional>
#include "asio/dispatch.hpp"
#include "asio/post.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
using namespace asio;
-
-#if defined(ASIO_HAS_BOOST_BIND)
-namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif
void increment(int* count)
{
@@ -207,11 +197,6 @@ void thread_pool_executor_query_test()
ASIO_CHECK(
asio::query(pool.executor(),
- asio::execution::bulk_guarantee)
- == asio::execution::bulk_guarantee.parallel);
-
- ASIO_CHECK(
- asio::query(pool.executor(),
asio::execution::mapping)
== asio::execution::mapping.thread);
@@ -231,287 +216,61 @@ void thread_pool_executor_execute_test()
int count = 0;
thread_pool pool(1);
- asio::execution::execute(pool.executor(),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.possibly),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.always),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::prefer(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())),
- bindns::bind(increment, &count));
-
- asio::execution::execute(
- asio::prefer(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator),
- bindns::bind(increment, &count));
-
- pool.wait();
-
- ASIO_CHECK(count == 10);
-}
-
-struct receiver
-{
- int* count_;
-
- receiver(int* count)
- : count_(count)
- {
- }
-
- receiver(const receiver& other) ASIO_NOEXCEPT
- : count_(other.count_)
- {
- }
-
-#if defined(ASIO_HAS_MOVE)
- receiver(receiver&& other) ASIO_NOEXCEPT
- : count_(other.count_)
- {
- other.count_ = 0;
- }
-#endif // defined(ASIO_HAS_MOVE)
-
- void set_value() ASIO_NOEXCEPT
- {
- ++(*count_);
- }
-
- template <typename E>
- void set_error(ASIO_MOVE_ARG(E) e) ASIO_NOEXCEPT
- {
- (void)e;
- }
-
- void set_done() ASIO_NOEXCEPT
- {
- }
-};
-
-namespace asio {
-namespace traits {
-
-#if !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-template <>
-struct set_value_member<receiver, void()>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_VALUE_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-template <typename E>
-struct set_error_member<receiver, E>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_ERROR_MEMBER_TRAIT)
-
-#if !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-template <>
-struct set_done_member<receiver>
-{
- ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
- ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
- typedef void result_type;
-};
-
-#endif // !defined(ASIO_HAS_DEDUCED_SET_DONE_MEMBER_TRAIT)
-
-} // namespace traits
-} // namespace asio
-
-void thread_pool_scheduler_test()
-{
- int count = 0;
- receiver r(&count);
- thread_pool pool(1);
-
- asio::execution::submit(
- asio::execution::schedule(pool.scheduler()), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.possibly), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.always), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork), r);
-
- asio::execution::submit(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation), r);
-
- asio::execution::submit(
- asio::prefer(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())), r);
-
- asio::execution::submit(
- asio::prefer(
- asio::require(
- asio::execution::schedule(pool.executor()),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator), r);
-
- pool.wait();
-
- ASIO_CHECK(count == 10);
-}
-
-void thread_pool_executor_bulk_execute_test()
-{
- int count = 0;
- thread_pool pool(1);
-
- pool.executor().bulk_execute(
- bindns::bind(increment, &count), 2);
+ pool.executor().execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.possibly).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.possibly
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.always).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.always
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.never).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.never
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.tracked).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.tracked
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.fork).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.fork
+ ).execute(bindns::bind(increment, &count));
asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation).bulk_execute(
- bindns::bind(increment, &count), 2);
-
- asio::prefer(
- asio::require(pool.executor(),
asio::execution::blocking.never,
asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator(std::allocator<void>())).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::execution::relationship.continuation
+ ).execute(bindns::bind(increment, &count));
asio::prefer(
- asio::require(pool.executor(),
- asio::execution::blocking.never,
- asio::execution::outstanding_work.untracked,
- asio::execution::relationship.continuation),
- asio::execution::allocator).bulk_execute(
- bindns::bind(increment, &count), 2);
+ asio::require(pool.executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator(std::allocator<void>())
+ ).execute(bindns::bind(increment, &count));
+
+ asio::prefer(
+ asio::require(pool.executor(),
+ asio::execution::blocking.never,
+ asio::execution::outstanding_work.untracked,
+ asio::execution::relationship.continuation),
+ asio::execution::allocator
+ ).execute(bindns::bind(increment, &count));
pool.wait();
- ASIO_CHECK(count == 20);
+ ASIO_CHECK(count == 10);
}
ASIO_TEST_SUITE
@@ -521,6 +280,4 @@ ASIO_TEST_SUITE
ASIO_TEST_CASE(thread_pool_service_test)
ASIO_TEST_CASE(thread_pool_executor_query_test)
ASIO_TEST_CASE(thread_pool_executor_execute_test)
- ASIO_TEST_CASE(thread_pool_executor_bulk_execute_test)
- ASIO_TEST_CASE(thread_pool_scheduler_test)
)
diff --git a/3rdparty/asio/src/tests/unit/time_traits.cpp b/3rdparty/asio/src/tests/unit/time_traits.cpp
index b64a75b0018..2763d9ecc30 100644
--- a/3rdparty/asio/src/tests/unit/time_traits.cpp
+++ b/3rdparty/asio/src/tests/unit/time_traits.cpp
@@ -2,7 +2,7 @@
// time_traits.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/buffer.cpp b/3rdparty/asio/src/tests/unit/ts/buffer.cpp
index a2ad558945a..8f09c4fecc9 100644
--- a/3rdparty/asio/src/tests/unit/ts/buffer.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/buffer.cpp
@@ -2,7 +2,7 @@
// buffer.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/executor.cpp b/3rdparty/asio/src/tests/unit/ts/executor.cpp
index 840850370df..9e318d93dbd 100644
--- a/3rdparty/asio/src/tests/unit/ts/executor.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/executor.cpp
@@ -2,7 +2,7 @@
// executor.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/internet.cpp b/3rdparty/asio/src/tests/unit/ts/internet.cpp
index 8680be6a46f..1ee8320d9d7 100644
--- a/3rdparty/asio/src/tests/unit/ts/internet.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/internet.cpp
@@ -2,7 +2,7 @@
// internet.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/io_context.cpp b/3rdparty/asio/src/tests/unit/ts/io_context.cpp
index 616e911183f..365e2579e8c 100644
--- a/3rdparty/asio/src/tests/unit/ts/io_context.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/io_context.cpp
@@ -2,7 +2,7 @@
// io_context.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/net.cpp b/3rdparty/asio/src/tests/unit/ts/net.cpp
index c59d1586c6f..25f65030994 100644
--- a/3rdparty/asio/src/tests/unit/ts/net.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/net.cpp
@@ -2,7 +2,7 @@
// net.cpp
// ~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/netfwd.cpp b/3rdparty/asio/src/tests/unit/ts/netfwd.cpp
index 67523c4ceb0..55af93c87c3 100644
--- a/3rdparty/asio/src/tests/unit/ts/netfwd.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/netfwd.cpp
@@ -2,7 +2,7 @@
// netfwd.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/socket.cpp b/3rdparty/asio/src/tests/unit/ts/socket.cpp
index d1e5df95c0d..4656fa2eb5a 100644
--- a/3rdparty/asio/src/tests/unit/ts/socket.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/socket.cpp
@@ -2,7 +2,7 @@
// socket.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/ts/timer.cpp b/3rdparty/asio/src/tests/unit/ts/timer.cpp
index 8a6e855b9e6..e956bd463d5 100644
--- a/3rdparty/asio/src/tests/unit/ts/timer.cpp
+++ b/3rdparty/asio/src/tests/unit/ts/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/unit_test.hpp b/3rdparty/asio/src/tests/unit/unit_test.hpp
index 5b2123e2030..8efae9987e6 100644
--- a/3rdparty/asio/src/tests/unit/unit_test.hpp
+++ b/3rdparty/asio/src/tests/unit/unit_test.hpp
@@ -2,7 +2,7 @@
// unit_test.hpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/use_awaitable.cpp b/3rdparty/asio/src/tests/unit/use_awaitable.cpp
index 84702c25e5b..815f57ebb1c 100644
--- a/3rdparty/asio/src/tests/unit/use_awaitable.cpp
+++ b/3rdparty/asio/src/tests/unit/use_awaitable.cpp
@@ -2,7 +2,7 @@
// use_awaitable.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/use_future.cpp b/3rdparty/asio/src/tests/unit/use_future.cpp
index 5c2bda5b577..ac12f7caa23 100644
--- a/3rdparty/asio/src/tests/unit/use_future.cpp
+++ b/3rdparty/asio/src/tests/unit/use_future.cpp
@@ -2,7 +2,7 @@
// use_future.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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,7 +19,7 @@
#include <string>
#include "unit_test.hpp"
-#if defined(ASIO_HAS_STD_FUTURE)
+#if defined(ASIO_HAS_STD_FUTURE_CLASS)
#include "archetypes/async_ops.hpp"
@@ -659,7 +659,7 @@ ASIO_TEST_SUITE
ASIO_TEST_CASE(use_future_package_3_test)
)
-#else // defined(ASIO_HAS_STD_FUTURE)
+#else // defined(ASIO_HAS_STD_FUTURE_CLASS)
ASIO_TEST_SUITE
(
@@ -667,4 +667,4 @@ ASIO_TEST_SUITE
ASIO_TEST_CASE(null_test)
)
-#endif // defined(ASIO_HAS_STD_FUTURE)
+#endif // defined(ASIO_HAS_STD_FUTURE_CLASS)
diff --git a/3rdparty/asio/src/tests/unit/uses_executor.cpp b/3rdparty/asio/src/tests/unit/uses_executor.cpp
index 76d2fdbf0d9..f3d52c1d8fc 100644
--- a/3rdparty/asio/src/tests/unit/uses_executor.cpp
+++ b/3rdparty/asio/src/tests/unit/uses_executor.cpp
@@ -2,7 +2,7 @@
// uses_executor.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/wait_traits.cpp b/3rdparty/asio/src/tests/unit/wait_traits.cpp
index 2cea19a50ae..4bdb498d7bf 100644
--- a/3rdparty/asio/src/tests/unit/wait_traits.cpp
+++ b/3rdparty/asio/src/tests/unit/wait_traits.cpp
@@ -2,7 +2,7 @@
// wait_traits.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp
index 87cfb15b2c0..d4d6def159a 100644
--- a/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/basic_object_handle.cpp
@@ -2,7 +2,7 @@
// basic_object_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp
index 668742a5f50..62b5419c69f 100644
--- a/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/basic_overlapped_handle.cpp
@@ -2,7 +2,7 @@
// basic_overlapped_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp
index 6fa7a02a00e..4a2605ea335 100644
--- a/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/basic_random_access_handle.cpp
@@ -2,7 +2,7 @@
// basic_random_access_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp b/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp
index fdde859da95..9cdf0bd5c20 100644
--- a/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/basic_stream_handle.cpp
@@ -2,7 +2,7 @@
// basic_stream_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/object_handle.cpp b/3rdparty/asio/src/tests/unit/windows/object_handle.cpp
index 6fdde1d7940..0784ba9fdb7 100644
--- a/3rdparty/asio/src/tests/unit/windows/object_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/object_handle.cpp
@@ -2,7 +2,7 @@
// object_handle.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -61,16 +61,16 @@ void test()
HANDLE native_handle2 = INVALID_HANDLE_VALUE;
win::object_handle handle4(ioc_ex, native_handle2);
-#if defined(ASIO_HAS_MOVE)
win::object_handle handle5(std::move(handle4));
-#endif // defined(ASIO_HAS_MOVE)
+
+ win::basic_object_handle<io_context::executor_type> handle6(ioc);
+ win::object_handle handle7(std::move(handle6));
// basic_object_handle operators.
-#if defined(ASIO_HAS_MOVE)
handle1 = win::object_handle(ioc);
handle1 = std::move(handle3);
-#endif // defined(ASIO_HAS_MOVE)
+ handle1 = std::move(handle6);
// basic_io_object functions.
@@ -83,9 +83,9 @@ void test()
= handle1.lowest_layer();
(void)lowest_layer;
- const win::object_handle& handle6 = handle1;
+ const win::object_handle& handle8 = handle1;
const win::object_handle::lowest_layer_type& lowest_layer3
- = handle6.lowest_layer();
+ = handle8.lowest_layer();
(void)lowest_layer3;
HANDLE native_handle4 = INVALID_HANDLE_VALUE;
@@ -126,5 +126,5 @@ void test()
ASIO_TEST_SUITE
(
"windows/object_handle",
- ASIO_TEST_CASE(windows_object_handle_compile::test)
+ ASIO_COMPILE_TEST_CASE(windows_object_handle_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp b/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp
index 629299b7567..5cdd3da2db1 100644
--- a/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/overlapped_handle.cpp
@@ -2,7 +2,7 @@
// overlapped_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp b/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp
index ff4173dcdf2..fda1b2cbd98 100644
--- a/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/overlapped_ptr.cpp
@@ -2,7 +2,7 @@
// overlapped_ptr.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -115,5 +115,5 @@ void test()
ASIO_TEST_SUITE
(
"windows/overlapped_ptr",
- ASIO_TEST_CASE(windows_overlapped_ptr_compile::test)
+ ASIO_COMPILE_TEST_CASE(windows_overlapped_ptr_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp b/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp
index 94fa29f2d96..613732c5128 100644
--- a/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/random_access_handle.cpp
@@ -2,7 +2,7 @@
// random_access_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -68,16 +68,16 @@ void test()
HANDLE native_handle2 = INVALID_HANDLE_VALUE;
win::random_access_handle handle4(ioc_ex, native_handle2);
-#if defined(ASIO_HAS_MOVE)
win::random_access_handle handle5(std::move(handle4));
-#endif // defined(ASIO_HAS_MOVE)
+
+ win::basic_random_access_handle<io_context::executor_type> handle6(ioc);
+ win::random_access_handle handle7(std::move(handle6));
// basic_random_access_handle operators.
-#if defined(ASIO_HAS_MOVE)
handle1 = win::random_access_handle(ioc);
handle1 = std::move(handle4);
-#endif // defined(ASIO_HAS_MOVE)
+ handle1 = std::move(handle6);
// basic_io_object functions.
@@ -90,9 +90,9 @@ void test()
= handle1.lowest_layer();
(void)lowest_layer;
- const win::random_access_handle& handle6 = handle1;
+ const win::random_access_handle& handle8 = handle1;
const win::random_access_handle::lowest_layer_type& lowest_layer2
- = handle6.lowest_layer();
+ = handle8.lowest_layer();
(void)lowest_layer2;
HANDLE native_handle3 = INVALID_HANDLE_VALUE;
@@ -105,8 +105,15 @@ void test()
handle1.close(ec);
win::random_access_handle::native_handle_type native_handle4
- = handle1.native_handle();
+ = handle1.release();
(void)native_handle4;
+ win::random_access_handle::native_handle_type native_handle5
+ = handle1.release(ec);
+ (void)native_handle5;
+
+ win::random_access_handle::native_handle_type native_handle6
+ = handle1.native_handle();
+ (void)native_handle6;
handle1.cancel();
handle1.cancel(ec);
@@ -151,5 +158,5 @@ void test()
ASIO_TEST_SUITE
(
"windows/random_access_handle",
- ASIO_TEST_CASE(windows_random_access_handle_compile::test)
+ ASIO_COMPILE_TEST_CASE(windows_random_access_handle_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp b/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp
index 6bb2d668ad8..1668dcea69a 100644
--- a/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp
+++ b/3rdparty/asio/src/tests/unit/windows/stream_handle.cpp
@@ -2,7 +2,7 @@
// stream_handle.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -67,16 +67,16 @@ void test()
HANDLE native_handle2 = INVALID_HANDLE_VALUE;
win::stream_handle handle4(ioc_ex, native_handle2);
-#if defined(ASIO_HAS_MOVE)
win::stream_handle handle5(std::move(handle4));
-#endif // defined(ASIO_HAS_MOVE)
+
+ win::basic_stream_handle<io_context::executor_type> handle6(ioc);
+ win::stream_handle handle7(std::move(handle6));
// basic_stream_handle operators.
-#if defined(ASIO_HAS_MOVE)
handle1 = win::stream_handle(ioc);
handle1 = std::move(handle4);
-#endif // defined(ASIO_HAS_MOVE)
+ handle1 = std::move(handle6);
// basic_io_object functions.
@@ -89,9 +89,9 @@ void test()
= handle1.lowest_layer();
(void)lowest_layer;
- const win::stream_handle& handle6 = handle1;
+ const win::stream_handle& handle8 = handle1;
const win::stream_handle::lowest_layer_type& lowest_layer2
- = handle6.lowest_layer();
+ = handle8.lowest_layer();
(void)lowest_layer2;
HANDLE native_handle3 = INVALID_HANDLE_VALUE;
@@ -104,8 +104,15 @@ void test()
handle1.close(ec);
win::stream_handle::native_handle_type native_handle4
- = handle1.native_handle();
+ = handle1.release();
(void)native_handle4;
+ win::stream_handle::native_handle_type native_handle5
+ = handle1.release(ec);
+ (void)native_handle5;
+
+ win::stream_handle::native_handle_type native_handle6
+ = handle1.native_handle();
+ (void)native_handle6;
handle1.cancel();
handle1.cancel(ec);
@@ -144,5 +151,5 @@ void test()
ASIO_TEST_SUITE
(
"windows/stream_handle",
- ASIO_TEST_CASE(windows_stream_handle_compile::test)
+ ASIO_COMPILE_TEST_CASE(windows_stream_handle_compile::test)
)
diff --git a/3rdparty/asio/src/tests/unit/writable_pipe.cpp b/3rdparty/asio/src/tests/unit/writable_pipe.cpp
new file mode 100644
index 00000000000..0cea7547aa2
--- /dev/null
+++ b/3rdparty/asio/src/tests/unit/writable_pipe.cpp
@@ -0,0 +1,136 @@
+//
+// writable_pipe.cpp
+// ~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2024 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header pipe is self-contained.
+#include "asio/writable_pipe.hpp"
+
+#include "archetypes/async_result.hpp"
+#include "asio/io_context.hpp"
+#include "unit_test.hpp"
+
+// writable_pipe_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// writable_pipe compile and link correctly. Runtime failures are ignored.
+
+namespace writable_pipe_compile {
+
+struct write_some_handler
+{
+ write_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ write_some_handler(write_some_handler&&) {}
+private:
+ write_some_handler(const write_some_handler&);
+};
+
+struct read_some_handler
+{
+ read_some_handler() {}
+ void operator()(const asio::error_code&, std::size_t) {}
+ read_some_handler(read_some_handler&&) {}
+private:
+ read_some_handler(const read_some_handler&);
+};
+
+void test()
+{
+#if defined(ASIO_HAS_PIPE)
+ using namespace asio;
+
+ try
+ {
+ io_context ioc;
+ const io_context::executor_type ioc_ex = ioc.get_executor();
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ archetypes::lazy_handler lazy;
+ asio::error_code ec;
+
+ // basic_writable_pipe constructors.
+
+ writable_pipe pipe1(ioc);
+ writable_pipe::native_handle_type native_pipe1 = pipe1.native_handle();
+ writable_pipe pipe2(ioc, native_pipe1);
+
+ writable_pipe pipe3(ioc_ex);
+ writable_pipe::native_handle_type native_pipe2 = pipe1.native_handle();
+ writable_pipe pipe4(ioc_ex, native_pipe2);
+
+ writable_pipe pipe5(std::move(pipe4));
+
+ basic_writable_pipe<io_context::executor_type> pipe6(ioc);
+ writable_pipe pipe7(std::move(pipe6));
+
+ // basic_writable_pipe operators.
+
+ pipe1 = writable_pipe(ioc);
+ pipe1 = std::move(pipe2);
+ pipe1 = std::move(pipe6);
+
+ // basic_io_object functions.
+
+ writable_pipe::executor_type ex = pipe1.get_executor();
+ (void)ex;
+
+ // basic_writable_pipe functions.
+
+ writable_pipe::native_handle_type native_pipe3 = pipe1.native_handle();
+ pipe1.assign(native_pipe3);
+ writable_pipe::native_handle_type native_pipe4 = pipe1.native_handle();
+ pipe1.assign(native_pipe4, ec);
+
+ bool is_open = pipe1.is_open();
+ (void)is_open;
+
+ pipe1.close();
+ pipe1.close(ec);
+
+ writable_pipe::native_handle_type native_pipe5 = pipe1.release();
+ (void)native_pipe5;
+ writable_pipe::native_handle_type native_pipe6 = pipe1.release(ec);
+ (void)native_pipe6;
+
+ writable_pipe::native_handle_type native_pipe7 = pipe1.native_handle();
+ (void)native_pipe7;
+
+ pipe1.cancel();
+ pipe1.cancel(ec);
+
+ pipe1.write_some(buffer(mutable_char_buffer));
+ pipe1.write_some(buffer(const_char_buffer));
+ pipe1.write_some(buffer(mutable_char_buffer), ec);
+ pipe1.write_some(buffer(const_char_buffer), ec);
+
+ pipe1.async_write_some(buffer(mutable_char_buffer), write_some_handler());
+ pipe1.async_write_some(buffer(const_char_buffer), write_some_handler());
+ int i1 = pipe1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = pipe1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+ }
+ catch (std::exception&)
+ {
+ }
+#endif // defined(ASIO_HAS_PIPE)
+}
+
+} // namespace writable_pipe_compile
+
+ASIO_TEST_SUITE
+(
+ "writable_pipe",
+ ASIO_COMPILE_TEST_CASE(writable_pipe_compile::test)
+)
diff --git a/3rdparty/asio/src/tests/unit/write.cpp b/3rdparty/asio/src/tests/unit/write.cpp
index 0343c02c71e..470972217c1 100644
--- a/3rdparty/asio/src/tests/unit/write.cpp
+++ b/3rdparty/asio/src/tests/unit/write.cpp
@@ -2,7 +2,7 @@
// write.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,7 +16,9 @@
// Test that header file is self-contained.
#include "asio/write.hpp"
+#include <array>
#include <cstring>
+#include <functional>
#include <vector>
#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
@@ -24,20 +26,10 @@
#include "asio/streambuf.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
#if defined(ASIO_HAS_BOOST_ARRAY)
#include <boost/array.hpp>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
using namespace std; // For memcmp, memcpy and memset.
class test_stream
@@ -54,7 +46,7 @@ public:
memset(data_, 0, max_length);
}
- executor_type get_executor() ASIO_NOEXCEPT
+ executor_type get_executor() noexcept
{
return io_context_.get_executor();
}
@@ -121,12 +113,12 @@ public:
template <typename Const_Buffers, typename Handler>
void async_write_some(const Const_Buffers& buffers,
- ASIO_MOVE_ARG(Handler) handler)
+ Handler&& handler)
{
size_t bytes_transferred = write_some(buffers);
asio::post(get_executor(),
asio::detail::bind_handler(
- ASIO_MOVE_CAST(Handler)(handler),
+ static_cast<Handler&&>(handler),
asio::error_code(), bytes_transferred));
}
@@ -409,11 +401,7 @@ bool old_style_transfer_all(const asio::error_code& ec,
struct short_transfer
{
short_transfer() {}
-#if defined(ASIO_HAS_MOVE)
short_transfer(short_transfer&&) {}
-#else // defined(ASIO_HAS_MOVE)
- short_transfer(const short_transfer&) {}
-#endif // defined(ASIO_HAS_MOVE)
size_t operator()(const asio::error_code& ec,
size_t /*bytes_transferred*/)
{
@@ -2173,11 +2161,7 @@ void async_write_handler(const asio::error_code& e,
void test_3_arg_const_buffer_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2228,11 +2212,7 @@ void test_3_arg_const_buffer_async_write()
void test_3_arg_mutable_buffer_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2283,11 +2263,7 @@ void test_3_arg_mutable_buffer_async_write()
void test_3_arg_boost_array_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2341,15 +2317,10 @@ void test_3_arg_boost_array_buffers_async_write()
void test_3_arg_std_array_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_stream s(ioc);
std::array<asio::const_buffer, 2> buffers = { {
@@ -2394,16 +2365,11 @@ void test_3_arg_std_array_buffers_async_write()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_3_arg_vector_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2456,11 +2422,7 @@ void test_3_arg_vector_buffers_async_write()
void test_3_arg_dynamic_string_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2520,11 +2482,7 @@ void test_3_arg_dynamic_string_async_write()
void test_3_arg_streambuf_async_write()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2585,11 +2543,7 @@ void test_3_arg_streambuf_async_write()
void test_4_arg_const_buffer_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -2897,11 +2851,7 @@ void test_4_arg_const_buffer_async_write()
void test_4_arg_mutable_buffer_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3209,11 +3159,7 @@ void test_4_arg_mutable_buffer_async_write()
void test_4_arg_boost_array_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3524,15 +3470,10 @@ void test_4_arg_boost_array_buffers_async_write()
void test_4_arg_std_array_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_stream s(ioc);
std::array<asio::const_buffer, 2> buffers = { {
@@ -3834,16 +3775,11 @@ void test_4_arg_std_array_buffers_async_write()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4153,11 +4089,7 @@ void test_4_arg_vector_buffers_async_write()
void test_4_arg_dynamic_string_async_write()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4498,11 +4430,7 @@ void test_4_arg_dynamic_string_async_write()
void test_4_arg_streambuf_async_write()
{
#if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
diff --git a/3rdparty/asio/src/tests/unit/write_at.cpp b/3rdparty/asio/src/tests/unit/write_at.cpp
index c3760b0bf46..adc684d0e4f 100644
--- a/3rdparty/asio/src/tests/unit/write_at.cpp
+++ b/3rdparty/asio/src/tests/unit/write_at.cpp
@@ -2,7 +2,7 @@
// write_at.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2024 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)
@@ -16,27 +16,19 @@
// Test that header file is self-contained.
#include "asio/write_at.hpp"
+#include <array>
#include <cstring>
+#include <functional>
#include "archetypes/async_result.hpp"
#include "asio/io_context.hpp"
#include "asio/post.hpp"
#include "asio/streambuf.hpp"
#include "unit_test.hpp"
-#if defined(ASIO_HAS_BOOST_BIND)
-# include <boost/bind/bind.hpp>
-#else // defined(ASIO_HAS_BOOST_BIND)
-# include <functional>
-#endif // defined(ASIO_HAS_BOOST_BIND)
-
#if defined(ASIO_HAS_BOOST_ARRAY)
#include <boost/array.hpp>
#endif // defined(ASIO_HAS_BOOST_ARRAY)
-#if defined(ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(ASIO_HAS_STD_ARRAY)
-
using namespace std; // For memcmp, memcpy and memset.
class test_random_access_device
@@ -52,7 +44,7 @@ public:
memset(data_, 0, max_length);
}
- executor_type get_executor() ASIO_NOEXCEPT
+ executor_type get_executor() noexcept
{
return io_context_.get_executor();
}
@@ -118,12 +110,12 @@ public:
template <typename Const_Buffers, typename Handler>
void async_write_some_at(asio::uint64_t offset,
- const Const_Buffers& buffers, ASIO_MOVE_ARG(Handler) handler)
+ const Const_Buffers& buffers, Handler&& handler)
{
size_t bytes_transferred = write_some_at(offset, buffers);
asio::post(get_executor(),
asio::detail::bind_handler(
- ASIO_MOVE_CAST(Handler)(handler),
+ static_cast<Handler&&>(handler),
asio::error_code(), bytes_transferred));
}
@@ -424,11 +416,7 @@ bool old_style_transfer_all(const asio::error_code& ec,
struct short_transfer
{
short_transfer() {}
-#if defined(ASIO_HAS_MOVE)
short_transfer(short_transfer&&) {}
-#else // defined(ASIO_HAS_MOVE)
- short_transfer(const short_transfer&) {}
-#endif // defined(ASIO_HAS_MOVE)
size_t operator()(const asio::error_code& ec,
size_t /*bytes_transferred*/)
{
@@ -2947,11 +2935,7 @@ void async_write_handler(const asio::error_code& e,
void test_4_arg_const_buffer_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3046,11 +3030,7 @@ void test_4_arg_const_buffer_async_write_at()
void test_4_arg_mutable_buffer_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3145,11 +3125,7 @@ void test_4_arg_mutable_buffer_async_write_at()
void test_4_arg_boost_array_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3247,15 +3223,10 @@ void test_4_arg_boost_array_buffers_async_write_at()
void test_4_arg_std_array_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_random_access_device s(ioc);
std::array<asio::const_buffer, 2> buffers = { {
@@ -3344,16 +3315,11 @@ void test_4_arg_std_array_buffers_async_write_at()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3449,11 +3415,7 @@ void test_4_arg_vector_buffers_async_write_at()
void test_4_arg_streambuf_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -3565,11 +3527,7 @@ void test_4_arg_streambuf_async_write_at()
void test_5_arg_const_buffer_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4207,11 +4165,7 @@ void test_5_arg_const_buffer_async_write_at()
void test_5_arg_mutable_buffer_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -4849,11 +4803,7 @@ void test_5_arg_mutable_buffer_async_write_at()
void test_5_arg_boost_array_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -5494,15 +5444,10 @@ void test_5_arg_boost_array_buffers_async_write_at()
void test_5_arg_std_array_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
-#if defined(ASIO_HAS_STD_ARRAY)
asio::io_context ioc;
test_random_access_device s(ioc);
std::array<asio::const_buffer, 2> buffers = { {
@@ -6134,16 +6079,11 @@ void test_5_arg_std_array_buffers_async_write_at()
ioc.restart();
ioc.run();
ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
-#endif // defined(ASIO_HAS_STD_ARRAY)
}
void test_5_arg_vector_buffers_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;
@@ -6782,11 +6722,7 @@ void test_5_arg_vector_buffers_async_write_at()
void test_5_arg_streambuf_async_write_at()
{
-#if defined(ASIO_HAS_BOOST_BIND)
- namespace bindns = boost;
-#else // defined(ASIO_HAS_BOOST_BIND)
namespace bindns = std;
-#endif // defined(ASIO_HAS_BOOST_BIND)
using bindns::placeholders::_1;
using bindns::placeholders::_2;