From 2dd57a940b6d1b733cbd1abbc3f842da476d3d48 Mon Sep 17 00:00:00 2001 From: raphaelthegreat <47210458+raphaelthegreat@users.noreply.github.com> Date: Tue, 14 May 2024 23:05:10 +0300 Subject: [PATCH] boost: Changes for shadps4 --- Jamroot | 19 +- boost/align/align_up.hpp | 27 - boost/align/detail/align_up.hpp | 28 - boost/align/detail/not_pointer.hpp | 27 - boost/aligned_storage.hpp | 18 - boost/archive/archive_exception.hpp | 100 - boost/archive/basic_archive.hpp | 274 -- boost/archive/basic_binary_iarchive.hpp | 217 -- boost/archive/basic_binary_iprimitive.hpp | 197 - boost/archive/basic_binary_oarchive.hpp | 185 - boost/archive/basic_binary_oprimitive.hpp | 187 - .../archive/basic_streambuf_locale_saver.hpp | 108 - boost/archive/basic_text_iarchive.hpp | 96 - boost/archive/basic_text_iprimitive.hpp | 142 - boost/archive/basic_text_oarchive.hpp | 119 - boost/archive/basic_text_oprimitive.hpp | 210 -- boost/archive/basic_xml_archive.hpp | 67 - boost/archive/basic_xml_iarchive.hpp | 119 - boost/archive/basic_xml_oarchive.hpp | 138 - boost/archive/binary_iarchive.hpp | 68 - boost/archive/binary_iarchive_impl.hpp | 101 - boost/archive/binary_oarchive.hpp | 68 - boost/archive/binary_oarchive_impl.hpp | 102 - boost/archive/binary_wiarchive.hpp | 56 - boost/archive/binary_woarchive.hpp | 59 - boost/archive/codecvt_null.hpp | 116 - boost/archive/detail/abi_prefix.hpp | 16 - boost/archive/detail/abi_suffix.hpp | 15 - .../archive/detail/archive_serializer_map.hpp | 54 - boost/archive/detail/auto_link_archive.hpp | 48 - boost/archive/detail/auto_link_warchive.hpp | 47 - boost/archive/detail/basic_iarchive.hpp | 105 - boost/archive/detail/basic_iserializer.hpp | 91 - boost/archive/detail/basic_oarchive.hpp | 94 - boost/archive/detail/basic_oserializer.hpp | 89 - .../detail/basic_pointer_iserializer.hpp | 70 - .../detail/basic_pointer_oserializer.hpp | 68 - boost/archive/detail/basic_serializer.hpp | 77 - boost/archive/detail/basic_serializer_map.hpp | 69 - boost/archive/detail/check.hpp | 171 - boost/archive/detail/common_iarchive.hpp | 88 - boost/archive/detail/common_oarchive.hpp | 89 - boost/archive/detail/decl.hpp | 57 - boost/archive/detail/helper_collection.hpp | 99 - boost/archive/detail/interface_iarchive.hpp | 85 - boost/archive/detail/interface_oarchive.hpp | 87 - boost/archive/detail/iserializer.hpp | 632 ---- boost/archive/detail/oserializer.hpp | 547 --- .../detail/polymorphic_iarchive_route.hpp | 218 -- .../detail/polymorphic_oarchive_route.hpp | 209 -- boost/archive/detail/register_archive.hpp | 91 - boost/archive/detail/utf8_codecvt_facet.hpp | 28 - boost/archive/dinkumware.hpp | 222 -- boost/archive/impl/archive_serializer_map.ipp | 75 - boost/archive/impl/basic_binary_iarchive.ipp | 134 - .../archive/impl/basic_binary_iprimitive.ipp | 173 - boost/archive/impl/basic_binary_oarchive.ipp | 42 - .../archive/impl/basic_binary_oprimitive.ipp | 126 - boost/archive/impl/basic_text_iarchive.ipp | 76 - boost/archive/impl/basic_text_iprimitive.ipp | 138 - boost/archive/impl/basic_text_oarchive.ipp | 62 - boost/archive/impl/basic_text_oprimitive.ipp | 117 - boost/archive/impl/basic_xml_grammar.hpp | 173 - boost/archive/impl/basic_xml_iarchive.ipp | 114 - boost/archive/impl/basic_xml_oarchive.ipp | 272 -- boost/archive/impl/text_iarchive_impl.ipp | 121 - boost/archive/impl/text_oarchive_impl.ipp | 116 - boost/archive/impl/text_wiarchive_impl.ipp | 116 - boost/archive/impl/text_woarchive_impl.ipp | 85 - boost/archive/impl/xml_iarchive_impl.ipp | 196 - boost/archive/impl/xml_oarchive_impl.ipp | 139 - boost/archive/impl/xml_wiarchive_impl.ipp | 187 - boost/archive/impl/xml_woarchive_impl.ipp | 169 - .../archive/iterators/base64_from_binary.hpp | 109 - .../archive/iterators/binary_from_base64.hpp | 118 - .../archive/iterators/dataflow_exception.hpp | 80 - boost/archive/iterators/escape.hpp | 115 - boost/archive/iterators/insert_linebreaks.hpp | 99 - boost/archive/iterators/istream_iterator.hpp | 92 - boost/archive/iterators/mb_from_wchar.hpp | 142 - boost/archive/iterators/ostream_iterator.hpp | 83 - boost/archive/iterators/remove_whitespace.hpp | 167 - boost/archive/iterators/transform_width.hpp | 177 - boost/archive/iterators/unescape.hpp | 89 - boost/archive/iterators/wchar_from_mb.hpp | 196 - boost/archive/iterators/xml_escape.hpp | 121 - boost/archive/iterators/xml_unescape.hpp | 127 - boost/archive/polymorphic_binary_iarchive.hpp | 53 - boost/archive/polymorphic_binary_oarchive.hpp | 44 - boost/archive/polymorphic_iarchive.hpp | 171 - boost/archive/polymorphic_oarchive.hpp | 154 - boost/archive/polymorphic_text_iarchive.hpp | 53 - boost/archive/polymorphic_text_oarchive.hpp | 44 - boost/archive/polymorphic_text_wiarchive.hpp | 58 - boost/archive/polymorphic_text_woarchive.hpp | 49 - boost/archive/polymorphic_xml_iarchive.hpp | 53 - boost/archive/polymorphic_xml_oarchive.hpp | 43 - boost/archive/polymorphic_xml_wiarchive.hpp | 49 - boost/archive/polymorphic_xml_woarchive.hpp | 49 - boost/archive/text_iarchive.hpp | 135 - boost/archive/text_oarchive.hpp | 124 - boost/archive/text_wiarchive.hpp | 140 - boost/archive/text_woarchive.hpp | 155 - boost/archive/wcslen.hpp | 58 - boost/archive/xml_archive_exception.hpp | 57 - boost/archive/xml_iarchive.hpp | 145 - boost/archive/xml_oarchive.hpp | 140 - boost/archive/xml_wiarchive.hpp | 152 - boost/archive/xml_woarchive.hpp | 135 - boost/array.hpp | 96 +- boost/asio.hpp | 17 - boost/asio/any_completion_executor.hpp | 56 +- boost/asio/any_completion_handler.hpp | 121 +- boost/asio/any_io_executor.hpp | 74 +- boost/asio/append.hpp | 31 +- boost/asio/as_tuple.hpp | 53 +- boost/asio/associated_allocator.hpp | 69 +- boost/asio/associated_cancellation_slot.hpp | 67 +- boost/asio/associated_executor.hpp | 72 +- boost/asio/associated_immediate_executor.hpp | 99 +- boost/asio/async_result.hpp | 974 +---- boost/asio/basic_datagram_socket.hpp | 160 +- boost/asio/basic_deadline_timer.hpp | 37 +- boost/asio/basic_file.hpp | 39 +- boost/asio/basic_io_object.hpp | 10 +- boost/asio/basic_random_access_file.hpp | 70 +- boost/asio/basic_raw_socket.hpp | 159 +- boost/asio/basic_readable_pipe.hpp | 47 +- boost/asio/basic_seq_packet_socket.hpp | 82 +- boost/asio/basic_serial_port.hpp | 73 +- boost/asio/basic_signal_set.hpp | 39 +- boost/asio/basic_socket.hpp | 77 +- boost/asio/basic_socket_acceptor.hpp | 257 +- boost/asio/basic_socket_iostream.hpp | 86 +- boost/asio/basic_socket_streambuf.hpp | 55 +- boost/asio/basic_stream_file.hpp | 68 +- boost/asio/basic_stream_socket.hpp | 124 +- boost/asio/basic_streambuf.hpp | 26 +- boost/asio/basic_streambuf_fwd.hpp | 4 +- boost/asio/basic_waitable_timer.hpp | 53 +- boost/asio/basic_writable_pipe.hpp | 47 +- boost/asio/bind_allocator.hpp | 355 +- boost/asio/bind_cancellation_slot.hpp | 340 +- boost/asio/bind_executor.hpp | 361 +- boost/asio/bind_immediate_executor.hpp | 332 +- boost/asio/buffer.hpp | 496 +-- boost/asio/buffer_registration.hpp | 66 +- boost/asio/buffered_read_stream.hpp | 63 +- boost/asio/buffered_stream.hpp | 78 +- boost/asio/buffered_write_stream.hpp | 63 +- boost/asio/buffers_iterator.hpp | 6 +- boost/asio/cancellation_signal.hpp | 108 +- boost/asio/cancellation_state.hpp | 30 +- boost/asio/cancellation_type.hpp | 31 +- boost/asio/co_spawn.hpp | 32 +- boost/asio/compose.hpp | 325 +- boost/asio/connect.hpp | 129 +- boost/asio/consign.hpp | 33 +- boost/asio/defer.hpp | 46 +- boost/asio/deferred.hpp | 461 +-- boost/asio/detached.hpp | 30 +- boost/asio/detail/array.hpp | 10 +- boost/asio/detail/array_fwd.hpp | 4 +- boost/asio/detail/atomic_count.hpp | 16 +- .../detail/base_from_cancellation_state.hpp | 39 +- .../asio/detail/base_from_completion_cond.hpp | 2 +- boost/asio/detail/bind_handler.hpp | 690 +--- boost/asio/detail/blocking_executor_op.hpp | 3 +- boost/asio/detail/buffer_sequence_adapter.hpp | 8 +- boost/asio/detail/bulk_executor_op.hpp | 91 - boost/asio/detail/chrono.hpp | 23 +- boost/asio/detail/completion_handler.hpp | 6 +- boost/asio/detail/composed_work.hpp | 116 +- boost/asio/detail/config.hpp | 1054 +----- boost/asio/detail/consuming_buffers.hpp | 12 +- boost/asio/detail/cstddef.hpp | 4 - boost/asio/detail/cstdint.hpp | 24 +- boost/asio/detail/deadline_timer_service.hpp | 6 +- boost/asio/detail/descriptor_read_op.hpp | 6 +- boost/asio/detail/descriptor_write_op.hpp | 6 +- boost/asio/detail/event.hpp | 6 +- boost/asio/detail/executor_function.hpp | 66 +- boost/asio/detail/executor_op.hpp | 9 +- boost/asio/detail/fenced_block.hpp | 44 +- boost/asio/detail/functional.hpp | 11 - boost/asio/detail/future.hpp | 17 +- boost/asio/detail/gcc_arm_fenced_block.hpp | 93 - boost/asio/detail/gcc_hppa_fenced_block.hpp | 70 - boost/asio/detail/gcc_sync_fenced_block.hpp | 67 - boost/asio/detail/gcc_x86_fenced_block.hpp | 101 - boost/asio/detail/global.hpp | 6 +- boost/asio/detail/handler_alloc_helpers.hpp | 143 +- boost/asio/detail/handler_invoke_helpers.hpp | 80 - boost/asio/detail/handler_tracking.hpp | 4 +- .../asio/detail/handler_type_requirements.hpp | 22 +- boost/asio/detail/handler_work.hpp | 198 +- boost/asio/detail/impl/handler_tracking.ipp | 8 +- .../impl/io_uring_descriptor_service.ipp | 2 +- .../impl/io_uring_socket_service_base.ipp | 2 +- .../impl/reactive_descriptor_service.ipp | 2 +- .../impl/reactive_socket_service_base.ipp | 2 +- .../detail/impl/resolver_service_base.ipp | 4 +- boost/asio/detail/impl/service_registry.hpp | 3 +- .../detail/impl/strand_executor_service.hpp | 113 +- boost/asio/detail/impl/strand_service.hpp | 3 +- boost/asio/detail/impl/timer_queue_ptime.ipp | 22 +- .../asio/detail/impl/win_iocp_io_context.hpp | 1 - .../asio/detail/impl/win_iocp_io_context.ipp | 3 +- .../impl/win_iocp_socket_service_base.ipp | 2 +- boost/asio/detail/initiate_defer.hpp | 155 +- boost/asio/detail/initiate_dispatch.hpp | 146 +- boost/asio/detail/initiate_post.hpp | 155 +- boost/asio/detail/io_object_impl.hpp | 10 +- .../detail/io_uring_descriptor_read_at_op.hpp | 4 +- .../detail/io_uring_descriptor_read_op.hpp | 4 +- .../detail/io_uring_descriptor_service.hpp | 16 +- .../io_uring_descriptor_write_at_op.hpp | 4 +- .../detail/io_uring_descriptor_write_op.hpp | 4 +- .../asio/detail/io_uring_null_buffers_op.hpp | 5 +- .../asio/detail/io_uring_socket_accept_op.hpp | 17 +- .../detail/io_uring_socket_connect_op.hpp | 5 +- boost/asio/detail/io_uring_socket_recv_op.hpp | 4 +- .../detail/io_uring_socket_recvfrom_op.hpp | 4 +- .../detail/io_uring_socket_recvmsg_op.hpp | 4 +- boost/asio/detail/io_uring_socket_send_op.hpp | 4 +- .../asio/detail/io_uring_socket_sendto_op.hpp | 4 +- boost/asio/detail/io_uring_socket_service.hpp | 22 +- .../detail/io_uring_socket_service_base.hpp | 16 +- boost/asio/detail/io_uring_wait_op.hpp | 5 +- boost/asio/detail/is_buffer_sequence.hpp | 54 +- boost/asio/detail/limits.hpp | 7 +- boost/asio/detail/macos_fenced_block.hpp | 64 - boost/asio/detail/memory.hpp | 65 +- boost/asio/detail/mutex.hpp | 6 +- boost/asio/detail/non_const_lvalue.hpp | 17 +- boost/asio/detail/null_socket_service.hpp | 4 +- .../detail/reactive_descriptor_service.hpp | 16 +- .../asio/detail/reactive_null_buffers_op.hpp | 7 +- .../asio/detail/reactive_socket_accept_op.hpp | 25 +- .../detail/reactive_socket_connect_op.hpp | 7 +- boost/asio/detail/reactive_socket_recv_op.hpp | 7 +- .../detail/reactive_socket_recvfrom_op.hpp | 7 +- .../detail/reactive_socket_recvmsg_op.hpp | 7 +- boost/asio/detail/reactive_socket_send_op.hpp | 7 +- .../asio/detail/reactive_socket_sendto_op.hpp | 7 +- boost/asio/detail/reactive_socket_service.hpp | 22 +- .../detail/reactive_socket_service_base.hpp | 28 +- boost/asio/detail/reactive_wait_op.hpp | 7 +- boost/asio/detail/recycling_allocator.hpp | 2 +- boost/asio/detail/regex_fwd.hpp | 15 +- boost/asio/detail/resolve_endpoint_op.hpp | 5 +- boost/asio/detail/resolve_query_op.hpp | 5 +- boost/asio/detail/resolver_service.hpp | 4 +- boost/asio/detail/service_registry.hpp | 3 +- boost/asio/detail/signal_handler.hpp | 4 +- boost/asio/detail/signal_set_service.hpp | 2 +- boost/asio/detail/solaris_fenced_block.hpp | 64 - boost/asio/detail/static_mutex.hpp | 6 +- boost/asio/detail/std_event.hpp | 5 - boost/asio/detail/std_fenced_block.hpp | 5 - boost/asio/detail/std_global.hpp | 5 - boost/asio/detail/std_mutex.hpp | 5 - boost/asio/detail/std_static_mutex.hpp | 5 - boost/asio/detail/std_thread.hpp | 5 - boost/asio/detail/strand_executor_service.hpp | 24 +- boost/asio/detail/thread.hpp | 6 +- boost/asio/detail/thread_info_base.hpp | 32 +- boost/asio/detail/timer_queue_ptime.hpp | 2 +- boost/asio/detail/type_traits.hpp | 246 +- boost/asio/detail/utility.hpp | 6 +- boost/asio/detail/variadic_templates.hpp | 294 -- boost/asio/detail/wait_handler.hpp | 4 +- boost/asio/detail/win_fenced_block.hpp | 92 - boost/asio/detail/win_iocp_handle_read_op.hpp | 5 +- boost/asio/detail/win_iocp_handle_service.hpp | 8 +- .../asio/detail/win_iocp_handle_write_op.hpp | 5 +- .../asio/detail/win_iocp_null_buffers_op.hpp | 5 +- boost/asio/detail/win_iocp_overlapped_op.hpp | 5 +- boost/asio/detail/win_iocp_overlapped_ptr.hpp | 12 +- .../asio/detail/win_iocp_socket_accept_op.hpp | 17 +- .../detail/win_iocp_socket_connect_op.hpp | 5 +- boost/asio/detail/win_iocp_socket_recv_op.hpp | 5 +- .../detail/win_iocp_socket_recvfrom_op.hpp | 5 +- .../detail/win_iocp_socket_recvmsg_op.hpp | 5 +- boost/asio/detail/win_iocp_socket_send_op.hpp | 5 +- boost/asio/detail/win_iocp_socket_service.hpp | 21 +- .../detail/win_iocp_socket_service_base.hpp | 15 +- boost/asio/detail/win_iocp_wait_op.hpp | 5 +- .../asio/detail/win_object_handle_service.hpp | 1 - boost/asio/detail/winrt_resolve_op.hpp | 5 +- boost/asio/detail/winrt_resolver_service.hpp | 4 +- boost/asio/detail/work_dispatcher.hpp | 52 +- boost/asio/detail/wrapped_handler.hpp | 122 +- boost/asio/dispatch.hpp | 45 +- boost/asio/execution.hpp | 15 - boost/asio/execution/allocator.hpp | 144 +- boost/asio/execution/any_executor.hpp | 1246 ++----- boost/asio/execution/bad_executor.hpp | 5 +- boost/asio/execution/blocking.hpp | 830 ++--- boost/asio/execution/blocking_adaptation.hpp | 639 ++-- boost/asio/execution/bulk_execute.hpp | 406 --- boost/asio/execution/bulk_guarantee.hpp | 1254 ------- boost/asio/execution/connect.hpp | 498 --- boost/asio/execution/context.hpp | 91 +- boost/asio/execution/context_as.hpp | 100 +- boost/asio/execution/detail/as_invocable.hpp | 154 - boost/asio/execution/detail/as_operation.hpp | 111 - boost/asio/execution/detail/as_receiver.hpp | 130 - boost/asio/execution/detail/bulk_sender.hpp | 263 -- .../asio/execution/detail/submit_receiver.hpp | 235 -- boost/asio/execution/detail/void_receiver.hpp | 92 - boost/asio/execution/execute.hpp | 296 -- boost/asio/execution/executor.hpp | 192 +- boost/asio/execution/impl/bad_executor.ipp | 4 +- .../impl/receiver_invocation_error.ipp | 38 - boost/asio/execution/invocable_archetype.hpp | 30 +- boost/asio/execution/mapping.hpp | 636 ++-- boost/asio/execution/occupancy.hpp | 91 +- boost/asio/execution/operation_state.hpp | 101 - boost/asio/execution/outstanding_work.hpp | 443 +-- boost/asio/execution/prefer_only.hpp | 113 +- boost/asio/execution/receiver.hpp | 287 -- .../execution/receiver_invocation_error.hpp | 50 - boost/asio/execution/relationship.hpp | 443 +-- boost/asio/execution/schedule.hpp | 296 -- boost/asio/execution/scheduler.hpp | 93 - boost/asio/execution/sender.hpp | 318 -- boost/asio/execution/set_done.hpp | 259 -- boost/asio/execution/set_error.hpp | 259 -- boost/asio/execution/set_value.hpp | 492 --- boost/asio/execution/start.hpp | 256 -- boost/asio/execution/submit.hpp | 459 --- boost/asio/execution_context.hpp | 24 - boost/asio/executor.hpp | 100 +- boost/asio/executor_work_guard.hpp | 115 +- boost/asio/generic/basic_endpoint.hpp | 6 +- boost/asio/generic/datagram_protocol.hpp | 6 +- boost/asio/generic/raw_protocol.hpp | 6 +- boost/asio/generic/seq_packet_protocol.hpp | 6 +- boost/asio/generic/stream_protocol.hpp | 6 +- boost/asio/handler_alloc_hook.hpp | 106 - boost/asio/handler_invoke_hook.hpp | 113 - boost/asio/high_resolution_timer.hpp | 5 - boost/asio/impl/any_completion_executor.ipp | 22 +- boost/asio/impl/any_io_executor.ipp | 25 +- boost/asio/impl/append.hpp | 135 +- boost/asio/impl/as_tuple.hpp | 197 +- boost/asio/impl/awaitable.hpp | 36 +- boost/asio/impl/buffered_read_stream.hpp | 231 +- boost/asio/impl/buffered_write_stream.hpp | 231 +- boost/asio/impl/co_spawn.hpp | 69 +- boost/asio/impl/connect.hpp | 316 +- boost/asio/impl/consign.hpp | 127 +- boost/asio/impl/deferred.hpp | 71 +- boost/asio/impl/detached.hpp | 61 +- boost/asio/impl/error.ipp | 6 +- boost/asio/impl/execution_context.hpp | 36 +- boost/asio/impl/executor.hpp | 101 +- boost/asio/impl/executor.ipp | 4 +- boost/asio/impl/handler_alloc_hook.ipp | 64 - boost/asio/impl/io_context.hpp | 93 +- boost/asio/impl/multiple_exceptions.ipp | 10 +- boost/asio/impl/prepend.hpp | 132 +- boost/asio/impl/read.hpp | 633 ++-- boost/asio/impl/read_at.hpp | 264 +- boost/asio/impl/read_until.hpp | 1424 +++----- boost/asio/impl/redirect_error.hpp | 454 +-- boost/asio/impl/system_context.hpp | 2 +- boost/asio/impl/system_context.ipp | 2 +- boost/asio/impl/system_executor.hpp | 42 +- boost/asio/impl/thread_pool.hpp | 139 +- boost/asio/impl/use_awaitable.hpp | 2 +- boost/asio/impl/use_future.hpp | 498 +-- boost/asio/impl/write.hpp | 638 ++-- boost/asio/impl/write_at.hpp | 250 +- boost/asio/io_context.hpp | 205 +- boost/asio/io_context_strand.hpp | 45 +- boost/asio/ip/address.hpp | 59 +- boost/asio/ip/address_v4.hpp | 57 +- boost/asio/ip/address_v4_iterator.hpp | 30 +- boost/asio/ip/address_v4_range.hpp | 36 +- boost/asio/ip/address_v6.hpp | 73 +- boost/asio/ip/address_v6_iterator.hpp | 29 +- boost/asio/ip/address_v6_range.hpp | 33 +- boost/asio/ip/bad_address_cast.hpp | 6 +- boost/asio/ip/basic_endpoint.hpp | 59 +- boost/asio/ip/basic_resolver.hpp | 120 +- boost/asio/ip/basic_resolver_iterator.hpp | 10 +- boost/asio/ip/basic_resolver_results.hpp | 20 +- boost/asio/ip/detail/endpoint.hpp | 32 +- boost/asio/ip/detail/impl/endpoint.ipp | 22 +- boost/asio/ip/icmp.hpp | 12 +- boost/asio/ip/impl/address.ipp | 38 +- boost/asio/ip/impl/address_v4.ipp | 20 +- boost/asio/ip/impl/address_v6.ipp | 54 +- boost/asio/ip/impl/network_v4.ipp | 4 +- boost/asio/ip/impl/network_v6.ipp | 4 +- boost/asio/ip/network_v4.hpp | 34 +- boost/asio/ip/network_v6.hpp | 30 +- boost/asio/ip/tcp.hpp | 12 +- boost/asio/ip/udp.hpp | 12 +- boost/asio/is_applicable_property.hpp | 10 +- boost/asio/is_contiguous_iterator.hpp | 2 +- boost/asio/local/basic_endpoint.hpp | 6 +- boost/asio/local/datagram_protocol.hpp | 6 +- boost/asio/local/seq_packet_protocol.hpp | 6 +- boost/asio/local/stream_protocol.hpp | 6 +- boost/asio/multiple_exceptions.hpp | 10 +- boost/asio/packaged_task.hpp | 60 - boost/asio/placeholders.hpp | 128 +- boost/asio/posix/basic_descriptor.hpp | 48 +- boost/asio/posix/basic_stream_descriptor.hpp | 56 +- boost/asio/post.hpp | 45 +- boost/asio/prefer.hpp | 503 +-- boost/asio/prepend.hpp | 32 +- boost/asio/query.hpp | 125 +- boost/asio/read.hpp | 302 +- boost/asio/read_at.hpp | 85 +- boost/asio/read_until.hpp | 552 ++- boost/asio/recycling_allocator.hpp | 28 +- boost/asio/redirect_error.hpp | 14 +- boost/asio/registered_buffer.hpp | 80 +- boost/asio/require.hpp | 350 +- boost/asio/require_concept.hpp | 147 +- boost/asio/signal_set_base.hpp | 29 +- boost/asio/steady_timer.hpp | 5 - boost/asio/strand.hpp | 207 +- boost/asio/system_context.hpp | 4 +- boost/asio/system_executor.hpp | 122 +- boost/asio/system_timer.hpp | 5 - boost/asio/this_coro.hpp | 81 +- boost/asio/thread_pool.hpp | 362 +- boost/asio/traits/bulk_execute_free.hpp | 116 - boost/asio/traits/bulk_execute_member.hpp | 116 - boost/asio/traits/connect_free.hpp | 114 - boost/asio/traits/connect_member.hpp | 114 - boost/asio/traits/equality_comparable.hpp | 30 +- boost/asio/traits/execute_free.hpp | 110 - boost/asio/traits/execute_member.hpp | 34 +- boost/asio/traits/prefer_free.hpp | 34 +- boost/asio/traits/prefer_member.hpp | 34 +- boost/asio/traits/query_free.hpp | 34 +- boost/asio/traits/query_member.hpp | 34 +- .../traits/query_static_constexpr_member.hpp | 35 +- boost/asio/traits/require_concept_free.hpp | 34 +- boost/asio/traits/require_concept_member.hpp | 34 +- boost/asio/traits/require_free.hpp | 34 +- boost/asio/traits/require_member.hpp | 34 +- boost/asio/traits/schedule_free.hpp | 110 - boost/asio/traits/schedule_member.hpp | 110 - boost/asio/traits/set_done_free.hpp | 110 - boost/asio/traits/set_done_member.hpp | 110 - boost/asio/traits/set_error_free.hpp | 114 - boost/asio/traits/set_error_member.hpp | 114 - boost/asio/traits/set_value_free.hpp | 236 -- boost/asio/traits/set_value_member.hpp | 236 -- boost/asio/traits/start_free.hpp | 110 - boost/asio/traits/start_member.hpp | 110 - boost/asio/traits/static_query.hpp | 44 +- boost/asio/traits/static_require.hpp | 50 +- boost/asio/traits/static_require_concept.hpp | 50 +- boost/asio/traits/submit_free.hpp | 114 - boost/asio/traits/submit_member.hpp | 114 - boost/asio/use_awaitable.hpp | 34 +- boost/asio/use_future.hpp | 18 +- boost/asio/uses_executor.hpp | 6 +- boost/asio/version.hpp | 2 +- boost/asio/windows/basic_object_handle.hpp | 46 +- .../asio/windows/basic_overlapped_handle.hpp | 29 +- .../windows/basic_random_access_handle.hpp | 56 +- boost/asio/windows/basic_stream_handle.hpp | 54 +- boost/asio/windows/overlapped_ptr.hpp | 32 +- boost/asio/write.hpp | 266 +- boost/asio/write_at.hpp | 82 +- boost/assert/source_location.hpp | 2 - boost/atomic/atomic_ref.hpp | 5 +- boost/atomic/detail/atomic_ref_impl.hpp | 2 +- .../detail/core_operations_emulated.hpp | 25 +- boost/atomic/detail/extra_fp_ops_emulated.hpp | 15 +- boost/atomic/detail/extra_ops_emulated.hpp | 53 +- boost/atomic/detail/float_sizes.hpp | 157 +- boost/atomic/detail/fp_ops_emulated.hpp | 5 +- boost/atomic/detail/wait_on_address.hpp | 3 +- boost/atomic/detail/wait_ops_emulated.hpp | 7 +- boost/bind/arg.hpp | 69 - boost/bind/detail/requires_cxx11.hpp | 22 - boost/bind/mem_fn.hpp | 404 --- boost/bind/mem_fn_cc.hpp | 103 - boost/bind/mem_fn_template.hpp | 1047 ------ boost/bind/mem_fn_vw.hpp | 130 - boost/blank.hpp | 106 - boost/blank_fwd.hpp | 22 - boost/chrono/chrono.hpp | 15 - boost/chrono/clock_string.hpp | 25 - boost/chrono/config.hpp | 218 -- boost/chrono/detail/inlined/chrono.hpp | 46 - boost/chrono/detail/inlined/mac/chrono.hpp | 242 -- .../detail/inlined/mac/process_cpu_clocks.hpp | 356 -- .../detail/inlined/mac/thread_clock.hpp | 92 - boost/chrono/detail/inlined/posix/chrono.hpp | 141 - .../inlined/posix/process_cpu_clocks.hpp | 354 -- .../detail/inlined/posix/thread_clock.hpp | 92 - .../detail/inlined/process_cpu_clocks.hpp | 46 - boost/chrono/detail/inlined/thread_clock.hpp | 46 - boost/chrono/detail/inlined/win/chrono.hpp | 151 - .../detail/inlined/win/process_cpu_clocks.hpp | 281 -- .../detail/inlined/win/thread_clock.hpp | 103 - .../chrono/detail/is_evenly_divisible_by.hpp | 31 - boost/chrono/detail/requires_cxx11.hpp | 23 - boost/chrono/detail/static_assert.hpp | 30 - boost/chrono/detail/system.hpp | 20 - boost/chrono/duration.hpp | 801 ----- boost/chrono/process_cpu_clocks.hpp | 525 --- boost/chrono/system_clocks.hpp | 233 -- boost/chrono/thread_clock.hpp | 75 - boost/chrono/time_point.hpp | 379 -- boost/circular_buffer.hpp | 65 - boost/circular_buffer/base.hpp | 3134 ---------------- boost/circular_buffer/debug.hpp | 248 -- boost/circular_buffer/details.hpp | 491 --- boost/circular_buffer/space_optimized.hpp | 1713 --------- boost/circular_buffer_fwd.hpp | 43 - boost/compressed_pair.hpp | 20 - boost/config/assert_cxx03.hpp | 2 +- boost/config/assert_cxx11.hpp | 5 +- boost/config/assert_cxx14.hpp | 2 +- boost/config/assert_cxx17.hpp | 2 +- boost/config/assert_cxx20.hpp | 2 +- boost/config/assert_cxx23.hpp | 41 + boost/config/compiler/clang_version.hpp | 10 +- boost/config/compiler/visualc.hpp | 4 + boost/config/detail/cxx_composite.hpp | 16 +- boost/config/detail/suffix.hpp | 40 + boost/container_hash/detail/hash_mix.hpp | 113 - boost/container_hash/detail/hash_range.hpp | 410 --- .../container_hash/detail/hash_tuple_like.hpp | 156 - boost/container_hash/detail/mulx.hpp | 79 - .../container_hash/detail/requires_cxx11.hpp | 22 - boost/container_hash/hash.hpp | 677 ---- boost/container_hash/is_contiguous_range.hpp | 92 - boost/container_hash/is_described_class.hpp | 38 - boost/container_hash/is_range.hpp | 74 - boost/container_hash/is_tuple_like.hpp | 42 - boost/container_hash/is_unordered_range.hpp | 39 - boost/core/alloc_construct.hpp | 95 - boost/core/allocator_access.hpp | 820 ----- boost/core/allocator_traits.hpp | 112 - boost/core/default_allocator.hpp | 158 - boost/core/detail/is_same.hpp | 39 - boost/core/detail/sp_thread_pause.hpp | 2 +- boost/core/detail/string_view.hpp | 1272 ------- boost/core/empty_value.hpp | 155 - boost/core/explicit_operator_bool.hpp | 163 - boost/core/first_scalar.hpp | 45 - boost/core/invoke_swap.hpp | 93 + boost/core/no_exceptions_support.hpp | 56 - boost/core/noinit_adaptor.hpp | 90 - boost/core/nvp.hpp | 57 - boost/core/pointer_traits.hpp | 285 -- boost/core/ref.hpp | 345 -- boost/core/snprintf.hpp | 173 - boost/core/swap.hpp | 89 - boost/core/uncaught_exceptions.hpp | 155 - boost/crc.hpp | 16 +- boost/cregex.hpp | 43 - boost/describe/bases.hpp | 50 - boost/describe/detail/config.hpp | 40 - boost/describe/detail/cx_streq.hpp | 30 - boost/describe/detail/void_t.hpp | 32 - boost/describe/members.hpp | 161 - boost/describe/modifiers.hpp | 33 - boost/detail/atomic_count.hpp | 21 - boost/detail/compressed_pair.hpp | 456 --- boost/detail/reference_content.hpp | 120 - boost/detail/templated_streams.hpp | 74 - boost/filesystem.hpp | 3 - boost/filesystem/detail/path_traits.hpp | 58 +- boost/filesystem/directory.hpp | 8 + boost/filesystem/fstream.hpp | 269 -- boost/filesystem/path.hpp | 3 +- boost/filesystem/string_file.hpp | 70 - boost/function.hpp | 76 - boost/function/detail/epilogue.hpp | 39 - boost/function/detail/function_iterate.hpp | 16 - boost/function/detail/gen_maybe_include.pl | 39 - boost/function/detail/maybe_include.hpp | 369 -- boost/function/detail/prologue.hpp | 27 - boost/function/detail/requires_cxx11.hpp | 22 - boost/function/function0.hpp | 12 - boost/function/function1.hpp | 12 - boost/function/function10.hpp | 12 - boost/function/function2.hpp | 12 - boost/function/function3.hpp | 12 - boost/function/function4.hpp | 12 - boost/function/function5.hpp | 12 - boost/function/function6.hpp | 12 - boost/function/function7.hpp | 12 - boost/function/function8.hpp | 12 - boost/function/function9.hpp | 12 - boost/function/function_base.hpp | 883 ----- boost/function/function_fwd.hpp | 69 - boost/function/function_template.hpp | 1227 ------- boost/function_equal.hpp | 28 - boost/get_pointer.hpp | 76 - boost/icl/concept/interval.hpp | 42 +- boost/icl/concept/interval_associator.hpp | 2 +- boost/icl/detail/element_iterator.hpp | 1 - .../{ratio => icl}/detail/requires_cxx11.hpp | 8 +- boost/icl/impl_config.hpp | 1 + boost/icl/iterator.hpp | 1 - boost/icl/separate_interval_set.hpp | 217 ++ boost/icl/split_interval_map.hpp | 246 ++ boost/icl/split_interval_set.hpp | 237 ++ boost/integer/common_factor_ct.hpp | 102 - boost/integer/common_factor_rt.hpp | 580 --- boost/io/ios_state.hpp | 4 +- boost/iostreams/categories.hpp | 175 - boost/iostreams/char_traits.hpp | 73 - boost/iostreams/checked_operations.hpp | 158 - boost/iostreams/close.hpp | 253 -- boost/iostreams/concepts.hpp | 129 - boost/iostreams/constants.hpp | 42 - .../detail/adapter/concept_adapter.hpp | 287 -- .../iostreams/detail/adapter/mode_adapter.hpp | 117 - .../detail/adapter/non_blocking_adapter.hpp | 62 - .../adapter/output_iterator_adapter.hpp | 41 - .../detail/adapter/range_adapter.hpp | 187 - boost/iostreams/detail/bool_trait_def.hpp | 49 - .../broken_overload_resolution/forward.hpp | 31 - .../broken_overload_resolution/stream.hpp | 184 - .../stream_buffer.hpp | 189 - boost/iostreams/detail/buffer.hpp | 229 -- boost/iostreams/detail/call_traits.hpp | 32 - boost/iostreams/detail/char_traits.hpp | 63 - boost/iostreams/detail/config/auto_link.hpp | 49 - boost/iostreams/detail/config/bzip2.hpp | 50 - boost/iostreams/detail/config/codecvt.hpp | 81 - .../detail/config/disable_warnings.hpp | 30 - boost/iostreams/detail/config/dyn_link.hpp | 46 - .../detail/config/enable_warnings.hpp | 18 - boost/iostreams/detail/config/fpos.hpp | 45 - boost/iostreams/detail/config/gcc.hpp | 27 - boost/iostreams/detail/config/limits.hpp | 19 - .../detail/config/overload_resolution.hpp | 30 - boost/iostreams/detail/config/rtl.hpp | 72 - .../detail/config/unreachable_return.hpp | 24 - .../iostreams/detail/config/wide_streams.hpp | 54 - .../iostreams/detail/config/windows_posix.hpp | 25 - boost/iostreams/detail/config/zlib.hpp | 50 - boost/iostreams/detail/default_arg.hpp | 21 - boost/iostreams/detail/dispatch.hpp | 41 - boost/iostreams/detail/double_object.hpp | 114 - boost/iostreams/detail/enable_if_stream.hpp | 33 - boost/iostreams/detail/error.hpp | 45 - boost/iostreams/detail/execute.hpp | 135 - boost/iostreams/detail/file_handle.hpp | 32 - boost/iostreams/detail/forward.hpp | 113 - boost/iostreams/detail/functional.hpp | 189 - boost/iostreams/detail/ios.hpp | 65 - boost/iostreams/detail/iostream.hpp | 34 - boost/iostreams/detail/is_dereferenceable.hpp | 80 - boost/iostreams/detail/is_iterator_range.hpp | 34 - boost/iostreams/detail/optional.hpp | 114 - boost/iostreams/detail/path.hpp | 214 -- boost/iostreams/detail/push.hpp | 153 - boost/iostreams/detail/push_params.hpp | 21 - boost/iostreams/detail/resolve.hpp | 230 -- boost/iostreams/detail/select.hpp | 86 - boost/iostreams/detail/select_by_size.hpp | 161 - boost/iostreams/detail/streambuf.hpp | 34 - .../detail/streambuf/direct_streambuf.hpp | 311 -- .../detail/streambuf/indirect_streambuf.hpp | 454 --- .../detail/streambuf/linked_streambuf.hpp | 114 - boost/iostreams/detail/system_failure.hpp | 84 - boost/iostreams/detail/template_params.hpp | 26 - boost/iostreams/detail/wrap_unwrap.hpp | 98 - boost/iostreams/device/array.hpp | 133 - boost/iostreams/device/back_inserter.hpp | 41 - boost/iostreams/device/file_descriptor.hpp | 325 -- boost/iostreams/device/mapped_file.hpp | 609 ---- boost/iostreams/device/null.hpp | 66 - boost/iostreams/filter/bzip2.hpp | 431 --- boost/iostreams/filter/gzip.hpp | 757 ---- boost/iostreams/filter/lzma.hpp | 376 -- boost/iostreams/filter/symmetric.hpp | 311 -- boost/iostreams/filter/zlib.hpp | 432 --- boost/iostreams/filter/zstd.hpp | 363 -- boost/iostreams/flush.hpp | 125 - boost/iostreams/get.hpp | 17 - boost/iostreams/imbue.hpp | 82 - boost/iostreams/input_sequence.hpp | 72 - boost/iostreams/operations.hpp | 26 - boost/iostreams/operations_fwd.hpp | 41 - boost/iostreams/optimal_buffer_size.hpp | 87 - boost/iostreams/output_sequence.hpp | 72 - boost/iostreams/pipeline.hpp | 114 - boost/iostreams/positioning.hpp | 117 - boost/iostreams/put.hpp | 17 - boost/iostreams/putback.hpp | 17 - boost/iostreams/read.hpp | 241 -- boost/iostreams/seek.hpp | 180 - boost/iostreams/stream.hpp | 171 - boost/iostreams/stream_buffer.hpp | 116 - boost/iostreams/traits.hpp | 363 -- boost/iostreams/traits_fwd.hpp | 111 - boost/iostreams/write.hpp | 165 - boost/is_placeholder.hpp | 31 - boost/iterator/filter_iterator.hpp | 146 - boost/iterator/transform_iterator.hpp | 179 - boost/locale/config.hpp | 12 + boost/locale/util/string.hpp | 2 +- boost/make_shared.hpp | 16 - boost/mem_fn.hpp | 24 - boost/mp11.hpp | 22 - boost/mp11/algorithm.hpp | 1327 ------- boost/mp11/bind.hpp | 111 - boost/mp11/detail/config.hpp | 149 - boost/mp11/detail/mp_append.hpp | 321 -- boost/mp11/detail/mp_copy_if.hpp | 48 - boost/mp11/detail/mp_count.hpp | 147 - boost/mp11/detail/mp_defer.hpp | 119 - boost/mp11/detail/mp_fold.hpp | 164 - boost/mp11/detail/mp_front.hpp | 50 - boost/mp11/detail/mp_is_list.hpp | 39 - boost/mp11/detail/mp_is_value_list.hpp | 41 - boost/mp11/detail/mp_list.hpp | 24 - boost/mp11/detail/mp_list_v.hpp | 27 - boost/mp11/detail/mp_map_find.hpp | 87 - boost/mp11/detail/mp_min_element.hpp | 51 - boost/mp11/detail/mp_plus.hpp | 84 - boost/mp11/detail/mp_remove_if.hpp | 48 - boost/mp11/detail/mp_rename.hpp | 54 - boost/mp11/detail/mp_value.hpp | 25 - boost/mp11/detail/mp_void.hpp | 32 - boost/mp11/detail/mp_with_index.hpp | 385 -- boost/mp11/function.hpp | 222 -- boost/mp11/integer_sequence.hpp | 112 - boost/mp11/integral.hpp | 42 - boost/mp11/list.hpp | 472 --- boost/mp11/map.hpp | 119 - boost/mp11/set.hpp | 188 - boost/mp11/tuple.hpp | 183 - boost/mp11/utility.hpp | 169 - boost/mp11/version.hpp | 16 - boost/mpl/O1_size.hpp | 40 - boost/mpl/O1_size_fwd.hpp | 24 - boost/mpl/advance.hpp | 76 - boost/mpl/advance_fwd.hpp | 28 - boost/mpl/aux_/O1_size_impl.hpp | 87 - boost/mpl/aux_/advance_backward.hpp | 128 - boost/mpl/aux_/advance_forward.hpp | 127 - boost/mpl/aux_/begin_end_impl.hpp | 101 - boost/mpl/aux_/clear_impl.hpp | 35 - boost/mpl/aux_/config/dependent_nttp.hpp | 35 - boost/mpl/aux_/empty_impl.hpp | 43 - boost/mpl/aux_/find_if_pred.hpp | 31 - boost/mpl/aux_/fold_impl.hpp | 43 - boost/mpl/aux_/fold_impl_body.hpp | 365 -- boost/mpl/aux_/front_impl.hpp | 41 - boost/mpl/aux_/has_begin.hpp | 23 - boost/mpl/aux_/has_size.hpp | 23 - boost/mpl/aux_/insert_impl.hpp | 68 - boost/mpl/aux_/insert_range_impl.hpp | 80 - boost/mpl/aux_/inserter_algorithm.hpp | 159 - boost/mpl/aux_/iter_apply.hpp | 47 - boost/mpl/aux_/iter_fold_if_impl.hpp | 210 -- boost/mpl/aux_/iter_fold_impl.hpp | 42 - boost/mpl/aux_/iter_push_front.hpp | 36 - boost/mpl/aux_/joint_iter.hpp | 120 - boost/mpl/aux_/lambda_spec.hpp | 49 - boost/mpl/aux_/msvc_type.hpp | 62 - boost/mpl/aux_/push_back_impl.hpp | 70 - boost/mpl/aux_/push_front_impl.hpp | 71 - boost/mpl/aux_/reverse_fold_impl.hpp | 44 - boost/mpl/aux_/reverse_fold_impl_body.hpp | 412 --- boost/mpl/aux_/sequence_wrapper.hpp | 292 -- boost/mpl/aux_/size_impl.hpp | 52 - boost/mpl/aux_/traits_lambda_spec.hpp | 63 - boost/mpl/back_inserter.hpp | 34 - boost/mpl/begin_end.hpp | 57 - boost/mpl/begin_end_fwd.hpp | 27 - boost/mpl/clear.hpp | 39 - boost/mpl/clear_fwd.hpp | 24 - boost/mpl/comparison.hpp | 24 - boost/mpl/deref.hpp | 41 - boost/mpl/distance.hpp | 78 - boost/mpl/distance_fwd.hpp | 28 - boost/mpl/empty.hpp | 39 - boost/mpl/empty_fwd.hpp | 24 - boost/mpl/equal.hpp | 112 - boost/mpl/find_if.hpp | 50 - boost/mpl/fold.hpp | 48 - boost/mpl/front.hpp | 39 - boost/mpl/front_fwd.hpp | 24 - boost/mpl/front_inserter.hpp | 33 - boost/mpl/greater.hpp | 21 - boost/mpl/greater_equal.hpp | 21 - boost/mpl/insert.hpp | 41 - boost/mpl/insert_fwd.hpp | 24 - boost/mpl/insert_range.hpp | 41 - boost/mpl/insert_range_fwd.hpp | 24 - boost/mpl/inserter.hpp | 32 - boost/mpl/is_sequence.hpp | 112 - boost/mpl/iter_fold.hpp | 49 - boost/mpl/iter_fold_if.hpp | 117 - boost/mpl/iterator_category.hpp | 35 - boost/mpl/iterator_range.hpp | 42 - boost/mpl/iterator_tags.hpp | 27 - boost/mpl/joint_view.hpp | 65 - boost/mpl/less_equal.hpp | 21 - boost/mpl/limits/list.hpp | 21 - boost/mpl/limits/unrolling.hpp | 21 - boost/mpl/list.hpp | 57 - boost/mpl/list/aux_/O1_size.hpp | 33 - boost/mpl/list/aux_/begin_end.hpp | 44 - boost/mpl/list/aux_/clear.hpp | 34 - boost/mpl/list/aux_/empty.hpp | 34 - boost/mpl/list/aux_/front.hpp | 33 - boost/mpl/list/aux_/include_preprocessed.hpp | 35 - boost/mpl/list/aux_/item.hpp | 55 - boost/mpl/list/aux_/iterator.hpp | 76 - boost/mpl/list/aux_/numbered.hpp | 68 - boost/mpl/list/aux_/numbered_c.hpp | 71 - boost/mpl/list/aux_/pop_front.hpp | 34 - .../list/aux_/preprocessed/plain/list10.hpp | 149 - .../list/aux_/preprocessed/plain/list10_c.hpp | 164 - .../list/aux_/preprocessed/plain/list20.hpp | 169 - .../list/aux_/preprocessed/plain/list20_c.hpp | 173 - .../list/aux_/preprocessed/plain/list30.hpp | 189 - .../list/aux_/preprocessed/plain/list30_c.hpp | 183 - .../list/aux_/preprocessed/plain/list40.hpp | 209 -- .../list/aux_/preprocessed/plain/list40_c.hpp | 193 - .../list/aux_/preprocessed/plain/list50.hpp | 229 -- .../list/aux_/preprocessed/plain/list50_c.hpp | 203 -- boost/mpl/list/aux_/push_back.hpp | 36 - boost/mpl/list/aux_/push_front.hpp | 39 - boost/mpl/list/aux_/size.hpp | 33 - boost/mpl/list/aux_/tag.hpp | 24 - boost/mpl/list/list0.hpp | 42 - boost/mpl/list/list0_c.hpp | 31 - boost/mpl/list/list10.hpp | 43 - boost/mpl/list/list10_c.hpp | 43 - boost/mpl/list/list20.hpp | 43 - boost/mpl/list/list20_c.hpp | 43 - boost/mpl/list/list30.hpp | 43 - boost/mpl/list/list30_c.hpp | 43 - boost/mpl/list/list40.hpp | 43 - boost/mpl/list/list40_c.hpp | 43 - boost/mpl/list/list50.hpp | 43 - boost/mpl/list/list50_c.hpp | 43 - boost/mpl/long.hpp | 22 - boost/mpl/long_fwd.hpp | 27 - boost/mpl/max_element.hpp | 72 - boost/mpl/min_max.hpp | 46 - boost/mpl/negate.hpp | 81 - boost/mpl/not_equal_to.hpp | 21 - boost/mpl/pair.hpp | 70 - boost/mpl/pair_view.hpp | 169 - boost/mpl/plus.hpp | 21 - boost/mpl/pop_front_fwd.hpp | 24 - boost/mpl/print.hpp | 78 - boost/mpl/prior.hpp | 19 - boost/mpl/push_back.hpp | 53 - boost/mpl/push_back_fwd.hpp | 24 - boost/mpl/push_front.hpp | 52 - boost/mpl/push_front_fwd.hpp | 24 - boost/mpl/reverse_fold.hpp | 50 - boost/mpl/same_as.hpp | 55 - boost/mpl/sequence_tag.hpp | 124 - boost/mpl/sequence_tag_fwd.hpp | 26 - boost/mpl/size.hpp | 42 - boost/mpl/size_fwd.hpp | 24 - boost/mpl/size_t.hpp | 25 - boost/mpl/size_t_fwd.hpp | 28 - boost/mpl/sizeof.hpp | 36 - boost/mpl/transform.hpp | 145 - boost/noncopyable.hpp | 17 - boost/none.hpp | 59 - boost/none_t.hpp | 41 - boost/optional.hpp | 18 - boost/optional/bad_optional_access.hpp | 41 - .../detail/old_optional_implementation.hpp | 1058 ------ .../detail/optional_aligned_storage.hpp | 71 - boost/optional/detail/optional_config.hpp | 135 - .../detail/optional_factory_support.hpp | 36 - boost/optional/detail/optional_hash.hpp | 49 - .../detail/optional_reference_spec.hpp | 279 -- boost/optional/detail/optional_relops.hpp | 196 - boost/optional/detail/optional_swap.hpp | 117 - .../optional_trivially_copyable_base.hpp | 510 --- boost/optional/optional.hpp | 1666 --------- boost/optional/optional_fwd.hpp | 41 - boost/pointee.hpp | 76 - boost/predef.h | 24 - boost/predef/compiler.h | 44 - boost/predef/compiler/borland.h | 64 - boost/predef/compiler/clang.h | 57 - boost/predef/compiler/comeau.h | 62 - boost/predef/compiler/compaq.h | 67 - boost/predef/compiler/diab.h | 57 - boost/predef/compiler/digitalmars.h | 57 - boost/predef/compiler/dignus.h | 57 - boost/predef/compiler/edg.h | 57 - boost/predef/compiler/ekopath.h | 58 - boost/predef/compiler/gcc.h | 69 - boost/predef/compiler/gcc_xml.h | 54 - boost/predef/compiler/greenhills.h | 67 - boost/predef/compiler/hp_acc.h | 62 - boost/predef/compiler/iar.h | 57 - boost/predef/compiler/ibm.h | 73 - boost/predef/compiler/intel.h | 80 - boost/predef/compiler/kai.h | 57 - boost/predef/compiler/llvm.h | 58 - boost/predef/compiler/metaware.h | 54 - boost/predef/compiler/metrowerks.h | 78 - boost/predef/compiler/microtec.h | 54 - boost/predef/compiler/mpw.h | 64 - boost/predef/compiler/nvcc.h | 74 - boost/predef/compiler/palm.h | 57 - boost/predef/compiler/pgi.h | 61 - boost/predef/compiler/sgi_mipspro.h | 67 - boost/predef/compiler/sunpro.h | 77 - boost/predef/compiler/tendra.h | 54 - boost/predef/compiler/visualc.h | 106 - boost/predef/compiler/watcom.h | 57 - boost/predef/detail/_exception.h | 15 - boost/predef/detail/comp_detected.h | 10 - boost/predef/hardware.h | 16 - boost/predef/hardware/simd.h | 168 - boost/predef/hardware/simd/arm.h | 61 - boost/predef/hardware/simd/arm/versions.h | 38 - boost/predef/hardware/simd/ppc.h | 71 - boost/predef/hardware/simd/ppc/versions.h | 57 - boost/predef/hardware/simd/x86_amd.h | 89 - boost/predef/hardware/simd/x86_amd/versions.h | 56 - boost/predef/language.h | 18 - boost/predef/language/cuda.h | 53 - boost/predef/language/objc.h | 43 - boost/predef/language/stdc.h | 54 - boost/predef/language/stdcpp.h | 128 - boost/predef/library.h | 16 - boost/predef/library/c.h | 21 - boost/predef/library/c/uc.h | 48 - boost/predef/library/c/vms.h | 48 - boost/predef/library/c/zos.h | 57 - boost/predef/library/std.h | 25 - boost/predef/library/std/_prefix.h | 23 - boost/predef/library/std/cxx.h | 47 - boost/predef/library/std/dinkumware.h | 53 - boost/predef/library/std/libcomo.h | 48 - boost/predef/library/std/modena.h | 46 - boost/predef/library/std/msl.h | 54 - boost/predef/library/std/roguewave.h | 57 - boost/predef/library/std/sgi.h | 52 - boost/predef/library/std/stdcpp3.h | 54 - boost/predef/library/std/stlport.h | 60 - boost/predef/library/std/vacpp.h | 45 - boost/predef/make.h | 4 + boost/predef/os.h | 32 - boost/predef/os/aix.h | 67 - boost/predef/os/amigaos.h | 47 - boost/predef/os/beos.h | 46 - boost/predef/os/haiku.h | 47 - boost/predef/os/hpux.h | 48 - boost/predef/os/irix.h | 47 - boost/predef/os/linux.h | 50 - boost/predef/os/os400.h | 46 - boost/predef/os/qnxnto.h | 60 - boost/predef/os/solaris.h | 47 - boost/predef/os/unix.h | 78 - boost/predef/os/vms.h | 53 - boost/predef/other.h | 17 - boost/predef/other/wordsize.h | 73 - boost/predef/other/workaround.h | 95 - boost/predef/version.h | 15 - boost/preprocessor/comparison/greater.hpp | 38 - boost/preprocessor/comparison/less.hpp | 46 - boost/preprocessor/enum.hpp | 17 - boost/preprocessor/enum_params.hpp | 17 - .../enum_params_with_a_default.hpp | 17 - .../enum_params_with_defaults.hpp | 17 - boost/preprocessor/facilities/intercept.hpp | 306 -- .../facilities/limits/intercept_1024.hpp | 530 --- .../facilities/limits/intercept_256.hpp | 273 -- .../facilities/limits/intercept_512.hpp | 274 -- boost/preprocessor/repeat_from_to.hpp | 17 - boost/preprocessor/repetition/enum.hpp | 66 - .../repetition/enum_params_with_a_default.hpp | 25 - .../repetition/enum_params_with_defaults.hpp | 24 - boost/process/detail/config.hpp | 24 +- boost/ratio/config.hpp | 101 - boost/ratio/detail/mpl/abs.hpp | 89 - boost/ratio/detail/mpl/gcd.hpp | 124 - boost/ratio/detail/mpl/lcm.hpp | 126 - boost/ratio/detail/mpl/sign.hpp | 89 - boost/ratio/detail/overflow_helpers.hpp | 367 -- boost/ratio/mpl/rational_c_tag.hpp | 25 - boost/ratio/ratio.hpp | 293 -- boost/ratio/ratio_fwd.hpp | 109 - boost/rational.hpp | 1046 ------ boost/ref.hpp | 17 - boost/regex.hpp | 41 - boost/regex/config.hpp | 480 --- boost/regex/config/borland.hpp | 72 - boost/regex/config/cwchar.hpp | 207 -- boost/regex/pattern_except.hpp | 32 - boost/regex/pending/static_mutex.hpp | 182 - boost/regex/regex_traits.hpp | 39 - boost/regex/user.hpp | 95 - boost/regex/v4/basic_regex.hpp | 797 ----- boost/regex/v4/basic_regex_creator.hpp | 1598 --------- boost/regex/v4/basic_regex_parser.hpp | 3174 ----------------- boost/regex/v4/c_regex_traits.hpp | 511 --- boost/regex/v4/char_regex_traits.hpp | 81 - boost/regex/v4/cpp_regex_traits.hpp | 1237 ------- boost/regex/v4/cregex.hpp | 213 -- boost/regex/v4/error_type.hpp | 59 - boost/regex/v4/indexed_bit_flag.hpp | 54 - boost/regex/v4/iterator_category.hpp | 91 - boost/regex/v4/iterator_traits.hpp | 135 - boost/regex/v4/match_flags.hpp | 161 - boost/regex/v4/match_results.hpp | 716 ---- boost/regex/v4/mem_block_cache.hpp | 183 - boost/regex/v4/object_cache.hpp | 171 - boost/regex/v4/pattern_except.hpp | 128 - boost/regex/v4/perl_matcher.hpp | 645 ---- boost/regex/v4/perl_matcher_common.hpp | 1030 ------ boost/regex/v4/perl_matcher_non_recursive.hpp | 1947 ---------- boost/regex/v4/perl_matcher_recursive.hpp | 1131 ------ boost/regex/v4/primary_transform.hpp | 146 - boost/regex/v4/protected_call.hpp | 83 - boost/regex/v4/regbase.hpp | 180 - boost/regex/v4/regex.hpp | 166 - boost/regex/v4/regex_format.hpp | 1158 ------ boost/regex/v4/regex_fwd.hpp | 73 - boost/regex/v4/regex_grep.hpp | 155 - boost/regex/v4/regex_iterator.hpp | 195 - boost/regex/v4/regex_match.hpp | 382 -- boost/regex/v4/regex_merge.hpp | 93 - boost/regex/v4/regex_raw_buffer.hpp | 241 -- boost/regex/v4/regex_replace.hpp | 99 - boost/regex/v4/regex_search.hpp | 217 -- boost/regex/v4/regex_split.hpp | 174 - boost/regex/v4/regex_token_iterator.hpp | 327 -- boost/regex/v4/regex_traits.hpp | 189 - boost/regex/v4/regex_traits_defaults.hpp | 997 ------ boost/regex/v4/regex_workaround.hpp | 237 -- boost/regex/v4/states.hpp | 321 -- boost/regex/v4/sub_match.hpp | 516 --- boost/regex/v4/syntax_type.hpp | 105 - boost/regex/v4/w32_regex_traits.hpp | 1229 ------- boost/regex/v5/basic_regex.hpp | 734 ---- boost/regex/v5/basic_regex_creator.hpp | 1576 -------- boost/regex/v5/basic_regex_parser.hpp | 3130 ---------------- boost/regex/v5/c_regex_traits.hpp | 474 --- boost/regex/v5/char_regex_traits.hpp | 59 - boost/regex/v5/cpp_regex_traits.hpp | 1040 ------ boost/regex/v5/cregex.hpp | 195 - boost/regex/v5/error_type.hpp | 59 - boost/regex/v5/iterator_category.hpp | 84 - boost/regex/v5/match_flags.hpp | 156 - boost/regex/v5/match_results.hpp | 667 ---- boost/regex/v5/mem_block_cache.hpp | 173 - boost/regex/v5/object_cache.hpp | 160 - boost/regex/v5/pattern_except.hpp | 106 - boost/regex/v5/perl_matcher.hpp | 576 --- boost/regex/v5/perl_matcher_common.hpp | 921 ----- boost/regex/v5/perl_matcher_non_recursive.hpp | 1874 ---------- boost/regex/v5/primary_transform.hpp | 120 - boost/regex/v5/regbase.hpp | 158 - boost/regex/v5/regex.hpp | 106 - boost/regex/v5/regex_format.hpp | 1124 ------ boost/regex/v5/regex_fwd.hpp | 73 - boost/regex/v5/regex_grep.hpp | 98 - boost/regex/v5/regex_iterator.hpp | 173 - boost/regex/v5/regex_match.hpp | 92 - boost/regex/v5/regex_merge.hpp | 71 - boost/regex/v5/regex_raw_buffer.hpp | 213 -- boost/regex/v5/regex_replace.hpp | 77 - boost/regex/v5/regex_search.hpp | 103 - boost/regex/v5/regex_split.hpp | 152 - boost/regex/v5/regex_token_iterator.hpp | 255 -- boost/regex/v5/regex_traits.hpp | 130 - boost/regex/v5/regex_traits_defaults.hpp | 996 ------ boost/regex/v5/regex_workaround.hpp | 159 - boost/regex/v5/states.hpp | 299 -- boost/regex/v5/sub_match.hpp | 382 -- boost/regex/v5/syntax_type.hpp | 105 - boost/regex/v5/w32_regex_traits.hpp | 1311 ------- boost/regex_fwd.hpp | 37 - boost/scoped_ptr.hpp | 15 - boost/serialization/access.hpp | 145 - .../archive_input_unordered_map.hpp | 85 - .../archive_input_unordered_set.hpp | 72 - boost/serialization/array.hpp | 48 - boost/serialization/array_optimization.hpp | 37 - boost/serialization/array_wrapper.hpp | 119 - boost/serialization/assume_abstract.hpp | 60 - boost/serialization/base_object.hpp | 100 - boost/serialization/binary_object.hpp | 79 - boost/serialization/bitset.hpp | 75 - boost/serialization/collection_size_type.hpp | 62 - boost/serialization/collection_traits.hpp | 78 - boost/serialization/collections_load_imp.hpp | 105 - boost/serialization/collections_save_imp.hpp | 75 - boost/serialization/config.hpp | 74 - boost/serialization/deque.hpp | 79 - .../detail/is_default_constructible.hpp | 54 - .../detail/stack_constructor.hpp | 66 - boost/serialization/export.hpp | 223 -- boost/serialization/extended_type_info.hpp | 116 - .../extended_type_info_no_rtti.hpp | 182 - .../extended_type_info_typeid.hpp | 167 - boost/serialization/factory.hpp | 102 - boost/serialization/force_include.hpp | 55 - .../serialization/is_bitwise_serializable.hpp | 46 - boost/serialization/item_version_type.hpp | 68 - boost/serialization/level.hpp | 116 - boost/serialization/level_enum.hpp | 55 - boost/serialization/library_version_type.hpp | 75 - boost/serialization/list.hpp | 85 - boost/serialization/map.hpp | 139 - boost/serialization/nvp.hpp | 133 - boost/serialization/optional.hpp | 102 - boost/serialization/priority_queue.hpp | 76 - boost/serialization/serialization.hpp | 137 - boost/serialization/set.hpp | 138 - boost/serialization/shared_ptr.hpp | 281 -- boost/serialization/shared_ptr_helper.hpp | 209 -- boost/serialization/singleton.hpp | 218 -- boost/serialization/smart_cast.hpp | 275 -- boost/serialization/split_free.hpp | 93 - boost/serialization/split_member.hpp | 86 - boost/serialization/state_saver.hpp | 96 - boost/serialization/static_warning.hpp | 103 - boost/serialization/string.hpp | 30 - boost/serialization/strong_typedef.hpp | 50 - boost/serialization/throw_exception.hpp | 44 - boost/serialization/tracking.hpp | 118 - boost/serialization/tracking_enum.hpp | 41 - boost/serialization/traits.hpp | 65 - .../type_info_implementation.hpp | 73 - boost/serialization/unique_ptr.hpp | 68 - .../unordered_collections_load_imp.hpp | 73 - .../unordered_collections_save_imp.hpp | 87 - boost/serialization/unordered_map.hpp | 158 - boost/serialization/unordered_set.hpp | 162 - boost/serialization/utility.hpp | 56 - boost/serialization/vector.hpp | 234 -- boost/serialization/version.hpp | 105 - boost/serialization/void_cast.hpp | 302 -- boost/serialization/void_cast_fwd.hpp | 37 - boost/serialization/weak_ptr.hpp | 99 - boost/serialization/wrapper.hpp | 60 - boost/smart_ptr/allocate_shared_array.hpp | 353 -- boost/smart_ptr/detail/requires_cxx11.hpp | 2 +- boost/smart_ptr/detail/sp_forward.hpp | 52 - boost/smart_ptr/make_shared.hpp | 22 - boost/smart_ptr/make_shared_array.hpp | 67 - boost/smart_ptr/make_shared_object.hpp | 802 ----- boost/smart_ptr/weak_ptr.hpp | 326 -- boost/spirit/home/classic/core/assert.hpp | 36 - .../home/classic/core/composite/actions.hpp | 137 - .../classic/core/composite/alternative.hpp | 147 - .../home/classic/core/composite/composite.hpp | 151 - .../classic/core/composite/difference.hpp | 150 - .../classic/core/composite/directives.hpp | 607 ---- .../classic/core/composite/exclusive_or.hpp | 142 - .../core/composite/impl/alternative.ipp | 90 - .../core/composite/impl/difference.ipp | 90 - .../core/composite/impl/directives.ipp | 210 -- .../core/composite/impl/exclusive_or.ipp | 90 - .../core/composite/impl/intersection.ipp | 90 - .../core/composite/impl/kleene_star.ipp | 34 - .../home/classic/core/composite/impl/list.ipp | 93 - .../classic/core/composite/impl/optional.ipp | 34 - .../classic/core/composite/impl/positive.ipp | 34 - .../classic/core/composite/impl/sequence.ipp | 90 - .../core/composite/impl/sequential_and.ipp | 90 - .../core/composite/impl/sequential_or.ipp | 90 - .../classic/core/composite/intersection.hpp | 142 - .../classic/core/composite/kleene_star.hpp | 109 - .../home/classic/core/composite/list.hpp | 73 - .../home/classic/core/composite/operators.hpp | 25 - .../home/classic/core/composite/optional.hpp | 94 - .../home/classic/core/composite/positive.hpp | 112 - .../home/classic/core/composite/sequence.hpp | 142 - .../classic/core/composite/sequential_and.hpp | 76 - .../classic/core/composite/sequential_or.hpp | 154 - boost/spirit/home/classic/core/config.hpp | 62 - boost/spirit/home/classic/core/impl/match.ipp | 113 - .../classic/core/impl/match_attr_traits.ipp | 102 - .../spirit/home/classic/core/impl/parser.ipp | 55 - boost/spirit/home/classic/core/match.hpp | 195 - boost/spirit/home/classic/core/nil.hpp | 25 - .../classic/core/non_terminal/impl/rule.ipp | 420 --- .../core/non_terminal/parser_context.hpp | 150 - .../classic/core/non_terminal/parser_id.hpp | 122 - .../home/classic/core/non_terminal/rule.hpp | 175 - boost/spirit/home/classic/core/parser.hpp | 223 -- .../classic/core/primitives/impl/numerics.ipp | 478 --- .../core/primitives/impl/primitives.ipp | 396 -- .../home/classic/core/primitives/numerics.hpp | 289 -- .../classic/core/primitives/numerics_fwd.hpp | 88 - .../classic/core/primitives/primitives.hpp | 666 ---- boost/spirit/home/classic/core/safe_bool.hpp | 64 - .../classic/core/scanner/impl/skipper.ipp | 181 - .../home/classic/core/scanner/scanner.hpp | 328 -- .../home/classic/core/scanner/scanner_fwd.hpp | 52 - .../home/classic/core/scanner/skipper.hpp | 197 - .../home/classic/core/scanner/skipper_fwd.hpp | 32 - boost/spirit/home/classic/debug.hpp | 154 - .../spirit/home/classic/debug/debug_node.hpp | 319 -- boost/spirit/home/classic/debug/minimal.hpp | 81 - boost/spirit/home/classic/meta/as_parser.hpp | 113 - boost/spirit/home/classic/namespace.hpp | 35 - boost/spirit/home/classic/utility/chset.hpp | 187 - .../home/classic/utility/chset_operators.hpp | 402 --- .../home/classic/utility/impl/chset.ipp | 322 -- .../utility/impl/chset/basic_chset.hpp | 107 - .../utility/impl/chset/basic_chset.ipp | 246 -- .../classic/utility/impl/chset/range_run.hpp | 127 - .../classic/utility/impl/chset/range_run.ipp | 218 -- .../classic/utility/impl/chset_operators.ipp | 592 --- boost/spirit/home/classic/version.hpp | 19 - boost/spirit/include/classic_actions.hpp | 12 - boost/spirit/include/classic_chset.hpp | 12 - boost/spirit/include/classic_numerics.hpp | 12 - boost/spirit/include/classic_operators.hpp | 12 - boost/spirit/include/classic_rule.hpp | 12 - boost/stacktrace.hpp | 19 - boost/stacktrace/detail/addr2line_impls.hpp | 226 -- boost/stacktrace/detail/collect_msvc.ipp | 33 - boost/stacktrace/detail/collect_noop.ipp | 25 - boost/stacktrace/detail/collect_unwind.ipp | 106 - boost/stacktrace/detail/frame_decl.hpp | 159 - boost/stacktrace/detail/frame_msvc.ipp | 377 -- boost/stacktrace/detail/frame_noop.ipp | 44 - boost/stacktrace/detail/frame_unwind.ipp | 114 - .../stacktrace/detail/libbacktrace_impls.hpp | 248 -- .../detail/location_from_symbol.hpp | 105 - boost/stacktrace/detail/pop_options.h | 12 - boost/stacktrace/detail/push_options.h | 31 - boost/stacktrace/detail/safe_dump_noop.ipp | 37 - boost/stacktrace/detail/safe_dump_posix.ipp | 59 - boost/stacktrace/detail/safe_dump_win.ipp | 66 - boost/stacktrace/detail/to_dec_array.hpp | 46 - boost/stacktrace/detail/to_hex_array.hpp | 54 - boost/stacktrace/detail/try_dec_convert.hpp | 29 - boost/stacktrace/detail/unwind_base_impls.hpp | 50 - boost/stacktrace/detail/void_ptr_cast.hpp | 46 - boost/stacktrace/frame.hpp | 85 - boost/stacktrace/safe_dump_to.hpp | 222 -- boost/stacktrace/stacktrace.hpp | 423 --- boost/stacktrace/stacktrace_fwd.hpp | 28 - boost/system/detail/mutex.hpp | 9 +- boost/system/detail/requires_cxx11.hpp | 2 +- boost/system/result.hpp | 655 ---- boost/type_index.hpp | 285 -- boost/type_index/ctti_type_index.hpp | 213 -- .../detail/compile_time_type_info.hpp | 339 -- .../type_index/detail/ctti_register_class.hpp | 40 - .../type_index/detail/stl_register_class.hpp | 40 - boost/type_index/stl_type_index.hpp | 278 -- boost/type_index/type_index_facade.hpp | 297 -- boost/type_traits/composite_traits.hpp | 29 - boost/type_traits/is_bounded_array.hpp | 42 - boost/type_traits/is_unbounded_array.hpp | 41 - boost/type_traits/same_traits.hpp | 15 - boost/url.hpp | 70 - boost/url/authority_view.hpp | 1441 -------- boost/url/decode_view.hpp | 697 ---- boost/url/detail/any_params_iter.hpp | 426 --- boost/url/detail/any_segments_iter.hpp | 327 -- boost/url/detail/config.hpp | 144 - boost/url/detail/decode.hpp | 44 - boost/url/detail/encode.hpp | 205 -- boost/url/detail/except.hpp | 48 - boost/url/detail/format_args.hpp | 340 -- boost/url/detail/impl/format_args.hpp | 416 --- boost/url/detail/move_chars.hpp | 90 - boost/url/detail/normalize.hpp | 179 - boost/url/detail/optional_string.hpp | 99 - boost/url/detail/over_allocator.hpp | 165 - boost/url/detail/params_iter_impl.hpp | 84 - boost/url/detail/parts_base.hpp | 53 - boost/url/detail/path.hpp | 140 - boost/url/detail/pattern.hpp | 60 - boost/url/detail/pct_format.hpp | 42 - boost/url/detail/print.hpp | 79 - boost/url/detail/replacement_field_rule.hpp | 76 - boost/url/detail/segments_iter_impl.hpp | 85 - boost/url/detail/string_view.hpp | 34 - boost/url/detail/url_impl.hpp | 193 - boost/url/detail/vformat.hpp | 48 - boost/url/encode.hpp | 196 - boost/url/encoding_opts.hpp | 81 - boost/url/error.hpp | 90 - boost/url/error_types.hpp | 293 -- boost/url/format.hpp | 416 --- boost/url/grammar.hpp | 40 - boost/url/grammar/all_chars.hpp | 88 - boost/url/grammar/alnum_chars.hpp | 93 - boost/url/grammar/alpha_chars.hpp | 95 - boost/url/grammar/charset.hpp | 217 -- boost/url/grammar/ci_string.hpp | 356 -- boost/url/grammar/dec_octet_rule.hpp | 76 - boost/url/grammar/delim_rule.hpp | 188 - boost/url/grammar/detail/charset.hpp | 189 - boost/url/grammar/detail/ci_string.hpp | 179 - boost/url/grammar/detail/recycled.hpp | 102 - boost/url/grammar/detail/tuple.hpp | 212 -- boost/url/grammar/digit_chars.hpp | 85 - boost/url/grammar/error.hpp | 130 - boost/url/grammar/hexdig_chars.hpp | 158 - boost/url/grammar/impl/error.hpp | 123 - boost/url/grammar/impl/not_empty_rule.hpp | 55 - boost/url/grammar/impl/optional_rule.hpp | 42 - boost/url/grammar/impl/parse.hpp | 67 - boost/url/grammar/impl/range_rule.hpp | 742 ---- boost/url/grammar/impl/recycled.hpp | 221 -- boost/url/grammar/impl/token_rule.hpp | 45 - boost/url/grammar/impl/tuple_rule.hpp | 285 -- boost/url/grammar/impl/unsigned_rule.hpp | 109 - boost/url/grammar/impl/variant_rule.hpp | 116 - boost/url/grammar/literal_rule.hpp | 88 - boost/url/grammar/lut_chars.hpp | 402 --- boost/url/grammar/not_empty_rule.hpp | 108 - boost/url/grammar/optional_rule.hpp | 112 - boost/url/grammar/parse.hpp | 144 - boost/url/grammar/range_rule.hpp | 602 ---- boost/url/grammar/recycled.hpp | 510 --- boost/url/grammar/string_token.hpp | 347 -- boost/url/grammar/string_view_base.hpp | 877 ----- boost/url/grammar/token_rule.hpp | 108 - boost/url/grammar/tuple_rule.hpp | 248 -- boost/url/grammar/type_traits.hpp | 68 - boost/url/grammar/unsigned_rule.hpp | 82 - boost/url/grammar/variant_rule.hpp | 131 - boost/url/grammar/vchars.hpp | 85 - boost/url/host_type.hpp | 58 - boost/url/ignore_case.hpp | 118 - boost/url/impl/decode_view.hpp | 172 - boost/url/impl/encode.hpp | 278 -- boost/url/impl/error.hpp | 79 - boost/url/impl/params_base.hpp | 116 - boost/url/impl/params_encoded_base.hpp | 186 - boost/url/impl/params_encoded_ref.hpp | 196 - boost/url/impl/params_ref.hpp | 240 -- boost/url/impl/segments_base.hpp | 126 - boost/url/impl/segments_encoded_base.hpp | 132 - boost/url/impl/segments_encoded_ref.hpp | 170 - boost/url/impl/segments_ref.hpp | 169 - boost/url/ipv4_address.hpp | 344 -- boost/url/ipv6_address.hpp | 398 --- boost/url/optional.hpp | 50 - boost/url/param.hpp | 934 ----- boost/url/params_base.hpp | 519 --- boost/url/params_encoded_base.hpp | 549 --- boost/url/params_encoded_ref.hpp | 1006 ------ boost/url/params_encoded_view.hpp | 237 -- boost/url/params_ref.hpp | 967 ----- boost/url/params_view.hpp | 286 -- boost/url/parse.hpp | 284 -- boost/url/parse_path.hpp | 54 - boost/url/parse_query.hpp | 52 - boost/url/pct_string_view.hpp | 462 --- boost/url/rfc/absolute_uri_rule.hpp | 74 - boost/url/rfc/authority_rule.hpp | 69 - boost/url/rfc/detail/charsets.hpp | 87 - boost/url/rfc/detail/fragment_part_rule.hpp | 69 - boost/url/rfc/detail/h16_rule.hpp | 58 - boost/url/rfc/detail/hier_part_rule.hpp | 61 - boost/url/rfc/detail/host_rule.hpp | 64 - boost/url/rfc/detail/ip_literal_rule.hpp | 60 - boost/url/rfc/detail/ipv6_addrz_rule.hpp | 56 - boost/url/rfc/detail/ipvfuture_rule.hpp | 54 - boost/url/rfc/detail/path_rules.hpp | 44 - boost/url/rfc/detail/port_rule.hpp | 93 - boost/url/rfc/detail/query_part_rule.hpp | 69 - boost/url/rfc/detail/reg_name_rule.hpp | 55 - boost/url/rfc/detail/relative_part_rule.hpp | 67 - boost/url/rfc/detail/scheme_rule.hpp | 55 - boost/url/rfc/detail/userinfo_rule.hpp | 58 - boost/url/rfc/gen_delim_chars.hpp | 51 - boost/url/rfc/impl/pct_encoded_rule.hpp | 103 - boost/url/rfc/ipv4_address_rule.hpp | 78 - boost/url/rfc/ipv6_address_rule.hpp | 86 - boost/url/rfc/origin_form_rule.hpp | 72 - boost/url/rfc/pchars.hpp | 51 - boost/url/rfc/pct_encoded_rule.hpp | 122 - boost/url/rfc/query_rule.hpp | 78 - boost/url/rfc/relative_ref_rule.hpp | 69 - boost/url/rfc/reserved_chars.hpp | 44 - boost/url/rfc/sub_delim_chars.hpp | 52 - boost/url/rfc/unreserved_chars.hpp | 55 - boost/url/rfc/uri_reference_rule.hpp | 72 - boost/url/rfc/uri_rule.hpp | 69 - boost/url/scheme.hpp | 180 - boost/url/segments_base.hpp | 327 -- boost/url/segments_encoded_base.hpp | 336 -- boost/url/segments_encoded_ref.hpp | 800 ----- boost/url/segments_encoded_view.hpp | 240 -- boost/url/segments_ref.hpp | 743 ---- boost/url/segments_view.hpp | 195 - boost/url/static_url.hpp | 471 --- boost/url/url.hpp | 547 --- boost/url/url_base.hpp | 2909 --------------- boost/url/url_view.hpp | 373 -- boost/url/url_view_base.hpp | 2786 --------------- boost/url/urls.hpp | 24 - boost/url/variant.hpp | 29 - boost/utility/addressof.hpp | 17 - boost/utility/compare_pointees.hpp | 76 - boost/utility/declval.hpp | 13 - boost/utility/detail/result_of_iterate.hpp | 218 -- boost/utility/detail/result_of_variadic.hpp | 190 - boost/utility/result_of.hpp | 256 -- boost/variant.hpp | 27 - boost/variant/apply_visitor.hpp | 20 - boost/variant/bad_visit.hpp | 43 - boost/variant/detail/apply_visitor_binary.hpp | 358 -- .../variant/detail/apply_visitor_delayed.hpp | 146 - boost/variant/detail/apply_visitor_unary.hpp | 145 - boost/variant/detail/backup_holder.hpp | 95 - boost/variant/detail/cast_storage.hpp | 42 - boost/variant/detail/config.hpp | 37 - boost/variant/detail/element_index.hpp | 63 - boost/variant/detail/enable_recursive.hpp | 133 - boost/variant/detail/enable_recursive_fwd.hpp | 87 - boost/variant/detail/forced_return.hpp | 52 - boost/variant/detail/has_result_type.hpp | 37 - boost/variant/detail/hash_variant.hpp | 46 - boost/variant/detail/initializer.hpp | 249 -- boost/variant/detail/make_variant_list.hpp | 73 - boost/variant/detail/move.hpp | 50 - boost/variant/detail/over_sequence.hpp | 58 - boost/variant/detail/std_hash.hpp | 46 - boost/variant/detail/substitute.hpp | 279 -- boost/variant/detail/substitute_fwd.hpp | 58 - boost/variant/detail/variant_io.hpp | 95 - boost/variant/detail/visitation_impl.hpp | 277 -- boost/variant/get.hpp | 388 -- boost/variant/recursive_variant.hpp | 209 -- boost/variant/recursive_wrapper.hpp | 158 - boost/variant/recursive_wrapper_fwd.hpp | 130 - boost/variant/static_visitor.hpp | 93 - boost/variant/variant.hpp | 2457 ------------- boost/variant/variant_fwd.hpp | 322 -- boost/variant/visitor_ptr.hpp | 88 - boost/variant2/variant.hpp | 2538 ------------- boost/version.hpp | 4 +- boost/weak_ptr.hpp | 18 - boost/winapi/config.hpp | 10 +- boost/winapi/get_process_times.hpp | 63 - boost/winapi/get_thread_times.hpp | 59 - boost/winapi/handles.hpp | 4 +- boost/winapi/stack_backtrace.hpp | 55 - boost/winapi/timers.hpp | 48 - build.cmd | 27 +- libs/atomic/build/Jamfile.v2 | 7 + libs/atomic/src/lock_pool.cpp | 9 +- libs/atomic/src/wait_on_address.cpp | 3 +- libs/chrono/build/Jamfile.v2 | 110 - libs/chrono/src/chrono.cpp | 15 - libs/chrono/src/process_cpu_clocks.cpp | 18 - libs/chrono/src/thread_clock.cpp | 19 - libs/config/test/config_info.cpp | 1541 -------- libs/date_time/build/Jamfile.v2 | 33 - libs/date_time/src/date_time.doc | 72 - .../src/gregorian/date_generators.cpp | 38 - libs/date_time/src/gregorian/greg_month.cpp | 173 - libs/date_time/src/gregorian/greg_names.hpp | 43 - libs/date_time/src/gregorian/greg_weekday.cpp | 50 - .../src/gregorian/gregorian_types.cpp | 62 - .../src/posix_time/posix_time_types.cpp | 35 - libs/exception/build/Jamfile.v2 | 14 - .../clone_current_exception_non_intrusive.cpp | 349 -- libs/filesystem/src/directory.cpp | 79 +- libs/filesystem/src/operations.cpp | 168 +- libs/filesystem/src/path.cpp | 2 +- libs/filesystem/src/windows_tools.hpp | 6 - libs/iostreams/build/Jamfile.v2 | 129 - libs/iostreams/build/has_lzma_cputhreads.cpp | 10 - libs/iostreams/src/bzip2.cpp | 171 - libs/iostreams/src/file_descriptor.cpp | 621 ---- libs/iostreams/src/gzip.cpp | 174 - libs/iostreams/src/lzma.cpp | 171 - libs/iostreams/src/mapped_file.cpp | 499 --- libs/iostreams/src/zlib.cpp | 188 - libs/iostreams/src/zstd.cpp | 166 - libs/locale/build/Jamfile.v2 | 433 --- libs/locale/build/has_iconv.cpp | 13 - libs/locale/build/has_icu_test.cpp | 18 - libs/locale/build/has_xlocale.cpp | 11 - libs/locale/build/option.cpp | 7 - .../src/boost/locale/encoding/codepage.cpp | 163 - .../locale/src/boost/locale/encoding/conv.hpp | 73 - .../boost/locale/encoding/iconv_codepage.ipp | 175 - .../boost/locale/encoding/uconv_codepage.ipp | 141 - .../boost/locale/encoding/wconv_codepage.ipp | 432 --- .../src/boost/locale/icu/all_generator.hpp | 24 - libs/locale/src/boost/locale/icu/boundary.cpp | 213 -- libs/locale/src/boost/locale/icu/cdata.hpp | 22 - libs/locale/src/boost/locale/icu/codecvt.cpp | 129 - libs/locale/src/boost/locale/icu/codecvt.hpp | 20 - libs/locale/src/boost/locale/icu/collator.cpp | 193 - .../src/boost/locale/icu/conversion.cpp | 186 - .../locale/src/boost/locale/icu/date_time.cpp | 234 -- .../locale/src/boost/locale/icu/formatter.cpp | 459 --- .../locale/src/boost/locale/icu/formatter.hpp | 73 - .../src/boost/locale/icu/formatters_cache.cpp | 143 - .../src/boost/locale/icu/formatters_cache.hpp | 78 - .../src/boost/locale/icu/icu_backend.cpp | 135 - .../src/boost/locale/icu/icu_backend.hpp | 18 - libs/locale/src/boost/locale/icu/icu_util.hpp | 49 - libs/locale/src/boost/locale/icu/numeric.cpp | 367 -- .../locale/src/boost/locale/icu/time_zone.cpp | 217 -- .../locale/src/boost/locale/icu/time_zone.hpp | 24 - libs/locale/src/boost/locale/icu/uconv.hpp | 306 -- .../src/boost/locale/posix/all_generator.hpp | 32 - .../locale/src/boost/locale/posix/codecvt.cpp | 28 - .../locale/src/boost/locale/posix/collate.cpp | 98 - .../src/boost/locale/posix/converter.cpp | 141 - .../locale/src/boost/locale/posix/numeric.cpp | 441 --- .../src/boost/locale/posix/posix_backend.cpp | 156 - .../src/boost/locale/posix/posix_backend.hpp | 15 - .../src/boost/locale/shared/date_time.cpp | 424 --- .../locale/src/boost/locale/shared/format.cpp | 166 - .../src/boost/locale/shared/formatting.cpp | 131 - .../src/boost/locale/shared/generator.cpp | 192 - .../src/boost/locale/shared/iconv_codecvt.cpp | 179 - .../src/boost/locale/shared/iconv_codecvt.hpp | 20 - libs/locale/src/boost/locale/shared/ids.cpp | 108 - .../src/boost/locale/shared/ios_prop.hpp | 65 - .../locale/shared/localization_backend.cpp | 249 -- .../src/boost/locale/shared/message.cpp | 678 ---- .../src/boost/locale/shared/mo_hash.hpp | 51 - .../src/boost/locale/shared/mo_lambda.cpp | 373 -- .../src/boost/locale/shared/mo_lambda.hpp | 27 - .../src/boost/locale/std/all_generator.hpp | 44 - libs/locale/src/boost/locale/std/codecvt.cpp | 38 - libs/locale/src/boost/locale/std/collate.cpp | 92 - .../locale/src/boost/locale/std/converter.cpp | 124 - libs/locale/src/boost/locale/std/numeric.cpp | 377 -- .../src/boost/locale/std/std_backend.cpp | 208 -- .../src/boost/locale/std/std_backend.hpp | 15 - .../boost/locale/util/codecvt_converter.cpp | 325 -- .../src/boost/locale/util/default_locale.cpp | 66 - .../locale/src/boost/locale/util/encoding.cpp | 78 - .../locale/src/boost/locale/util/encoding.hpp | 55 - .../src/boost/locale/util/gregorian.cpp | 716 ---- .../src/boost/locale/util/gregorian.hpp | 18 - libs/locale/src/boost/locale/util/iconv.hpp | 92 - libs/locale/src/boost/locale/util/info.cpp | 52 - .../src/boost/locale/util/locale_data.cpp | 160 - libs/locale/src/boost/locale/util/numeric.hpp | 383 -- .../locale/src/boost/locale/util/timezone.hpp | 47 - .../src/boost/locale/util/win_codepages.hpp | 181 - .../src/boost/locale/win32/all_generator.hpp | 29 - libs/locale/src/boost/locale/win32/api.hpp | 324 -- .../locale/src/boost/locale/win32/collate.cpp | 121 - .../src/boost/locale/win32/converter.cpp | 82 - libs/locale/src/boost/locale/win32/lcid.cpp | 115 - libs/locale/src/boost/locale/win32/lcid.hpp | 19 - .../locale/src/boost/locale/win32/numeric.cpp | 210 -- .../src/boost/locale/win32/win_backend.cpp | 134 - .../src/boost/locale/win32/win_backend.hpp | 15 - libs/regex/build/Jamfile.v2 | 165 - libs/regex/build/has_icu_test.cpp | 56 - libs/regex/build/is_legacy_03.cpp | 16 - libs/regex/src/c_regex_traits.cpp | 206 -- libs/regex/src/cpp_regex_traits.cpp | 117 - libs/regex/src/cregex.cpp | 660 ---- libs/regex/src/fileiter.cpp | 928 ----- libs/regex/src/icu.cpp | 511 --- libs/regex/src/instances.cpp | 32 - libs/regex/src/internals.hpp | 35 - libs/regex/src/posix_api.cpp | 290 -- libs/regex/src/regex.cpp | 120 - libs/regex/src/regex_debug.cpp | 59 - libs/regex/src/regex_raw_buffer.cpp | 72 - libs/regex/src/regex_traits_defaults.cpp | 692 ---- libs/regex/src/static_mutex.cpp | 189 - libs/regex/src/usinstances.cpp | 81 - libs/regex/src/w32_regex_traits.cpp | 654 ---- libs/regex/src/wc_regex_traits.cpp | 314 -- libs/regex/src/wide_posix_api.cpp | 314 -- libs/regex/src/winstances.cpp | 35 - .../test/config_info/regex_config_info.cpp | 73 - libs/serialization/build/Jamfile.v2 | 183 - libs/serialization/src/archive_exception.cpp | 154 - libs/serialization/src/basic_archive.cpp | 94 - libs/serialization/src/basic_iarchive.cpp | 601 ---- libs/serialization/src/basic_iserializer.cpp | 34 - libs/serialization/src/basic_oarchive.cpp | 469 --- libs/serialization/src/basic_oserializer.cpp | 34 - .../src/basic_pointer_iserializer.cpp | 31 - .../src/basic_pointer_oserializer.cpp | 31 - .../src/basic_serializer_map.cpp | 112 - .../src/basic_text_iprimitive.cpp | 29 - .../src/basic_text_oprimitive.cpp | 29 - .../src/basic_text_wiprimitive.cpp | 36 - .../src/basic_text_woprimitive.cpp | 36 - libs/serialization/src/basic_xml_archive.cpp | 52 - libs/serialization/src/basic_xml_grammar.ipp | 468 --- libs/serialization/src/binary_iarchive.cpp | 40 - libs/serialization/src/binary_oarchive.cpp | 40 - libs/serialization/src/binary_wiarchive.cpp | 47 - libs/serialization/src/binary_woarchive.cpp | 44 - libs/serialization/src/codecvt_null.cpp | 91 - libs/serialization/src/extended_type_info.cpp | 195 - .../src/extended_type_info_no_rtti.cpp | 89 - .../src/extended_type_info_typeid.cpp | 167 - .../src/polymorphic_binary_iarchive.cpp | 30 - .../src/polymorphic_binary_oarchive.cpp | 30 - .../src/polymorphic_iarchive.cpp | 30 - .../src/polymorphic_oarchive.cpp | 30 - .../src/polymorphic_text_iarchive.cpp | 30 - .../src/polymorphic_text_oarchive.cpp | 30 - .../src/polymorphic_text_wiarchive.cpp | 30 - .../src/polymorphic_text_woarchive.cpp | 30 - .../src/polymorphic_xml_iarchive.cpp | 30 - .../src/polymorphic_xml_oarchive.cpp | 30 - .../src/polymorphic_xml_wiarchive.cpp | 30 - .../src/polymorphic_xml_woarchive.cpp | 30 - libs/serialization/src/stl_port.cpp | 42 - libs/serialization/src/text_iarchive.cpp | 33 - libs/serialization/src/text_oarchive.cpp | 34 - libs/serialization/src/text_wiarchive.cpp | 38 - libs/serialization/src/text_woarchive.cpp | 36 - libs/serialization/src/utf8_codecvt_facet.cpp | 22 - libs/serialization/src/void_cast.cpp | 382 -- .../src/xml_archive_exception.cpp | 68 - libs/serialization/src/xml_grammar.cpp | 74 - libs/serialization/src/xml_iarchive.cpp | 33 - libs/serialization/src/xml_oarchive.cpp | 33 - libs/serialization/src/xml_wgrammar.cpp | 157 - libs/serialization/src/xml_wiarchive.cpp | 40 - libs/serialization/src/xml_woarchive.cpp | 40 - libs/thread/build/Jamfile.v2 | 319 -- .../build/has_atomic_flag_lockfree_test.cpp | 13 - libs/thread/src/future.cpp | 64 - libs/thread/src/pthread/once.cpp | 82 - libs/thread/src/pthread/once_atomic.cpp | 91 - libs/thread/src/pthread/thread.cpp | 801 ----- libs/thread/src/tss_null.cpp | 38 - libs/thread/src/win32/thread.cpp | 992 ------ libs/thread/src/win32/thread_primitives.cpp | 156 - libs/thread/src/win32/tss_dll.cpp | 87 - libs/thread/src/win32/tss_pe.cpp | 346 -- libs/url/build/Jamfile | 34 - libs/url/src/authority_view.cpp | 408 --- libs/url/src/decode_view.cpp | 235 -- libs/url/src/detail/any_params_iter.cpp | 509 --- libs/url/src/detail/any_segments_iter.cpp | 232 -- libs/url/src/detail/decode.cpp | 141 - libs/url/src/detail/except.cpp | 59 - libs/url/src/detail/format_args.cpp | 651 ---- libs/url/src/detail/normalize.cpp | 854 ----- libs/url/src/detail/params_iter_impl.cpp | 246 -- libs/url/src/detail/pattern.cpp | 950 ----- libs/url/src/detail/pct_format.cpp | 218 -- .../url/src/detail/replacement_field_rule.cpp | 138 - libs/url/src/detail/segments_iter_impl.cpp | 175 - libs/url/src/detail/url_impl.cpp | 520 --- libs/url/src/encoding_opts.cpp | 32 - libs/url/src/error.cpp | 97 - libs/url/src/grammar/ci_string.cpp | 155 - libs/url/src/grammar/dec_octet_rule.cpp | 94 - libs/url/src/grammar/delim_rule.cpp | 48 - libs/url/src/grammar/detail/recycled.cpp | 99 - libs/url/src/grammar/error.cpp | 122 - libs/url/src/grammar/literal_rule.cpp | 71 - libs/url/src/grammar/string_view_base.cpp | 34 - libs/url/src/ipv4_address.cpp | 169 - libs/url/src/ipv6_address.cpp | 254 -- libs/url/src/params_base.cpp | 288 -- libs/url/src/params_encoded_base.cpp | 195 - libs/url/src/params_encoded_ref.cpp | 317 -- libs/url/src/params_encoded_view.cpp | 47 - libs/url/src/params_ref.cpp | 310 -- libs/url/src/params_view.cpp | 63 - libs/url/src/parse.cpp | 68 - libs/url/src/parse_path.cpp | 63 - libs/url/src/parse_query.cpp | 46 - libs/url/src/pct_string_view.cpp | 97 - libs/url/src/rfc/absolute_uri_rule.cpp | 86 - libs/url/src/rfc/authority_rule.cpp | 86 - libs/url/src/rfc/detail/h16_rule.cpp | 87 - libs/url/src/rfc/detail/hier_part_rule.cpp | 119 - libs/url/src/rfc/detail/host_rule.cpp | 134 - libs/url/src/rfc/detail/ip_literal_rule.cpp | 100 - libs/url/src/rfc/detail/ipv6_addrz_rule.cpp | 74 - libs/url/src/rfc/detail/ipvfuture_rule.cpp | 75 - libs/url/src/rfc/detail/port_rule.cpp | 107 - .../url/src/rfc/detail/relative_part_rule.cpp | 129 - libs/url/src/rfc/detail/scheme_rule.cpp | 66 - libs/url/src/rfc/detail/userinfo_rule.cpp | 75 - libs/url/src/rfc/ipv4_address_rule.cpp | 51 - libs/url/src/rfc/ipv6_address_rule.cpp | 231 -- libs/url/src/rfc/origin_form_rule.cpp | 72 - libs/url/src/rfc/query_rule.cpp | 86 - libs/url/src/rfc/relative_ref_rule.cpp | 83 - libs/url/src/rfc/uri_reference_rule.cpp | 52 - libs/url/src/rfc/uri_rule.cpp | 98 - libs/url/src/scheme.cpp | 133 - libs/url/src/segments_base.cpp | 120 - libs/url/src/segments_encoded_base.cpp | 116 - libs/url/src/segments_encoded_ref.cpp | 175 - libs/url/src/segments_encoded_view.cpp | 47 - libs/url/src/segments_ref.cpp | 174 - libs/url/src/segments_view.cpp | 40 - libs/url/src/static_url.cpp | 76 - libs/url/src/url.cpp | 173 - libs/url/src/url_base.cpp | 2847 --------------- libs/url/src/url_view.cpp | 84 - libs/url/src/url_view_base.cpp | 734 ---- 1718 files changed, 9907 insertions(+), 258303 deletions(-) delete mode 100644 boost/align/align_up.hpp delete mode 100644 boost/align/detail/align_up.hpp delete mode 100644 boost/align/detail/not_pointer.hpp delete mode 100644 boost/aligned_storage.hpp delete mode 100644 boost/archive/archive_exception.hpp delete mode 100644 boost/archive/basic_archive.hpp delete mode 100644 boost/archive/basic_binary_iarchive.hpp delete mode 100644 boost/archive/basic_binary_iprimitive.hpp delete mode 100644 boost/archive/basic_binary_oarchive.hpp delete mode 100644 boost/archive/basic_binary_oprimitive.hpp delete mode 100644 boost/archive/basic_streambuf_locale_saver.hpp delete mode 100644 boost/archive/basic_text_iarchive.hpp delete mode 100644 boost/archive/basic_text_iprimitive.hpp delete mode 100644 boost/archive/basic_text_oarchive.hpp delete mode 100644 boost/archive/basic_text_oprimitive.hpp delete mode 100644 boost/archive/basic_xml_archive.hpp delete mode 100644 boost/archive/basic_xml_iarchive.hpp delete mode 100644 boost/archive/basic_xml_oarchive.hpp delete mode 100644 boost/archive/binary_iarchive.hpp delete mode 100644 boost/archive/binary_iarchive_impl.hpp delete mode 100644 boost/archive/binary_oarchive.hpp delete mode 100644 boost/archive/binary_oarchive_impl.hpp delete mode 100644 boost/archive/binary_wiarchive.hpp delete mode 100644 boost/archive/binary_woarchive.hpp delete mode 100644 boost/archive/codecvt_null.hpp delete mode 100644 boost/archive/detail/abi_prefix.hpp delete mode 100644 boost/archive/detail/abi_suffix.hpp delete mode 100644 boost/archive/detail/archive_serializer_map.hpp delete mode 100644 boost/archive/detail/auto_link_archive.hpp delete mode 100644 boost/archive/detail/auto_link_warchive.hpp delete mode 100644 boost/archive/detail/basic_iarchive.hpp delete mode 100644 boost/archive/detail/basic_iserializer.hpp delete mode 100644 boost/archive/detail/basic_oarchive.hpp delete mode 100644 boost/archive/detail/basic_oserializer.hpp delete mode 100644 boost/archive/detail/basic_pointer_iserializer.hpp delete mode 100644 boost/archive/detail/basic_pointer_oserializer.hpp delete mode 100644 boost/archive/detail/basic_serializer.hpp delete mode 100644 boost/archive/detail/basic_serializer_map.hpp delete mode 100644 boost/archive/detail/check.hpp delete mode 100644 boost/archive/detail/common_iarchive.hpp delete mode 100644 boost/archive/detail/common_oarchive.hpp delete mode 100644 boost/archive/detail/decl.hpp delete mode 100644 boost/archive/detail/helper_collection.hpp delete mode 100644 boost/archive/detail/interface_iarchive.hpp delete mode 100644 boost/archive/detail/interface_oarchive.hpp delete mode 100644 boost/archive/detail/iserializer.hpp delete mode 100644 boost/archive/detail/oserializer.hpp delete mode 100644 boost/archive/detail/polymorphic_iarchive_route.hpp delete mode 100644 boost/archive/detail/polymorphic_oarchive_route.hpp delete mode 100644 boost/archive/detail/register_archive.hpp delete mode 100644 boost/archive/detail/utf8_codecvt_facet.hpp delete mode 100644 boost/archive/dinkumware.hpp delete mode 100644 boost/archive/impl/archive_serializer_map.ipp delete mode 100644 boost/archive/impl/basic_binary_iarchive.ipp delete mode 100644 boost/archive/impl/basic_binary_iprimitive.ipp delete mode 100644 boost/archive/impl/basic_binary_oarchive.ipp delete mode 100644 boost/archive/impl/basic_binary_oprimitive.ipp delete mode 100644 boost/archive/impl/basic_text_iarchive.ipp delete mode 100644 boost/archive/impl/basic_text_iprimitive.ipp delete mode 100644 boost/archive/impl/basic_text_oarchive.ipp delete mode 100644 boost/archive/impl/basic_text_oprimitive.ipp delete mode 100644 boost/archive/impl/basic_xml_grammar.hpp delete mode 100644 boost/archive/impl/basic_xml_iarchive.ipp delete mode 100644 boost/archive/impl/basic_xml_oarchive.ipp delete mode 100644 boost/archive/impl/text_iarchive_impl.ipp delete mode 100644 boost/archive/impl/text_oarchive_impl.ipp delete mode 100644 boost/archive/impl/text_wiarchive_impl.ipp delete mode 100644 boost/archive/impl/text_woarchive_impl.ipp delete mode 100644 boost/archive/impl/xml_iarchive_impl.ipp delete mode 100644 boost/archive/impl/xml_oarchive_impl.ipp delete mode 100644 boost/archive/impl/xml_wiarchive_impl.ipp delete mode 100644 boost/archive/impl/xml_woarchive_impl.ipp delete mode 100644 boost/archive/iterators/base64_from_binary.hpp delete mode 100644 boost/archive/iterators/binary_from_base64.hpp delete mode 100644 boost/archive/iterators/dataflow_exception.hpp delete mode 100644 boost/archive/iterators/escape.hpp delete mode 100644 boost/archive/iterators/insert_linebreaks.hpp delete mode 100644 boost/archive/iterators/istream_iterator.hpp delete mode 100644 boost/archive/iterators/mb_from_wchar.hpp delete mode 100644 boost/archive/iterators/ostream_iterator.hpp delete mode 100644 boost/archive/iterators/remove_whitespace.hpp delete mode 100644 boost/archive/iterators/transform_width.hpp delete mode 100644 boost/archive/iterators/unescape.hpp delete mode 100644 boost/archive/iterators/wchar_from_mb.hpp delete mode 100644 boost/archive/iterators/xml_escape.hpp delete mode 100644 boost/archive/iterators/xml_unescape.hpp delete mode 100644 boost/archive/polymorphic_binary_iarchive.hpp delete mode 100644 boost/archive/polymorphic_binary_oarchive.hpp delete mode 100644 boost/archive/polymorphic_iarchive.hpp delete mode 100644 boost/archive/polymorphic_oarchive.hpp delete mode 100644 boost/archive/polymorphic_text_iarchive.hpp delete mode 100644 boost/archive/polymorphic_text_oarchive.hpp delete mode 100644 boost/archive/polymorphic_text_wiarchive.hpp delete mode 100644 boost/archive/polymorphic_text_woarchive.hpp delete mode 100644 boost/archive/polymorphic_xml_iarchive.hpp delete mode 100644 boost/archive/polymorphic_xml_oarchive.hpp delete mode 100644 boost/archive/polymorphic_xml_wiarchive.hpp delete mode 100644 boost/archive/polymorphic_xml_woarchive.hpp delete mode 100644 boost/archive/text_iarchive.hpp delete mode 100644 boost/archive/text_oarchive.hpp delete mode 100644 boost/archive/text_wiarchive.hpp delete mode 100644 boost/archive/text_woarchive.hpp delete mode 100644 boost/archive/wcslen.hpp delete mode 100644 boost/archive/xml_archive_exception.hpp delete mode 100644 boost/archive/xml_iarchive.hpp delete mode 100644 boost/archive/xml_oarchive.hpp delete mode 100644 boost/archive/xml_wiarchive.hpp delete mode 100644 boost/archive/xml_woarchive.hpp delete mode 100644 boost/asio/detail/bulk_executor_op.hpp delete mode 100644 boost/asio/detail/gcc_arm_fenced_block.hpp delete mode 100644 boost/asio/detail/gcc_hppa_fenced_block.hpp delete mode 100644 boost/asio/detail/gcc_sync_fenced_block.hpp delete mode 100644 boost/asio/detail/gcc_x86_fenced_block.hpp delete mode 100644 boost/asio/detail/handler_invoke_helpers.hpp delete mode 100644 boost/asio/detail/macos_fenced_block.hpp delete mode 100644 boost/asio/detail/solaris_fenced_block.hpp delete mode 100644 boost/asio/detail/variadic_templates.hpp delete mode 100644 boost/asio/detail/win_fenced_block.hpp delete mode 100644 boost/asio/execution/bulk_execute.hpp delete mode 100644 boost/asio/execution/bulk_guarantee.hpp delete mode 100644 boost/asio/execution/connect.hpp delete mode 100644 boost/asio/execution/detail/as_invocable.hpp delete mode 100644 boost/asio/execution/detail/as_operation.hpp delete mode 100644 boost/asio/execution/detail/as_receiver.hpp delete mode 100644 boost/asio/execution/detail/bulk_sender.hpp delete mode 100644 boost/asio/execution/detail/submit_receiver.hpp delete mode 100644 boost/asio/execution/detail/void_receiver.hpp delete mode 100644 boost/asio/execution/execute.hpp delete mode 100644 boost/asio/execution/impl/receiver_invocation_error.ipp delete mode 100644 boost/asio/execution/operation_state.hpp delete mode 100644 boost/asio/execution/receiver.hpp delete mode 100644 boost/asio/execution/receiver_invocation_error.hpp delete mode 100644 boost/asio/execution/schedule.hpp delete mode 100644 boost/asio/execution/scheduler.hpp delete mode 100644 boost/asio/execution/sender.hpp delete mode 100644 boost/asio/execution/set_done.hpp delete mode 100644 boost/asio/execution/set_error.hpp delete mode 100644 boost/asio/execution/set_value.hpp delete mode 100644 boost/asio/execution/start.hpp delete mode 100644 boost/asio/execution/submit.hpp delete mode 100644 boost/asio/handler_alloc_hook.hpp delete mode 100644 boost/asio/handler_invoke_hook.hpp delete mode 100644 boost/asio/impl/handler_alloc_hook.ipp delete mode 100644 boost/asio/traits/bulk_execute_free.hpp delete mode 100644 boost/asio/traits/bulk_execute_member.hpp delete mode 100644 boost/asio/traits/connect_free.hpp delete mode 100644 boost/asio/traits/connect_member.hpp delete mode 100644 boost/asio/traits/execute_free.hpp delete mode 100644 boost/asio/traits/schedule_free.hpp delete mode 100644 boost/asio/traits/schedule_member.hpp delete mode 100644 boost/asio/traits/set_done_free.hpp delete mode 100644 boost/asio/traits/set_done_member.hpp delete mode 100644 boost/asio/traits/set_error_free.hpp delete mode 100644 boost/asio/traits/set_error_member.hpp delete mode 100644 boost/asio/traits/set_value_free.hpp delete mode 100644 boost/asio/traits/set_value_member.hpp delete mode 100644 boost/asio/traits/start_free.hpp delete mode 100644 boost/asio/traits/start_member.hpp delete mode 100644 boost/asio/traits/submit_free.hpp delete mode 100644 boost/asio/traits/submit_member.hpp delete mode 100644 boost/bind/arg.hpp delete mode 100644 boost/bind/detail/requires_cxx11.hpp delete mode 100644 boost/bind/mem_fn.hpp delete mode 100644 boost/bind/mem_fn_cc.hpp delete mode 100644 boost/bind/mem_fn_template.hpp delete mode 100644 boost/bind/mem_fn_vw.hpp delete mode 100644 boost/blank.hpp delete mode 100644 boost/blank_fwd.hpp delete mode 100644 boost/chrono/chrono.hpp delete mode 100644 boost/chrono/clock_string.hpp delete mode 100644 boost/chrono/config.hpp delete mode 100644 boost/chrono/detail/inlined/chrono.hpp delete mode 100644 boost/chrono/detail/inlined/mac/chrono.hpp delete mode 100644 boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp delete mode 100644 boost/chrono/detail/inlined/mac/thread_clock.hpp delete mode 100644 boost/chrono/detail/inlined/posix/chrono.hpp delete mode 100644 boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp delete mode 100644 boost/chrono/detail/inlined/posix/thread_clock.hpp delete mode 100644 boost/chrono/detail/inlined/process_cpu_clocks.hpp delete mode 100644 boost/chrono/detail/inlined/thread_clock.hpp delete mode 100644 boost/chrono/detail/inlined/win/chrono.hpp delete mode 100644 boost/chrono/detail/inlined/win/process_cpu_clocks.hpp delete mode 100644 boost/chrono/detail/inlined/win/thread_clock.hpp delete mode 100644 boost/chrono/detail/is_evenly_divisible_by.hpp delete mode 100644 boost/chrono/detail/requires_cxx11.hpp delete mode 100644 boost/chrono/detail/static_assert.hpp delete mode 100644 boost/chrono/detail/system.hpp delete mode 100644 boost/chrono/duration.hpp delete mode 100644 boost/chrono/process_cpu_clocks.hpp delete mode 100644 boost/chrono/system_clocks.hpp delete mode 100644 boost/chrono/thread_clock.hpp delete mode 100644 boost/chrono/time_point.hpp delete mode 100644 boost/circular_buffer.hpp delete mode 100644 boost/circular_buffer/base.hpp delete mode 100644 boost/circular_buffer/debug.hpp delete mode 100644 boost/circular_buffer/details.hpp delete mode 100644 boost/circular_buffer/space_optimized.hpp delete mode 100644 boost/circular_buffer_fwd.hpp delete mode 100644 boost/compressed_pair.hpp create mode 100644 boost/config/assert_cxx23.hpp delete mode 100644 boost/container_hash/detail/hash_mix.hpp delete mode 100644 boost/container_hash/detail/hash_range.hpp delete mode 100644 boost/container_hash/detail/hash_tuple_like.hpp delete mode 100644 boost/container_hash/detail/mulx.hpp delete mode 100644 boost/container_hash/detail/requires_cxx11.hpp delete mode 100644 boost/container_hash/hash.hpp delete mode 100644 boost/container_hash/is_contiguous_range.hpp delete mode 100644 boost/container_hash/is_described_class.hpp delete mode 100644 boost/container_hash/is_range.hpp delete mode 100644 boost/container_hash/is_tuple_like.hpp delete mode 100644 boost/container_hash/is_unordered_range.hpp delete mode 100644 boost/core/alloc_construct.hpp delete mode 100644 boost/core/allocator_access.hpp delete mode 100644 boost/core/allocator_traits.hpp delete mode 100644 boost/core/default_allocator.hpp delete mode 100644 boost/core/detail/is_same.hpp delete mode 100644 boost/core/detail/string_view.hpp delete mode 100644 boost/core/empty_value.hpp delete mode 100644 boost/core/explicit_operator_bool.hpp delete mode 100644 boost/core/first_scalar.hpp create mode 100644 boost/core/invoke_swap.hpp delete mode 100644 boost/core/no_exceptions_support.hpp delete mode 100644 boost/core/noinit_adaptor.hpp delete mode 100644 boost/core/nvp.hpp delete mode 100644 boost/core/pointer_traits.hpp delete mode 100644 boost/core/ref.hpp delete mode 100644 boost/core/snprintf.hpp delete mode 100644 boost/core/swap.hpp delete mode 100644 boost/core/uncaught_exceptions.hpp delete mode 100644 boost/cregex.hpp delete mode 100644 boost/describe/bases.hpp delete mode 100644 boost/describe/detail/config.hpp delete mode 100644 boost/describe/detail/cx_streq.hpp delete mode 100644 boost/describe/detail/void_t.hpp delete mode 100644 boost/describe/members.hpp delete mode 100644 boost/describe/modifiers.hpp delete mode 100644 boost/detail/atomic_count.hpp delete mode 100644 boost/detail/compressed_pair.hpp delete mode 100644 boost/detail/reference_content.hpp delete mode 100644 boost/detail/templated_streams.hpp delete mode 100644 boost/filesystem/fstream.hpp delete mode 100644 boost/filesystem/string_file.hpp delete mode 100644 boost/function.hpp delete mode 100644 boost/function/detail/epilogue.hpp delete mode 100644 boost/function/detail/function_iterate.hpp delete mode 100644 boost/function/detail/gen_maybe_include.pl delete mode 100644 boost/function/detail/maybe_include.hpp delete mode 100644 boost/function/detail/prologue.hpp delete mode 100644 boost/function/detail/requires_cxx11.hpp delete mode 100644 boost/function/function0.hpp delete mode 100644 boost/function/function1.hpp delete mode 100644 boost/function/function10.hpp delete mode 100644 boost/function/function2.hpp delete mode 100644 boost/function/function3.hpp delete mode 100644 boost/function/function4.hpp delete mode 100644 boost/function/function5.hpp delete mode 100644 boost/function/function6.hpp delete mode 100644 boost/function/function7.hpp delete mode 100644 boost/function/function8.hpp delete mode 100644 boost/function/function9.hpp delete mode 100644 boost/function/function_base.hpp delete mode 100644 boost/function/function_fwd.hpp delete mode 100644 boost/function/function_template.hpp delete mode 100644 boost/function_equal.hpp delete mode 100644 boost/get_pointer.hpp rename boost/{ratio => icl}/detail/requires_cxx11.hpp (62%) create mode 100644 boost/icl/separate_interval_set.hpp create mode 100644 boost/icl/split_interval_map.hpp create mode 100644 boost/icl/split_interval_set.hpp delete mode 100644 boost/integer/common_factor_ct.hpp delete mode 100644 boost/integer/common_factor_rt.hpp delete mode 100644 boost/iostreams/categories.hpp delete mode 100644 boost/iostreams/char_traits.hpp delete mode 100644 boost/iostreams/checked_operations.hpp delete mode 100644 boost/iostreams/close.hpp delete mode 100644 boost/iostreams/concepts.hpp delete mode 100644 boost/iostreams/constants.hpp delete mode 100644 boost/iostreams/detail/adapter/concept_adapter.hpp delete mode 100644 boost/iostreams/detail/adapter/mode_adapter.hpp delete mode 100644 boost/iostreams/detail/adapter/non_blocking_adapter.hpp delete mode 100644 boost/iostreams/detail/adapter/output_iterator_adapter.hpp delete mode 100644 boost/iostreams/detail/adapter/range_adapter.hpp delete mode 100644 boost/iostreams/detail/bool_trait_def.hpp delete mode 100644 boost/iostreams/detail/broken_overload_resolution/forward.hpp delete mode 100644 boost/iostreams/detail/broken_overload_resolution/stream.hpp delete mode 100644 boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp delete mode 100644 boost/iostreams/detail/buffer.hpp delete mode 100644 boost/iostreams/detail/call_traits.hpp delete mode 100644 boost/iostreams/detail/char_traits.hpp delete mode 100644 boost/iostreams/detail/config/auto_link.hpp delete mode 100644 boost/iostreams/detail/config/bzip2.hpp delete mode 100644 boost/iostreams/detail/config/codecvt.hpp delete mode 100644 boost/iostreams/detail/config/disable_warnings.hpp delete mode 100644 boost/iostreams/detail/config/dyn_link.hpp delete mode 100644 boost/iostreams/detail/config/enable_warnings.hpp delete mode 100644 boost/iostreams/detail/config/fpos.hpp delete mode 100644 boost/iostreams/detail/config/gcc.hpp delete mode 100644 boost/iostreams/detail/config/limits.hpp delete mode 100644 boost/iostreams/detail/config/overload_resolution.hpp delete mode 100644 boost/iostreams/detail/config/rtl.hpp delete mode 100644 boost/iostreams/detail/config/unreachable_return.hpp delete mode 100644 boost/iostreams/detail/config/wide_streams.hpp delete mode 100644 boost/iostreams/detail/config/windows_posix.hpp delete mode 100644 boost/iostreams/detail/config/zlib.hpp delete mode 100644 boost/iostreams/detail/default_arg.hpp delete mode 100644 boost/iostreams/detail/dispatch.hpp delete mode 100644 boost/iostreams/detail/double_object.hpp delete mode 100644 boost/iostreams/detail/enable_if_stream.hpp delete mode 100644 boost/iostreams/detail/error.hpp delete mode 100644 boost/iostreams/detail/execute.hpp delete mode 100644 boost/iostreams/detail/file_handle.hpp delete mode 100644 boost/iostreams/detail/forward.hpp delete mode 100644 boost/iostreams/detail/functional.hpp delete mode 100644 boost/iostreams/detail/ios.hpp delete mode 100644 boost/iostreams/detail/iostream.hpp delete mode 100644 boost/iostreams/detail/is_dereferenceable.hpp delete mode 100644 boost/iostreams/detail/is_iterator_range.hpp delete mode 100644 boost/iostreams/detail/optional.hpp delete mode 100644 boost/iostreams/detail/path.hpp delete mode 100644 boost/iostreams/detail/push.hpp delete mode 100644 boost/iostreams/detail/push_params.hpp delete mode 100644 boost/iostreams/detail/resolve.hpp delete mode 100644 boost/iostreams/detail/select.hpp delete mode 100644 boost/iostreams/detail/select_by_size.hpp delete mode 100644 boost/iostreams/detail/streambuf.hpp delete mode 100644 boost/iostreams/detail/streambuf/direct_streambuf.hpp delete mode 100644 boost/iostreams/detail/streambuf/indirect_streambuf.hpp delete mode 100644 boost/iostreams/detail/streambuf/linked_streambuf.hpp delete mode 100644 boost/iostreams/detail/system_failure.hpp delete mode 100644 boost/iostreams/detail/template_params.hpp delete mode 100644 boost/iostreams/detail/wrap_unwrap.hpp delete mode 100644 boost/iostreams/device/array.hpp delete mode 100644 boost/iostreams/device/back_inserter.hpp delete mode 100644 boost/iostreams/device/file_descriptor.hpp delete mode 100644 boost/iostreams/device/mapped_file.hpp delete mode 100644 boost/iostreams/device/null.hpp delete mode 100644 boost/iostreams/filter/bzip2.hpp delete mode 100644 boost/iostreams/filter/gzip.hpp delete mode 100644 boost/iostreams/filter/lzma.hpp delete mode 100644 boost/iostreams/filter/symmetric.hpp delete mode 100644 boost/iostreams/filter/zlib.hpp delete mode 100644 boost/iostreams/filter/zstd.hpp delete mode 100644 boost/iostreams/flush.hpp delete mode 100644 boost/iostreams/get.hpp delete mode 100644 boost/iostreams/imbue.hpp delete mode 100644 boost/iostreams/input_sequence.hpp delete mode 100644 boost/iostreams/operations.hpp delete mode 100644 boost/iostreams/operations_fwd.hpp delete mode 100644 boost/iostreams/optimal_buffer_size.hpp delete mode 100644 boost/iostreams/output_sequence.hpp delete mode 100644 boost/iostreams/pipeline.hpp delete mode 100644 boost/iostreams/positioning.hpp delete mode 100644 boost/iostreams/put.hpp delete mode 100644 boost/iostreams/putback.hpp delete mode 100644 boost/iostreams/read.hpp delete mode 100644 boost/iostreams/seek.hpp delete mode 100644 boost/iostreams/stream.hpp delete mode 100644 boost/iostreams/stream_buffer.hpp delete mode 100644 boost/iostreams/traits.hpp delete mode 100644 boost/iostreams/traits_fwd.hpp delete mode 100644 boost/iostreams/write.hpp delete mode 100644 boost/is_placeholder.hpp delete mode 100644 boost/iterator/filter_iterator.hpp delete mode 100644 boost/iterator/transform_iterator.hpp delete mode 100644 boost/make_shared.hpp delete mode 100644 boost/mem_fn.hpp delete mode 100644 boost/mp11.hpp delete mode 100644 boost/mp11/algorithm.hpp delete mode 100644 boost/mp11/bind.hpp delete mode 100644 boost/mp11/detail/config.hpp delete mode 100644 boost/mp11/detail/mp_append.hpp delete mode 100644 boost/mp11/detail/mp_copy_if.hpp delete mode 100644 boost/mp11/detail/mp_count.hpp delete mode 100644 boost/mp11/detail/mp_defer.hpp delete mode 100644 boost/mp11/detail/mp_fold.hpp delete mode 100644 boost/mp11/detail/mp_front.hpp delete mode 100644 boost/mp11/detail/mp_is_list.hpp delete mode 100644 boost/mp11/detail/mp_is_value_list.hpp delete mode 100644 boost/mp11/detail/mp_list.hpp delete mode 100644 boost/mp11/detail/mp_list_v.hpp delete mode 100644 boost/mp11/detail/mp_map_find.hpp delete mode 100644 boost/mp11/detail/mp_min_element.hpp delete mode 100644 boost/mp11/detail/mp_plus.hpp delete mode 100644 boost/mp11/detail/mp_remove_if.hpp delete mode 100644 boost/mp11/detail/mp_rename.hpp delete mode 100644 boost/mp11/detail/mp_value.hpp delete mode 100644 boost/mp11/detail/mp_void.hpp delete mode 100644 boost/mp11/detail/mp_with_index.hpp delete mode 100644 boost/mp11/function.hpp delete mode 100644 boost/mp11/integer_sequence.hpp delete mode 100644 boost/mp11/integral.hpp delete mode 100644 boost/mp11/list.hpp delete mode 100644 boost/mp11/map.hpp delete mode 100644 boost/mp11/set.hpp delete mode 100644 boost/mp11/tuple.hpp delete mode 100644 boost/mp11/utility.hpp delete mode 100644 boost/mp11/version.hpp delete mode 100644 boost/mpl/O1_size.hpp delete mode 100644 boost/mpl/O1_size_fwd.hpp delete mode 100644 boost/mpl/advance.hpp delete mode 100644 boost/mpl/advance_fwd.hpp delete mode 100644 boost/mpl/aux_/O1_size_impl.hpp delete mode 100644 boost/mpl/aux_/advance_backward.hpp delete mode 100644 boost/mpl/aux_/advance_forward.hpp delete mode 100644 boost/mpl/aux_/begin_end_impl.hpp delete mode 100644 boost/mpl/aux_/clear_impl.hpp delete mode 100644 boost/mpl/aux_/config/dependent_nttp.hpp delete mode 100644 boost/mpl/aux_/empty_impl.hpp delete mode 100644 boost/mpl/aux_/find_if_pred.hpp delete mode 100644 boost/mpl/aux_/fold_impl.hpp delete mode 100644 boost/mpl/aux_/fold_impl_body.hpp delete mode 100644 boost/mpl/aux_/front_impl.hpp delete mode 100644 boost/mpl/aux_/has_begin.hpp delete mode 100644 boost/mpl/aux_/has_size.hpp delete mode 100644 boost/mpl/aux_/insert_impl.hpp delete mode 100644 boost/mpl/aux_/insert_range_impl.hpp delete mode 100644 boost/mpl/aux_/inserter_algorithm.hpp delete mode 100644 boost/mpl/aux_/iter_apply.hpp delete mode 100644 boost/mpl/aux_/iter_fold_if_impl.hpp delete mode 100644 boost/mpl/aux_/iter_fold_impl.hpp delete mode 100644 boost/mpl/aux_/iter_push_front.hpp delete mode 100644 boost/mpl/aux_/joint_iter.hpp delete mode 100644 boost/mpl/aux_/lambda_spec.hpp delete mode 100644 boost/mpl/aux_/msvc_type.hpp delete mode 100644 boost/mpl/aux_/push_back_impl.hpp delete mode 100644 boost/mpl/aux_/push_front_impl.hpp delete mode 100644 boost/mpl/aux_/reverse_fold_impl.hpp delete mode 100644 boost/mpl/aux_/reverse_fold_impl_body.hpp delete mode 100644 boost/mpl/aux_/sequence_wrapper.hpp delete mode 100644 boost/mpl/aux_/size_impl.hpp delete mode 100644 boost/mpl/aux_/traits_lambda_spec.hpp delete mode 100644 boost/mpl/back_inserter.hpp delete mode 100644 boost/mpl/begin_end.hpp delete mode 100644 boost/mpl/begin_end_fwd.hpp delete mode 100644 boost/mpl/clear.hpp delete mode 100644 boost/mpl/clear_fwd.hpp delete mode 100644 boost/mpl/comparison.hpp delete mode 100644 boost/mpl/deref.hpp delete mode 100644 boost/mpl/distance.hpp delete mode 100644 boost/mpl/distance_fwd.hpp delete mode 100644 boost/mpl/empty.hpp delete mode 100644 boost/mpl/empty_fwd.hpp delete mode 100644 boost/mpl/equal.hpp delete mode 100644 boost/mpl/find_if.hpp delete mode 100644 boost/mpl/fold.hpp delete mode 100644 boost/mpl/front.hpp delete mode 100644 boost/mpl/front_fwd.hpp delete mode 100644 boost/mpl/front_inserter.hpp delete mode 100644 boost/mpl/greater.hpp delete mode 100644 boost/mpl/greater_equal.hpp delete mode 100644 boost/mpl/insert.hpp delete mode 100644 boost/mpl/insert_fwd.hpp delete mode 100644 boost/mpl/insert_range.hpp delete mode 100644 boost/mpl/insert_range_fwd.hpp delete mode 100644 boost/mpl/inserter.hpp delete mode 100644 boost/mpl/is_sequence.hpp delete mode 100644 boost/mpl/iter_fold.hpp delete mode 100644 boost/mpl/iter_fold_if.hpp delete mode 100644 boost/mpl/iterator_category.hpp delete mode 100644 boost/mpl/iterator_range.hpp delete mode 100644 boost/mpl/iterator_tags.hpp delete mode 100644 boost/mpl/joint_view.hpp delete mode 100644 boost/mpl/less_equal.hpp delete mode 100644 boost/mpl/limits/list.hpp delete mode 100644 boost/mpl/limits/unrolling.hpp delete mode 100644 boost/mpl/list.hpp delete mode 100644 boost/mpl/list/aux_/O1_size.hpp delete mode 100644 boost/mpl/list/aux_/begin_end.hpp delete mode 100644 boost/mpl/list/aux_/clear.hpp delete mode 100644 boost/mpl/list/aux_/empty.hpp delete mode 100644 boost/mpl/list/aux_/front.hpp delete mode 100644 boost/mpl/list/aux_/include_preprocessed.hpp delete mode 100644 boost/mpl/list/aux_/item.hpp delete mode 100644 boost/mpl/list/aux_/iterator.hpp delete mode 100644 boost/mpl/list/aux_/numbered.hpp delete mode 100644 boost/mpl/list/aux_/numbered_c.hpp delete mode 100644 boost/mpl/list/aux_/pop_front.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list10.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list20.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list30.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list40.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list50.hpp delete mode 100644 boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp delete mode 100644 boost/mpl/list/aux_/push_back.hpp delete mode 100644 boost/mpl/list/aux_/push_front.hpp delete mode 100644 boost/mpl/list/aux_/size.hpp delete mode 100644 boost/mpl/list/aux_/tag.hpp delete mode 100644 boost/mpl/list/list0.hpp delete mode 100644 boost/mpl/list/list0_c.hpp delete mode 100644 boost/mpl/list/list10.hpp delete mode 100644 boost/mpl/list/list10_c.hpp delete mode 100644 boost/mpl/list/list20.hpp delete mode 100644 boost/mpl/list/list20_c.hpp delete mode 100644 boost/mpl/list/list30.hpp delete mode 100644 boost/mpl/list/list30_c.hpp delete mode 100644 boost/mpl/list/list40.hpp delete mode 100644 boost/mpl/list/list40_c.hpp delete mode 100644 boost/mpl/list/list50.hpp delete mode 100644 boost/mpl/list/list50_c.hpp delete mode 100644 boost/mpl/long.hpp delete mode 100644 boost/mpl/long_fwd.hpp delete mode 100644 boost/mpl/max_element.hpp delete mode 100644 boost/mpl/min_max.hpp delete mode 100644 boost/mpl/negate.hpp delete mode 100644 boost/mpl/not_equal_to.hpp delete mode 100644 boost/mpl/pair.hpp delete mode 100644 boost/mpl/pair_view.hpp delete mode 100644 boost/mpl/plus.hpp delete mode 100644 boost/mpl/pop_front_fwd.hpp delete mode 100644 boost/mpl/print.hpp delete mode 100644 boost/mpl/prior.hpp delete mode 100644 boost/mpl/push_back.hpp delete mode 100644 boost/mpl/push_back_fwd.hpp delete mode 100644 boost/mpl/push_front.hpp delete mode 100644 boost/mpl/push_front_fwd.hpp delete mode 100644 boost/mpl/reverse_fold.hpp delete mode 100644 boost/mpl/same_as.hpp delete mode 100644 boost/mpl/sequence_tag.hpp delete mode 100644 boost/mpl/sequence_tag_fwd.hpp delete mode 100644 boost/mpl/size.hpp delete mode 100644 boost/mpl/size_fwd.hpp delete mode 100644 boost/mpl/size_t.hpp delete mode 100644 boost/mpl/size_t_fwd.hpp delete mode 100644 boost/mpl/sizeof.hpp delete mode 100644 boost/mpl/transform.hpp delete mode 100644 boost/noncopyable.hpp delete mode 100644 boost/none.hpp delete mode 100644 boost/none_t.hpp delete mode 100644 boost/optional.hpp delete mode 100644 boost/optional/bad_optional_access.hpp delete mode 100644 boost/optional/detail/old_optional_implementation.hpp delete mode 100644 boost/optional/detail/optional_aligned_storage.hpp delete mode 100644 boost/optional/detail/optional_config.hpp delete mode 100644 boost/optional/detail/optional_factory_support.hpp delete mode 100644 boost/optional/detail/optional_hash.hpp delete mode 100644 boost/optional/detail/optional_reference_spec.hpp delete mode 100644 boost/optional/detail/optional_relops.hpp delete mode 100644 boost/optional/detail/optional_swap.hpp delete mode 100644 boost/optional/detail/optional_trivially_copyable_base.hpp delete mode 100644 boost/optional/optional.hpp delete mode 100644 boost/optional/optional_fwd.hpp delete mode 100644 boost/pointee.hpp delete mode 100644 boost/predef.h delete mode 100644 boost/predef/compiler.h delete mode 100644 boost/predef/compiler/borland.h delete mode 100644 boost/predef/compiler/clang.h delete mode 100644 boost/predef/compiler/comeau.h delete mode 100644 boost/predef/compiler/compaq.h delete mode 100644 boost/predef/compiler/diab.h delete mode 100644 boost/predef/compiler/digitalmars.h delete mode 100644 boost/predef/compiler/dignus.h delete mode 100644 boost/predef/compiler/edg.h delete mode 100644 boost/predef/compiler/ekopath.h delete mode 100644 boost/predef/compiler/gcc.h delete mode 100644 boost/predef/compiler/gcc_xml.h delete mode 100644 boost/predef/compiler/greenhills.h delete mode 100644 boost/predef/compiler/hp_acc.h delete mode 100644 boost/predef/compiler/iar.h delete mode 100644 boost/predef/compiler/ibm.h delete mode 100644 boost/predef/compiler/intel.h delete mode 100644 boost/predef/compiler/kai.h delete mode 100644 boost/predef/compiler/llvm.h delete mode 100644 boost/predef/compiler/metaware.h delete mode 100644 boost/predef/compiler/metrowerks.h delete mode 100644 boost/predef/compiler/microtec.h delete mode 100644 boost/predef/compiler/mpw.h delete mode 100644 boost/predef/compiler/nvcc.h delete mode 100644 boost/predef/compiler/palm.h delete mode 100644 boost/predef/compiler/pgi.h delete mode 100644 boost/predef/compiler/sgi_mipspro.h delete mode 100644 boost/predef/compiler/sunpro.h delete mode 100644 boost/predef/compiler/tendra.h delete mode 100644 boost/predef/compiler/visualc.h delete mode 100644 boost/predef/compiler/watcom.h delete mode 100644 boost/predef/detail/_exception.h delete mode 100644 boost/predef/detail/comp_detected.h delete mode 100644 boost/predef/hardware.h delete mode 100644 boost/predef/hardware/simd.h delete mode 100644 boost/predef/hardware/simd/arm.h delete mode 100644 boost/predef/hardware/simd/arm/versions.h delete mode 100644 boost/predef/hardware/simd/ppc.h delete mode 100644 boost/predef/hardware/simd/ppc/versions.h delete mode 100644 boost/predef/hardware/simd/x86_amd.h delete mode 100644 boost/predef/hardware/simd/x86_amd/versions.h delete mode 100644 boost/predef/language.h delete mode 100644 boost/predef/language/cuda.h delete mode 100644 boost/predef/language/objc.h delete mode 100644 boost/predef/language/stdc.h delete mode 100644 boost/predef/language/stdcpp.h delete mode 100644 boost/predef/library.h delete mode 100644 boost/predef/library/c.h delete mode 100644 boost/predef/library/c/uc.h delete mode 100644 boost/predef/library/c/vms.h delete mode 100644 boost/predef/library/c/zos.h delete mode 100644 boost/predef/library/std.h delete mode 100644 boost/predef/library/std/_prefix.h delete mode 100644 boost/predef/library/std/cxx.h delete mode 100644 boost/predef/library/std/dinkumware.h delete mode 100644 boost/predef/library/std/libcomo.h delete mode 100644 boost/predef/library/std/modena.h delete mode 100644 boost/predef/library/std/msl.h delete mode 100644 boost/predef/library/std/roguewave.h delete mode 100644 boost/predef/library/std/sgi.h delete mode 100644 boost/predef/library/std/stdcpp3.h delete mode 100644 boost/predef/library/std/stlport.h delete mode 100644 boost/predef/library/std/vacpp.h delete mode 100644 boost/predef/os.h delete mode 100644 boost/predef/os/aix.h delete mode 100644 boost/predef/os/amigaos.h delete mode 100644 boost/predef/os/beos.h delete mode 100644 boost/predef/os/haiku.h delete mode 100644 boost/predef/os/hpux.h delete mode 100644 boost/predef/os/irix.h delete mode 100644 boost/predef/os/linux.h delete mode 100644 boost/predef/os/os400.h delete mode 100644 boost/predef/os/qnxnto.h delete mode 100644 boost/predef/os/solaris.h delete mode 100644 boost/predef/os/unix.h delete mode 100644 boost/predef/os/vms.h delete mode 100644 boost/predef/other.h delete mode 100644 boost/predef/other/wordsize.h delete mode 100644 boost/predef/other/workaround.h delete mode 100644 boost/predef/version.h delete mode 100644 boost/preprocessor/comparison/greater.hpp delete mode 100644 boost/preprocessor/comparison/less.hpp delete mode 100644 boost/preprocessor/enum.hpp delete mode 100644 boost/preprocessor/enum_params.hpp delete mode 100644 boost/preprocessor/enum_params_with_a_default.hpp delete mode 100644 boost/preprocessor/enum_params_with_defaults.hpp delete mode 100644 boost/preprocessor/facilities/intercept.hpp delete mode 100644 boost/preprocessor/facilities/limits/intercept_1024.hpp delete mode 100644 boost/preprocessor/facilities/limits/intercept_256.hpp delete mode 100644 boost/preprocessor/facilities/limits/intercept_512.hpp delete mode 100644 boost/preprocessor/repeat_from_to.hpp delete mode 100644 boost/preprocessor/repetition/enum.hpp delete mode 100644 boost/preprocessor/repetition/enum_params_with_a_default.hpp delete mode 100644 boost/preprocessor/repetition/enum_params_with_defaults.hpp delete mode 100644 boost/ratio/config.hpp delete mode 100644 boost/ratio/detail/mpl/abs.hpp delete mode 100644 boost/ratio/detail/mpl/gcd.hpp delete mode 100644 boost/ratio/detail/mpl/lcm.hpp delete mode 100644 boost/ratio/detail/mpl/sign.hpp delete mode 100644 boost/ratio/detail/overflow_helpers.hpp delete mode 100644 boost/ratio/mpl/rational_c_tag.hpp delete mode 100644 boost/ratio/ratio.hpp delete mode 100644 boost/ratio/ratio_fwd.hpp delete mode 100644 boost/rational.hpp delete mode 100644 boost/ref.hpp delete mode 100644 boost/regex.hpp delete mode 100644 boost/regex/config.hpp delete mode 100644 boost/regex/config/borland.hpp delete mode 100644 boost/regex/config/cwchar.hpp delete mode 100644 boost/regex/pattern_except.hpp delete mode 100644 boost/regex/pending/static_mutex.hpp delete mode 100644 boost/regex/regex_traits.hpp delete mode 100644 boost/regex/user.hpp delete mode 100644 boost/regex/v4/basic_regex.hpp delete mode 100644 boost/regex/v4/basic_regex_creator.hpp delete mode 100644 boost/regex/v4/basic_regex_parser.hpp delete mode 100644 boost/regex/v4/c_regex_traits.hpp delete mode 100644 boost/regex/v4/char_regex_traits.hpp delete mode 100644 boost/regex/v4/cpp_regex_traits.hpp delete mode 100644 boost/regex/v4/cregex.hpp delete mode 100644 boost/regex/v4/error_type.hpp delete mode 100644 boost/regex/v4/indexed_bit_flag.hpp delete mode 100644 boost/regex/v4/iterator_category.hpp delete mode 100644 boost/regex/v4/iterator_traits.hpp delete mode 100644 boost/regex/v4/match_flags.hpp delete mode 100644 boost/regex/v4/match_results.hpp delete mode 100644 boost/regex/v4/mem_block_cache.hpp delete mode 100644 boost/regex/v4/object_cache.hpp delete mode 100644 boost/regex/v4/pattern_except.hpp delete mode 100644 boost/regex/v4/perl_matcher.hpp delete mode 100644 boost/regex/v4/perl_matcher_common.hpp delete mode 100644 boost/regex/v4/perl_matcher_non_recursive.hpp delete mode 100644 boost/regex/v4/perl_matcher_recursive.hpp delete mode 100644 boost/regex/v4/primary_transform.hpp delete mode 100644 boost/regex/v4/protected_call.hpp delete mode 100644 boost/regex/v4/regbase.hpp delete mode 100644 boost/regex/v4/regex.hpp delete mode 100644 boost/regex/v4/regex_format.hpp delete mode 100644 boost/regex/v4/regex_fwd.hpp delete mode 100644 boost/regex/v4/regex_grep.hpp delete mode 100644 boost/regex/v4/regex_iterator.hpp delete mode 100644 boost/regex/v4/regex_match.hpp delete mode 100644 boost/regex/v4/regex_merge.hpp delete mode 100644 boost/regex/v4/regex_raw_buffer.hpp delete mode 100644 boost/regex/v4/regex_replace.hpp delete mode 100644 boost/regex/v4/regex_search.hpp delete mode 100644 boost/regex/v4/regex_split.hpp delete mode 100644 boost/regex/v4/regex_token_iterator.hpp delete mode 100644 boost/regex/v4/regex_traits.hpp delete mode 100644 boost/regex/v4/regex_traits_defaults.hpp delete mode 100644 boost/regex/v4/regex_workaround.hpp delete mode 100644 boost/regex/v4/states.hpp delete mode 100644 boost/regex/v4/sub_match.hpp delete mode 100644 boost/regex/v4/syntax_type.hpp delete mode 100644 boost/regex/v4/w32_regex_traits.hpp delete mode 100644 boost/regex/v5/basic_regex.hpp delete mode 100644 boost/regex/v5/basic_regex_creator.hpp delete mode 100644 boost/regex/v5/basic_regex_parser.hpp delete mode 100644 boost/regex/v5/c_regex_traits.hpp delete mode 100644 boost/regex/v5/char_regex_traits.hpp delete mode 100644 boost/regex/v5/cpp_regex_traits.hpp delete mode 100644 boost/regex/v5/cregex.hpp delete mode 100644 boost/regex/v5/error_type.hpp delete mode 100644 boost/regex/v5/iterator_category.hpp delete mode 100644 boost/regex/v5/match_flags.hpp delete mode 100644 boost/regex/v5/match_results.hpp delete mode 100644 boost/regex/v5/mem_block_cache.hpp delete mode 100644 boost/regex/v5/object_cache.hpp delete mode 100644 boost/regex/v5/pattern_except.hpp delete mode 100644 boost/regex/v5/perl_matcher.hpp delete mode 100644 boost/regex/v5/perl_matcher_common.hpp delete mode 100644 boost/regex/v5/perl_matcher_non_recursive.hpp delete mode 100644 boost/regex/v5/primary_transform.hpp delete mode 100644 boost/regex/v5/regbase.hpp delete mode 100644 boost/regex/v5/regex.hpp delete mode 100644 boost/regex/v5/regex_format.hpp delete mode 100644 boost/regex/v5/regex_fwd.hpp delete mode 100644 boost/regex/v5/regex_grep.hpp delete mode 100644 boost/regex/v5/regex_iterator.hpp delete mode 100644 boost/regex/v5/regex_match.hpp delete mode 100644 boost/regex/v5/regex_merge.hpp delete mode 100644 boost/regex/v5/regex_raw_buffer.hpp delete mode 100644 boost/regex/v5/regex_replace.hpp delete mode 100644 boost/regex/v5/regex_search.hpp delete mode 100644 boost/regex/v5/regex_split.hpp delete mode 100644 boost/regex/v5/regex_token_iterator.hpp delete mode 100644 boost/regex/v5/regex_traits.hpp delete mode 100644 boost/regex/v5/regex_traits_defaults.hpp delete mode 100644 boost/regex/v5/regex_workaround.hpp delete mode 100644 boost/regex/v5/states.hpp delete mode 100644 boost/regex/v5/sub_match.hpp delete mode 100644 boost/regex/v5/syntax_type.hpp delete mode 100644 boost/regex/v5/w32_regex_traits.hpp delete mode 100644 boost/regex_fwd.hpp delete mode 100644 boost/scoped_ptr.hpp delete mode 100644 boost/serialization/access.hpp delete mode 100644 boost/serialization/archive_input_unordered_map.hpp delete mode 100644 boost/serialization/archive_input_unordered_set.hpp delete mode 100644 boost/serialization/array.hpp delete mode 100644 boost/serialization/array_optimization.hpp delete mode 100644 boost/serialization/array_wrapper.hpp delete mode 100644 boost/serialization/assume_abstract.hpp delete mode 100644 boost/serialization/base_object.hpp delete mode 100644 boost/serialization/binary_object.hpp delete mode 100644 boost/serialization/bitset.hpp delete mode 100644 boost/serialization/collection_size_type.hpp delete mode 100644 boost/serialization/collection_traits.hpp delete mode 100644 boost/serialization/collections_load_imp.hpp delete mode 100644 boost/serialization/collections_save_imp.hpp delete mode 100644 boost/serialization/config.hpp delete mode 100644 boost/serialization/deque.hpp delete mode 100644 boost/serialization/detail/is_default_constructible.hpp delete mode 100644 boost/serialization/detail/stack_constructor.hpp delete mode 100644 boost/serialization/export.hpp delete mode 100644 boost/serialization/extended_type_info.hpp delete mode 100644 boost/serialization/extended_type_info_no_rtti.hpp delete mode 100644 boost/serialization/extended_type_info_typeid.hpp delete mode 100644 boost/serialization/factory.hpp delete mode 100644 boost/serialization/force_include.hpp delete mode 100644 boost/serialization/is_bitwise_serializable.hpp delete mode 100644 boost/serialization/item_version_type.hpp delete mode 100644 boost/serialization/level.hpp delete mode 100644 boost/serialization/level_enum.hpp delete mode 100644 boost/serialization/library_version_type.hpp delete mode 100644 boost/serialization/list.hpp delete mode 100644 boost/serialization/map.hpp delete mode 100644 boost/serialization/nvp.hpp delete mode 100644 boost/serialization/optional.hpp delete mode 100644 boost/serialization/priority_queue.hpp delete mode 100644 boost/serialization/serialization.hpp delete mode 100644 boost/serialization/set.hpp delete mode 100644 boost/serialization/shared_ptr.hpp delete mode 100644 boost/serialization/shared_ptr_helper.hpp delete mode 100644 boost/serialization/singleton.hpp delete mode 100644 boost/serialization/smart_cast.hpp delete mode 100644 boost/serialization/split_free.hpp delete mode 100644 boost/serialization/split_member.hpp delete mode 100644 boost/serialization/state_saver.hpp delete mode 100644 boost/serialization/static_warning.hpp delete mode 100644 boost/serialization/string.hpp delete mode 100644 boost/serialization/strong_typedef.hpp delete mode 100644 boost/serialization/throw_exception.hpp delete mode 100644 boost/serialization/tracking.hpp delete mode 100644 boost/serialization/tracking_enum.hpp delete mode 100644 boost/serialization/traits.hpp delete mode 100644 boost/serialization/type_info_implementation.hpp delete mode 100644 boost/serialization/unique_ptr.hpp delete mode 100644 boost/serialization/unordered_collections_load_imp.hpp delete mode 100644 boost/serialization/unordered_collections_save_imp.hpp delete mode 100644 boost/serialization/unordered_map.hpp delete mode 100644 boost/serialization/unordered_set.hpp delete mode 100644 boost/serialization/utility.hpp delete mode 100644 boost/serialization/vector.hpp delete mode 100644 boost/serialization/version.hpp delete mode 100644 boost/serialization/void_cast.hpp delete mode 100644 boost/serialization/void_cast_fwd.hpp delete mode 100644 boost/serialization/weak_ptr.hpp delete mode 100644 boost/serialization/wrapper.hpp delete mode 100644 boost/smart_ptr/allocate_shared_array.hpp delete mode 100644 boost/smart_ptr/detail/sp_forward.hpp delete mode 100644 boost/smart_ptr/make_shared.hpp delete mode 100644 boost/smart_ptr/make_shared_array.hpp delete mode 100644 boost/smart_ptr/make_shared_object.hpp delete mode 100644 boost/smart_ptr/weak_ptr.hpp delete mode 100644 boost/spirit/home/classic/core/assert.hpp delete mode 100644 boost/spirit/home/classic/core/composite/actions.hpp delete mode 100644 boost/spirit/home/classic/core/composite/alternative.hpp delete mode 100644 boost/spirit/home/classic/core/composite/composite.hpp delete mode 100644 boost/spirit/home/classic/core/composite/difference.hpp delete mode 100644 boost/spirit/home/classic/core/composite/directives.hpp delete mode 100644 boost/spirit/home/classic/core/composite/exclusive_or.hpp delete mode 100644 boost/spirit/home/classic/core/composite/impl/alternative.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/difference.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/directives.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/exclusive_or.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/intersection.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/kleene_star.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/list.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/optional.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/positive.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/sequence.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/sequential_and.ipp delete mode 100644 boost/spirit/home/classic/core/composite/impl/sequential_or.ipp delete mode 100644 boost/spirit/home/classic/core/composite/intersection.hpp delete mode 100644 boost/spirit/home/classic/core/composite/kleene_star.hpp delete mode 100644 boost/spirit/home/classic/core/composite/list.hpp delete mode 100644 boost/spirit/home/classic/core/composite/operators.hpp delete mode 100644 boost/spirit/home/classic/core/composite/optional.hpp delete mode 100644 boost/spirit/home/classic/core/composite/positive.hpp delete mode 100644 boost/spirit/home/classic/core/composite/sequence.hpp delete mode 100644 boost/spirit/home/classic/core/composite/sequential_and.hpp delete mode 100644 boost/spirit/home/classic/core/composite/sequential_or.hpp delete mode 100644 boost/spirit/home/classic/core/config.hpp delete mode 100644 boost/spirit/home/classic/core/impl/match.ipp delete mode 100644 boost/spirit/home/classic/core/impl/match_attr_traits.ipp delete mode 100644 boost/spirit/home/classic/core/impl/parser.ipp delete mode 100644 boost/spirit/home/classic/core/match.hpp delete mode 100644 boost/spirit/home/classic/core/nil.hpp delete mode 100644 boost/spirit/home/classic/core/non_terminal/impl/rule.ipp delete mode 100644 boost/spirit/home/classic/core/non_terminal/parser_context.hpp delete mode 100644 boost/spirit/home/classic/core/non_terminal/parser_id.hpp delete mode 100644 boost/spirit/home/classic/core/non_terminal/rule.hpp delete mode 100644 boost/spirit/home/classic/core/parser.hpp delete mode 100644 boost/spirit/home/classic/core/primitives/impl/numerics.ipp delete mode 100644 boost/spirit/home/classic/core/primitives/impl/primitives.ipp delete mode 100644 boost/spirit/home/classic/core/primitives/numerics.hpp delete mode 100644 boost/spirit/home/classic/core/primitives/numerics_fwd.hpp delete mode 100644 boost/spirit/home/classic/core/primitives/primitives.hpp delete mode 100644 boost/spirit/home/classic/core/safe_bool.hpp delete mode 100644 boost/spirit/home/classic/core/scanner/impl/skipper.ipp delete mode 100644 boost/spirit/home/classic/core/scanner/scanner.hpp delete mode 100644 boost/spirit/home/classic/core/scanner/scanner_fwd.hpp delete mode 100644 boost/spirit/home/classic/core/scanner/skipper.hpp delete mode 100644 boost/spirit/home/classic/core/scanner/skipper_fwd.hpp delete mode 100644 boost/spirit/home/classic/debug.hpp delete mode 100644 boost/spirit/home/classic/debug/debug_node.hpp delete mode 100644 boost/spirit/home/classic/debug/minimal.hpp delete mode 100644 boost/spirit/home/classic/meta/as_parser.hpp delete mode 100644 boost/spirit/home/classic/namespace.hpp delete mode 100644 boost/spirit/home/classic/utility/chset.hpp delete mode 100644 boost/spirit/home/classic/utility/chset_operators.hpp delete mode 100644 boost/spirit/home/classic/utility/impl/chset.ipp delete mode 100644 boost/spirit/home/classic/utility/impl/chset/basic_chset.hpp delete mode 100644 boost/spirit/home/classic/utility/impl/chset/basic_chset.ipp delete mode 100644 boost/spirit/home/classic/utility/impl/chset/range_run.hpp delete mode 100644 boost/spirit/home/classic/utility/impl/chset/range_run.ipp delete mode 100644 boost/spirit/home/classic/utility/impl/chset_operators.ipp delete mode 100644 boost/spirit/home/classic/version.hpp delete mode 100644 boost/spirit/include/classic_actions.hpp delete mode 100644 boost/spirit/include/classic_chset.hpp delete mode 100644 boost/spirit/include/classic_numerics.hpp delete mode 100644 boost/spirit/include/classic_operators.hpp delete mode 100644 boost/spirit/include/classic_rule.hpp delete mode 100644 boost/stacktrace.hpp delete mode 100644 boost/stacktrace/detail/addr2line_impls.hpp delete mode 100644 boost/stacktrace/detail/collect_msvc.ipp delete mode 100644 boost/stacktrace/detail/collect_noop.ipp delete mode 100644 boost/stacktrace/detail/collect_unwind.ipp delete mode 100644 boost/stacktrace/detail/frame_decl.hpp delete mode 100644 boost/stacktrace/detail/frame_msvc.ipp delete mode 100644 boost/stacktrace/detail/frame_noop.ipp delete mode 100644 boost/stacktrace/detail/frame_unwind.ipp delete mode 100644 boost/stacktrace/detail/libbacktrace_impls.hpp delete mode 100644 boost/stacktrace/detail/location_from_symbol.hpp delete mode 100644 boost/stacktrace/detail/pop_options.h delete mode 100644 boost/stacktrace/detail/push_options.h delete mode 100644 boost/stacktrace/detail/safe_dump_noop.ipp delete mode 100644 boost/stacktrace/detail/safe_dump_posix.ipp delete mode 100644 boost/stacktrace/detail/safe_dump_win.ipp delete mode 100644 boost/stacktrace/detail/to_dec_array.hpp delete mode 100644 boost/stacktrace/detail/to_hex_array.hpp delete mode 100644 boost/stacktrace/detail/try_dec_convert.hpp delete mode 100644 boost/stacktrace/detail/unwind_base_impls.hpp delete mode 100644 boost/stacktrace/detail/void_ptr_cast.hpp delete mode 100644 boost/stacktrace/frame.hpp delete mode 100644 boost/stacktrace/safe_dump_to.hpp delete mode 100644 boost/stacktrace/stacktrace.hpp delete mode 100644 boost/stacktrace/stacktrace_fwd.hpp delete mode 100644 boost/system/result.hpp delete mode 100644 boost/type_index.hpp delete mode 100644 boost/type_index/ctti_type_index.hpp delete mode 100644 boost/type_index/detail/compile_time_type_info.hpp delete mode 100644 boost/type_index/detail/ctti_register_class.hpp delete mode 100644 boost/type_index/detail/stl_register_class.hpp delete mode 100644 boost/type_index/stl_type_index.hpp delete mode 100644 boost/type_index/type_index_facade.hpp delete mode 100644 boost/type_traits/composite_traits.hpp delete mode 100644 boost/type_traits/is_bounded_array.hpp delete mode 100644 boost/type_traits/is_unbounded_array.hpp delete mode 100644 boost/type_traits/same_traits.hpp delete mode 100644 boost/url.hpp delete mode 100644 boost/url/authority_view.hpp delete mode 100644 boost/url/decode_view.hpp delete mode 100644 boost/url/detail/any_params_iter.hpp delete mode 100644 boost/url/detail/any_segments_iter.hpp delete mode 100644 boost/url/detail/config.hpp delete mode 100644 boost/url/detail/decode.hpp delete mode 100644 boost/url/detail/encode.hpp delete mode 100644 boost/url/detail/except.hpp delete mode 100644 boost/url/detail/format_args.hpp delete mode 100644 boost/url/detail/impl/format_args.hpp delete mode 100644 boost/url/detail/move_chars.hpp delete mode 100644 boost/url/detail/normalize.hpp delete mode 100644 boost/url/detail/optional_string.hpp delete mode 100644 boost/url/detail/over_allocator.hpp delete mode 100644 boost/url/detail/params_iter_impl.hpp delete mode 100644 boost/url/detail/parts_base.hpp delete mode 100644 boost/url/detail/path.hpp delete mode 100644 boost/url/detail/pattern.hpp delete mode 100644 boost/url/detail/pct_format.hpp delete mode 100644 boost/url/detail/print.hpp delete mode 100644 boost/url/detail/replacement_field_rule.hpp delete mode 100644 boost/url/detail/segments_iter_impl.hpp delete mode 100644 boost/url/detail/string_view.hpp delete mode 100644 boost/url/detail/url_impl.hpp delete mode 100644 boost/url/detail/vformat.hpp delete mode 100644 boost/url/encode.hpp delete mode 100644 boost/url/encoding_opts.hpp delete mode 100644 boost/url/error.hpp delete mode 100644 boost/url/error_types.hpp delete mode 100644 boost/url/format.hpp delete mode 100644 boost/url/grammar.hpp delete mode 100644 boost/url/grammar/all_chars.hpp delete mode 100644 boost/url/grammar/alnum_chars.hpp delete mode 100644 boost/url/grammar/alpha_chars.hpp delete mode 100644 boost/url/grammar/charset.hpp delete mode 100644 boost/url/grammar/ci_string.hpp delete mode 100644 boost/url/grammar/dec_octet_rule.hpp delete mode 100644 boost/url/grammar/delim_rule.hpp delete mode 100644 boost/url/grammar/detail/charset.hpp delete mode 100644 boost/url/grammar/detail/ci_string.hpp delete mode 100644 boost/url/grammar/detail/recycled.hpp delete mode 100644 boost/url/grammar/detail/tuple.hpp delete mode 100644 boost/url/grammar/digit_chars.hpp delete mode 100644 boost/url/grammar/error.hpp delete mode 100644 boost/url/grammar/hexdig_chars.hpp delete mode 100644 boost/url/grammar/impl/error.hpp delete mode 100644 boost/url/grammar/impl/not_empty_rule.hpp delete mode 100644 boost/url/grammar/impl/optional_rule.hpp delete mode 100644 boost/url/grammar/impl/parse.hpp delete mode 100644 boost/url/grammar/impl/range_rule.hpp delete mode 100644 boost/url/grammar/impl/recycled.hpp delete mode 100644 boost/url/grammar/impl/token_rule.hpp delete mode 100644 boost/url/grammar/impl/tuple_rule.hpp delete mode 100644 boost/url/grammar/impl/unsigned_rule.hpp delete mode 100644 boost/url/grammar/impl/variant_rule.hpp delete mode 100644 boost/url/grammar/literal_rule.hpp delete mode 100644 boost/url/grammar/lut_chars.hpp delete mode 100644 boost/url/grammar/not_empty_rule.hpp delete mode 100644 boost/url/grammar/optional_rule.hpp delete mode 100644 boost/url/grammar/parse.hpp delete mode 100644 boost/url/grammar/range_rule.hpp delete mode 100644 boost/url/grammar/recycled.hpp delete mode 100644 boost/url/grammar/string_token.hpp delete mode 100644 boost/url/grammar/string_view_base.hpp delete mode 100644 boost/url/grammar/token_rule.hpp delete mode 100644 boost/url/grammar/tuple_rule.hpp delete mode 100644 boost/url/grammar/type_traits.hpp delete mode 100644 boost/url/grammar/unsigned_rule.hpp delete mode 100644 boost/url/grammar/variant_rule.hpp delete mode 100644 boost/url/grammar/vchars.hpp delete mode 100644 boost/url/host_type.hpp delete mode 100644 boost/url/ignore_case.hpp delete mode 100644 boost/url/impl/decode_view.hpp delete mode 100644 boost/url/impl/encode.hpp delete mode 100644 boost/url/impl/error.hpp delete mode 100644 boost/url/impl/params_base.hpp delete mode 100644 boost/url/impl/params_encoded_base.hpp delete mode 100644 boost/url/impl/params_encoded_ref.hpp delete mode 100644 boost/url/impl/params_ref.hpp delete mode 100644 boost/url/impl/segments_base.hpp delete mode 100644 boost/url/impl/segments_encoded_base.hpp delete mode 100644 boost/url/impl/segments_encoded_ref.hpp delete mode 100644 boost/url/impl/segments_ref.hpp delete mode 100644 boost/url/ipv4_address.hpp delete mode 100644 boost/url/ipv6_address.hpp delete mode 100644 boost/url/optional.hpp delete mode 100644 boost/url/param.hpp delete mode 100644 boost/url/params_base.hpp delete mode 100644 boost/url/params_encoded_base.hpp delete mode 100644 boost/url/params_encoded_ref.hpp delete mode 100644 boost/url/params_encoded_view.hpp delete mode 100644 boost/url/params_ref.hpp delete mode 100644 boost/url/params_view.hpp delete mode 100644 boost/url/parse.hpp delete mode 100644 boost/url/parse_path.hpp delete mode 100644 boost/url/parse_query.hpp delete mode 100644 boost/url/pct_string_view.hpp delete mode 100644 boost/url/rfc/absolute_uri_rule.hpp delete mode 100644 boost/url/rfc/authority_rule.hpp delete mode 100644 boost/url/rfc/detail/charsets.hpp delete mode 100644 boost/url/rfc/detail/fragment_part_rule.hpp delete mode 100644 boost/url/rfc/detail/h16_rule.hpp delete mode 100644 boost/url/rfc/detail/hier_part_rule.hpp delete mode 100644 boost/url/rfc/detail/host_rule.hpp delete mode 100644 boost/url/rfc/detail/ip_literal_rule.hpp delete mode 100644 boost/url/rfc/detail/ipv6_addrz_rule.hpp delete mode 100644 boost/url/rfc/detail/ipvfuture_rule.hpp delete mode 100644 boost/url/rfc/detail/path_rules.hpp delete mode 100644 boost/url/rfc/detail/port_rule.hpp delete mode 100644 boost/url/rfc/detail/query_part_rule.hpp delete mode 100644 boost/url/rfc/detail/reg_name_rule.hpp delete mode 100644 boost/url/rfc/detail/relative_part_rule.hpp delete mode 100644 boost/url/rfc/detail/scheme_rule.hpp delete mode 100644 boost/url/rfc/detail/userinfo_rule.hpp delete mode 100644 boost/url/rfc/gen_delim_chars.hpp delete mode 100644 boost/url/rfc/impl/pct_encoded_rule.hpp delete mode 100644 boost/url/rfc/ipv4_address_rule.hpp delete mode 100644 boost/url/rfc/ipv6_address_rule.hpp delete mode 100644 boost/url/rfc/origin_form_rule.hpp delete mode 100644 boost/url/rfc/pchars.hpp delete mode 100644 boost/url/rfc/pct_encoded_rule.hpp delete mode 100644 boost/url/rfc/query_rule.hpp delete mode 100644 boost/url/rfc/relative_ref_rule.hpp delete mode 100644 boost/url/rfc/reserved_chars.hpp delete mode 100644 boost/url/rfc/sub_delim_chars.hpp delete mode 100644 boost/url/rfc/unreserved_chars.hpp delete mode 100644 boost/url/rfc/uri_reference_rule.hpp delete mode 100644 boost/url/rfc/uri_rule.hpp delete mode 100644 boost/url/scheme.hpp delete mode 100644 boost/url/segments_base.hpp delete mode 100644 boost/url/segments_encoded_base.hpp delete mode 100644 boost/url/segments_encoded_ref.hpp delete mode 100644 boost/url/segments_encoded_view.hpp delete mode 100644 boost/url/segments_ref.hpp delete mode 100644 boost/url/segments_view.hpp delete mode 100644 boost/url/static_url.hpp delete mode 100644 boost/url/url.hpp delete mode 100644 boost/url/url_base.hpp delete mode 100644 boost/url/url_view.hpp delete mode 100644 boost/url/url_view_base.hpp delete mode 100644 boost/url/urls.hpp delete mode 100644 boost/url/variant.hpp delete mode 100644 boost/utility/addressof.hpp delete mode 100644 boost/utility/compare_pointees.hpp delete mode 100644 boost/utility/declval.hpp delete mode 100644 boost/utility/detail/result_of_iterate.hpp delete mode 100644 boost/utility/detail/result_of_variadic.hpp delete mode 100644 boost/utility/result_of.hpp delete mode 100644 boost/variant.hpp delete mode 100644 boost/variant/apply_visitor.hpp delete mode 100644 boost/variant/bad_visit.hpp delete mode 100644 boost/variant/detail/apply_visitor_binary.hpp delete mode 100644 boost/variant/detail/apply_visitor_delayed.hpp delete mode 100644 boost/variant/detail/apply_visitor_unary.hpp delete mode 100644 boost/variant/detail/backup_holder.hpp delete mode 100644 boost/variant/detail/cast_storage.hpp delete mode 100644 boost/variant/detail/config.hpp delete mode 100644 boost/variant/detail/element_index.hpp delete mode 100644 boost/variant/detail/enable_recursive.hpp delete mode 100644 boost/variant/detail/enable_recursive_fwd.hpp delete mode 100644 boost/variant/detail/forced_return.hpp delete mode 100644 boost/variant/detail/has_result_type.hpp delete mode 100644 boost/variant/detail/hash_variant.hpp delete mode 100644 boost/variant/detail/initializer.hpp delete mode 100644 boost/variant/detail/make_variant_list.hpp delete mode 100644 boost/variant/detail/move.hpp delete mode 100644 boost/variant/detail/over_sequence.hpp delete mode 100644 boost/variant/detail/std_hash.hpp delete mode 100644 boost/variant/detail/substitute.hpp delete mode 100644 boost/variant/detail/substitute_fwd.hpp delete mode 100644 boost/variant/detail/variant_io.hpp delete mode 100644 boost/variant/detail/visitation_impl.hpp delete mode 100644 boost/variant/get.hpp delete mode 100644 boost/variant/recursive_variant.hpp delete mode 100644 boost/variant/recursive_wrapper.hpp delete mode 100644 boost/variant/recursive_wrapper_fwd.hpp delete mode 100644 boost/variant/static_visitor.hpp delete mode 100644 boost/variant/variant.hpp delete mode 100644 boost/variant/variant_fwd.hpp delete mode 100644 boost/variant/visitor_ptr.hpp delete mode 100644 boost/variant2/variant.hpp delete mode 100644 boost/weak_ptr.hpp delete mode 100644 boost/winapi/get_process_times.hpp delete mode 100644 boost/winapi/get_thread_times.hpp delete mode 100644 boost/winapi/stack_backtrace.hpp delete mode 100644 boost/winapi/timers.hpp delete mode 100644 libs/chrono/build/Jamfile.v2 delete mode 100644 libs/chrono/src/chrono.cpp delete mode 100644 libs/chrono/src/process_cpu_clocks.cpp delete mode 100644 libs/chrono/src/thread_clock.cpp delete mode 100644 libs/config/test/config_info.cpp delete mode 100644 libs/date_time/build/Jamfile.v2 delete mode 100644 libs/date_time/src/date_time.doc delete mode 100644 libs/date_time/src/gregorian/date_generators.cpp delete mode 100644 libs/date_time/src/gregorian/greg_month.cpp delete mode 100644 libs/date_time/src/gregorian/greg_names.hpp delete mode 100644 libs/date_time/src/gregorian/greg_weekday.cpp delete mode 100644 libs/date_time/src/gregorian/gregorian_types.cpp delete mode 100644 libs/date_time/src/posix_time/posix_time_types.cpp delete mode 100644 libs/exception/build/Jamfile.v2 delete mode 100644 libs/exception/src/clone_current_exception_non_intrusive.cpp delete mode 100644 libs/iostreams/build/Jamfile.v2 delete mode 100644 libs/iostreams/build/has_lzma_cputhreads.cpp delete mode 100644 libs/iostreams/src/bzip2.cpp delete mode 100644 libs/iostreams/src/file_descriptor.cpp delete mode 100644 libs/iostreams/src/gzip.cpp delete mode 100644 libs/iostreams/src/lzma.cpp delete mode 100644 libs/iostreams/src/mapped_file.cpp delete mode 100644 libs/iostreams/src/zlib.cpp delete mode 100644 libs/iostreams/src/zstd.cpp delete mode 100644 libs/locale/build/Jamfile.v2 delete mode 100644 libs/locale/build/has_iconv.cpp delete mode 100644 libs/locale/build/has_icu_test.cpp delete mode 100644 libs/locale/build/has_xlocale.cpp delete mode 100644 libs/locale/build/option.cpp delete mode 100644 libs/locale/src/boost/locale/encoding/codepage.cpp delete mode 100644 libs/locale/src/boost/locale/encoding/conv.hpp delete mode 100644 libs/locale/src/boost/locale/encoding/iconv_codepage.ipp delete mode 100644 libs/locale/src/boost/locale/encoding/uconv_codepage.ipp delete mode 100644 libs/locale/src/boost/locale/encoding/wconv_codepage.ipp delete mode 100644 libs/locale/src/boost/locale/icu/all_generator.hpp delete mode 100644 libs/locale/src/boost/locale/icu/boundary.cpp delete mode 100644 libs/locale/src/boost/locale/icu/cdata.hpp delete mode 100644 libs/locale/src/boost/locale/icu/codecvt.cpp delete mode 100644 libs/locale/src/boost/locale/icu/codecvt.hpp delete mode 100644 libs/locale/src/boost/locale/icu/collator.cpp delete mode 100644 libs/locale/src/boost/locale/icu/conversion.cpp delete mode 100644 libs/locale/src/boost/locale/icu/date_time.cpp delete mode 100644 libs/locale/src/boost/locale/icu/formatter.cpp delete mode 100644 libs/locale/src/boost/locale/icu/formatter.hpp delete mode 100644 libs/locale/src/boost/locale/icu/formatters_cache.cpp delete mode 100644 libs/locale/src/boost/locale/icu/formatters_cache.hpp delete mode 100644 libs/locale/src/boost/locale/icu/icu_backend.cpp delete mode 100644 libs/locale/src/boost/locale/icu/icu_backend.hpp delete mode 100644 libs/locale/src/boost/locale/icu/icu_util.hpp delete mode 100644 libs/locale/src/boost/locale/icu/numeric.cpp delete mode 100644 libs/locale/src/boost/locale/icu/time_zone.cpp delete mode 100644 libs/locale/src/boost/locale/icu/time_zone.hpp delete mode 100644 libs/locale/src/boost/locale/icu/uconv.hpp delete mode 100644 libs/locale/src/boost/locale/posix/all_generator.hpp delete mode 100644 libs/locale/src/boost/locale/posix/codecvt.cpp delete mode 100644 libs/locale/src/boost/locale/posix/collate.cpp delete mode 100644 libs/locale/src/boost/locale/posix/converter.cpp delete mode 100644 libs/locale/src/boost/locale/posix/numeric.cpp delete mode 100644 libs/locale/src/boost/locale/posix/posix_backend.cpp delete mode 100644 libs/locale/src/boost/locale/posix/posix_backend.hpp delete mode 100644 libs/locale/src/boost/locale/shared/date_time.cpp delete mode 100644 libs/locale/src/boost/locale/shared/format.cpp delete mode 100644 libs/locale/src/boost/locale/shared/formatting.cpp delete mode 100644 libs/locale/src/boost/locale/shared/generator.cpp delete mode 100644 libs/locale/src/boost/locale/shared/iconv_codecvt.cpp delete mode 100644 libs/locale/src/boost/locale/shared/iconv_codecvt.hpp delete mode 100644 libs/locale/src/boost/locale/shared/ids.cpp delete mode 100644 libs/locale/src/boost/locale/shared/ios_prop.hpp delete mode 100644 libs/locale/src/boost/locale/shared/localization_backend.cpp delete mode 100644 libs/locale/src/boost/locale/shared/message.cpp delete mode 100644 libs/locale/src/boost/locale/shared/mo_hash.hpp delete mode 100644 libs/locale/src/boost/locale/shared/mo_lambda.cpp delete mode 100644 libs/locale/src/boost/locale/shared/mo_lambda.hpp delete mode 100644 libs/locale/src/boost/locale/std/all_generator.hpp delete mode 100644 libs/locale/src/boost/locale/std/codecvt.cpp delete mode 100644 libs/locale/src/boost/locale/std/collate.cpp delete mode 100644 libs/locale/src/boost/locale/std/converter.cpp delete mode 100644 libs/locale/src/boost/locale/std/numeric.cpp delete mode 100644 libs/locale/src/boost/locale/std/std_backend.cpp delete mode 100644 libs/locale/src/boost/locale/std/std_backend.hpp delete mode 100644 libs/locale/src/boost/locale/util/codecvt_converter.cpp delete mode 100644 libs/locale/src/boost/locale/util/default_locale.cpp delete mode 100644 libs/locale/src/boost/locale/util/encoding.cpp delete mode 100644 libs/locale/src/boost/locale/util/encoding.hpp delete mode 100644 libs/locale/src/boost/locale/util/gregorian.cpp delete mode 100644 libs/locale/src/boost/locale/util/gregorian.hpp delete mode 100644 libs/locale/src/boost/locale/util/iconv.hpp delete mode 100644 libs/locale/src/boost/locale/util/info.cpp delete mode 100644 libs/locale/src/boost/locale/util/locale_data.cpp delete mode 100644 libs/locale/src/boost/locale/util/numeric.hpp delete mode 100644 libs/locale/src/boost/locale/util/timezone.hpp delete mode 100644 libs/locale/src/boost/locale/util/win_codepages.hpp delete mode 100644 libs/locale/src/boost/locale/win32/all_generator.hpp delete mode 100644 libs/locale/src/boost/locale/win32/api.hpp delete mode 100644 libs/locale/src/boost/locale/win32/collate.cpp delete mode 100644 libs/locale/src/boost/locale/win32/converter.cpp delete mode 100644 libs/locale/src/boost/locale/win32/lcid.cpp delete mode 100644 libs/locale/src/boost/locale/win32/lcid.hpp delete mode 100644 libs/locale/src/boost/locale/win32/numeric.cpp delete mode 100644 libs/locale/src/boost/locale/win32/win_backend.cpp delete mode 100644 libs/locale/src/boost/locale/win32/win_backend.hpp delete mode 100644 libs/regex/build/Jamfile.v2 delete mode 100644 libs/regex/build/has_icu_test.cpp delete mode 100644 libs/regex/build/is_legacy_03.cpp delete mode 100644 libs/regex/src/c_regex_traits.cpp delete mode 100644 libs/regex/src/cpp_regex_traits.cpp delete mode 100644 libs/regex/src/cregex.cpp delete mode 100644 libs/regex/src/fileiter.cpp delete mode 100644 libs/regex/src/icu.cpp delete mode 100644 libs/regex/src/instances.cpp delete mode 100644 libs/regex/src/internals.hpp delete mode 100644 libs/regex/src/posix_api.cpp delete mode 100644 libs/regex/src/regex.cpp delete mode 100644 libs/regex/src/regex_debug.cpp delete mode 100644 libs/regex/src/regex_raw_buffer.cpp delete mode 100644 libs/regex/src/regex_traits_defaults.cpp delete mode 100644 libs/regex/src/static_mutex.cpp delete mode 100644 libs/regex/src/usinstances.cpp delete mode 100644 libs/regex/src/w32_regex_traits.cpp delete mode 100644 libs/regex/src/wc_regex_traits.cpp delete mode 100644 libs/regex/src/wide_posix_api.cpp delete mode 100644 libs/regex/src/winstances.cpp delete mode 100644 libs/regex/test/config_info/regex_config_info.cpp delete mode 100644 libs/serialization/build/Jamfile.v2 delete mode 100644 libs/serialization/src/archive_exception.cpp delete mode 100644 libs/serialization/src/basic_archive.cpp delete mode 100644 libs/serialization/src/basic_iarchive.cpp delete mode 100644 libs/serialization/src/basic_iserializer.cpp delete mode 100644 libs/serialization/src/basic_oarchive.cpp delete mode 100644 libs/serialization/src/basic_oserializer.cpp delete mode 100644 libs/serialization/src/basic_pointer_iserializer.cpp delete mode 100644 libs/serialization/src/basic_pointer_oserializer.cpp delete mode 100644 libs/serialization/src/basic_serializer_map.cpp delete mode 100644 libs/serialization/src/basic_text_iprimitive.cpp delete mode 100644 libs/serialization/src/basic_text_oprimitive.cpp delete mode 100644 libs/serialization/src/basic_text_wiprimitive.cpp delete mode 100644 libs/serialization/src/basic_text_woprimitive.cpp delete mode 100644 libs/serialization/src/basic_xml_archive.cpp delete mode 100644 libs/serialization/src/basic_xml_grammar.ipp delete mode 100644 libs/serialization/src/binary_iarchive.cpp delete mode 100644 libs/serialization/src/binary_oarchive.cpp delete mode 100644 libs/serialization/src/binary_wiarchive.cpp delete mode 100644 libs/serialization/src/binary_woarchive.cpp delete mode 100644 libs/serialization/src/codecvt_null.cpp delete mode 100644 libs/serialization/src/extended_type_info.cpp delete mode 100644 libs/serialization/src/extended_type_info_no_rtti.cpp delete mode 100644 libs/serialization/src/extended_type_info_typeid.cpp delete mode 100644 libs/serialization/src/polymorphic_binary_iarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_binary_oarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_iarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_oarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_text_iarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_text_oarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_text_wiarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_text_woarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_xml_iarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_xml_oarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_xml_wiarchive.cpp delete mode 100644 libs/serialization/src/polymorphic_xml_woarchive.cpp delete mode 100644 libs/serialization/src/stl_port.cpp delete mode 100644 libs/serialization/src/text_iarchive.cpp delete mode 100644 libs/serialization/src/text_oarchive.cpp delete mode 100644 libs/serialization/src/text_wiarchive.cpp delete mode 100644 libs/serialization/src/text_woarchive.cpp delete mode 100644 libs/serialization/src/utf8_codecvt_facet.cpp delete mode 100644 libs/serialization/src/void_cast.cpp delete mode 100644 libs/serialization/src/xml_archive_exception.cpp delete mode 100644 libs/serialization/src/xml_grammar.cpp delete mode 100644 libs/serialization/src/xml_iarchive.cpp delete mode 100644 libs/serialization/src/xml_oarchive.cpp delete mode 100644 libs/serialization/src/xml_wgrammar.cpp delete mode 100644 libs/serialization/src/xml_wiarchive.cpp delete mode 100644 libs/serialization/src/xml_woarchive.cpp delete mode 100644 libs/thread/build/Jamfile.v2 delete mode 100644 libs/thread/build/has_atomic_flag_lockfree_test.cpp delete mode 100644 libs/thread/src/future.cpp delete mode 100644 libs/thread/src/pthread/once.cpp delete mode 100644 libs/thread/src/pthread/once_atomic.cpp delete mode 100644 libs/thread/src/pthread/thread.cpp delete mode 100644 libs/thread/src/tss_null.cpp delete mode 100644 libs/thread/src/win32/thread.cpp delete mode 100644 libs/thread/src/win32/thread_primitives.cpp delete mode 100644 libs/thread/src/win32/tss_dll.cpp delete mode 100644 libs/thread/src/win32/tss_pe.cpp delete mode 100644 libs/url/build/Jamfile delete mode 100644 libs/url/src/authority_view.cpp delete mode 100644 libs/url/src/decode_view.cpp delete mode 100644 libs/url/src/detail/any_params_iter.cpp delete mode 100644 libs/url/src/detail/any_segments_iter.cpp delete mode 100644 libs/url/src/detail/decode.cpp delete mode 100644 libs/url/src/detail/except.cpp delete mode 100644 libs/url/src/detail/format_args.cpp delete mode 100644 libs/url/src/detail/normalize.cpp delete mode 100644 libs/url/src/detail/params_iter_impl.cpp delete mode 100644 libs/url/src/detail/pattern.cpp delete mode 100644 libs/url/src/detail/pct_format.cpp delete mode 100644 libs/url/src/detail/replacement_field_rule.cpp delete mode 100644 libs/url/src/detail/segments_iter_impl.cpp delete mode 100644 libs/url/src/detail/url_impl.cpp delete mode 100644 libs/url/src/encoding_opts.cpp delete mode 100644 libs/url/src/error.cpp delete mode 100644 libs/url/src/grammar/ci_string.cpp delete mode 100644 libs/url/src/grammar/dec_octet_rule.cpp delete mode 100644 libs/url/src/grammar/delim_rule.cpp delete mode 100644 libs/url/src/grammar/detail/recycled.cpp delete mode 100644 libs/url/src/grammar/error.cpp delete mode 100644 libs/url/src/grammar/literal_rule.cpp delete mode 100644 libs/url/src/grammar/string_view_base.cpp delete mode 100644 libs/url/src/ipv4_address.cpp delete mode 100644 libs/url/src/ipv6_address.cpp delete mode 100644 libs/url/src/params_base.cpp delete mode 100644 libs/url/src/params_encoded_base.cpp delete mode 100644 libs/url/src/params_encoded_ref.cpp delete mode 100644 libs/url/src/params_encoded_view.cpp delete mode 100644 libs/url/src/params_ref.cpp delete mode 100644 libs/url/src/params_view.cpp delete mode 100644 libs/url/src/parse.cpp delete mode 100644 libs/url/src/parse_path.cpp delete mode 100644 libs/url/src/parse_query.cpp delete mode 100644 libs/url/src/pct_string_view.cpp delete mode 100644 libs/url/src/rfc/absolute_uri_rule.cpp delete mode 100644 libs/url/src/rfc/authority_rule.cpp delete mode 100644 libs/url/src/rfc/detail/h16_rule.cpp delete mode 100644 libs/url/src/rfc/detail/hier_part_rule.cpp delete mode 100644 libs/url/src/rfc/detail/host_rule.cpp delete mode 100644 libs/url/src/rfc/detail/ip_literal_rule.cpp delete mode 100644 libs/url/src/rfc/detail/ipv6_addrz_rule.cpp delete mode 100644 libs/url/src/rfc/detail/ipvfuture_rule.cpp delete mode 100644 libs/url/src/rfc/detail/port_rule.cpp delete mode 100644 libs/url/src/rfc/detail/relative_part_rule.cpp delete mode 100644 libs/url/src/rfc/detail/scheme_rule.cpp delete mode 100644 libs/url/src/rfc/detail/userinfo_rule.cpp delete mode 100644 libs/url/src/rfc/ipv4_address_rule.cpp delete mode 100644 libs/url/src/rfc/ipv6_address_rule.cpp delete mode 100644 libs/url/src/rfc/origin_form_rule.cpp delete mode 100644 libs/url/src/rfc/query_rule.cpp delete mode 100644 libs/url/src/rfc/relative_ref_rule.cpp delete mode 100644 libs/url/src/rfc/uri_reference_rule.cpp delete mode 100644 libs/url/src/rfc/uri_rule.cpp delete mode 100644 libs/url/src/scheme.cpp delete mode 100644 libs/url/src/segments_base.cpp delete mode 100644 libs/url/src/segments_encoded_base.cpp delete mode 100644 libs/url/src/segments_encoded_ref.cpp delete mode 100644 libs/url/src/segments_encoded_view.cpp delete mode 100644 libs/url/src/segments_ref.cpp delete mode 100644 libs/url/src/segments_view.cpp delete mode 100644 libs/url/src/static_url.cpp delete mode 100644 libs/url/src/url.cpp delete mode 100644 libs/url/src/url_base.cpp delete mode 100644 libs/url/src/url_view.cpp delete mode 100644 libs/url/src/url_view_base.cpp diff --git a/Jamroot b/Jamroot index c979d805..33a31db1 100644 --- a/Jamroot +++ b/Jamroot @@ -140,11 +140,12 @@ import "class" : new ; import property-set ; import threadapi-feature ; import option ; +import property ; # Backslash because of `bcp --namespace` import tools/boost\_install/boost-install ; path-constant BOOST_ROOT : . ; -constant BOOST_VERSION : 1.83.0 ; +constant BOOST_VERSION : 1.84.0 ; constant BOOST_JAMROOT_MODULE : $(__name__) ; # Allow subprojects to simply `import config : requires ;` to get access to the requires rule @@ -180,6 +181,7 @@ project boost # Used to encode variant in target name. See the 'tag' rule below. @$(__name__).tag @handle-static-runtime + @clang-darwin-cxxstd-11 # Comeau does not support shared lib como:static como-linux:_GNU_SOURCE=1 @@ -226,6 +228,20 @@ rule handle-static-runtime ( properties * ) } } +rule clang-darwin-cxxstd-11 ( properties * ) +{ + # AppleClang defaults to C++03 + + local result = [ property.select : $(properties) ] ; + + if darwin in $(properties) + { + result ?= 11 ; + } + + return $(result) ; +} + all-libraries = [ MATCH .*libs/(.*)/build/.* : [ glob libs/*/build/Jamfile.v2 ] [ glob libs/*/build/Jamfile ] ] ; @@ -247,7 +263,6 @@ local rule explicit-alias ( id : targets + ) explicit-alias prg_exec_monitor : libs/test/build//boost_prg_exec_monitor ; explicit-alias test_exec_monitor : libs/test/build//boost_test_exec_monitor ; explicit-alias unit_test_framework : libs/test/build//boost_unit_test_framework ; -explicit-alias bgl-vis : libs/graps/build//bgl-vis ; explicit-alias serialization : libs/serialization/build//boost_serialization ; explicit-alias wserialization : libs/serialization/build//boost_wserialization ; for local l in $(all-libraries) diff --git a/boost/align/align_up.hpp b/boost/align/align_up.hpp deleted file mode 100644 index 84e1a3cb..00000000 --- a/boost/align/align_up.hpp +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2015 Glen Joseph Fernandes -(glenjofe@gmail.com) - -Distributed under the Boost Software License, Version 1.0. -(http://www.boost.org/LICENSE_1_0.txt) -*/ -#ifndef BOOST_ALIGN_ALIGN_UP_HPP -#define BOOST_ALIGN_ALIGN_UP_HPP - -#include -#include - -namespace boost { -namespace alignment { - -template -BOOST_CONSTEXPR inline typename detail::not_pointer::type -align_up(T value, std::size_t alignment) BOOST_NOEXCEPT -{ - return T((value + (T(alignment) - 1)) & ~T(alignment - 1)); -} - -} /* alignment */ -} /* boost */ - -#endif diff --git a/boost/align/detail/align_up.hpp b/boost/align/detail/align_up.hpp deleted file mode 100644 index ac11f896..00000000 --- a/boost/align/detail/align_up.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2015 Glen Joseph Fernandes -(glenjofe@gmail.com) - -Distributed under the Boost Software License, Version 1.0. -(http://www.boost.org/LICENSE_1_0.txt) -*/ -#ifndef BOOST_ALIGN_DETAIL_ALIGN_UP_HPP -#define BOOST_ALIGN_DETAIL_ALIGN_UP_HPP - -#include -#include - -namespace boost { -namespace alignment { - -inline void* -align_up(void* ptr, std::size_t alignment) BOOST_NOEXCEPT -{ - BOOST_ASSERT(detail::is_alignment(alignment)); - return reinterpret_cast(~(alignment - 1) & - (reinterpret_cast(ptr) + alignment - 1)); -} - -} /* alignment */ -} /* boost */ - -#endif diff --git a/boost/align/detail/not_pointer.hpp b/boost/align/detail/not_pointer.hpp deleted file mode 100644 index 12261018..00000000 --- a/boost/align/detail/not_pointer.hpp +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2019 Glen Joseph Fernandes -(glenjofe@gmail.com) - -Distributed under the Boost Software License, Version 1.0. -(http://www.boost.org/LICENSE_1_0.txt) -*/ -#ifndef BOOST_ALIGN_DETAIL_NOT_POINTER_HPP -#define BOOST_ALIGN_DETAIL_NOT_POINTER_HPP - -namespace boost { -namespace alignment { -namespace detail { - -template -struct not_pointer { - typedef U type; -}; - -template -struct not_pointer { }; - -} /* detail */ -} /* alignment */ -} /* boost */ - -#endif diff --git a/boost/aligned_storage.hpp b/boost/aligned_storage.hpp deleted file mode 100644 index f400fa9e..00000000 --- a/boost/aligned_storage.hpp +++ /dev/null @@ -1,18 +0,0 @@ -//----------------------------------------------------------------------------- -// boost aligned_storage.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002-2003 -// Eric Friedman, Itay Maman -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_ALIGNED_STORAGE_HPP -#define BOOST_ALIGNED_STORAGE_HPP - -#include - -#endif // BOOST_ALIGNED_STORAGE_HPP diff --git a/boost/archive/archive_exception.hpp b/boost/archive/archive_exception.hpp deleted file mode 100644 index dd9181c3..00000000 --- a/boost/archive/archive_exception.hpp +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP -#define BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// archive/archive_exception.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#include -#include - -// note: the only reason this is in here is that windows header -// includes #define exception_code _exception_code (arrrgghhhh!). -// the most expedient way to address this is be sure that this -// header is always included whenever this header file is included. -#if defined(BOOST_WINDOWS) -#include -#endif - -#include // must be the last header - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// exceptions thrown by archives -// -class BOOST_SYMBOL_VISIBLE archive_exception : - public virtual std::exception -{ -private: - char m_buffer[128]; -protected: - BOOST_ARCHIVE_DECL unsigned int - append(unsigned int l, const char * a); - BOOST_ARCHIVE_DECL - archive_exception() BOOST_NOEXCEPT; -public: - typedef enum { - no_exception, // initialized without code - other_exception, // any exception not listed below - unregistered_class, // attempt to serialize a pointer of - // an unregistered class - invalid_signature, // first line of archive does not contain - // expected string - unsupported_version,// archive created with library version - // subsequent to this one - pointer_conflict, // an attempt has been made to directly - // serialize an object which has - // already been serialized through a pointer. - // Were this permitted, the archive load would result - // in the creation of an extra copy of the object. - incompatible_native_format, // attempt to read native binary format - // on incompatible platform - array_size_too_short,// array being loaded doesn't fit in array allocated - input_stream_error, // error on input stream - invalid_class_name, // class name greater than the maximum permitted. - // most likely a corrupted archive or an attempt - // to insert virus via buffer overrun method. - unregistered_cast, // base - derived relationship not registered with - // void_cast_register - unsupported_class_version, // type saved with a version # greater than the - // one used by the program. This indicates that the program - // needs to be rebuilt. - multiple_code_instantiation, // code for implementing serialization for some - // type has been instantiated in more than one module. - output_stream_error // error on input stream - } exception_code; - exception_code code; - - BOOST_ARCHIVE_DECL archive_exception( - exception_code c, - const char * e1 = NULL, - const char * e2 = NULL - ) BOOST_NOEXCEPT; - BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT; - BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE; - BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE; -}; - -}// namespace archive -}// namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif //BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP diff --git a/boost/archive/basic_archive.hpp b/boost/archive/basic_archive.hpp deleted file mode 100644 index 381a1275..00000000 --- a/boost/archive/basic_archive.hpp +++ /dev/null @@ -1,274 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_ARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_ARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_archive.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include // count -#include -#include -#include -#include -#include - -#include -#include // must be the last header - -namespace boost { -namespace archive { - -#if defined(_MSC_VER) -#pragma warning( push ) -#pragma warning( disable : 4244 4267 ) -#endif - -BOOST_ARCHIVE_DECL boost::serialization::library_version_type -BOOST_ARCHIVE_VERSION(); - -// create alias in boost::archive for older user code. -typedef boost::serialization::library_version_type library_version_type; - -class version_type { -private: - typedef uint_least32_t base_type; - base_type t; -public: - // should be private - but MPI fails if it's not!!! - version_type(): t(0) {} - explicit version_type(const unsigned int & t_) : t(t_){ - BOOST_ASSERT(t_ <= boost::integer_traits::const_max); - } - version_type(const version_type & t_) : - t(t_.t) - {} - version_type & operator=(const version_type & rhs){ - t = rhs.t; - return *this; - } - // used for text output - operator base_type () const { - return t; - } - // used for text intput - operator base_type & (){ - return t; - } - bool operator==(const version_type & rhs) const { - return t == rhs.t; - } - bool operator<(const version_type & rhs) const { - return t < rhs.t; - } -}; - -class class_id_type { -private: - typedef int_least16_t base_type; - base_type t; -public: - // should be private - but then can't use BOOST_STRONG_TYPE below - class_id_type() : t(0) {} - explicit class_id_type(const int t_) : t(t_){ - BOOST_ASSERT(t_ <= boost::integer_traits::const_max); - } - explicit class_id_type(const std::size_t t_) : t(t_){ - // BOOST_ASSERT(t_ <= boost::integer_traits::const_max); - } - class_id_type(const class_id_type & t_) : - t(t_.t) - {} - class_id_type & operator=(const class_id_type & rhs){ - t = rhs.t; - return *this; - } - - // used for text output - operator base_type () const { - return t; - } - // used for text input - operator base_type &() { - return t; - } - bool operator==(const class_id_type & rhs) const { - return t == rhs.t; - } - bool operator<(const class_id_type & rhs) const { - return t < rhs.t; - } -}; - -#define BOOST_SERIALIZATION_NULL_POINTER_TAG boost::archive::class_id_type(-1) - -class object_id_type { -private: - typedef uint_least32_t base_type; - base_type t; -public: - object_id_type(): t(0) {} - // note: presumes that size_t >= unsigned int. - // use explicit cast to silence useless warning - explicit object_id_type(const std::size_t & t_) : t(static_cast(t_)){ - // make quadruple sure that we haven't lost any real integer - // precision - BOOST_ASSERT(t_ <= boost::integer_traits::const_max); - } - object_id_type(const object_id_type & t_) : - t(t_.t) - {} - object_id_type & operator=(const object_id_type & rhs){ - t = rhs.t; - return *this; - } - // used for text output - operator base_type () const { - return t; - } - // used for text input - operator base_type & () { - return t; - } - bool operator==(const object_id_type & rhs) const { - return t == rhs.t; - } - bool operator<(const object_id_type & rhs) const { - return t < rhs.t; - } -}; - -#if defined(_MSC_VER) -#pragma warning( pop ) -#endif - -struct tracking_type { - bool t; - explicit tracking_type(const bool t_ = false) - : t(t_) - {} - tracking_type(const tracking_type & t_) - : t(t_.t) - {} - operator bool () const { - return t; - } - operator bool & () { - return t; - } - tracking_type & operator=(const bool t_){ - t = t_; - return *this; - } - bool operator==(const tracking_type & rhs) const { - return t == rhs.t; - } - bool operator==(const bool & rhs) const { - return t == rhs; - } - tracking_type & operator=(const tracking_type & rhs){ - t = rhs.t; - return *this; - } -}; - -struct class_name_type : - private boost::noncopyable -{ - char *t; - operator const char * & () const { - return const_cast(t); - } - operator char * () { - return t; - } - std::size_t size() const { - return std::strlen(t); - } - explicit class_name_type(const char *key_) - : t(const_cast(key_)){} - explicit class_name_type(char *key_) - : t(key_){} - class_name_type & operator=(const class_name_type & rhs){ - t = rhs.t; - return *this; - } -}; - -enum archive_flags { - no_header = 1, // suppress archive header info - no_codecvt = 2, // suppress alteration of codecvt facet - no_xml_tag_checking = 4, // suppress checking of xml tags - no_tracking = 8, // suppress ALL tracking - flags_last = 8 -}; - -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_SIGNATURE(); - -/* NOTE : Warning : Warning : Warning : Warning : Warning - * If any of these are changed to different sized types, - * binary_iarchive won't be able to read older archives - * unless you rev the library version and include conditional - * code based on the library version. There is nothing - * inherently wrong in doing this - but you have to be super - * careful because it's easy to get wrong and start breaking - * old archives !!! - */ - -#define BOOST_ARCHIVE_STRONG_TYPEDEF(T, D) \ - class D : public T { \ - public: \ - explicit D(const T tt) : T(tt){} \ - }; \ -/**/ - -BOOST_ARCHIVE_STRONG_TYPEDEF(class_id_type, class_id_reference_type) -BOOST_ARCHIVE_STRONG_TYPEDEF(class_id_type, class_id_optional_type) -BOOST_ARCHIVE_STRONG_TYPEDEF(object_id_type, object_reference_type) - -}// namespace archive -}// namespace boost - -#include // pops abi_suffix.hpp pragmas - -#include - -// set implementation level to primitive for all types -// used internally by the serialization library - -BOOST_CLASS_IMPLEMENTATION(boost::serialization::library_version_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::version_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::class_id_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::class_id_reference_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::class_id_optional_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::class_name_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::object_id_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::object_reference_type, primitive_type) -BOOST_CLASS_IMPLEMENTATION(boost::archive::tracking_type, primitive_type) - -#include - -// set types used internally by the serialization library -// to be bitwise serializable - -BOOST_IS_BITWISE_SERIALIZABLE(boost::serialization::library_version_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::version_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_id_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_id_reference_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_id_optional_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_name_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::object_id_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::object_reference_type) -BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::tracking_type) - -#endif //BOOST_ARCHIVE_BASIC_ARCHIVE_HPP diff --git a/boost/archive/basic_binary_iarchive.hpp b/boost/archive/basic_binary_iarchive.hpp deleted file mode 100644 index 2ec90ce0..00000000 --- a/boost/archive/basic_binary_iarchive.hpp +++ /dev/null @@ -1,217 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_BINARY_IARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_BINARY_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_iarchive.hpp -// -// archives stored as native binary - this should be the fastest way -// to archive the state of a group of obects. It makes no attempt to -// convert to any canonical form. - -// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE -// ON PLATFORM APART FROM THE ONE THEY ARE CREATED ON - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -#include // must be the last header - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -///////////////////////////////////////////////////////////////////////// -// class basic_binary_iarchive - read serialized objects from a input binary stream -template -class BOOST_SYMBOL_VISIBLE basic_binary_iarchive : - public detail::common_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_iarchive; - #else - friend class detail::interface_iarchive; - #endif -#endif - // intermediate level to support override of operators - // fot templates in the absence of partial function - // template ordering. If we get here pass to base class - // note extra nonsense to sneak it pass the borland compiers - typedef detail::common_iarchive detail_common_iarchive; - template - void load_override(T & t){ - this->detail_common_iarchive::load_override(t); - } - - // include these to trap a change in binary format which - // isn't specifically handled - // upto 32K classes - BOOST_STATIC_ASSERT(sizeof(class_id_type) == sizeof(int_least16_t)); - BOOST_STATIC_ASSERT(sizeof(class_id_reference_type) == sizeof(int_least16_t)); - // upto 2G objects - BOOST_STATIC_ASSERT(sizeof(object_id_type) == sizeof(uint_least32_t)); - BOOST_STATIC_ASSERT(sizeof(object_reference_type) == sizeof(uint_least32_t)); - - // binary files don't include the optional information - void load_override(class_id_optional_type & /* t */){} - - void load_override(tracking_type & t, int /*version*/){ - boost::serialization::library_version_type lv = this->get_library_version(); - if(boost::serialization::library_version_type(6) < lv){ - int_least8_t x=0; - * this->This() >> x; - t = boost::archive::tracking_type(x); - } - else{ - bool x=0; - * this->This() >> x; - t = boost::archive::tracking_type(x); - } - } - void load_override(class_id_type & t){ - boost::serialization::library_version_type lv = this->get_library_version(); - /* - * library versions: - * boost 1.39 -> 5 - * boost 1.43 -> 7 - * boost 1.47 -> 9 - * - * - * 1) in boost 1.43 and inferior, class_id_type is always a 16bit value, with no check on the library version - * --> this means all archives with version v <= 7 are written with a 16bit class_id_type - * 2) in boost 1.44 this load_override has disappeared (and thus boost 1.44 is not backward compatible at all !!) - * 3) recent boosts reintroduced load_override with a test on the version : - * - v > 7 : this->detail_common_iarchive::load_override(t, version) - * - v > 6 : 16bit - * - other : 32bit - * --> which is obviously incorrect, see point 1 - * - * the fix here decodes class_id_type on 16bit for all v <= 7, which seems to be the correct behaviour ... - */ - if(boost::serialization::library_version_type (7) < lv){ - this->detail_common_iarchive::load_override(t); - } - else{ - int_least16_t x=0; - * this->This() >> x; - t = boost::archive::class_id_type(x); - } - } - void load_override(class_id_reference_type & t){ - load_override(static_cast(t)); - } - - void load_override(version_type & t){ - boost::serialization::library_version_type lv = this->get_library_version(); - if(boost::serialization::library_version_type(7) < lv){ - this->detail_common_iarchive::load_override(t); - } - else - if(boost::serialization::library_version_type(6) < lv){ - uint_least8_t x=0; - * this->This() >> x; - t = boost::archive::version_type(x); - } - else - if(boost::serialization::library_version_type(5) < lv){ - uint_least16_t x=0; - * this->This() >> x; - t = boost::archive::version_type(x); - } - else - if(boost::serialization::library_version_type(2) < lv){ - // upto 255 versions - unsigned char x=0; - * this->This() >> x; - t = version_type(x); - } - else{ - unsigned int x=0; - * this->This() >> x; - t = boost::archive::version_type(x); - } - } - - void load_override(boost::serialization::item_version_type & t){ - boost::serialization::library_version_type lv = this->get_library_version(); -// if(boost::serialization::library_version_type(7) < lvt){ - if(boost::serialization::library_version_type(6) < lv){ - this->detail_common_iarchive::load_override(t); - } - else - if(boost::serialization::library_version_type(6) < lv){ - uint_least16_t x=0; - * this->This() >> x; - t = boost::serialization::item_version_type(x); - } - else{ - unsigned int x=0; - * this->This() >> x; - t = boost::serialization::item_version_type(x); - } - } - - void load_override(serialization::collection_size_type & t){ - if(boost::serialization::library_version_type(5) < this->get_library_version()){ - this->detail_common_iarchive::load_override(t); - } - else{ - unsigned int x=0; - * this->This() >> x; - t = serialization::collection_size_type(x); - } - } - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(class_name_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - - basic_binary_iarchive(unsigned int flags) : - detail::common_iarchive(flags) - {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_BINARY_IARCHIVE_HPP diff --git a/boost/archive/basic_binary_iprimitive.hpp b/boost/archive/basic_binary_iprimitive.hpp deleted file mode 100644 index a2902407..00000000 --- a/boost/archive/basic_binary_iprimitive.hpp +++ /dev/null @@ -1,197 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_IPRIMITIVE_HPP -#define BOOST_ARCHIVE_BINARY_IPRIMITIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -#if defined(_MSC_VER) -#pragma warning( disable : 4800 ) -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_iprimitive.hpp -// -// archives stored as native binary - this should be the fastest way -// to archive the state of a group of obects. It makes no attempt to -// convert to any canonical form. - -// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE -// ON PLATFORM APART FROM THE ONE THEY ARE CREATED ON - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include -#include // std::memcpy -#include // std::size_t -#include // basic_streambuf -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace archive { - -///////////////////////////////////////////////////////////////////////////// -// class binary_iarchive - read serialized objects from a input binary stream -template -class BOOST_SYMBOL_VISIBLE basic_binary_iprimitive { -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - friend class load_access; -protected: -#else -public: -#endif - std::basic_streambuf & m_sb; - // return a pointer to the most derived class - Archive * This(){ - return static_cast(this); - } - - #ifndef BOOST_NO_STD_LOCALE - // note order! - if you change this, libstd++ will fail! - // a) create new locale with new codecvt facet - // b) save current locale - // c) change locale to new one - // d) use stream buffer - // e) change locale back to original - // f) destroy new codecvt facet - boost::archive::codecvt_null codecvt_null_facet; - basic_streambuf_locale_saver locale_saver; - std::locale archive_locale; - #endif - - // main template for serilization of primitive types - template - void load(T & t){ - load_binary(& t, sizeof(T)); - } - - ///////////////////////////////////////////////////////// - // fundamental types that need special treatment - - // trap usage of invalid uninitialized boolean - void load(bool & t){ - load_binary(& t, sizeof(t)); - int i = t; - BOOST_ASSERT(0 == i || 1 == i); - (void)i; // warning suppression for release builds. - } - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load(std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load(std::wstring &ws); - #endif - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load(char * t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load(wchar_t * t); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_binary_iprimitive( - std::basic_streambuf & sb, - bool no_codecvt - ); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_binary_iprimitive(); -public: - // we provide an optimized load for all fundamental types - // typedef serialization::is_bitwise_serializable - // use_array_optimization; - struct use_array_optimization { - template - #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS) - struct apply { - typedef typename boost::serialization::is_bitwise_serializable< T >::type type; - }; - #else - struct apply : public boost::serialization::is_bitwise_serializable< T > {}; - #endif - }; - - // the optimized load_array dispatches to load_binary - template - void load_array(serialization::array_wrapper& a, unsigned int) - { - load_binary(a.address(),a.count()*sizeof(ValueType)); - } - - void - load_binary(void *address, std::size_t count); -}; - -template -inline void -basic_binary_iprimitive::load_binary( - void *address, - std::size_t count -){ - // note: an optimizer should eliminate the following for char files - BOOST_ASSERT( - static_cast(count / sizeof(Elem)) - <= boost::integer_traits::const_max - ); - std::streamsize s = static_cast(count / sizeof(Elem)); - std::streamsize scount = m_sb.sgetn( - static_cast(address), - s - ); - if(scount != s) - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - // note: an optimizer should eliminate the following for char files - BOOST_ASSERT(count % sizeof(Elem) <= boost::integer_traits::const_max); - s = static_cast(count % sizeof(Elem)); - if(0 < s){ -// if(is.fail()) -// boost::serialization::throw_exception( -// archive_exception(archive_exception::stream_error) -// ); - Elem t; - scount = m_sb.sgetn(& t, 1); - if(scount != 1) - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - std::memcpy(static_cast(address) + (count - s), &t, static_cast(s)); - } -} - -} // namespace archive -} // namespace boost - -#include // pop pragmas - -#endif // BOOST_ARCHIVE_BINARY_IPRIMITIVE_HPP diff --git a/boost/archive/basic_binary_oarchive.hpp b/boost/archive/basic_binary_oarchive.hpp deleted file mode 100644 index 61bd8faa..00000000 --- a/boost/archive/basic_binary_oarchive.hpp +++ /dev/null @@ -1,185 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_BINARY_OARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_BINARY_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as native binary - this should be the fastest way -// to archive the state of a group of obects. It makes no attempt to -// convert to any canonical form. - -// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE -// ON PLATFORM APART FROM THE ONE THEY ARE CREATE ON - -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -////////////////////////////////////////////////////////////////////// -// class basic_binary_oarchive - write serialized objects to a binary output stream -// note: this archive has no pretensions to portability. Archive format -// may vary across machine architectures and compilers. About the only -// guarentee is that an archive created with this code will be readable -// by a program built with the same tools for the same machne. This class -// does have the virtue of buiding the smalles archive in the minimum amount -// of time. So under some circumstances it may be he right choice. -template -class BOOST_SYMBOL_VISIBLE basic_binary_oarchive : - public detail::common_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_oarchive; - #else - friend class detail::interface_oarchive; - #endif -#endif - // any datatype not specifed below will be handled by base class - typedef detail::common_oarchive detail_common_oarchive; - template - void save_override(const T & t){ - this->detail_common_oarchive::save_override(t); - } - - // include these to trap a change in binary format which - // isn't specifically handled - BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(bool)); - // upto 32K classes - BOOST_STATIC_ASSERT(sizeof(class_id_type) == sizeof(int_least16_t)); - BOOST_STATIC_ASSERT(sizeof(class_id_reference_type) == sizeof(int_least16_t)); - // upto 2G objects - BOOST_STATIC_ASSERT(sizeof(object_id_type) == sizeof(uint_least32_t)); - BOOST_STATIC_ASSERT(sizeof(object_reference_type) == sizeof(uint_least32_t)); - - // binary files don't include the optional information - void save_override(const class_id_optional_type & /* t */){} - - // enable this if we decide to support generation of previous versions - #if 0 - void save_override(const boost::archive::version_type & t){ - library_version_type lvt = this->get_library_version(); - if(boost::serialization::library_version_type(7) < lvt){ - this->detail_common_oarchive::save_override(t); - } - else - if(boost::serialization::library_version_type(6) < lvt){ - const boost::uint_least16_t x = t; - * this->This() << x; - } - else{ - const unsigned int x = t; - * this->This() << x; - } - } - void save_override(const boost::serialization::item_version_type & t){ - library_version_type lvt = this->get_library_version(); - if(boost::serialization::library_version_type(7) < lvt){ - this->detail_common_oarchive::save_override(t); - } - else - if(boost::serialization::library_version_type(6) < lvt){ - const boost::uint_least16_t x = t; - * this->This() << x; - } - else{ - const unsigned int x = t; - * this->This() << x; - } - } - - void save_override(class_id_type & t){ - library_version_type lvt = this->get_library_version(); - if(boost::serialization::library_version_type(7) < lvt){ - this->detail_common_oarchive::save_override(t); - } - else - if(boost::serialization::library_version_type(6) < lvt){ - const boost::int_least16_t x = t; - * this->This() << x; - } - else{ - const int x = t; - * this->This() << x; - } - } - void save_override(class_id_reference_type & t){ - save_override(static_cast(t)); - } - - #endif - - // explicitly convert to char * to avoid compile ambiguities - void save_override(const class_name_type & t){ - const std::string s(t); - * this->This() << s; - } - - #if 0 - void save_override(const serialization::collection_size_type & t){ - if (get_library_version() < boost::serialization::library_version_type(6)){ - unsigned int x=0; - * this->This() >> x; - t = serialization::collection_size_type(x); - } - else{ - * this->This() >> t; - } - } - #endif - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - - basic_binary_oarchive(unsigned int flags) : - detail::common_oarchive(flags) - {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_BINARY_OARCHIVE_HPP diff --git a/boost/archive/basic_binary_oprimitive.hpp b/boost/archive/basic_binary_oprimitive.hpp deleted file mode 100644 index 6c5e8e5e..00000000 --- a/boost/archive/basic_binary_oprimitive.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_BINARY_OPRIMITIVE_HPP -#define BOOST_ARCHIVE_BASIC_BINARY_OPRIMITIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_oprimitive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as native binary - this should be the fastest way -// to archive the state of a group of obects. It makes no attempt to -// convert to any canonical form. - -// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE -// ON PLATFORM APART FROM THE ONE THEY ARE CREATE ON - -#include -#include -#include -#include // basic_streambuf -#include -#include // size_t - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace archive { - -///////////////////////////////////////////////////////////////////////// -// class basic_binary_oprimitive - binary output of prmitives - -template -class BOOST_SYMBOL_VISIBLE basic_binary_oprimitive { -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - friend class save_access; -protected: -#else -public: -#endif - std::basic_streambuf & m_sb; - // return a pointer to the most derived class - Archive * This(){ - return static_cast(this); - } - #ifndef BOOST_NO_STD_LOCALE - // note order! - if you change this, libstd++ will fail! - // a) create new locale with new codecvt facet - // b) save current locale - // c) change locale to new one - // d) use stream buffer - // e) change locale back to original - // f) destroy new codecvt facet - boost::archive::codecvt_null codecvt_null_facet; - basic_streambuf_locale_saver locale_saver; - std::locale archive_locale; - #endif - // default saving of primitives. - template - void save(const T & t) - { - save_binary(& t, sizeof(T)); - } - - ///////////////////////////////////////////////////////// - // fundamental types that need special treatment - - // trap usage of invalid uninitialized boolean which would - // otherwise crash on load. - void save(const bool t){ - BOOST_ASSERT(0 == static_cast(t) || 1 == static_cast(t)); - save_binary(& t, sizeof(t)); - } - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save(const std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save(const std::wstring &ws); - #endif - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save(const char * t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save(const wchar_t * t); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_binary_oprimitive( - std::basic_streambuf & sb, - bool no_codecvt - ); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_binary_oprimitive(); -public: - - // we provide an optimized save for all fundamental types - // typedef serialization::is_bitwise_serializable - // use_array_optimization; - // workaround without using mpl lambdas - struct use_array_optimization { - template - #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS) - struct apply { - typedef typename boost::serialization::is_bitwise_serializable< T >::type type; - }; - #else - struct apply : public boost::serialization::is_bitwise_serializable< T > {}; - #endif - }; - - // the optimized save_array dispatches to save_binary - template - void save_array(boost::serialization::array_wrapper const& a, unsigned int) - { - save_binary(a.address(),a.count()*sizeof(ValueType)); - } - - void save_binary(const void *address, std::size_t count); -}; - -template -inline void -basic_binary_oprimitive::save_binary( - const void *address, - std::size_t count -){ - // BOOST_ASSERT(count <= std::size_t(boost::integer_traits::const_max)); - // note: if the following assertions fail - // a likely cause is that the output stream is set to "text" - // mode where by cr characters recieve special treatment. - // be sure that the output stream is opened with ios::binary - //if(os.fail()) - // boost::serialization::throw_exception( - // archive_exception(archive_exception::output_stream_error) - // ); - // figure number of elements to output - round up - count = ( count + sizeof(Elem) - 1) / sizeof(Elem); - std::streamsize scount = m_sb.sputn( - static_cast(address), - static_cast(count) - ); - if(count != static_cast(scount)) - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - //os.write( - // static_cast(address), - // count - //); - //BOOST_ASSERT(os.good()); -} - -} //namespace boost -} //namespace archive - -#include // pop pragmas - -#endif // BOOST_ARCHIVE_BASIC_BINARY_OPRIMITIVE_HPP diff --git a/boost/archive/basic_streambuf_locale_saver.hpp b/boost/archive/basic_streambuf_locale_saver.hpp deleted file mode 100644 index 5cd4b36f..00000000 --- a/boost/archive/basic_streambuf_locale_saver.hpp +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_STREAMBUF_LOCALE_SAVER_HPP -#define BOOST_ARCHIVE_BASIC_STREAMBUF_LOCALE_SAVER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_streambuf_locale_saver.hpp - -// (C) Copyright 2005 Robert Ramey - http://www.rrsd.com - -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// note derived from boost/io/ios_state.hpp -// Copyright 2002, 2005 Daryle Walker. Use, modification, and distribution -// are subject to the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_NO_STD_LOCALE - -#include // for std::locale -#include -#include // for std::basic_streambuf - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost{ -namespace archive{ - -template < typename Ch, class Tr > -class basic_streambuf_locale_saver : - private boost::noncopyable -{ -public: - explicit basic_streambuf_locale_saver(std::basic_streambuf &s) : - m_streambuf(s), - m_locale(s.getloc()) - {} - ~basic_streambuf_locale_saver(){ - m_streambuf.pubsync(); - m_streambuf.pubimbue(m_locale); - } -private: - std::basic_streambuf & m_streambuf; - std::locale const m_locale; -}; - -template < typename Ch, class Tr > -class basic_istream_locale_saver : - private boost::noncopyable -{ -public: - explicit basic_istream_locale_saver(std::basic_istream &s) : - m_istream(s), - m_locale(s.getloc()) - {} - ~basic_istream_locale_saver(){ - // libstdc++ crashes without this - m_istream.sync(); - m_istream.imbue(m_locale); - } -private: - std::basic_istream & m_istream; - std::locale const m_locale; -}; - -template < typename Ch, class Tr > -class basic_ostream_locale_saver : - private boost::noncopyable -{ -public: - explicit basic_ostream_locale_saver(std::basic_ostream &s) : - m_ostream(s), - m_locale(s.getloc()) - {} - ~basic_ostream_locale_saver(){ - m_ostream.flush(); - m_ostream.imbue(m_locale); - } -private: - std::basic_ostream & m_ostream; - std::locale const m_locale; -}; - - -} // archive -} // boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_NO_STD_LOCALE -#endif // BOOST_ARCHIVE_BASIC_STREAMBUF_LOCALE_SAVER_HPP diff --git a/boost/archive/basic_text_iarchive.hpp b/boost/archive/basic_text_iarchive.hpp deleted file mode 100644 index d58540d8..00000000 --- a/boost/archive/basic_text_iarchive.hpp +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these ar templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// note the fact that on libraries without wide characters, ostream is -// is not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_istream but rather -// use two template parameters - -#include -#include - -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -///////////////////////////////////////////////////////////////////////// -// class basic_text_iarchive - read serialized objects from a input text stream -template -class BOOST_SYMBOL_VISIBLE basic_text_iarchive : - public detail::common_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile error - // on msvc 7.1 - friend detail::interface_iarchive; - #else - friend class detail::interface_iarchive; - #endif -#endif - // intermediate level to support override of operators - // fot templates in the absence of partial function - // template ordering - typedef detail::common_iarchive detail_common_iarchive; - template - void load_override(T & t){ - this->detail_common_iarchive::load_override(t); - } - // text file don't include the optional information - void load_override(class_id_optional_type & /*t*/){} - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(class_name_type & t); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - - basic_text_iarchive(unsigned int flags) : - detail::common_iarchive(flags) - {} - ~basic_text_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP diff --git a/boost/archive/basic_text_iprimitive.hpp b/boost/archive/basic_text_iprimitive.hpp deleted file mode 100644 index 606f59f5..00000000 --- a/boost/archive/basic_text_iprimitive.hpp +++ /dev/null @@ -1,142 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_TEXT_IPRIMITIVE_HPP -#define BOOST_ARCHIVE_BASIC_TEXT_IPRIMITIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_iprimitive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these are templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// Note the fact that on libraries without wide characters, ostream is -// not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_ostream but rather -// use two template parameters - -#include -#include // size_t - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; - #if ! defined(BOOST_DINKUMWARE_STDLIB) && ! defined(__SGI_STL_PORT) - using ::locale; - #endif -} // namespace std -#endif - -#include -#include - -#include -#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) -#include -#endif -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace archive { - -///////////////////////////////////////////////////////////////////////// -// class basic_text_iarchive - load serialized objects from a input text stream -#if defined(_MSC_VER) -#pragma warning( push ) -#pragma warning( disable : 4244 4267 ) -#endif - -template -class BOOST_SYMBOL_VISIBLE basic_text_iprimitive { -protected: - IStream &is; - io::ios_flags_saver flags_saver; - io::ios_precision_saver precision_saver; - - #ifndef BOOST_NO_STD_LOCALE - // note order! - if you change this, libstd++ will fail! - // a) create new locale with new codecvt facet - // b) save current locale - // c) change locale to new one - // d) use stream buffer - // e) change locale back to original - // f) destroy new codecvt facet - boost::archive::codecvt_null codecvt_null_facet; - std::locale archive_locale; - basic_istream_locale_saver< - typename IStream::char_type, - typename IStream::traits_type - > locale_saver; - #endif - - template - void load(T & t) - { - if(is >> t) - return; - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - } - - void load(char & t) - { - short int i; - load(i); - t = i; - } - void load(signed char & t) - { - short int i; - load(i); - t = i; - } - void load(unsigned char & t) - { - unsigned short int i; - load(i); - t = i; - } - - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - void load(wchar_t & t) - { - BOOST_STATIC_ASSERT(sizeof(wchar_t) <= sizeof(int)); - int i; - load(i); - t = i; - } - #endif - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_text_iprimitive(IStream &is, bool no_codecvt); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_text_iprimitive(); -public: - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_binary(void *address, std::size_t count); -}; - -#if defined(_MSC_VER) -#pragma warning( pop ) -#endif - -} // namespace archive -} // namespace boost - -#include // pop pragmas - -#endif // BOOST_ARCHIVE_BASIC_TEXT_IPRIMITIVE_HPP diff --git a/boost/archive/basic_text_oarchive.hpp b/boost/archive/basic_text_oarchive.hpp deleted file mode 100644 index 37ce33d7..00000000 --- a/boost/archive/basic_text_oarchive.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_TEXT_OARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_TEXT_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these ar templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// note the fact that on libraries without wide characters, ostream is -// is not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_ostream but rather -// use two template parameters - -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -///////////////////////////////////////////////////////////////////////// -// class basic_text_oarchive -template -class BOOST_SYMBOL_VISIBLE basic_text_oarchive : - public detail::common_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_oarchive; - #else - friend class detail::interface_oarchive; - #endif -#endif - - enum { - none, - eol, - space - } delimiter; - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - newtoken(); - - void newline(){ - delimiter = eol; - } - - // default processing - kick back to base class. Note the - // extra stuff to get it passed borland compilers - typedef detail::common_oarchive detail_common_oarchive; - template - void save_override(T & t){ - this->detail_common_oarchive::save_override(t); - } - - // start new objects on a new line - void save_override(const object_id_type & t){ - this->This()->newline(); - this->detail_common_oarchive::save_override(t); - } - - // text file don't include the optional information - void save_override(const class_id_optional_type & /* t */){} - - void save_override(const class_name_type & t){ - const std::string s(t); - * this->This() << s; - } - - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - - basic_text_oarchive(unsigned int flags) : - detail::common_oarchive(flags), - delimiter(none) - {} - ~basic_text_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_TEXT_OARCHIVE_HPP diff --git a/boost/archive/basic_text_oprimitive.hpp b/boost/archive/basic_text_oprimitive.hpp deleted file mode 100644 index adc0e896..00000000 --- a/boost/archive/basic_text_oprimitive.hpp +++ /dev/null @@ -1,210 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_TEXT_OPRIMITIVE_HPP -#define BOOST_ARCHIVE_BASIC_TEXT_OPRIMITIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_oprimitive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these ar templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// note the fact that on libraries without wide characters, ostream is -// is not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_ostream but rather -// use two template parameters - -#include -#include -#include // size_t - -#include -#include -#include - -#include -#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) -#include -#endif - -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; - #if ! defined(BOOST_DINKUMWARE_STDLIB) && ! defined(__SGI_STL_PORT) - using ::locale; - #endif -} // namespace std -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace archive { - -///////////////////////////////////////////////////////////////////////// -// class basic_text_oprimitive - output of prmitives to stream -template -class BOOST_SYMBOL_VISIBLE basic_text_oprimitive -{ -protected: - OStream &os; - io::ios_flags_saver flags_saver; - io::ios_precision_saver precision_saver; - - #ifndef BOOST_NO_STD_LOCALE - // note order! - if you change this, libstd++ will fail! - // a) create new locale with new codecvt facet - // b) save current locale - // c) change locale to new one - // d) use stream buffer - // e) change locale back to original - // f) destroy new codecvt facet - boost::archive::codecvt_null codecvt_null_facet; - std::locale archive_locale; - basic_ostream_locale_saver< - typename OStream::char_type, - typename OStream::traits_type - > locale_saver; - #endif - - ///////////////////////////////////////////////////////// - // fundamental types that need special treatment - void save(const bool t){ - // trap usage of invalid uninitialized boolean which would - // otherwise crash on load. - BOOST_ASSERT(0 == static_cast(t) || 1 == static_cast(t)); - if(os.fail()) - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - os << t; - } - void save(const signed char t) - { - save(static_cast(t)); - } - void save(const unsigned char t) - { - save(static_cast(t)); - } - void save(const char t) - { - save(static_cast(t)); - } - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - void save(const wchar_t t) - { - BOOST_STATIC_ASSERT(sizeof(wchar_t) <= sizeof(int)); - save(static_cast(t)); - } - #endif - - ///////////////////////////////////////////////////////// - // saving of any types not listed above - - template - void save_impl(const T &t, boost::mpl::bool_ &){ - if(os.fail()) - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - os << t; - } - - ///////////////////////////////////////////////////////// - // floating point types need even more special treatment - // the following determines whether the type T is some sort - // of floating point type. Note that we then assume that - // the stream << operator is defined on that type - if not - // we'll get a compile time error. This is meant to automatically - // support synthesized types which support floating point - // operations. Also it should handle compiler dependent types - // such long double. Due to John Maddock. - - template - struct is_float { - typedef typename mpl::bool_< - boost::is_floating_point::value - || (std::numeric_limits::is_specialized - && !std::numeric_limits::is_integer - && !std::numeric_limits::is_exact - && std::numeric_limits::max_exponent) - >::type type; - }; - - template - void save_impl(const T &t, boost::mpl::bool_ &){ - // must be a user mistake - can't serialize un-initialized data - if(os.fail()){ - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - } - // The formulae for the number of decimla digits required is given in - // http://www2.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1822.pdf - // which is derived from Kahan's paper: - // www.eecs.berkeley.edu/~wkahan/ieee754status/ieee754.ps - // const unsigned int digits = (std::numeric_limits::digits * 3010) / 10000; - // note: I've commented out the above because I didn't get good results. e.g. - // in one case I got a difference of 19 units. - #ifndef BOOST_NO_CXX11_NUMERIC_LIMITS - const unsigned int digits = std::numeric_limits::max_digits10; - #else - const unsigned int digits = std::numeric_limits::digits10 + 2; - #endif - os << std::setprecision(digits) << std::scientific << t; - } - - template - void save(const T & t){ - typename is_float::type tf; - save_impl(t, tf); - } - - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_text_oprimitive(OStream & os, bool no_codecvt); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_text_oprimitive(); -public: - // unformatted append of one character - void put(typename OStream::char_type c){ - if(os.fail()) - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - os.put(c); - } - // unformatted append of null terminated string - void put(const char * s){ - while('\0' != *s) - os.put(*s++); - } - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_binary(const void *address, std::size_t count); -}; - -} //namespace boost -} //namespace archive - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_TEXT_OPRIMITIVE_HPP diff --git a/boost/archive/basic_xml_archive.hpp b/boost/archive/basic_xml_archive.hpp deleted file mode 100644 index 546610fa..00000000 --- a/boost/archive/basic_xml_archive.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_XML_TEXT_ARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_XML_TEXT_ARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_archive.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include // must be the last header - -namespace boost { -namespace archive { - -// constant strings used in xml i/o - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_OBJECT_ID(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_OBJECT_REFERENCE(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_CLASS_ID(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_CLASS_ID_REFERENCE(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_CLASS_NAME(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_TRACKING(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_VERSION(); - -extern -BOOST_ARCHIVE_DECL const char * -BOOST_ARCHIVE_XML_SIGNATURE(); - -}// namespace archive -}// namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_XML_TEXT_ARCHIVE_HPP - diff --git a/boost/archive/basic_xml_iarchive.hpp b/boost/archive/basic_xml_iarchive.hpp deleted file mode 100644 index 84c1532f..00000000 --- a/boost/archive/basic_xml_iarchive.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_XML_IARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_XML_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include - -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -///////////////////////////////////////////////////////////////////////// -// class basic_xml_iarchive - read serialized objects from a input text stream -template -class BOOST_SYMBOL_VISIBLE basic_xml_iarchive : - public detail::common_iarchive -{ - unsigned int depth; -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_iarchive; -#endif - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_start(const char *name); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_end(const char *name); - - // Anything not an attribute and not a name-value pair is an - // should be trapped here. - template - void load_override(T & t) - { - // If your program fails to compile here, its most likely due to - // not specifying an nvp wrapper around the variable to - // be serialized. - BOOST_MPL_ASSERT((serialization::is_wrapper< T >)); - this->detail_common_iarchive::load_override(t); - } - - // Anything not an attribute - see below - should be a name value - // pair and be processed here - typedef detail::common_iarchive detail_common_iarchive; - template - void load_override( - const boost::serialization::nvp< T > & t - ){ - this->This()->load_start(t.name()); - this->detail_common_iarchive::load_override(t.value()); - this->This()->load_end(t.name()); - } - - // specific overrides for attributes - handle as - // primitives. These are not name-value pairs - // so they have to be intercepted here and passed on to load. - // although the class_id is included in the xml text file in order - // to make the file self describing, it isn't used when loading - // an xml archive. So we can skip it here. Note: we MUST override - // it otherwise it will be loaded as a normal primitive w/o tag and - // leaving the archive in an undetermined state - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(class_id_type & t); - void load_override(class_id_optional_type & /* t */){} - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(object_id_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(version_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - load_override(tracking_type & t); - // class_name_type can't be handled here as it depends upon the - // char type used by the stream. So require the derived implementation - // handle this. - // void load_override(class_name_type & t); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_xml_iarchive(unsigned int flags); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_xml_iarchive() BOOST_OVERRIDE; -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_XML_IARCHIVE_HPP diff --git a/boost/archive/basic_xml_oarchive.hpp b/boost/archive/basic_xml_oarchive.hpp deleted file mode 100644 index b2b19cad..00000000 --- a/boost/archive/basic_xml_oarchive.hpp +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_XML_OARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_XML_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include - -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -////////////////////////////////////////////////////////////////////// -// class basic_xml_oarchive - write serialized objects to a xml output stream -template -class BOOST_SYMBOL_VISIBLE basic_xml_oarchive : - public detail::common_oarchive -{ - // special stuff for xml output - unsigned int depth; - bool pending_preamble; -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_oarchive; -#endif - bool indent_next; - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - indent(); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - init(); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - windup(); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - write_attribute( - const char *attribute_name, - int t, - const char *conjunction = "=\"" - ); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - write_attribute( - const char *attribute_name, - const char *key - ); - // helpers used below - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_start(const char *name); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_end(const char *name); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - end_preamble(); - - // Anything not an attribute and not a name-value pair is an - // error and should be trapped here. - template - void save_override(T & t) - { - // If your program fails to compile here, its most likely due to - // not specifying an nvp wrapper around the variable to - // be serialized. - BOOST_MPL_ASSERT((serialization::is_wrapper< T >)); - this->detail_common_oarchive::save_override(t); - } - - // special treatment for name-value pairs. - typedef detail::common_oarchive detail_common_oarchive; - template - void save_override( - const ::boost::serialization::nvp< T > & t - ){ - this->This()->save_start(t.name()); - this->detail_common_oarchive::save_override(t.const_value()); - this->This()->save_end(t.name()); - } - - // specific overrides for attributes - not name value pairs so we - // want to trap them before the above "fall through" - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const class_id_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const class_id_optional_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const class_id_reference_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const object_id_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const object_reference_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const version_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const class_name_type & t); - BOOST_ARCHIVE_OR_WARCHIVE_DECL void - save_override(const tracking_type & t); - - BOOST_ARCHIVE_OR_WARCHIVE_DECL - basic_xml_oarchive(unsigned int flags); - BOOST_ARCHIVE_OR_WARCHIVE_DECL - ~basic_xml_oarchive() BOOST_OVERRIDE; -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_XML_OARCHIVE_HPP diff --git a/boost/archive/binary_iarchive.hpp b/boost/archive/binary_iarchive.hpp deleted file mode 100644 index 5052631a..00000000 --- a/boost/archive/binary_iarchive.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_IARCHIVE_HPP -#define BOOST_ARCHIVE_BINARY_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -// do not derive from this class. If you want to extend this functionality -// via inhertance, derived from binary_iarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE binary_iarchive : - public binary_iarchive_impl< - boost::archive::binary_iarchive, - std::istream::char_type, - std::istream::traits_type - >{ -public: - binary_iarchive(std::istream & is, unsigned int flags = 0) : - binary_iarchive_impl< - binary_iarchive, std::istream::char_type, std::istream::traits_type - >(is, flags) - { - init(flags); - } - binary_iarchive(std::streambuf & bsb, unsigned int flags = 0) : - binary_iarchive_impl< - binary_iarchive, std::istream::char_type, std::istream::traits_type - >(bsb, flags) - { - init(flags); - } -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_iarchive) -BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(boost::archive::binary_iarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_BINARY_IARCHIVE_HPP diff --git a/boost/archive/binary_iarchive_impl.hpp b/boost/archive/binary_iarchive_impl.hpp deleted file mode 100644 index 8e97ad12..00000000 --- a/boost/archive/binary_iarchive_impl.hpp +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_IARCHIVE_IMPL_HPP -#define BOOST_ARCHIVE_BINARY_IARCHIVE_IMPL_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_iarchive_impl.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE binary_iarchive_impl : - public basic_binary_iprimitive, - public basic_binary_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_iarchive; - friend basic_binary_iarchive; - friend load_access; - #else - friend class detail::interface_iarchive; - friend class basic_binary_iarchive; - friend class load_access; - #endif -#endif - template - void load_override(T & t){ - this->basic_binary_iarchive::load_override(t); - } - void init(unsigned int flags){ - if(0 != (flags & no_header)){ - return; - } - #if ! defined(__MWERKS__) - this->basic_binary_iarchive::init(); - this->basic_binary_iprimitive::init(); - #else - basic_binary_iarchive::init(); - basic_binary_iprimitive::init(); - #endif - } - binary_iarchive_impl( - std::basic_streambuf & bsb, - unsigned int flags - ) : - basic_binary_iprimitive( - bsb, - 0 != (flags & no_codecvt) - ), - basic_binary_iarchive(flags) - {} - binary_iarchive_impl( - std::basic_istream & is, - unsigned int flags - ) : - basic_binary_iprimitive( - * is.rdbuf(), - 0 != (flags & no_codecvt) - ), - basic_binary_iarchive(flags) - {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_BINARY_IARCHIVE_IMPL_HPP diff --git a/boost/archive/binary_oarchive.hpp b/boost/archive/binary_oarchive.hpp deleted file mode 100644 index ba775d5c..00000000 --- a/boost/archive/binary_oarchive.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_OARCHIVE_HPP -#define BOOST_ARCHIVE_BINARY_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -// do not derive from this class. If you want to extend this functionality -// via inhertance, derived from binary_oarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE binary_oarchive : - public binary_oarchive_impl< - binary_oarchive, std::ostream::char_type, std::ostream::traits_type - > -{ -public: - binary_oarchive(std::ostream & os, unsigned int flags = 0) : - binary_oarchive_impl< - binary_oarchive, std::ostream::char_type, std::ostream::traits_type - >(os, flags) - { - init(flags); - } - binary_oarchive(std::streambuf & bsb, unsigned int flags = 0) : - binary_oarchive_impl< - binary_oarchive, std::ostream::char_type, std::ostream::traits_type - >(bsb, flags) - { - init(flags); - } -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_oarchive) -BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(boost::archive::binary_oarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_BINARY_OARCHIVE_HPP diff --git a/boost/archive/binary_oarchive_impl.hpp b/boost/archive/binary_oarchive_impl.hpp deleted file mode 100644 index d8387112..00000000 --- a/boost/archive/binary_oarchive_impl.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_OARCHIVE_IMPL_HPP -#define BOOST_ARCHIVE_BINARY_OARCHIVE_IMPL_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_oarchive_impl.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE binary_oarchive_impl : - public basic_binary_oprimitive, - public basic_binary_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_oarchive; - friend basic_binary_oarchive; - friend save_access; - #else - friend class detail::interface_oarchive; - friend class basic_binary_oarchive; - friend class save_access; - #endif -#endif - template - void save_override(T & t){ - this->basic_binary_oarchive::save_override(t); - } - void init(unsigned int flags) { - if(0 != (flags & no_header)){ - return; - } - #if ! defined(__MWERKS__) - this->basic_binary_oarchive::init(); - this->basic_binary_oprimitive::init(); - #else - basic_binary_oarchive::init(); - basic_binary_oprimitive::init(); - #endif - } - binary_oarchive_impl( - std::basic_streambuf & bsb, - unsigned int flags - ) : - basic_binary_oprimitive( - bsb, - 0 != (flags & no_codecvt) - ), - basic_binary_oarchive(flags) - {} - binary_oarchive_impl( - std::basic_ostream & os, - unsigned int flags - ) : - basic_binary_oprimitive( - * os.rdbuf(), - 0 != (flags & no_codecvt) - ), - basic_binary_oarchive(flags) - {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_BINARY_OARCHIVE_IMPL_HPP diff --git a/boost/archive/binary_wiarchive.hpp b/boost/archive/binary_wiarchive.hpp deleted file mode 100644 index 45a2af56..00000000 --- a/boost/archive/binary_wiarchive.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_WIARCHIVE_HPP -#define BOOST_ARCHIVE_BINARY_WIARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_wiarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include // wistream -#include -#include - -namespace boost { -namespace archive { - -class binary_wiarchive : - public binary_iarchive_impl< - binary_wiarchive, std::wistream::char_type, std::wistream::traits_type - > -{ -public: - binary_wiarchive(std::wistream & is, unsigned int flags = 0) : - binary_iarchive_impl< - binary_wiarchive, std::wistream::char_type, std::wistream::traits_type - >(is, flags) - {} - binary_wiarchive(std::wstreambuf & bsb, unsigned int flags = 0) : - binary_iarchive_impl< - binary_wiarchive, std::wistream::char_type, std::wistream::traits_type - >(bsb, flags) - {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_wiarchive) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_BINARY_WIARCHIVE_HPP diff --git a/boost/archive/binary_woarchive.hpp b/boost/archive/binary_woarchive.hpp deleted file mode 100644 index 6735ceba..00000000 --- a/boost/archive/binary_woarchive.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef BOOST_ARCHIVE_BINARY_WOARCHIVE_HPP -#define BOOST_ARCHIVE_BINARY_WOARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_woarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include -#include - -namespace boost { -namespace archive { - -// do not derive from this class. If you want to extend this functionality -// via inhertance, derived from binary_oarchive_impl instead. This will -// preserve correct static polymorphism. -class binary_woarchive : - public binary_oarchive_impl< - binary_woarchive, std::wostream::char_type, std::wostream::traits_type - > -{ -public: - binary_woarchive(std::wostream & os, unsigned int flags = 0) : - binary_oarchive_impl< - binary_woarchive, std::wostream::char_type, std::wostream::traits_type - >(os, flags) - {} - binary_woarchive(std::wstreambuf & bsb, unsigned int flags = 0) : - binary_oarchive_impl< - binary_woarchive, std::wostream::char_type, std::wostream::traits_type - >(bsb, flags) - {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_woarchive) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_BINARY_WOARCHIVE_HPP diff --git a/boost/archive/codecvt_null.hpp b/boost/archive/codecvt_null.hpp deleted file mode 100644 index 3905d43a..00000000 --- a/boost/archive/codecvt_null.hpp +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef BOOST_ARCHIVE_CODECVT_NULL_HPP -#define BOOST_ARCHIVE_CODECVT_NULL_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// codecvt_null.hpp: - -// (C) Copyright 2004 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL, size_t -#ifndef BOOST_NO_CWCHAR -#include // for mbstate_t -#endif -#include -#include -#include -//#include // must be the last header - -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std { -// For STLport on WinCE, BOOST_NO_STDC_NAMESPACE can get defined if STLport is putting symbols in its own namespace. -// In the case of codecvt, however, this does not mean that codecvt is in the global namespace (it will be in STLport's namespace) -# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) - using ::codecvt; -# endif - using ::mbstate_t; - using ::size_t; -} // namespace -#endif - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -template -class codecvt_null; - -template<> -class codecvt_null : public std::codecvt -{ - bool do_always_noconv() const throw() BOOST_OVERRIDE { - return true; - } -public: - explicit codecvt_null(std::size_t no_locale_manage = 0) : - std::codecvt(no_locale_manage) - {} - ~codecvt_null() BOOST_OVERRIDE {} -}; - -template<> -class BOOST_SYMBOL_VISIBLE codecvt_null : - public std::codecvt -{ - BOOST_SYMBOL_EXPORT std::codecvt_base::result - do_out( - std::mbstate_t & state, - const wchar_t * first1, - const wchar_t * last1, - const wchar_t * & next1, - char * first2, - char * last2, - char * & next2 - ) const BOOST_OVERRIDE; - - BOOST_SYMBOL_EXPORT std::codecvt_base::result - do_in( - std::mbstate_t & state, - const char * first1, - const char * last1, - const char * & next1, - wchar_t * first2, - wchar_t * last2, - wchar_t * & next2 - ) const BOOST_OVERRIDE; - - BOOST_SYMBOL_EXPORT int do_encoding( ) const throw( ) BOOST_OVERRIDE { - return sizeof(wchar_t) / sizeof(char); - } - - BOOST_SYMBOL_EXPORT bool do_always_noconv() const throw() BOOST_OVERRIDE { - return false; - } - - BOOST_SYMBOL_EXPORT int do_max_length( ) const throw( ) BOOST_OVERRIDE { - return do_encoding(); - } -public: - BOOST_SYMBOL_EXPORT explicit codecvt_null(std::size_t no_locale_manage = 0); - - BOOST_SYMBOL_EXPORT ~codecvt_null() BOOST_OVERRIDE ; -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif -//#include // pop pragmas - -#endif //BOOST_ARCHIVE_CODECVT_NULL_HPP diff --git a/boost/archive/detail/abi_prefix.hpp b/boost/archive/detail/abi_prefix.hpp deleted file mode 100644 index b45253b5..00000000 --- a/boost/archive/detail/abi_prefix.hpp +++ /dev/null @@ -1,16 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// abi_prefix.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // must be the last header -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4251 4231 4660 4275) -#endif - diff --git a/boost/archive/detail/abi_suffix.hpp b/boost/archive/detail/abi_suffix.hpp deleted file mode 100644 index f3307c92..00000000 --- a/boost/archive/detail/abi_suffix.hpp +++ /dev/null @@ -1,15 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// abi_suffix.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -#include // pops abi_suffix.hpp pragmas - diff --git a/boost/archive/detail/archive_serializer_map.hpp b/boost/archive/detail/archive_serializer_map.hpp deleted file mode 100644 index 1e94e258..00000000 --- a/boost/archive/detail/archive_serializer_map.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef BOOST_ARCHIVE_SERIALIZER_MAP_HPP -#define BOOST_ARCHIVE_SERIALIZER_MAP_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// archive_serializer_map.hpp: extenstion of type_info required for -// serialization. - -// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// note: this is nothing more than the thinest of wrappers around -// basic_serializer_map so we can have a one map / archive type. - -#include -#include -#include // must be the last header - -namespace boost { - -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { -namespace detail { - -class basic_serializer; - -template -class BOOST_SYMBOL_VISIBLE archive_serializer_map { -public: - static BOOST_ARCHIVE_OR_WARCHIVE_DECL bool insert(const basic_serializer * bs); - static BOOST_ARCHIVE_OR_WARCHIVE_DECL void erase(const basic_serializer * bs); - static BOOST_ARCHIVE_OR_WARCHIVE_DECL const basic_serializer * find( - const boost::serialization::extended_type_info & type_ - ); -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // must be the last header - -#endif //BOOST_ARCHIVE_SERIALIZER_MAP_HPP diff --git a/boost/archive/detail/auto_link_archive.hpp b/boost/archive/detail/auto_link_archive.hpp deleted file mode 100644 index fefd3ab2..00000000 --- a/boost/archive/detail/auto_link_archive.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_AUTO_LINK_ARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_AUTO_LINK_ARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// auto_link_archive.hpp -// -// (c) Copyright Robert Ramey 2004 -// Use, modification, and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See library home page at http://www.boost.org/libs/serialization - -//----------------------------------------------------------------------------// - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -// enable automatic library variant selection ------------------------------// - -#include - -#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SERIALIZATION_NO_LIB) \ -&& !defined(BOOST_ARCHIVE_SOURCE) && !defined(BOOST_WARCHIVE_SOURCE) \ -&& !defined(BOOST_SERIALIZATION_SOURCE) - - // Set the name of our library, this will get undef'ed by auto_link.hpp - // once it's done with it: - // - #define BOOST_LIB_NAME boost_serialization - // - // If we're importing code from a dll, then tell auto_link.hpp about it: - // - #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK) - # define BOOST_DYN_LINK - #endif - // - // And include the header that does the work: - // - #include -#endif // auto-linking disabled - -#endif // BOOST_ARCHIVE_DETAIL_AUTO_LINK_ARCHIVE_HPP diff --git a/boost/archive/detail/auto_link_warchive.hpp b/boost/archive/detail/auto_link_warchive.hpp deleted file mode 100644 index 4f506864..00000000 --- a/boost/archive/detail/auto_link_warchive.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_AUTO_LINK_WARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_AUTO_LINK_WARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// auto_link_warchive.hpp -// -// (c) Copyright Robert Ramey 2004 -// Use, modification, and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See library home page at http://www.boost.org/libs/serialization - -//----------------------------------------------------------------------------// - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -// enable automatic library variant selection ------------------------------// - -#include - -#if !defined(BOOST_WARCHIVE_SOURCE) \ -&& !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SERIALIZATION_NO_LIB) - -// Set the name of our library, this will get undef'ed by auto_link.hpp -// once it's done with it: -// -#define BOOST_LIB_NAME boost_wserialization -// -// If we're importing code from a dll, then tell auto_link.hpp about it: -// -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK) -# define BOOST_DYN_LINK -#endif -// -// And include the header that does the work: -// -#include -#endif // auto-linking disabled - -#endif // ARCHIVE_DETAIL_AUTO_LINK_ARCHIVE_HPP diff --git a/boost/archive/detail/basic_iarchive.hpp b/boost/archive/detail/basic_iarchive.hpp deleted file mode 100644 index a3eb9342..00000000 --- a/boost/archive/detail/basic_iarchive.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_iarchive.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// can't use this - much as I'd like to as borland doesn't support it - -#include -#include -#include - -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { -namespace detail { - -class basic_iarchive_impl; -class basic_iserializer; -class basic_pointer_iserializer; - -////////////////////////////////////////////////////////////////////// -// class basic_iarchive - read serialized objects from a input stream -class BOOST_SYMBOL_VISIBLE basic_iarchive : - private boost::noncopyable, - public boost::archive::detail::helper_collection -{ - friend class basic_iarchive_impl; - // hide implementation of this class to minimize header conclusion - boost::scoped_ptr pimpl; - - virtual void vload(version_type &t) = 0; - virtual void vload(object_id_type &t) = 0; - virtual void vload(class_id_type &t) = 0; - virtual void vload(class_id_optional_type &t) = 0; - virtual void vload(class_name_type &t) = 0; - virtual void vload(tracking_type &t) = 0; -protected: - BOOST_ARCHIVE_DECL basic_iarchive(unsigned int flags); - boost::archive::detail::helper_collection & - get_helper_collection(){ - return *this; - } -public: - // some msvc versions require that the following function be public - // otherwise it should really protected. - virtual BOOST_ARCHIVE_DECL ~basic_iarchive(); - // note: NOT part of the public API. - BOOST_ARCHIVE_DECL void next_object_pointer(void *t); - BOOST_ARCHIVE_DECL void register_basic_serializer( - const basic_iserializer & bis - ); - BOOST_ARCHIVE_DECL void load_object( - void *t, - const basic_iserializer & bis - ); - BOOST_ARCHIVE_DECL const basic_pointer_iserializer * - load_pointer( - void * & t, - const basic_pointer_iserializer * bpis_ptr, - const basic_pointer_iserializer * (*finder)( - const boost::serialization::extended_type_info & eti - ) - ); - // real public API starts here - BOOST_ARCHIVE_DECL void - set_library_version(boost::serialization::library_version_type archive_library_version); - BOOST_ARCHIVE_DECL boost::serialization::library_version_type - get_library_version() const; - BOOST_ARCHIVE_DECL unsigned int - get_flags() const; - BOOST_ARCHIVE_DECL void - reset_object_address(const void * new_address, const void * old_address); - BOOST_ARCHIVE_DECL void - delete_created_pointers(); -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif //BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_HPP diff --git a/boost/archive/detail/basic_iserializer.hpp b/boost/archive/detail/basic_iserializer.hpp deleted file mode 100644 index 98c9c474..00000000 --- a/boost/archive/detail/basic_iserializer.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP -#define BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_iserializer.hpp: extenstion of type_info required for serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // NULL -#include - -#include -#include -#include -#include -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -// forward declarations -namespace archive { -namespace detail { - -class basic_iarchive; -class basic_pointer_iserializer; - -class BOOST_SYMBOL_VISIBLE basic_iserializer : - public basic_serializer -{ -private: - basic_pointer_iserializer *m_bpis; -protected: - explicit BOOST_ARCHIVE_DECL basic_iserializer( - const boost::serialization::extended_type_info & type - ); - virtual BOOST_ARCHIVE_DECL ~basic_iserializer(); -public: - bool serialized_as_pointer() const { - return m_bpis != NULL; - } - void set_bpis(basic_pointer_iserializer *bpis){ - m_bpis = bpis; - } - const basic_pointer_iserializer * get_bpis_ptr() const { - return m_bpis; - } - virtual void load_object_data( - basic_iarchive & ar, - void *x, - const unsigned int file_version - ) const = 0; - // returns true if class_info should be saved - virtual bool class_info() const = 0 ; - // returns true if objects should be tracked - virtual bool tracking(const unsigned int) const = 0 ; - // returns class version - virtual version_type version() const = 0 ; - // returns true if this class is polymorphic - virtual bool is_polymorphic() const = 0; - virtual void destroy(/*const*/ void *address) const = 0 ; -}; - -} // namespae detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP diff --git a/boost/archive/detail/basic_oarchive.hpp b/boost/archive/detail/basic_oarchive.hpp deleted file mode 100644 index 36e80d10..00000000 --- a/boost/archive/detail/basic_oarchive.hpp +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_OARCHIVE_HPP -#define BOOST_ARCHIVE_BASIC_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_oarchive.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // NULL -#include -#include -#include - -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { -namespace detail { - -class basic_oarchive_impl; -class basic_oserializer; -class basic_pointer_oserializer; - -////////////////////////////////////////////////////////////////////// -// class basic_oarchive - write serialized objects to an output stream -class BOOST_SYMBOL_VISIBLE basic_oarchive : - private boost::noncopyable, - public boost::archive::detail::helper_collection -{ - friend class basic_oarchive_impl; - // hide implementation of this class to minimize header conclusion - boost::scoped_ptr pimpl; - - // overload these to bracket object attributes. Used to implement - // xml archives - virtual void vsave(const version_type t) = 0; - virtual void vsave(const object_id_type t) = 0; - virtual void vsave(const object_reference_type t) = 0; - virtual void vsave(const class_id_type t) = 0; - virtual void vsave(const class_id_optional_type t) = 0; - virtual void vsave(const class_id_reference_type t) = 0; - virtual void vsave(const class_name_type & t) = 0; - virtual void vsave(const tracking_type t) = 0; -protected: - BOOST_ARCHIVE_DECL basic_oarchive(unsigned int flags = 0); - BOOST_ARCHIVE_DECL boost::archive::detail::helper_collection & - get_helper_collection(); - virtual BOOST_ARCHIVE_DECL ~basic_oarchive(); -public: - // note: NOT part of the public interface - BOOST_ARCHIVE_DECL void register_basic_serializer( - const basic_oserializer & bos - ); - BOOST_ARCHIVE_DECL void save_object( - const void *x, - const basic_oserializer & bos - ); - BOOST_ARCHIVE_DECL void save_pointer( - const void * t, - const basic_pointer_oserializer * bpos_ptr - ); - void save_null_pointer(){ - vsave(BOOST_SERIALIZATION_NULL_POINTER_TAG); - } - // real public interface starts here - BOOST_ARCHIVE_DECL void end_preamble(); // default implementation does nothing - BOOST_ARCHIVE_DECL boost::serialization::library_version_type get_library_version() const; - BOOST_ARCHIVE_DECL unsigned int get_flags() const; -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif //BOOST_ARCHIVE_BASIC_OARCHIVE_HPP diff --git a/boost/archive/detail/basic_oserializer.hpp b/boost/archive/detail/basic_oserializer.hpp deleted file mode 100644 index b3f95677..00000000 --- a/boost/archive/detail/basic_oserializer.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_SERIALIZATION_BASIC_OSERIALIZER_HPP -#define BOOST_SERIALIZATION_BASIC_OSERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_oserializer.hpp: extenstion of type_info required for serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // NULL -#include -#include - -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -// forward declarations -namespace archive { -namespace detail { - -class basic_oarchive; -class basic_pointer_oserializer; - -class BOOST_SYMBOL_VISIBLE basic_oserializer : - public basic_serializer -{ -private: - basic_pointer_oserializer *m_bpos; -protected: - explicit BOOST_ARCHIVE_DECL basic_oserializer( - const boost::serialization::extended_type_info & type_ - ); - virtual BOOST_ARCHIVE_DECL ~basic_oserializer(); -public: - bool serialized_as_pointer() const { - return m_bpos != NULL; - } - void set_bpos(basic_pointer_oserializer *bpos){ - m_bpos = bpos; - } - const basic_pointer_oserializer * get_bpos() const { - return m_bpos; - } - virtual void save_object_data( - basic_oarchive & ar, const void * x - ) const = 0; - // returns true if class_info should be saved - virtual bool class_info() const = 0; - // returns true if objects should be tracked - virtual bool tracking(const unsigned int flags) const = 0; - // returns class version - virtual version_type version() const = 0; - // returns true if this class is polymorphic - virtual bool is_polymorphic() const = 0; -}; - -} // namespace detail -} // namespace serialization -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_SERIALIZATION_BASIC_OSERIALIZER_HPP diff --git a/boost/archive/detail/basic_pointer_iserializer.hpp b/boost/archive/detail/basic_pointer_iserializer.hpp deleted file mode 100644 index be805a42..00000000 --- a/boost/archive/detail/basic_pointer_iserializer.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP -#define BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_pointer_oserializer.hpp: extenstion of type_info required for -// serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -// forward declarations -namespace archive { -namespace detail { - -class basic_iarchive; -class basic_iserializer; - -class BOOST_SYMBOL_VISIBLE basic_pointer_iserializer - : public basic_serializer { -protected: - explicit BOOST_ARCHIVE_DECL basic_pointer_iserializer( - const boost::serialization::extended_type_info & type_ - ); - virtual BOOST_ARCHIVE_DECL ~basic_pointer_iserializer(); -public: - virtual void * heap_allocation() const = 0; - virtual const basic_iserializer & get_basic_serializer() const = 0; - virtual void load_object_ptr( - basic_iarchive & ar, - void * x, - const unsigned int file_version - ) const = 0; -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP diff --git a/boost/archive/detail/basic_pointer_oserializer.hpp b/boost/archive/detail/basic_pointer_oserializer.hpp deleted file mode 100644 index 86376568..00000000 --- a/boost/archive/detail/basic_pointer_oserializer.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP -#define BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_pointer_oserializer.hpp: extenstion of type_info required for -// serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { -namespace detail { - -class basic_oarchive; -class basic_oserializer; - -class BOOST_SYMBOL_VISIBLE basic_pointer_oserializer : - public basic_serializer -{ -protected: - explicit BOOST_ARCHIVE_DECL basic_pointer_oserializer( - const boost::serialization::extended_type_info & type_ - ); -public: - virtual BOOST_ARCHIVE_DECL ~basic_pointer_oserializer(); - virtual const basic_oserializer & get_basic_serializer() const = 0; - virtual void save_object_ptr( - basic_oarchive & ar, - const void * x - ) const = 0; -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP diff --git a/boost/archive/detail/basic_serializer.hpp b/boost/archive/detail/basic_serializer.hpp deleted file mode 100644 index 9c2535bf..00000000 --- a/boost/archive/detail/basic_serializer.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_SERIALIZER_HPP -#define BOOST_ARCHIVE_BASIC_SERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_serializer.hpp: extenstion of type_info required for serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { -namespace detail { - -class basic_serializer : - private boost::noncopyable -{ - const boost::serialization::extended_type_info * m_eti; -protected: - explicit basic_serializer( - const boost::serialization::extended_type_info & eti - ) : - m_eti(& eti) - {} -public: - inline bool - operator<(const basic_serializer & rhs) const { - // can't compare address since there can be multiple eti records - // for the same type in different execution modules (that is, DLLS) - // leave this here as a reminder not to do this! - // return & lhs.get_eti() < & rhs.get_eti(); - return get_eti() < rhs.get_eti(); - } - const char * get_debug_info() const { - return m_eti->get_debug_info(); - } - const boost::serialization::extended_type_info & get_eti() const { - return * m_eti; - } -}; - -class basic_serializer_arg : public basic_serializer { -public: - basic_serializer_arg(const serialization::extended_type_info & eti) : - basic_serializer(eti) - {} -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_BASIC_SERIALIZER_HPP diff --git a/boost/archive/detail/basic_serializer_map.hpp b/boost/archive/detail/basic_serializer_map.hpp deleted file mode 100644 index 78c6a52d..00000000 --- a/boost/archive/detail/basic_serializer_map.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_SERIALIZER_MAP_HPP -#define BOOST_SERIALIZER_MAP_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_serializer_map.hpp: extenstion of type_info required for serialization. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include -#include - -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} - -namespace archive { -namespace detail { - -class basic_serializer; - -class BOOST_SYMBOL_VISIBLE -basic_serializer_map : public - boost::noncopyable -{ - struct type_info_pointer_compare - { - bool operator()( - const basic_serializer * lhs, const basic_serializer * rhs - ) const ; - }; - typedef std::set< - const basic_serializer *, - type_info_pointer_compare - > map_type; - map_type m_map; -public: - BOOST_ARCHIVE_DECL bool insert(const basic_serializer * bs); - BOOST_ARCHIVE_DECL void erase(const basic_serializer * bs); - BOOST_ARCHIVE_DECL const basic_serializer * find( - const boost::serialization::extended_type_info & type_ - ) const; -private: - // cw 8.3 requires this - basic_serializer_map& operator=(basic_serializer_map const&); -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // must be the last header - -#endif // BOOST_SERIALIZER_MAP_HPP diff --git a/boost/archive/detail/check.hpp b/boost/archive/detail/check.hpp deleted file mode 100644 index 5bf0a48b..00000000 --- a/boost/archive/detail/check.hpp +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_CHECK_HPP -#define BOOST_ARCHIVE_DETAIL_CHECK_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#if !defined(__clang__) -#pragma inline_depth(255) -#pragma inline_recursion(on) -#endif -#endif - -#if defined(__MWERKS__) -#pragma inline_depth(255) -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// check.hpp: interface for serialization system. - -// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { -namespace archive { -namespace detail { - -// checks for objects - -template -inline void check_object_level(){ - typedef - typename mpl::greater_equal< - serialization::implementation_level< T >, - mpl::int_ - >::type typex; - - // trap attempts to serialize objects marked - // not_serializable - BOOST_STATIC_ASSERT(typex::value); -} - -template -inline void check_object_versioning(){ - typedef - typename mpl::or_< - typename mpl::greater< - serialization::implementation_level< T >, - mpl::int_ - >, - typename mpl::equal_to< - serialization::version< T >, - mpl::int_<0> - > - > typex; - // trap attempts to serialize with objects that don't - // save class information in the archive with versioning. - BOOST_STATIC_ASSERT(typex::value); -} - -template -inline void check_object_tracking(){ - // presume it has already been determined that - // T is not a const - BOOST_STATIC_ASSERT(! boost::is_const< T >::value); - typedef typename mpl::equal_to< - serialization::tracking_level< T >, - mpl::int_ - >::type typex; - // saving an non-const object of a type not marked "track_never) - - // may be an indicator of an error usage of the - // serialization library and should be double checked. - // See documentation on object tracking. Also, see the - // "rationale" section of the documenation - // for motivation for this checking. - - BOOST_STATIC_WARNING(typex::value); -} - -// checks for pointers - -template -inline void check_pointer_level(){ - // we should only invoke this once we KNOW that T - // has been used as a pointer!! - typedef - typename mpl::or_< - typename mpl::greater< - serialization::implementation_level< T >, - mpl::int_ - >, - typename mpl::not_< - typename mpl::equal_to< - serialization::tracking_level< T >, - mpl::int_ - > - > - > typex; - // Address the following when serializing to a pointer: - - // a) This type doesn't save class information in the - // archive. That is, the serialization trait implementation - // level <= object_serializable. - // b) Tracking for this type is set to "track selectively" - - // in this case, indication that an object is tracked is - // not stored in the archive itself - see level == object_serializable - // but rather the existence of the operation ar >> T * is used to - // infer that an object of this type should be tracked. So, if - // you save via a pointer but don't load via a pointer the operation - // will fail on load without given any valid reason for the failure. - - // So if your program traps here, consider changing the - // tracking or implementation level traits - or not - // serializing via a pointer. - BOOST_STATIC_WARNING(typex::value); -} - -template -void inline check_pointer_tracking(){ - typedef typename mpl::greater< - serialization::tracking_level< T >, - mpl::int_ - >::type typex; - // serializing an object of a type marked "track_never" through a pointer - // could result in creating more objects than were saved! - BOOST_STATIC_WARNING(typex::value); -} - -template -inline void check_const_loading(){ - typedef - typename mpl::or_< - typename boost::serialization::is_wrapper< T >, - typename mpl::not_< - typename boost::is_const< T > - > - >::type typex; - // cannot load data into a "const" object unless it's a - // wrapper around some other non-const object. - BOOST_STATIC_ASSERT(typex::value); -} - -} // detail -} // archive -} // boost - -#endif // BOOST_ARCHIVE_DETAIL_CHECK_HPP diff --git a/boost/archive/detail/common_iarchive.hpp b/boost/archive/detail/common_iarchive.hpp deleted file mode 100644 index 2935e310..00000000 --- a/boost/archive/detail/common_iarchive.hpp +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_COMMON_IARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_COMMON_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// common_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { -namespace detail { - -class extended_type_info; - -// note: referred to as Curiously Recurring Template Patter (CRTP) -template -class BOOST_SYMBOL_VISIBLE common_iarchive : - public basic_iarchive, - public interface_iarchive -{ - friend class interface_iarchive; - friend class basic_iarchive; -private: - void vload(version_type & t) BOOST_OVERRIDE { - * this->This() >> t; - } - void vload(object_id_type & t) BOOST_OVERRIDE { - * this->This() >> t; - } - void vload(class_id_type & t) BOOST_OVERRIDE { - * this->This() >> t; - } - void vload(class_id_optional_type & t) BOOST_OVERRIDE { - * this->This() >> t; - } - void vload(tracking_type & t) BOOST_OVERRIDE { - * this->This() >> t; - } - void vload(class_name_type &s) BOOST_OVERRIDE { - * this->This() >> s; - } -protected: - // default processing - invoke serialization library - template - void load_override(T & t){ - archive::load(* this->This(), t); - } - // default implementations of functions which emit start/end tags for - // archive types that require them. - void load_start(const char * /*name*/){} - void load_end(const char * /*name*/){} - // default archive initialization - common_iarchive(unsigned int flags = 0) : - basic_iarchive(flags), - interface_iarchive() - {} -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_DETAIL_COMMON_IARCHIVE_HPP diff --git a/boost/archive/detail/common_oarchive.hpp b/boost/archive/detail/common_oarchive.hpp deleted file mode 100644 index fde60660..00000000 --- a/boost/archive/detail/common_oarchive.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_COMMON_OARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_COMMON_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// common_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { -namespace detail { - -// note: referred to as Curiously Recurring Template Patter (CRTP) -template - -class BOOST_SYMBOL_VISIBLE common_oarchive : - public basic_oarchive, - public interface_oarchive -{ - friend class interface_oarchive; - friend class basic_oarchive; -private: - void vsave(const version_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const object_id_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const object_reference_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const class_id_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const class_id_reference_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const class_id_optional_type t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const class_name_type & t) BOOST_OVERRIDE { - * this->This() << t; - } - void vsave(const tracking_type t) BOOST_OVERRIDE { - * this->This() << t; - } -protected: - // default processing - invoke serialization library - template - void save_override(T & t){ - archive::save(* this->This(), t); - } - void save_start(const char * /*name*/){} - void save_end(const char * /*name*/){} - common_oarchive(unsigned int flags = 0) : - basic_oarchive(flags), - interface_oarchive() - {} -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_DETAIL_COMMON_OARCHIVE_HPP diff --git a/boost/archive/detail/decl.hpp b/boost/archive/detail/decl.hpp deleted file mode 100644 index 70555c31..00000000 --- a/boost/archive/detail/decl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_DECL_HPP -#define BOOST_ARCHIVE_DETAIL_DECL_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2///////// 3/////////4/////////5/////////6/////////7/////////8 -// decl.hpp -// -// (c) Copyright Robert Ramey 2004 -// Use, modification, and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See library home page at http://www.boost.org/libs/serialization - -//----------------------------------------------------------------------------// - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -#include - -#if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK)) - #if defined(BOOST_ARCHIVE_SOURCE) - #define BOOST_ARCHIVE_DECL BOOST_SYMBOL_EXPORT - #else - #define BOOST_ARCHIVE_DECL BOOST_SYMBOL_IMPORT - #endif - - #if defined(BOOST_WARCHIVE_SOURCE) - #define BOOST_WARCHIVE_DECL BOOST_SYMBOL_EXPORT - #else - #define BOOST_WARCHIVE_DECL BOOST_SYMBOL_IMPORT - #endif - - #if defined(BOOST_WARCHIVE_SOURCE) || defined(BOOST_ARCHIVE_SOURCE) - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL BOOST_SYMBOL_EXPORT - #else - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL BOOST_SYMBOL_IMPORT - #endif - -#endif - -#if ! defined(BOOST_ARCHIVE_DECL) - #define BOOST_ARCHIVE_DECL -#endif -#if ! defined(BOOST_WARCHIVE_DECL) - #define BOOST_WARCHIVE_DECL -#endif -#if ! defined(BOOST_ARCHIVE_OR_WARCHIVE_DECL) - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL -#endif - -#endif // BOOST_ARCHIVE_DETAIL_DECL_HPP diff --git a/boost/archive/detail/helper_collection.hpp b/boost/archive/detail/helper_collection.hpp deleted file mode 100644 index edb4125e..00000000 --- a/boost/archive/detail/helper_collection.hpp +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_HELPER_COLLECTION_HPP -#define BOOST_ARCHIVE_DETAIL_HELPER_COLLECTION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// helper_collection.hpp: archive support for run-time helpers - -// (C) Copyright 2002-2008 Robert Ramey and Joaquin M Lopez Munoz -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // NULL -#include -#include -#include -#include - -#include - -#include -#include - -namespace boost { - -namespace archive { -namespace detail { - -class helper_collection -{ - helper_collection(const helper_collection&); // non-copyable - helper_collection& operator = (const helper_collection&); // non-copyable - - // note: we dont' actually "share" the function object pointer - // we only use shared_ptr to make sure that it get's deleted - - typedef std::pair< - const void *, - boost::shared_ptr - > helper_value_type; - template - boost::shared_ptr make_helper_ptr(){ - // use boost::shared_ptr rather than std::shared_ptr to maintain - // c++03 compatibility - return boost::make_shared(); - } - - typedef std::vector collection; - collection m_collection; - - struct predicate { - BOOST_DELETED_FUNCTION(predicate & operator=(const predicate & rhs)) - public: - const void * const m_ti; - bool operator()(helper_value_type const &rhs) const { - return m_ti == rhs.first; - } - predicate(const void * ti) : - m_ti(ti) - {} - }; -protected: - helper_collection(){} - ~helper_collection(){} -public: - template - Helper& find_helper(void * const id = 0) { - collection::const_iterator it = - std::find_if( - m_collection.begin(), - m_collection.end(), - predicate(id) - ); - - void * rval = 0; - if(it == m_collection.end()){ - m_collection.push_back( - std::make_pair(id, make_helper_ptr()) - ); - rval = m_collection.back().second.get(); - } - else{ - rval = it->second.get(); - } - return *static_cast(rval); - } -}; - -} // namespace detail -} // namespace serialization -} // namespace boost - -#endif // BOOST_ARCHIVE_DETAIL_HELPER_COLLECTION_HPP diff --git a/boost/archive/detail/interface_iarchive.hpp b/boost/archive/detail/interface_iarchive.hpp deleted file mode 100644 index 5024a4d4..00000000 --- a/boost/archive/detail/interface_iarchive.hpp +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_INTERFACE_IARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_INTERFACE_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// interface_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include // NULL -#include -#include -#include -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace archive { -namespace detail { - -class basic_pointer_iserializer; - -template -class interface_iarchive -{ -protected: - interface_iarchive() {} -public: - ///////////////////////////////////////////////////////// - // archive public interface - typedef mpl::bool_ is_loading; - typedef mpl::bool_ is_saving; - - // return a pointer to the most derived class - Archive * This(){ - return static_cast(this); - } - - template - const basic_pointer_iserializer * - register_type(T * = NULL){ - const basic_pointer_iserializer & bpis = - boost::serialization::singleton< - pointer_iserializer - >::get_const_instance(); - this->This()->register_basic_serializer(bpis.get_basic_serializer()); - return & bpis; - } - template - Helper & - get_helper(void * const id = 0){ - helper_collection & hc = this->This()->get_helper_collection(); - return hc.template find_helper(id); - } - - template - Archive & operator>>(T & t){ - this->This()->load_override(t); - return * this->This(); - } - - // the & operator - template - Archive & operator&(T & t){ - return *(this->This()) >> t; - } -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_DETAIL_INTERFACE_IARCHIVE_HPP diff --git a/boost/archive/detail/interface_oarchive.hpp b/boost/archive/detail/interface_oarchive.hpp deleted file mode 100644 index 44b47e61..00000000 --- a/boost/archive/detail/interface_oarchive.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_INTERFACE_OARCHIVE_HPP -#define BOOST_ARCHIVE_DETAIL_INTERFACE_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// interface_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include // NULL -#include -#include - -#include -#include -#include // must be the last header - -#include - -namespace boost { -namespace archive { -namespace detail { - -class basic_pointer_oserializer; - -template -class interface_oarchive -{ -protected: - interface_oarchive() {} -public: - ///////////////////////////////////////////////////////// - // archive public interface - typedef mpl::bool_ is_loading; - typedef mpl::bool_ is_saving; - - // return a pointer to the most derived class - Archive * This(){ - return static_cast(this); - } - - template - const basic_pointer_oserializer * - register_type(const T * = NULL){ - const basic_pointer_oserializer & bpos = - boost::serialization::singleton< - pointer_oserializer - >::get_const_instance(); - this->This()->register_basic_serializer(bpos.get_basic_serializer()); - return & bpos; - } - - template - Helper & - get_helper(void * const id = 0){ - helper_collection & hc = this->This()->get_helper_collection(); - return hc.template find_helper(id); - } - - template - Archive & operator<<(const T & t){ - this->This()->save_override(t); - return * this->This(); - } - - // the & operator - template - Archive & operator&(const T & t){ - return * this ->This() << t; - } -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_DETAIL_INTERFACE_IARCHIVE_HPP diff --git a/boost/archive/detail/iserializer.hpp b/boost/archive/detail/iserializer.hpp deleted file mode 100644 index b1a9d438..00000000 --- a/boost/archive/detail/iserializer.hpp +++ /dev/null @@ -1,632 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_ISERIALIZER_HPP -#define BOOST_ARCHIVE_DETAIL_ISERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(BOOST_MSVC) -# pragma once -#if !defined(__clang__) -#pragma inline_depth(255) -#pragma inline_recursion(on) -#endif -#endif - -#if defined(__MWERKS__) -#pragma inline_depth(255) -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// iserializer.hpp: interface for serialization system. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // for placement new -#include // size_t, NULL - -#include -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include - -#include -#include -#include -#include -#include - -#ifndef BOOST_SERIALIZATION_DEFAULT_TYPE_INFO - #include -#endif -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -#if !defined(BOOST_MSVC) && \ - (BOOST_WORKAROUND(__IBMCPP__, < 1210) || \ - defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x590)) - #define BOOST_SERIALIZATION_DONT_USE_HAS_NEW_OPERATOR 1 -#else - #define BOOST_SERIALIZATION_DONT_USE_HAS_NEW_OPERATOR 0 -#endif - -#if ! BOOST_SERIALIZATION_DONT_USE_HAS_NEW_OPERATOR -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// the following is need only for dynamic cast of polymorphic pointers -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { - -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { - -// an accessor to permit friend access to archives. Needed because -// some compilers don't handle friend templates completely -class load_access { -public: - template - static void load_primitive(Archive &ar, T &t){ - ar.load(t); - } -}; - -namespace detail { - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -template -class iserializer : public basic_iserializer -{ -private: - void destroy(/*const*/ void *address) const BOOST_OVERRIDE { - boost::serialization::access::destroy(static_cast(address)); - } -public: - explicit iserializer() : - basic_iserializer( - boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance() - ) - {} - BOOST_DLLEXPORT void load_object_data( - basic_iarchive & ar, - void *x, - const unsigned int file_version - ) const BOOST_OVERRIDE BOOST_USED; - bool class_info() const BOOST_OVERRIDE { - return boost::serialization::implementation_level< T >::value - >= boost::serialization::object_class_info; - } - bool tracking(const unsigned int /* flags */) const BOOST_OVERRIDE { - return boost::serialization::tracking_level< T >::value - == boost::serialization::track_always - || ( boost::serialization::tracking_level< T >::value - == boost::serialization::track_selectively - && serialized_as_pointer()); - } - version_type version() const BOOST_OVERRIDE { - return version_type(::boost::serialization::version< T >::value); - } - bool is_polymorphic() const BOOST_OVERRIDE { - return boost::is_polymorphic< T >::value; - } - ~iserializer() BOOST_OVERRIDE {} -}; - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -template -BOOST_DLLEXPORT void iserializer::load_object_data( - basic_iarchive & ar, - void *x, - const unsigned int file_version -) const { - // note: we now comment this out. Before we permited archive - // version # to be very large. Now we don't. To permit - // readers of these old archives, we have to suppress this - // code. Perhaps in the future we might re-enable it but - // permit its suppression with a runtime switch. - #if 0 - // trap case where the program cannot handle the current version - if(file_version > static_cast(version())) - boost::serialization::throw_exception( - archive::archive_exception( - boost::archive::archive_exception::unsupported_class_version, - get_debug_info() - ) - ); - #endif - // make sure call is routed through the higest interface that might - // be specialized by the user. - boost::serialization::serialize_adl( - boost::serialization::smart_cast_reference(ar), - * static_cast(x), - file_version - ); -} - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -// the purpose of this code is to allocate memory for an object -// without requiring the constructor to be called. Presumably -// the allocated object will be subsequently initialized with -// "placement new". -// note: we have the boost type trait has_new_operator but we -// have no corresponding has_delete_operator. So we presume -// that the former being true would imply that the a delete -// operator is also defined for the class T. - -template -struct heap_allocation { - // boost::has_new_operator< T > doesn't work on these compilers - #if BOOST_SERIALIZATION_DONT_USE_HAS_NEW_OPERATOR - // This doesn't handle operator new overload for class T - static T * invoke_new(){ - return static_cast(operator new(sizeof(T))); - } - static void invoke_delete(T *t){ - (operator delete(t)); - } - #else - // note: we presume that a true value for has_new_operator - // implies the existence of a class specific delete operator as well - // as a class specific new operator. - struct has_new_operator { - static T * invoke_new() { - return static_cast((T::operator new)(sizeof(T))); - } - static void invoke_delete(T * t) { - // if compilation fails here, the likely cause that the class - // T has a class specific new operator but no class specific - // delete operator which matches the following signature. - // note that this solution addresses the issue that two - // possible signatures. But it doesn't address the possibility - // that the class might have class specific new with NO - // class specific delete at all. Patches (compatible with - // C++03) welcome! - (operator delete)(t); - } - }; - struct doesnt_have_new_operator { - static T* invoke_new() { - return static_cast(operator new(sizeof(T))); - } - static void invoke_delete(T * t) { - // Note: I'm reliance upon automatic conversion from T * to void * here - (operator delete)(t); - } - }; - static T * invoke_new() { - typedef typename - mpl::eval_if< - boost::has_new_operator< T >, - mpl::identity, - mpl::identity - >::type typex; - return typex::invoke_new(); - } - static void invoke_delete(T *t) { - typedef typename - mpl::eval_if< - boost::has_new_operator< T >, - mpl::identity, - mpl::identity - >::type typex; - typex::invoke_delete(t); - } - #endif - explicit heap_allocation(){ - m_p = invoke_new(); - } - ~heap_allocation(){ - if (0 != m_p) - invoke_delete(m_p); - } - T* get() const { - return m_p; - } - - T* release() { - T* p = m_p; - m_p = 0; - return p; - } -private: - T* m_p; -}; - -template -class pointer_iserializer : - public basic_pointer_iserializer -{ -private: - void * heap_allocation() const BOOST_OVERRIDE { - detail::heap_allocation h; - T * t = h.get(); - h.release(); - return t; - } - const basic_iserializer & get_basic_serializer() const BOOST_OVERRIDE { - return boost::serialization::singleton< - iserializer - >::get_const_instance(); - } - BOOST_DLLEXPORT void load_object_ptr( - basic_iarchive & ar, - void * x, - const unsigned int file_version - ) const BOOST_OVERRIDE BOOST_USED; -public: - // this should alway be a singleton so make the constructor protected - pointer_iserializer(); - ~pointer_iserializer() BOOST_OVERRIDE; -}; - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -// note: BOOST_DLLEXPORT is so that code for polymorphic class -// serialized only through base class won't get optimized out -template -BOOST_DLLEXPORT void pointer_iserializer::load_object_ptr( - basic_iarchive & ar, - void * t, - const unsigned int file_version -) const -{ - Archive & ar_impl = - boost::serialization::smart_cast_reference(ar); - - // note that the above will throw std::bad_alloc if the allocation - // fails so we don't have to address this contingency here. - - // catch exception during load_construct_data so that we don't - // automatically delete the t which is most likely not fully - // constructed - BOOST_TRY { - // this addresses an obscure situation that occurs when - // load_constructor de-serializes something through a pointer. - ar.next_object_pointer(t); - boost::serialization::load_construct_data_adl( - ar_impl, - static_cast(t), - file_version - ); - } - BOOST_CATCH(...){ - // if we get here the load_construct failed. The heap_allocation - // will be automatically deleted so we don't have to do anything - // special here. - BOOST_RETHROW; - } - BOOST_CATCH_END - - ar_impl >> boost::serialization::make_nvp(NULL, * static_cast(t)); -} - -template -pointer_iserializer::pointer_iserializer() : - basic_pointer_iserializer( - boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance() - ) -{ - boost::serialization::singleton< - iserializer - >::get_mutable_instance().set_bpis(this); - archive_serializer_map::insert(this); -} - -template -pointer_iserializer::~pointer_iserializer(){ - archive_serializer_map::erase(this); -} - -template -struct load_non_pointer_type { - // note this bounces the call right back to the archive - // with no runtime overhead - struct load_primitive { - template - static void invoke(Archive & ar, T & t){ - load_access::load_primitive(ar, t); - } - }; - // note this bounces the call right back to the archive - // with no runtime overhead - struct load_only { - template - static void invoke(Archive & ar, const T & t){ - // short cut to user's serializer - // make sure call is routed through the higest interface that might - // be specialized by the user. - boost::serialization::serialize_adl( - ar, - const_cast(t), - boost::serialization::version< T >::value - ); - } - }; - - // note this save class information including version - // and serialization level to the archive - struct load_standard { - template - static void invoke(Archive &ar, const T & t){ - void * x = boost::addressof(const_cast(t)); - ar.load_object( - x, - boost::serialization::singleton< - iserializer - >::get_const_instance() - ); - } - }; - - struct load_conditional { - template - static void invoke(Archive &ar, T &t){ - //if(0 == (ar.get_flags() & no_tracking)) - load_standard::invoke(ar, t); - //else - // load_only::invoke(ar, t); - } - }; - - template - static void invoke(Archive & ar, T &t){ - typedef typename mpl::eval_if< - // if its primitive - mpl::equal_to< - boost::serialization::implementation_level< T >, - mpl::int_ - >, - mpl::identity, - // else - typename mpl::eval_if< - // class info / version - mpl::greater_equal< - boost::serialization::implementation_level< T >, - mpl::int_ - >, - // do standard load - mpl::identity, - // else - typename mpl::eval_if< - // no tracking - mpl::equal_to< - boost::serialization::tracking_level< T >, - mpl::int_ - >, - // do a fast load - mpl::identity, - // else - // do a fast load only tracking is turned off - mpl::identity - > > >::type typex; - check_object_versioning< T >(); - check_object_level< T >(); - typex::invoke(ar, t); - } -}; - -template -struct load_pointer_type { - struct abstract - { - template - static const basic_pointer_iserializer * register_type(Archive & /* ar */){ - // it has? to be polymorphic - BOOST_STATIC_ASSERT(boost::is_polymorphic< T >::value); - return static_cast(NULL); - } - }; - - struct non_abstract - { - template - static const basic_pointer_iserializer * register_type(Archive & ar){ - return ar.register_type(static_cast(NULL)); - } - }; - - template - static const basic_pointer_iserializer * register_type(Archive &ar, const T* const /*t*/){ - // there should never be any need to load an abstract polymorphic - // class pointer. Inhibiting code generation for this - // permits abstract base classes to be used - note: exception - // virtual serialize functions used for plug-ins - typedef typename - mpl::eval_if< - boost::serialization::is_abstract, - boost::mpl::identity, - boost::mpl::identity - >::type typex; - return typex::template register_type< T >(ar); - } - - template - static T * pointer_tweak( - const boost::serialization::extended_type_info & eti, - void const * const t, - const T & - ) { - // tweak the pointer back to the base class - void * upcast = const_cast( - boost::serialization::void_upcast( - eti, - boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance(), - t - ) - ); - if(NULL == upcast) - boost::serialization::throw_exception( - archive_exception(archive_exception::unregistered_class) - ); - return static_cast(upcast); - } - - template - static void check_load(T * const /* t */){ - check_pointer_level< T >(); - check_pointer_tracking< T >(); - } - - static const basic_pointer_iserializer * - find(const boost::serialization::extended_type_info & type){ - return static_cast( - archive_serializer_map::find(type) - ); - } - - template - static void invoke(Archive & ar, Tptr & t){ - check_load(t); - const basic_pointer_iserializer * bpis_ptr = register_type(ar, t); - const basic_pointer_iserializer * newbpis_ptr = ar.load_pointer( - // note major hack here !!! - // I tried every way to convert Tptr &t (where Tptr might - // include const) to void * &. This is the only way - // I could make it work. RR - (void * & )t, - bpis_ptr, - find - ); - // if the pointer isn't that of the base class - if(newbpis_ptr != bpis_ptr){ - t = pointer_tweak(newbpis_ptr->get_eti(), t, *t); - } - } -}; - -template -struct load_enum_type { - template - static void invoke(Archive &ar, T &t){ - // convert integers to correct enum to load - int i; - ar >> boost::serialization::make_nvp(NULL, i); - t = static_cast< T >(i); - } -}; - -template -struct load_array_type { - template - static void invoke(Archive &ar, T &t){ - typedef typename remove_extent< T >::type value_type; - - // convert integers to correct enum to load - // determine number of elements in the array. Consider the - // fact that some machines will align elements on boundaries - // other than characters. - std::size_t current_count = sizeof(t) / ( - static_cast(static_cast(&t[1])) - - static_cast(static_cast(&t[0])) - ); - boost::serialization::collection_size_type count; - ar >> BOOST_SERIALIZATION_NVP(count); - if(static_cast(count) > current_count) - boost::serialization::throw_exception( - archive::archive_exception( - boost::archive::archive_exception::array_size_too_short - ) - ); - // explict template arguments to pass intel C++ compiler - ar >> serialization::make_array< - value_type, - boost::serialization::collection_size_type - >( - static_cast(&t[0]), - count - ); - } -}; - -} // detail - -template -inline void load(Archive & ar, T &t){ - // if this assertion trips. It means we're trying to load a - // const object with a compiler that doesn't have correct - // function template ordering. On other compilers, this is - // handled below. - detail::check_const_loading< T >(); - typedef - typename mpl::eval_if, - mpl::identity > - ,//else - typename mpl::eval_if, - mpl::identity > - ,//else - typename mpl::eval_if, - mpl::identity > - ,//else - mpl::identity > - > - > - >::type typex; - typex::invoke(ar, t); -} - -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_DETAIL_ISERIALIZER_HPP diff --git a/boost/archive/detail/oserializer.hpp b/boost/archive/detail/oserializer.hpp deleted file mode 100644 index f6a77edf..00000000 --- a/boost/archive/detail/oserializer.hpp +++ /dev/null @@ -1,547 +0,0 @@ -#ifndef BOOST_ARCHIVE_OSERIALIZER_HPP -#define BOOST_ARCHIVE_OSERIALIZER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#if !defined(__clang__) -#pragma inline_depth(255) -#pragma inline_recursion(on) -#endif -#endif - -#if defined(__MWERKS__) -#pragma inline_depth(255) -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// oserializer.hpp: interface for serialization system. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL - -#include - -#include -#include - -#include -#include -#include -#include -#include - -#ifndef BOOST_SERIALIZATION_DEFAULT_TYPE_INFO - #include -#endif -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { - -namespace serialization { - class extended_type_info; -} // namespace serialization - -namespace archive { - -// an accessor to permit friend access to archives. Needed because -// some compilers don't handle friend templates completely -class save_access { -public: - template - static void end_preamble(Archive & ar){ - ar.end_preamble(); - } - template - static void save_primitive(Archive & ar, const T & t){ - ar.end_preamble(); - ar.save(t); - } -}; - -namespace detail { - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -template -class oserializer : public basic_oserializer -{ -private: - // private constructor to inhibit any existence other than the - // static one -public: - explicit BOOST_DLLEXPORT oserializer() : - basic_oserializer( - boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance() - ) - {} - BOOST_DLLEXPORT void save_object_data( - basic_oarchive & ar, - const void *x - ) const BOOST_OVERRIDE BOOST_USED; - bool class_info() const BOOST_OVERRIDE { - return boost::serialization::implementation_level< T >::value - >= boost::serialization::object_class_info; - } - bool tracking(const unsigned int /* flags */) const BOOST_OVERRIDE { - return boost::serialization::tracking_level< T >::value == boost::serialization::track_always - || (boost::serialization::tracking_level< T >::value == boost::serialization::track_selectively - && serialized_as_pointer()); - } - version_type version() const BOOST_OVERRIDE { - return version_type(::boost::serialization::version< T >::value); - } - bool is_polymorphic() const BOOST_OVERRIDE { - return boost::is_polymorphic< T >::value; - } - ~oserializer() BOOST_OVERRIDE {} -}; - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -template -BOOST_DLLEXPORT void oserializer::save_object_data( - basic_oarchive & ar, - const void *x -) const { - // make sure call is routed through the highest interface that might - // be specialized by the user. - BOOST_STATIC_ASSERT(boost::is_const< T >::value == false); - boost::serialization::serialize_adl( - boost::serialization::smart_cast_reference(ar), - * static_cast(const_cast(x)), - version() - ); -} - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -template -class pointer_oserializer : - public basic_pointer_oserializer -{ -private: - const basic_oserializer & - get_basic_serializer() const BOOST_OVERRIDE { - return boost::serialization::singleton< - oserializer - >::get_const_instance(); - } - BOOST_DLLEXPORT void save_object_ptr( - basic_oarchive & ar, - const void * x - ) const BOOST_OVERRIDE BOOST_USED; -public: - pointer_oserializer(); - ~pointer_oserializer() BOOST_OVERRIDE; -}; - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -template -BOOST_DLLEXPORT void pointer_oserializer::save_object_ptr( - basic_oarchive & ar, - const void * x -) const { - BOOST_ASSERT(NULL != x); - // make sure call is routed through the highest interface that might - // be specialized by the user. - T * t = static_cast(const_cast(x)); - const unsigned int file_version = boost::serialization::version< T >::value; - Archive & ar_impl - = boost::serialization::smart_cast_reference(ar); - boost::serialization::save_construct_data_adl( - ar_impl, - t, - file_version - ); - ar_impl << boost::serialization::make_nvp(NULL, * t); -} - -template -pointer_oserializer::pointer_oserializer() : - basic_pointer_oserializer( - boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance() - ) -{ - // make sure appropriate member function is instantiated - boost::serialization::singleton< - oserializer - >::get_mutable_instance().set_bpos(this); - archive_serializer_map::insert(this); -} - -template -pointer_oserializer::~pointer_oserializer(){ - archive_serializer_map::erase(this); -} - -template -struct save_non_pointer_type { - // note this bounces the call right back to the archive - // with no runtime overhead - struct save_primitive { - template - static void invoke(Archive & ar, const T & t){ - save_access::save_primitive(ar, t); - } - }; - // same as above but passes through serialization - struct save_only { - template - static void invoke(Archive & ar, const T & t){ - // make sure call is routed through the highest interface that might - // be specialized by the user. - boost::serialization::serialize_adl( - ar, - const_cast(t), - ::boost::serialization::version< T >::value - ); - } - }; - // adds class information to the archive. This includes - // serialization level and class version - struct save_standard { - template - static void invoke(Archive &ar, const T & t){ - ar.save_object( - boost::addressof(t), - boost::serialization::singleton< - oserializer - >::get_const_instance() - ); - } - }; - - - - // adds class information to the archive. This includes - // serialization level and class version - struct save_conditional { - template - static void invoke(Archive &ar, const T &t){ - //if(0 == (ar.get_flags() & no_tracking)) - save_standard::invoke(ar, t); - //else - // save_only::invoke(ar, t); - } - }; - - - template - static void invoke(Archive & ar, const T & t){ - typedef - typename mpl::eval_if< - // if its primitive - mpl::equal_to< - boost::serialization::implementation_level< T >, - mpl::int_ - >, - mpl::identity, - // else - typename mpl::eval_if< - // class info / version - mpl::greater_equal< - boost::serialization::implementation_level< T >, - mpl::int_ - >, - // do standard save - mpl::identity, - // else - typename mpl::eval_if< - // no tracking - mpl::equal_to< - boost::serialization::tracking_level< T >, - mpl::int_ - >, - // do a fast save - mpl::identity, - // else - // do a fast save only tracking is turned off - mpl::identity - > > >::type typex; - check_object_versioning< T >(); - typex::invoke(ar, t); - } - template - static void invoke(Archive & ar, T & t){ - check_object_level< T >(); - check_object_tracking< T >(); - invoke(ar, const_cast(t)); - } -}; - -template -struct save_pointer_type { - struct abstract - { - template - static const basic_pointer_oserializer * register_type(Archive & /* ar */){ - // it has? to be polymorphic - BOOST_STATIC_ASSERT(boost::is_polymorphic< T >::value); - return NULL; - } - }; - - struct non_abstract - { - template - static const basic_pointer_oserializer * register_type(Archive & ar){ - return ar.register_type(static_cast(NULL)); - } - }; - - template - static const basic_pointer_oserializer * register_type(Archive &ar, T* const /*t*/){ - // there should never be any need to save an abstract polymorphic - // class pointer. Inhibiting code generation for this - // permits abstract base classes to be used - note: exception - // virtual serialize functions used for plug-ins - typedef - typename mpl::eval_if< - boost::serialization::is_abstract< T >, - mpl::identity, - mpl::identity - >::type typex; - return typex::template register_type< T >(ar); - } - - struct non_polymorphic - { - template - static void save( - Archive &ar, - T & t - ){ - const basic_pointer_oserializer & bpos = - boost::serialization::singleton< - pointer_oserializer - >::get_const_instance(); - // save the requested pointer type - ar.save_pointer(& t, & bpos); - } - }; - - struct polymorphic - { - template - static void save( - Archive &ar, - T & t - ){ - typename - boost::serialization::type_info_implementation< T >::type const - & i = boost::serialization::singleton< - typename - boost::serialization::type_info_implementation< T >::type - >::get_const_instance(); - - boost::serialization::extended_type_info const * const this_type = & i; - - // retrieve the true type of the object pointed to - // if this assertion fails its an error in this library - BOOST_ASSERT(NULL != this_type); - - const boost::serialization::extended_type_info * true_type = - i.get_derived_extended_type_info(t); - - // note:if this exception is thrown, be sure that derived pointer - // is either registered or exported. - if(NULL == true_type){ - boost::serialization::throw_exception( - archive_exception( - archive_exception::unregistered_class, - "derived class not registered or exported" - ) - ); - } - - // if its not a pointer to a more derived type - const void *vp = static_cast(&t); - if(*this_type == *true_type){ - const basic_pointer_oserializer * bpos = register_type(ar, &t); - ar.save_pointer(vp, bpos); - return; - } - // convert pointer to more derived type. if this is thrown - // it means that the base/derived relationship hasn't be registered - vp = serialization::void_downcast( - *true_type, - *this_type, - static_cast(&t) - ); - if(NULL == vp){ - boost::serialization::throw_exception( - archive_exception( - archive_exception::unregistered_cast, - true_type->get_debug_info(), - this_type->get_debug_info() - ) - ); - } - - // since true_type is valid, and this only gets made if the - // pointer oserializer object has been created, this should never - // fail - const basic_pointer_oserializer * bpos - = static_cast( - boost::serialization::singleton< - archive_serializer_map - >::get_const_instance().find(*true_type) - ); - BOOST_ASSERT(NULL != bpos); - if(NULL == bpos) - boost::serialization::throw_exception( - archive_exception( - archive_exception::unregistered_class, - "derived class not registered or exported" - ) - ); - ar.save_pointer(vp, bpos); - } - }; - - template - static void save( - Archive & ar, - const T & t - ){ - check_pointer_level< T >(); - check_pointer_tracking< T >(); - typedef typename mpl::eval_if< - is_polymorphic< T >, - mpl::identity, - mpl::identity - >::type type; - type::save(ar, const_cast(t)); - } - - template - static void invoke(Archive &ar, const TPtr t){ - register_type(ar, t); - if(NULL == t){ - basic_oarchive & boa - = boost::serialization::smart_cast_reference(ar); - boa.save_null_pointer(); - save_access::end_preamble(ar); - return; - } - save(ar, * t); - } -}; - -template -struct save_enum_type -{ - template - static void invoke(Archive &ar, const T &t){ - // convert enum to integers on save - const int i = static_cast(t); - ar << boost::serialization::make_nvp(NULL, i); - } -}; - -template -struct save_array_type -{ - template - static void invoke(Archive &ar, const T &t){ - typedef typename boost::remove_extent< T >::type value_type; - - save_access::end_preamble(ar); - // consider alignment - std::size_t c = sizeof(t) / ( - static_cast(static_cast(&t[1])) - - static_cast(static_cast(&t[0])) - ); - boost::serialization::collection_size_type count(c); - ar << BOOST_SERIALIZATION_NVP(count); - // explict template arguments to pass intel C++ compiler - ar << serialization::make_array< - const value_type, - boost::serialization::collection_size_type - >( - static_cast(&t[0]), - count - ); - } -}; - -} // detail - -template -inline void save(Archive & ar, /*const*/ T &t){ - typedef - typename mpl::eval_if, - mpl::identity >, - //else - typename mpl::eval_if, - mpl::identity >, - //else - typename mpl::eval_if, - mpl::identity >, - //else - mpl::identity > - > - > - >::type typex; - typex::invoke(ar, t); -} - -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_OSERIALIZER_HPP diff --git a/boost/archive/detail/polymorphic_iarchive_route.hpp b/boost/archive/detail/polymorphic_iarchive_route.hpp deleted file mode 100644 index 381c50eb..00000000 --- a/boost/archive/detail/polymorphic_iarchive_route.hpp +++ /dev/null @@ -1,218 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_POLYMORPHIC_IARCHIVE_ROUTE_HPP -#define BOOST_ARCHIVE_DETAIL_POLYMORPHIC_IARCHIVE_ROUTE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_iarchive_route.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization -namespace archive { -namespace detail{ - -class basic_iserializer; -class basic_pointer_iserializer; - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -template -class polymorphic_iarchive_route : - public polymorphic_iarchive, - // note: gcc dynamic cross cast fails if the the derivation below is - // not public. I think this is a mistake. - public /*protected*/ ArchiveImplementation -{ -private: - // these are used by the serialization library. - void load_object( - void *t, - const basic_iserializer & bis - ) BOOST_OVERRIDE { - ArchiveImplementation::load_object(t, bis); - } - const basic_pointer_iserializer * load_pointer( - void * & t, - const basic_pointer_iserializer * bpis_ptr, - const basic_pointer_iserializer * (*finder)( - const boost::serialization::extended_type_info & type - ) - ) BOOST_OVERRIDE { - return ArchiveImplementation::load_pointer(t, bpis_ptr, finder); - } - void set_library_version(boost::serialization::library_version_type archive_library_version) BOOST_OVERRIDE { - ArchiveImplementation::set_library_version(archive_library_version); - } - boost::serialization::library_version_type get_library_version() const BOOST_OVERRIDE { - return ArchiveImplementation::get_library_version(); - } - unsigned int get_flags() const BOOST_OVERRIDE { - return ArchiveImplementation::get_flags(); - } - void delete_created_pointers() BOOST_OVERRIDE { - ArchiveImplementation::delete_created_pointers(); - } - void reset_object_address( - const void * new_address, - const void * old_address - ) BOOST_OVERRIDE { - ArchiveImplementation::reset_object_address(new_address, old_address); - } - void load_binary(void * t, std::size_t size) BOOST_OVERRIDE { - ArchiveImplementation::load_binary(t, size); - } - // primitive types the only ones permitted by polymorphic archives - void load(bool & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(char & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(signed char & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(unsigned char & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #ifndef BOOST_NO_CWCHAR - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - void load(wchar_t & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #endif - #endif - void load(short & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(unsigned short & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(int & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(unsigned int & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(long & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(unsigned long & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #if defined(BOOST_HAS_LONG_LONG) - void load(boost::long_long_type & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(boost::ulong_long_type & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #elif defined(BOOST_HAS_MS_INT64) - void load(__int64 & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(unsigned __int64 & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #endif - void load(float & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(double & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - void load(std::string & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #ifndef BOOST_NO_STD_WSTRING - void load(std::wstring & t) BOOST_OVERRIDE { - ArchiveImplementation::load(t); - } - #endif - // used for xml and other tagged formats default does nothing - void load_start(const char * name) BOOST_OVERRIDE { - ArchiveImplementation::load_start(name); - } - void load_end(const char * name) BOOST_OVERRIDE { - ArchiveImplementation::load_end(name); - } - void register_basic_serializer(const basic_iserializer & bis) BOOST_OVERRIDE { - ArchiveImplementation::register_basic_serializer(bis); - } - helper_collection & - get_helper_collection() BOOST_OVERRIDE { - return ArchiveImplementation::get_helper_collection(); - } -public: - // this can't be inherited because they appear in multiple - // parents - typedef mpl::bool_ is_loading; - typedef mpl::bool_ is_saving; - // the >> operator - template - polymorphic_iarchive & operator>>(T & t){ - return polymorphic_iarchive::operator>>(t); - } - // the & operator - template - polymorphic_iarchive & operator&(T & t){ - return polymorphic_iarchive::operator&(t); - } - // register type function - template - const basic_pointer_iserializer * - register_type(T * t = NULL){ - return ArchiveImplementation::register_type(t); - } - // all current archives take a stream as constructor argument - template - polymorphic_iarchive_route( - std::basic_istream<_Elem, _Tr> & is, - unsigned int flags = 0 - ) : - ArchiveImplementation(is, flags) - {} - ~polymorphic_iarchive_route() BOOST_OVERRIDE {} -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_DETAIL_POLYMORPHIC_IARCHIVE_DISPATCH_HPP diff --git a/boost/archive/detail/polymorphic_oarchive_route.hpp b/boost/archive/detail/polymorphic_oarchive_route.hpp deleted file mode 100644 index be67742d..00000000 --- a/boost/archive/detail/polymorphic_oarchive_route.hpp +++ /dev/null @@ -1,209 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_POLYMORPHIC_OARCHIVE_ROUTE_HPP -#define BOOST_ARCHIVE_DETAIL_POLYMORPHIC_OARCHIVE_ROUTE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_oarchive_route.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include // size_t - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization -namespace archive { -namespace detail{ - -class basic_oserializer; -class basic_pointer_oserializer; - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -template -class polymorphic_oarchive_route : - public polymorphic_oarchive, - // note: gcc dynamic cross cast fails if the the derivation below is - // not public. I think this is a mistake. - public /*protected*/ ArchiveImplementation -{ -private: - // these are used by the serialization library. - void save_object( - const void *x, - const detail::basic_oserializer & bos - ) BOOST_OVERRIDE { - ArchiveImplementation::save_object(x, bos); - } - void save_pointer( - const void * t, - const detail::basic_pointer_oserializer * bpos_ptr - ) BOOST_OVERRIDE { - ArchiveImplementation::save_pointer(t, bpos_ptr); - } - void save_null_pointer() BOOST_OVERRIDE { - ArchiveImplementation::save_null_pointer(); - } - // primitive types the only ones permitted by polymorphic archives - void save(const bool t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const char t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const signed char t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const unsigned char t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #ifndef BOOST_NO_CWCHAR - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - void save(const wchar_t t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #endif - #endif - void save(const short t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const unsigned short t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const int t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const unsigned int t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const long t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const unsigned long t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #if defined(BOOST_HAS_LONG_LONG) - void save(const boost::long_long_type t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const boost::ulong_long_type t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #elif defined(BOOST_HAS_MS_INT64) - void save(const boost::int64_t t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const boost::uint64_t t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #endif - void save(const float t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const double t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - void save(const std::string & t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #ifndef BOOST_NO_STD_WSTRING - void save(const std::wstring & t) BOOST_OVERRIDE { - ArchiveImplementation::save(t); - } - #endif - boost::serialization::library_version_type get_library_version() const BOOST_OVERRIDE { - return ArchiveImplementation::get_library_version(); - } - unsigned int get_flags() const BOOST_OVERRIDE { - return ArchiveImplementation::get_flags(); - } - void save_binary(const void * t, std::size_t size) BOOST_OVERRIDE { - ArchiveImplementation::save_binary(t, size); - } - // used for xml and other tagged formats default does nothing - void save_start(const char * name) BOOST_OVERRIDE { - ArchiveImplementation::save_start(name); - } - void save_end(const char * name) BOOST_OVERRIDE { - ArchiveImplementation::save_end(name); - } - void end_preamble() BOOST_OVERRIDE { - ArchiveImplementation::end_preamble(); - } - void register_basic_serializer(const detail::basic_oserializer & bos) BOOST_OVERRIDE { - ArchiveImplementation::register_basic_serializer(bos); - } - helper_collection & - get_helper_collection() BOOST_OVERRIDE { - return ArchiveImplementation::get_helper_collection(); - } -public: - // this can't be inherited because they appear in multiple - // parents - typedef mpl::bool_ is_loading; - typedef mpl::bool_ is_saving; - // the << operator - template - polymorphic_oarchive & operator<<(T & t){ - return polymorphic_oarchive::operator<<(t); - } - // the & operator - template - polymorphic_oarchive & operator&(T & t){ - return polymorphic_oarchive::operator&(t); - } - // register type function - template - const basic_pointer_oserializer * - register_type(T * t = NULL){ - return ArchiveImplementation::register_type(t); - } - // all current archives take a stream as constructor argument - template - polymorphic_oarchive_route( - std::basic_ostream<_Elem, _Tr> & os, - unsigned int flags = 0 - ) : - ArchiveImplementation(os, flags) - {} - ~polymorphic_oarchive_route() BOOST_OVERRIDE {} -}; - -} // namespace detail -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_DETAIL_POLYMORPHIC_OARCHIVE_DISPATCH_HPP diff --git a/boost/archive/detail/register_archive.hpp b/boost/archive/detail/register_archive.hpp deleted file mode 100644 index ebc24c05..00000000 --- a/boost/archive/detail/register_archive.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_ARCHIVE_DETAIL_REGISTER_ARCHIVE_DWA2006521_HPP -# define BOOST_ARCHIVE_DETAIL_REGISTER_ARCHIVE_DWA2006521_HPP - -namespace boost { namespace archive { namespace detail { - -// No instantiate_ptr_serialization overloads generated by -// BOOST_SERIALIZATION_REGISTER_ARCHIVE that lexically follow the call -// will be seen *unless* they are in an associated namespace of one of -// the arguments, so we pass one of these along to make sure this -// namespace is considered. See temp.dep.candidate (14.6.4.2) in the -// standard. -struct adl_tag {}; - -template -struct ptr_serialization_support; - -// We could've just used ptr_serialization_support, above, but using -// it with only a forward declaration causes vc6/7 to complain about a -// missing instantiate member, even if it has one. This is just a -// friendly layer of indirection. -template -struct _ptr_serialization_support - : ptr_serialization_support -{ - typedef int type; -}; - -#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5130) - -template -struct counter : counter {}; -template<> -struct counter<0> {}; - -template -void instantiate_ptr_serialization(Serializable* s, int, adl_tag) { - instantiate_ptr_serialization(s, counter<20>()); -} - -template -struct get_counter { - static const int value = sizeof(adjust_counter(counter<20>())); - typedef counter type; - typedef counter prior; - typedef char (&next)[value+1]; -}; - -char adjust_counter(counter<0>); -template -void instantiate_ptr_serialization(Serializable*, counter<0>) {} - -#define BOOST_SERIALIZATION_REGISTER_ARCHIVE(Archive) \ -namespace boost { namespace archive { namespace detail { \ - get_counter::next adjust_counter(get_counter::type);\ - template \ - void instantiate_ptr_serialization(Serializable* s, \ - get_counter::type) { \ - ptr_serialization_support x; \ - instantiate_ptr_serialization(s, get_counter::prior()); \ - }\ -}}} - - -#else - -// This function gets called, but its only purpose is to participate -// in overload resolution with the functions declared by -// BOOST_SERIALIZATION_REGISTER_ARCHIVE, below. -template -void instantiate_ptr_serialization(Serializable*, int, adl_tag ) {} - -// The function declaration generated by this macro never actually -// gets called, but its return type gets instantiated, and that's -// enough to cause registration of serialization functions between -// Archive and any exported Serializable type. See also: -// boost/serialization/export.hpp -# define BOOST_SERIALIZATION_REGISTER_ARCHIVE(Archive) \ -namespace boost { namespace archive { namespace detail { \ - \ -template \ -typename _ptr_serialization_support::type \ -instantiate_ptr_serialization( Serializable*, Archive*, adl_tag ); \ - \ -}}} -#endif -}}} // namespace boost::archive::detail - -#endif // BOOST_ARCHIVE_DETAIL_INSTANTIATE_SERIALIZE_DWA2006521_HPP diff --git a/boost/archive/detail/utf8_codecvt_facet.hpp b/boost/archive/detail/utf8_codecvt_facet.hpp deleted file mode 100644 index 5c785484..00000000 --- a/boost/archive/detail/utf8_codecvt_facet.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) -// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_ARCHIVE_DETAIL_UTF8_CODECVT_FACET_HPP -#define BOOST_ARCHIVE_DETAIL_UTF8_CODECVT_FACET_HPP - -#include - -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#endif - -// use boost's utf8 codecvt facet -#include -#define BOOST_UTF8_BEGIN_NAMESPACE \ - namespace boost { namespace archive { namespace detail { -#define BOOST_UTF8_END_NAMESPACE }}} - -#include - -#undef BOOST_UTF8_END_NAMESPACE -#undef BOOST_UTF8_DECL -#undef BOOST_UTF8_BEGIN_NAMESPACE - -#endif // BOOST_ARCHIVE_DETAIL_UTF8_CODECVT_FACET_HPP diff --git a/boost/archive/dinkumware.hpp b/boost/archive/dinkumware.hpp deleted file mode 100644 index 97efcea1..00000000 --- a/boost/archive/dinkumware.hpp +++ /dev/null @@ -1,222 +0,0 @@ -#ifndef BOOST_ARCHIVE_DINKUMWARE_HPP -#define BOOST_ARCHIVE_DINKUMWARE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// dinkumware.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// this file adds a couple of things that are missing from the dinkumware -// implementation of the standard library. - -#include -#include - -#include -#include - -namespace std { - -// define i/o operators for 64 bit integers -template -basic_ostream & -operator<<(basic_ostream & os, boost::uint64_t t){ - // octal rendering of 64 bit number would be 22 octets + eos - CharType d[23]; - unsigned int radix; - - if(os.flags() & (int)std::ios_base::hex) - radix = 16; - else - if(os.flags() & (int)std::ios_base::oct) - radix = 8; - else - //if(s.flags() & (int)std::ios_base::dec) - radix = 10; - unsigned int i = 0; - do{ - unsigned int j = t % radix; - d[i++] = j + ((j < 10) ? '0' : ('a' - 10)); - t /= radix; - } - while(t > 0); - d[i--] = '\0'; - - // reverse digits - unsigned int j = 0; - while(j < i){ - CharType k = d[i]; - d[i] = d[j]; - d[j] = k; - --i;++j; - } - os << d; - return os; - -} - -template -basic_ostream & -operator<<(basic_ostream &os, boost::int64_t t){ - if(0 <= t){ - os << static_cast(t); - } - else{ - os.put('-'); - os << -t; - } - return os; -} - -template -basic_istream & -operator>>(basic_istream &is, boost::int64_t & t){ - CharType d; - do{ - d = is.get(); - } - while(::isspace(d)); - bool negative = (d == '-'); - if(negative) - d = is.get(); - unsigned int radix; - if(is.flags() & (int)std::ios_base::hex) - radix = 16; - else - if(is.flags() & (int)std::ios_base::oct) - radix = 8; - else - //if(s.flags() & (int)std::ios_base::dec) - radix = 10; - t = 0; - do{ - if('0' <= d && d <= '9') - t = t * radix + (d - '0'); - else - if('a' <= d && d <= 'f') - t = t * radix + (d - 'a' + 10); - else - break; - d = is.get(); - } - while(!is.fail()); - // restore the delimiter - is.putback(d); - is.clear(); - if(negative) - t = -t; - return is; -} - -template -basic_istream & -operator>>(basic_istream &is, boost::uint64_t & t){ - boost::int64_t it; - is >> it; - t = it; - return is; -} - -template<> -class back_insert_iterator > : public - iterator -{ -public: - typedef basic_string container_type; - typedef container_type::reference reference; - - explicit back_insert_iterator(container_type & s) - : container(& s) - {} // construct with container - - back_insert_iterator & operator=( - container_type::const_reference Val_ - ){ // push value into container - //container->push_back(Val_); - *container += Val_; - return (*this); - } - - back_insert_iterator & operator*(){ - return (*this); - } - - back_insert_iterator & operator++(){ - // pretend to preincrement - return (*this); - } - - back_insert_iterator operator++(int){ - // pretend to postincrement - return (*this); - } - -protected: - container_type *container; // pointer to container -}; - -template -inline back_insert_iterator > back_inserter( - basic_string & s -){ - return (std::back_insert_iterator >(s)); -} - -template<> -class back_insert_iterator > : public - iterator -{ -public: - typedef basic_string container_type; - typedef container_type::reference reference; - - explicit back_insert_iterator(container_type & s) - : container(& s) - {} // construct with container - - back_insert_iterator & operator=( - container_type::const_reference Val_ - ){ // push value into container - //container->push_back(Val_); - *container += Val_; - return (*this); - } - - back_insert_iterator & operator*(){ - return (*this); - } - - back_insert_iterator & operator++(){ - // pretend to preincrement - return (*this); - } - - back_insert_iterator operator++(int){ - // pretend to postincrement - return (*this); - } - -protected: - container_type *container; // pointer to container -}; - -template -inline back_insert_iterator > back_inserter( - basic_string & s -){ - return (std::back_insert_iterator >(s)); -} - -} // namespace std - -#endif //BOOST_ARCHIVE_DINKUMWARE_HPP diff --git a/boost/archive/impl/archive_serializer_map.ipp b/boost/archive/impl/archive_serializer_map.ipp deleted file mode 100644 index 98e058dd..00000000 --- a/boost/archive/impl/archive_serializer_map.ipp +++ /dev/null @@ -1,75 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// archive_serializer_map.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -////////////////////////////////////////////////////////////////////// -// implementation of basic_text_iprimitive overrides for the combination -// of template parameters used to implement a text_iprimitive - -#include -#include -#include -#include - -namespace boost { -namespace archive { -namespace detail { - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace extra_detail { // anon - template - class map : public basic_serializer_map - {}; -} - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL bool -archive_serializer_map::insert(const basic_serializer * bs){ - return boost::serialization::singleton< - extra_detail::map - >::get_mutable_instance().insert(bs); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -archive_serializer_map::erase(const basic_serializer * bs){ - // note: previously this conditional was a runtime assertion with - // BOOST_ASSERT. We've changed it because we've discovered that at - // least one platform is not guaranteed to destroy singletons in - // reverse order of distruction. - if(boost::serialization::singleton< - extra_detail::map - >::is_destroyed()) - return; - boost::serialization::singleton< - extra_detail::map - >::get_mutable_instance().erase(bs); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL const basic_serializer * -archive_serializer_map::find( - const boost::serialization::extended_type_info & eti -) { - return boost::serialization::singleton< - extra_detail::map - >::get_const_instance().find(eti); -} - -} // namespace detail -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_binary_iarchive.ipp b/boost/archive/impl/basic_binary_iarchive.ipp deleted file mode 100644 index 1755250e..00000000 --- a/boost/archive/impl/basic_binary_iarchive.ipp +++ /dev/null @@ -1,134 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_iarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; - using ::strlen; - using ::size_t; -} -#endif - -#include -#include - -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation of binary_binary_archive -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iarchive::load_override(class_name_type & t){ - std::string cn; - cn.reserve(BOOST_SERIALIZATION_MAX_KEY_SIZE); - load_override(cn); - if(cn.size() > (BOOST_SERIALIZATION_MAX_KEY_SIZE - 1)) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_class_name) - ); - std::memcpy(t, cn.data(), cn.size()); - // borland tweak - t.t[cn.size()] = '\0'; -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iarchive::init() { - // read signature in an archive version independent manner - std::string file_signature; - - #if 0 // commented out since it interfers with derivation - BOOST_TRY { - std::size_t l; - this->This()->load(l); - if(l == std::strlen(BOOST_ARCHIVE_SIGNATURE())) { - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != file_signature.data()) - #endif - file_signature.resize(l); - // note breaking a rule here - could be a problem on some platform - if(0 < l) - this->This()->load_binary(&(*file_signature.begin()), l); - } - } - BOOST_CATCH(archive_exception const &) { // catch stream_error archive exceptions - // will cause invalid_signature archive exception to be thrown below - file_signature = ""; - } - BOOST_CATCH_END - #else - // https://svn.boost.org/trac/boost/ticket/7301 - * this->This() >> file_signature; - #endif - - if(file_signature != BOOST_ARCHIVE_SIGNATURE()) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_signature) - ); - - // make sure the version of the reading archive library can - // support the format of the archive being read - boost::serialization::library_version_type input_library_version; - //* this->This() >> input_library_version; - { - int v = 0; - v = this->This()->m_sb.sbumpc(); - #if BOOST_ENDIAN_LITTLE_BYTE - if(v < 6){ - ; - } - else - if(v < 7){ - // version 6 - next byte should be zero - this->This()->m_sb.sbumpc(); - } - else - if(v < 8){ - int x1; - // version 7 = might be followed by zero or some other byte - x1 = this->This()->m_sb.sgetc(); - // it's =a zero, push it back - if(0 == x1) - this->This()->m_sb.sbumpc(); - } - else{ - // version 8+ followed by a zero - this->This()->m_sb.sbumpc(); - } - #elif BOOST_ENDIAN_BIG_BYTE - if(v == 0) - v = this->This()->m_sb.sbumpc(); - #endif - input_library_version = static_cast(v); - } - - #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205)) - this->set_library_version(input_library_version); - #else - detail::basic_iarchive::set_library_version(input_library_version); - #endif - - if(BOOST_ARCHIVE_VERSION() < input_library_version) - boost::serialization::throw_exception( - archive_exception(archive_exception::unsupported_version) - ); -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_binary_iprimitive.ipp b/boost/archive/impl/basic_binary_iprimitive.ipp deleted file mode 100644 index e2d05108..00000000 --- a/boost/archive/impl/basic_binary_iprimitive.ipp +++ /dev/null @@ -1,173 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_iprimitive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // size_t, NULL -#include // memcpy - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; - using ::memcpy; -} // namespace std -#endif - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// implementation of basic_binary_iprimitive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iprimitive::init() -{ - // Detect attempts to pass native binary archives across - // incompatible platforms. This is not fool proof but its - // better than nothing. - unsigned char size; - this->This()->load(size); - if(sizeof(int) != size) - boost::serialization::throw_exception( - archive_exception( - archive_exception::incompatible_native_format, - "size of int" - ) - ); - this->This()->load(size); - if(sizeof(long) != size) - boost::serialization::throw_exception( - archive_exception( - archive_exception::incompatible_native_format, - "size of long" - ) - ); - this->This()->load(size); - if(sizeof(float) != size) - boost::serialization::throw_exception( - archive_exception( - archive_exception::incompatible_native_format, - "size of float" - ) - ); - this->This()->load(size); - if(sizeof(double) != size) - boost::serialization::throw_exception( - archive_exception( - archive_exception::incompatible_native_format, - "size of double" - ) - ); - - // for checking endian - int i; - this->This()->load(i); - if(1 != i) - boost::serialization::throw_exception( - archive_exception( - archive_exception::incompatible_native_format, - "endian setting" - ) - ); -} - -#ifndef BOOST_NO_CWCHAR -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iprimitive::load(wchar_t * ws) -{ - std::size_t l; // number of wchar_t !!! - this->This()->load(l); - load_binary(ws, l * sizeof(wchar_t) / sizeof(char)); - ws[l] = L'\0'; -} -#endif -#endif - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iprimitive::load(std::string & s) -{ - std::size_t l; - this->This()->load(l); - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != s.data()) - #endif - s.resize(l); - // note breaking a rule here - could be a problem on some platform - if(0 < l) - load_binary(&(*s.begin()), l); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iprimitive::load(char * s) -{ - std::size_t l; - this->This()->load(l); - load_binary(s, l); - s[l] = '\0'; -} - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_iprimitive::load(std::wstring & ws) -{ - std::size_t l; - this->This()->load(l); - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != ws.data()) - #endif - ws.resize(l); - // note breaking a rule here - is could be a problem on some platform - load_binary(const_cast(ws.data()), l * sizeof(wchar_t) / sizeof(char)); -} -#endif - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_binary_iprimitive::basic_binary_iprimitive( - std::basic_streambuf & sb, - bool no_codecvt -) : -#ifndef BOOST_NO_STD_LOCALE - m_sb(sb), - codecvt_null_facet(1), - locale_saver(m_sb), - archive_locale(sb.getloc(), & codecvt_null_facet) -{ - if(! no_codecvt){ - m_sb.pubsync(); - m_sb.pubimbue(archive_locale); - } -} -#else - m_sb(sb) -{} -#endif - -// scoped_ptr requires that g be a complete type at time of -// destruction so define destructor here rather than in the header -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_binary_iprimitive::~basic_binary_iprimitive(){} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_binary_oarchive.ipp b/boost/archive/impl/basic_binary_oarchive.ipp deleted file mode 100644 index b83ac619..00000000 --- a/boost/archive/impl/basic_binary_oarchive.ipp +++ /dev/null @@ -1,42 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_oarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; -} -#endif - -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation of binary_binary_oarchive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oarchive::init(){ - // write signature in an archive version independent manner - const std::string file_signature(BOOST_ARCHIVE_SIGNATURE()); - * this->This() << file_signature; - // write library version - const boost::serialization::library_version_type v(BOOST_ARCHIVE_VERSION()); - * this->This() << v; -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_binary_oprimitive.ipp b/boost/archive/impl/basic_binary_oprimitive.ipp deleted file mode 100644 index 7b042173..00000000 --- a/boost/archive/impl/basic_binary_oprimitive.ipp +++ /dev/null @@ -1,126 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_binary_oprimitive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL -#include - -#include - -#if defined(BOOST_NO_STDC_NAMESPACE) && ! defined(__LIBCOMO__) -namespace std{ - using ::strlen; -} // namespace std -#endif - -#ifndef BOOST_NO_CWCHAR -#include -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std{ using ::wcslen; } -#endif -#endif - -#include -#include - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// implementation of basic_binary_oprimitive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oprimitive::init() -{ - // record native sizes of fundamental types - // this is to permit detection of attempts to pass - // native binary archives accross incompatible machines. - // This is not foolproof but its better than nothing. - this->This()->save(static_cast(sizeof(int))); - this->This()->save(static_cast(sizeof(long))); - this->This()->save(static_cast(sizeof(float))); - this->This()->save(static_cast(sizeof(double))); - // for checking endianness - this->This()->save(int(1)); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oprimitive::save(const char * s) -{ - std::size_t l = std::strlen(s); - this->This()->save(l); - save_binary(s, l); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oprimitive::save(const std::string &s) -{ - std::size_t l = static_cast(s.size()); - this->This()->save(l); - save_binary(s.data(), l); -} - -#ifndef BOOST_NO_CWCHAR -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oprimitive::save(const wchar_t * ws) -{ - std::size_t l = std::wcslen(ws); - this->This()->save(l); - save_binary(ws, l * sizeof(wchar_t) / sizeof(char)); -} -#endif - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_binary_oprimitive::save(const std::wstring &ws) -{ - std::size_t l = ws.size(); - this->This()->save(l); - save_binary(ws.data(), l * sizeof(wchar_t) / sizeof(char)); -} -#endif -#endif // BOOST_NO_CWCHAR - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_binary_oprimitive::basic_binary_oprimitive( - std::basic_streambuf & sb, - bool no_codecvt -) : -#ifndef BOOST_NO_STD_LOCALE - m_sb(sb), - codecvt_null_facet(1), - locale_saver(m_sb), - archive_locale(sb.getloc(), & codecvt_null_facet) -{ - if(! no_codecvt){ - m_sb.pubsync(); - m_sb.pubimbue(archive_locale); - } -} -#else - m_sb(sb) -{} -#endif - -// scoped_ptr requires that g be a complete type at time of -// destruction so define destructor here rather than in the header -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_binary_oprimitive::~basic_binary_oprimitive(){} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_text_iarchive.ipp b/boost/archive/impl/basic_text_iarchive.ipp deleted file mode 100644 index 3e2def95..00000000 --- a/boost/archive/impl/basic_text_iarchive.ipp +++ /dev/null @@ -1,76 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_iarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; -} -#endif - -#include -#include -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation of text_text_archive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_iarchive::load_override(class_name_type & t){ - std::string cn; - cn.reserve(BOOST_SERIALIZATION_MAX_KEY_SIZE); - load_override(cn); - if(cn.size() > (BOOST_SERIALIZATION_MAX_KEY_SIZE - 1)) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_class_name) - ); - std::memcpy(t, cn.data(), cn.size()); - // borland tweak - t.t[cn.size()] = '\0'; -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_iarchive::init() { - // read signature in an archive version independent manner - std::string file_signature; - * this->This() >> file_signature; - if(file_signature != BOOST_ARCHIVE_SIGNATURE()) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_signature) - ); - - // make sure the version of the reading archive library can - // support the format of the archive being read - boost::serialization::library_version_type input_library_version; - * this->This() >> input_library_version; - - #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205)) - this->set_library_version(input_library_version); - #else - detail::basic_iarchive::set_library_version(input_library_version); - #endif - - // extra little .t is to get around borland quirk - if(BOOST_ARCHIVE_VERSION() < input_library_version) - boost::serialization::throw_exception( - archive_exception(archive_exception::unsupported_version) - ); -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_text_iprimitive.ipp b/boost/archive/impl/basic_text_iprimitive.ipp deleted file mode 100644 index cad9c3f8..00000000 --- a/boost/archive/impl/basic_text_iprimitive.ipp +++ /dev/null @@ -1,138 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_iprimitive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // size_t, NULL -#include // NULL - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include - -#include - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -namespace detail { - template - static inline bool is_whitespace(CharType c); - - template<> - inline bool is_whitespace(char t){ - return 0 != std::isspace(t); - } - - #ifndef BOOST_NO_CWCHAR - template<> - inline bool is_whitespace(wchar_t t){ - return 0 != std::iswspace(t); - } - #endif -} // detail - -// translate base64 text into binary and copy into buffer -// until buffer is full. -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_iprimitive::load_binary( - void *address, - std::size_t count -){ - typedef typename IStream::char_type CharType; - - if(0 == count) - return; - - BOOST_ASSERT( - static_cast((std::numeric_limits::max)()) - > (count + sizeof(CharType) - 1)/sizeof(CharType) - ); - - if(is.fail()) - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - // convert from base64 to binary - typedef typename - iterators::transform_width< - iterators::binary_from_base64< - iterators::remove_whitespace< - iterators::istream_iterator - > - ,typename IStream::int_type - > - ,8 - ,6 - ,CharType - > - binary; - - binary i = binary(iterators::istream_iterator(is)); - - char * caddr = static_cast(address); - - // take care that we don't increment anymore than necessary - while(count-- > 0){ - *caddr++ = static_cast(*i++); - } - - // skip over any excess input - for(;;){ - typename IStream::int_type r; - r = is.get(); - if(is.eof()) - break; - if(detail::is_whitespace(static_cast(r))) - break; - } -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_text_iprimitive::basic_text_iprimitive( - IStream &is_, - bool no_codecvt -) : - is(is_), - flags_saver(is_), -#ifndef BOOST_NO_STD_LOCALE - precision_saver(is_), - codecvt_null_facet(1), - archive_locale(is.getloc(), & codecvt_null_facet), - locale_saver(is) -{ - if(! no_codecvt){ - is_.sync(); - is_.imbue(archive_locale); - } - is_ >> std::noboolalpha; -} -#else - precision_saver(is_) -{} -#endif - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_text_iprimitive::~basic_text_iprimitive(){ -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_text_oarchive.ipp b/boost/archive/impl/basic_text_oarchive.ipp deleted file mode 100644 index 50084ca0..00000000 --- a/boost/archive/impl/basic_text_oarchive.ipp +++ /dev/null @@ -1,62 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_oarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. -#include -#include -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; -} -#endif - -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation of basic_text_oarchive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_oarchive::newtoken() -{ - switch(delimiter){ - default: - BOOST_ASSERT(false); - break; - case eol: - this->This()->put('\n'); - delimiter = space; - break; - case space: - this->This()->put(' '); - break; - case none: - delimiter = space; - break; - } -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_oarchive::init(){ - // write signature in an archive version independent manner - const std::string file_signature(BOOST_ARCHIVE_SIGNATURE()); - * this->This() << file_signature; - // write library version - const boost::serialization::library_version_type v(BOOST_ARCHIVE_VERSION()); - * this->This() << v; -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_text_oprimitive.ipp b/boost/archive/impl/basic_text_oprimitive.ipp deleted file mode 100644 index 98a8879b..00000000 --- a/boost/archive/impl/basic_text_oprimitive.ipp +++ /dev/null @@ -1,117 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_text_oprimitive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // NULL -#include // std::copy -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include - -#include - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -// translate to base64 and copy in to buffer. -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_text_oprimitive::save_binary( - const void *address, - std::size_t count -){ - typedef typename OStream::char_type CharType; - - if(0 == count) - return; - - if(os.fail()) - boost::serialization::throw_exception( - archive_exception(archive_exception::output_stream_error) - ); - - os.put('\n'); - - typedef - boost::archive::iterators::insert_linebreaks< - boost::archive::iterators::base64_from_binary< - boost::archive::iterators::transform_width< - const char *, - 6, - 8 - > - > - ,76 - ,const char // cwpro8 needs this - > - base64_text; - - boost::archive::iterators::ostream_iterator oi(os); - std::copy( - base64_text(static_cast(address)), - base64_text( - static_cast(address) + count - ), - oi - ); - - std::size_t tail = count % 3; - if(tail > 0){ - *oi++ = '='; - if(tail < 2) - *oi = '='; - } -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_text_oprimitive::basic_text_oprimitive( - OStream & os_, - bool no_codecvt -) : - os(os_), - flags_saver(os_), -#ifndef BOOST_NO_STD_LOCALE - precision_saver(os_), - codecvt_null_facet(1), - archive_locale(os.getloc(), & codecvt_null_facet), - locale_saver(os) -{ - if(! no_codecvt){ - os_.flush(); - os_.imbue(archive_locale); - } - os_ << std::noboolalpha; -} -#else - precision_saver(os_) -{} -#endif - - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_text_oprimitive::~basic_text_oprimitive(){ - if(boost::core::uncaught_exceptions() > 0) - return; - os << std::endl; -} - -} //namespace boost -} //namespace archive diff --git a/boost/archive/impl/basic_xml_grammar.hpp b/boost/archive/impl/basic_xml_grammar.hpp deleted file mode 100644 index 8f70e3d2..00000000 --- a/boost/archive/impl/basic_xml_grammar.hpp +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef BOOST_ARCHIVE_BASIC_XML_GRAMMAR_HPP -#define BOOST_ARCHIVE_BASIC_XML_GRAMMAR_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_grammar.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// this module is derived from simplexml.cpp - an example shipped as part of -// the spirit parser. This example contains the following notice: -/*============================================================================= - simplexml.cpp - - Spirit V1.3 - URL: http://spirit.sourceforge.net/ - - Copyright (c) 2001, Daniel C. Nuffer - - This software is provided 'as-is', without any express or implied - warranty. In no event will the copyright holder be held liable for - any damages arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute - it freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product documentation - would be appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. -=============================================================================*/ -#include - -#include -#include - -#include -#include - -#include -#include -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// XML grammar parsing - -template -class BOOST_SYMBOL_VISIBLE basic_xml_grammar { -public: - // The following is not necessary according to DR45, but at least - // one compiler (Compaq C++ 6.5 in strict_ansi mode) chokes otherwise. - struct return_values; - friend struct return_values; - -private: - typedef typename std::basic_istream IStream; - typedef typename std::basic_string StringType; - typedef typename boost::spirit::classic::chset chset_t; - typedef typename boost::spirit::classic::chlit chlit_t; - typedef typename boost::spirit::classic::scanner< - typename std::basic_string::iterator - > scanner_t; - typedef typename boost::spirit::classic::rule rule_t; - // Start grammar definition - rule_t - Reference, - Eq, - STag, - ETag, - LetterOrUnderscoreOrColon, - AttValue, - CharRef1, - CharRef2, - CharRef, - AmpRef, - LTRef, - GTRef, - AposRef, - QuoteRef, - CharData, - CharDataChars, - content, - AmpName, - LTName, - GTName, - ClassNameChar, - ClassName, - Name, - XMLDecl, - XMLDeclChars, - DocTypeDecl, - DocTypeDeclChars, - ClassIDAttribute, - ObjectIDAttribute, - ClassNameAttribute, - TrackingAttribute, - VersionAttribute, - UnusedAttribute, - Attribute, - SignatureAttribute, - SerializationWrapper, - NameHead, - NameTail, - AttributeList, - S; - - // XML Character classes - chset_t - BaseChar, - Ideographic, - Char, - Letter, - Digit, - CombiningChar, - Extender, - Sch, - NameChar; - - void init_chset(); - - bool my_parse( - IStream & is, - const rule_t &rule_, - const CharType delimiter = L'>' - ) const ; -public: - struct return_values { - StringType object_name; - StringType contents; - //class_id_type class_id; - int_least16_t class_id; - //object_id_type object_id; - uint_least32_t object_id; - //version_type version; - unsigned int version; - tracking_type tracking_level; - StringType class_name; - return_values() : - version(0), - tracking_level(false) - {} - } rv; - bool parse_start_tag(IStream & is) /*const*/; - bool parse_end_tag(IStream & is) const; - bool parse_string(IStream & is, StringType & s) /*const*/; - void init(IStream & is); - bool windup(IStream & is); - basic_xml_grammar(); -}; - -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_BASIC_XML_GRAMMAR_HPP diff --git a/boost/archive/impl/basic_xml_iarchive.ipp b/boost/archive/impl/basic_xml_iarchive.ipp deleted file mode 100644 index f7490530..00000000 --- a/boost/archive/impl/basic_xml_iarchive.ipp +++ /dev/null @@ -1,114 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_iarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL -#include - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation of xml_text_archive - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_start(const char *name){ - // if there's no name - if(NULL == name) - return; - bool result = this->This()->gimpl->parse_start_tag(this->This()->get_is()); - if(true != result){ - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - } - // don't check start tag at highest level - ++depth; -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_end(const char *name){ - // if there's no name - if(NULL == name) - return; - bool result = this->This()->gimpl->parse_end_tag(this->This()->get_is()); - if(true != result){ - boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) - ); - } - - // don't check start tag at highest level - if(0 == --depth) - return; - - if(0 == (this->get_flags() & no_xml_tag_checking)){ - // double check that the tag matches what is expected - useful for debug - if(0 != name[this->This()->gimpl->rv.object_name.size()] - || ! std::equal( - this->This()->gimpl->rv.object_name.begin(), - this->This()->gimpl->rv.object_name.end(), - name - ) - ){ - boost::serialization::throw_exception( - xml_archive_exception( - xml_archive_exception::xml_archive_tag_mismatch, - name - ) - ); - } - } -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_override(object_id_type & t){ - t = object_id_type(this->This()->gimpl->rv.object_id); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_override(version_type & t){ - t = version_type(this->This()->gimpl->rv.version); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_override(class_id_type & t){ - t = class_id_type(this->This()->gimpl->rv.class_id); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_iarchive::load_override(tracking_type & t){ - t = this->This()->gimpl->rv.tracking_level; -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_xml_iarchive::basic_xml_iarchive(unsigned int flags) : - detail::common_iarchive(flags), - depth(0) -{} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_xml_iarchive::~basic_xml_iarchive(){ -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/basic_xml_oarchive.ipp b/boost/archive/impl/basic_xml_oarchive.ipp deleted file mode 100644 index 3184413f..00000000 --- a/boost/archive/impl/basic_xml_oarchive.ipp +++ /dev/null @@ -1,272 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// basic_xml_oarchive.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL -#include -#if defined(BOOST_NO_STDC_NAMESPACE) && ! defined(__LIBCOMO__) -namespace std{ - using ::strlen; -} // namespace std -#endif - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -namespace detail { -template -struct XML_name { - void operator()(CharType t) const{ - const unsigned char lookup_table[] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0, // -. - 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, // 0-9 - 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // A- - 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, // -Z _ - 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // a- - 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, // -z - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - }; - if((unsigned)t > 127) - return; - if(0 == lookup_table[(unsigned)t]) - boost::serialization::throw_exception( - xml_archive_exception( - xml_archive_exception::xml_archive_tag_name_error - ) - ); - } -}; - -} // namespace detail - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implemenations of functions common to both types of xml output - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::write_attribute( - const char *attribute_name, - int t, - const char *conjunction -){ - this->This()->put(' '); - this->This()->put(attribute_name); - this->This()->put(conjunction); - this->This()->save(t); - this->This()->put('"'); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::write_attribute( - const char *attribute_name, - const char *key -){ - this->This()->put(' '); - this->This()->put(attribute_name); - this->This()->put("=\""); - this->This()->save(key); - this->This()->put('"'); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::indent(){ - int i; - for(i = depth; i-- > 0;) - this->This()->put('\t'); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_start(const char *name) -{ - if(NULL == name) - return; - - // be sure name has no invalid characters - std::for_each(name, name + std::strlen(name), detail::XML_name()); - - end_preamble(); - if(depth > 0){ - this->This()->put('\n'); - indent(); - } - ++depth; - this->This()->put('<'); - this->This()->save(name); - pending_preamble = true; - indent_next = false; -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_end(const char *name) -{ - if(NULL == name) - return; - - // be sure name has no invalid characters - std::for_each(name, name + std::strlen(name), detail::XML_name()); - - end_preamble(); - --depth; - if(indent_next){ - this->This()->put('\n'); - indent(); - } - indent_next = true; - this->This()->put("This()->save(name); - this->This()->put('>'); - if(0 == depth) - this->This()->put('\n'); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::end_preamble(){ - if(pending_preamble){ - this->This()->put('>'); - pending_preamble = false; - } -} -#if 0 -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const object_id_type & t) -{ - int i = t.t; // extra .t is for borland - write_attribute(BOOST_ARCHIVE_XML_OBJECT_ID(), i, "=\"_"); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override( - const object_reference_type & t, - int -){ - int i = t.t; // extra .t is for borland - write_attribute(BOOST_ARCHIVE_XML_OBJECT_REFERENCE(), i, "=\"_"); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const version_type & t) -{ - int i = t.t; // extra .t is for borland - write_attribute(BOOST_ARCHIVE_XML_VERSION(), i); -} -#endif - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const object_id_type & t) -{ - // borland doesn't do conversion of STRONG_TYPEDEFs very well - const unsigned int i = t; - write_attribute(BOOST_ARCHIVE_XML_OBJECT_ID(), i, "=\"_"); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override( - const object_reference_type & t -){ - const unsigned int i = t; - write_attribute(BOOST_ARCHIVE_XML_OBJECT_REFERENCE(), i, "=\"_"); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const version_type & t) -{ - const unsigned int i = t; - write_attribute(BOOST_ARCHIVE_XML_VERSION(), i); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const class_id_type & t) -{ - write_attribute(BOOST_ARCHIVE_XML_CLASS_ID(), t); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override( - const class_id_reference_type & t -){ - write_attribute(BOOST_ARCHIVE_XML_CLASS_ID_REFERENCE(), t); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override( - const class_id_optional_type & t -){ - write_attribute(BOOST_ARCHIVE_XML_CLASS_ID(), t); -} -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const class_name_type & t) -{ - const char * key = t; - if(NULL == key) - return; - write_attribute(BOOST_ARCHIVE_XML_CLASS_NAME(), key); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::save_override(const tracking_type & t) -{ - write_attribute(BOOST_ARCHIVE_XML_TRACKING(), t.t); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::init(){ - // xml header - this->This()->put("\n"); - this->This()->put("\n"); - // xml document wrapper - outer root - this->This()->put("This()->put(">\n"); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL void -basic_xml_oarchive::windup(){ - // xml_trailer - this->This()->put("\n"); -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_xml_oarchive::basic_xml_oarchive(unsigned int flags) : - detail::common_oarchive(flags), - depth(0), - pending_preamble(false), - indent_next(false) -{ -} - -template -BOOST_ARCHIVE_OR_WARCHIVE_DECL -basic_xml_oarchive::~basic_xml_oarchive(){ -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/text_iarchive_impl.ipp b/boost/archive/impl/text_iarchive_impl.ipp deleted file mode 100644 index a3a80c04..00000000 --- a/boost/archive/impl/text_iarchive_impl.ipp +++ /dev/null @@ -1,121 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_iarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -////////////////////////////////////////////////////////////////////// -// implementation of basic_text_iprimitive overrides for the combination -// of template parameters used to implement a text_iprimitive - -#include // size_t, NULL -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include // RogueWave - -#include - -namespace boost { -namespace archive { - -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::load(char *s) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - // Works on all tested platforms - is.read(s, size); - s[size] = '\0'; -} - -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::load(std::string &s) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != s.data()) - #endif - s.resize(size); - if(0 < size) - is.read(&(*s.begin()), size); -} - -#ifndef BOOST_NO_CWCHAR -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::load(wchar_t *ws) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - is.read((char *)ws, size * sizeof(wchar_t)/sizeof(char)); - ws[size] = L'\0'; -} -#endif // BOOST_NO_INTRINSIC_WCHAR_T - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::load(std::wstring &ws) -{ - std::size_t size; - * this->This() >> size; - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != ws.data()) - #endif - ws.resize(size); - // skip separating space - is.get(); - is.read((char *)ws.data(), size * sizeof(wchar_t)/sizeof(char)); -} - -#endif // BOOST_NO_STD_WSTRING -#endif // BOOST_NO_CWCHAR - -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::load_override(class_name_type & t){ - basic_text_iarchive::load_override(t); -} - -template -BOOST_ARCHIVE_DECL void -text_iarchive_impl::init(){ - basic_text_iarchive::init(); -} - -template -BOOST_ARCHIVE_DECL -text_iarchive_impl::text_iarchive_impl( - std::istream & is, - unsigned int flags -) : - basic_text_iprimitive( - is, - 0 != (flags & no_codecvt) - ), - basic_text_iarchive(flags) -{} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/text_oarchive_impl.ipp b/boost/archive/impl/text_oarchive_impl.ipp deleted file mode 100644 index 26fbc23a..00000000 --- a/boost/archive/impl/text_oarchive_impl.ipp +++ /dev/null @@ -1,116 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_oarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include // size_t - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#ifndef BOOST_NO_CWCHAR -#include -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std{ using ::wcslen; } -#endif -#endif - -#include - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// implementation of basic_text_oprimitive overrides for the combination -// of template parameters used to create a text_oprimitive - -template -BOOST_ARCHIVE_DECL void -text_oarchive_impl::save(const char * s) -{ - const std::size_t len = std::ostream::traits_type::length(s); - *this->This() << len; - this->This()->newtoken(); - os << s; -} - -template -BOOST_ARCHIVE_DECL void -text_oarchive_impl::save(const std::string &s) -{ - const std::size_t size = s.size(); - *this->This() << size; - this->This()->newtoken(); - os << s; -} - -#ifndef BOOST_NO_CWCHAR -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_DECL void -text_oarchive_impl::save(const wchar_t * ws) -{ - const std::size_t l = std::wcslen(ws); - * this->This() << l; - this->This()->newtoken(); - os.write((const char *)ws, l * sizeof(wchar_t)/sizeof(char)); -} -#endif - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_DECL void -text_oarchive_impl::save(const std::wstring &ws) -{ - const std::size_t l = ws.size(); - * this->This() << l; - this->This()->newtoken(); - os.write((const char *)(ws.data()), l * sizeof(wchar_t)/sizeof(char)); -} -#endif -#endif // BOOST_NO_CWCHAR - -template -BOOST_ARCHIVE_DECL -text_oarchive_impl::text_oarchive_impl( - std::ostream & os, - unsigned int flags -) : - basic_text_oprimitive( - os, - 0 != (flags & no_codecvt) - ), - basic_text_oarchive(flags) -{ -} - -template -BOOST_ARCHIVE_DECL void -text_oarchive_impl::save_binary(const void *address, std::size_t count){ - put('\n'); - this->end_preamble(); - #if ! defined(__MWERKS__) - this->basic_text_oprimitive::save_binary( - #else - this->basic_text_oprimitive::save_binary( - #endif - address, - count - ); - this->delimiter = this->eol; -} - -} // namespace archive -} // namespace boost - diff --git a/boost/archive/impl/text_wiarchive_impl.ipp b/boost/archive/impl/text_wiarchive_impl.ipp deleted file mode 100644 index e421fa55..00000000 --- a/boost/archive/impl/text_wiarchive_impl.ipp +++ /dev/null @@ -1,116 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_text_wiarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // size_t, NULL - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include // fixup for RogueWave - -#ifndef BOOST_NO_STD_WSTREAMBUF -#include - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// implementation of wiprimtives functions -// -template -BOOST_WARCHIVE_DECL void -text_wiarchive_impl::load(char *s) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - while(size-- > 0){ - *s++ = is.narrow(is.get(), '\0'); - } - *s = '\0'; -} - -template -BOOST_WARCHIVE_DECL void -text_wiarchive_impl::load(std::string &s) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != s.data()) - #endif - s.resize(0); - s.reserve(size); - while(size-- > 0){ - char x = is.narrow(is.get(), '\0'); - s += x; - } -} - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_WARCHIVE_DECL void -text_wiarchive_impl::load(wchar_t *s) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - // Works on all tested platforms - is.read(s, size); - s[size] = L'\0'; -} -#endif - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_WARCHIVE_DECL void -text_wiarchive_impl::load(std::wstring &ws) -{ - std::size_t size; - * this->This() >> size; - // skip separating space - is.get(); - // borland complains about resize - // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != ws.data()) - #endif - ws.resize(size); - // note breaking a rule here - is this a problem on some platform - is.read(const_cast(ws.data()), size); -} -#endif - -template -BOOST_WARCHIVE_DECL -text_wiarchive_impl::text_wiarchive_impl( - std::wistream & is, - unsigned int flags -) : - basic_text_iprimitive( - is, - 0 != (flags & no_codecvt) - ), - basic_text_iarchive(flags) -{ -} - -} // archive -} // boost - -#endif // BOOST_NO_STD_WSTREAMBUF diff --git a/boost/archive/impl/text_woarchive_impl.ipp b/boost/archive/impl/text_woarchive_impl.ipp deleted file mode 100644 index 2b6d427c..00000000 --- a/boost/archive/impl/text_woarchive_impl.ipp +++ /dev/null @@ -1,85 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_woarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifndef BOOST_NO_STD_WSTREAMBUF - -#include -#include // size_t -#if defined(BOOST_NO_STDC_NAMESPACE) && ! defined(__LIBCOMO__) -namespace std{ - using ::strlen; - using ::size_t; -} // namespace std -#endif - -#include - -#include - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// implementation of woarchive functions -// -template -BOOST_WARCHIVE_DECL void -text_woarchive_impl::save(const char *s) -{ - // note: superfluous local variable fixes borland warning - const std::size_t size = std::strlen(s); - * this->This() << size; - this->This()->newtoken(); - while(*s != '\0') - os.put(os.widen(*s++)); -} - -template -BOOST_WARCHIVE_DECL void -text_woarchive_impl::save(const std::string &s) -{ - const std::size_t size = s.size(); - * this->This() << size; - this->This()->newtoken(); - const char * cptr = s.data(); - for(std::size_t i = size; i-- > 0;) - os.put(os.widen(*cptr++)); -} - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_WARCHIVE_DECL void -text_woarchive_impl::save(const wchar_t *ws) -{ - const std::size_t size = std::wostream::traits_type::length(ws); - * this->This() << size; - this->This()->newtoken(); - os.write(ws, size); -} -#endif - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_WARCHIVE_DECL void -text_woarchive_impl::save(const std::wstring &ws) -{ - const std::size_t size = ws.length(); - * this->This() << size; - this->This()->newtoken(); - os.write(ws.data(), size); -} -#endif - -} // namespace archive -} // namespace boost - -#endif - diff --git a/boost/archive/impl/xml_iarchive_impl.ipp b/boost/archive/impl/xml_iarchive_impl.ipp deleted file mode 100644 index b0847d4a..00000000 --- a/boost/archive/impl/xml_iarchive_impl.ipp +++ /dev/null @@ -1,196 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_iarchive_impl.cpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // memcpy -#include // NULL - -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; -} // namespace std -#endif - -#ifndef BOOST_NO_CWCHAR -#include // mbstate_t and mbrtowc -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::mbstate_t; - using ::mbrtowc; - } // namespace std -#endif -#endif // BOOST_NO_CWCHAR - -#include // RogueWave and Dinkumware -#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) -#include -#endif - -#include -#include - -#include -#include -#include -#include - -#include "basic_xml_grammar.hpp" - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implemenations of functions specific to char archives - -// wide char stuff used by char archives - -#ifndef BOOST_NO_CWCHAR -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::load(std::wstring &ws){ - std::string s; - bool result = gimpl->parse_string(is, s); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); - - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != ws.data()) - #endif - ws.resize(0); - std::mbstate_t mbs = std::mbstate_t(); - const char * start = s.data(); - const char * end = start + s.size(); - while(start < end){ - wchar_t wc; - std::size_t count = std::mbrtowc(&wc, start, end - start, &mbs); - if(count == static_cast(-1)) - boost::serialization::throw_exception( - iterators::dataflow_exception( - iterators::dataflow_exception::invalid_conversion - ) - ); - if(count == static_cast(-2)) - continue; - start += count; - ws += wc; - } -} -#endif // BOOST_NO_STD_WSTRING - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::load(wchar_t * ws){ - std::string s; - bool result = gimpl->parse_string(is, s); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception( - xml_archive_exception::xml_archive_parsing_error - ) - ); - - std::mbstate_t mbs = std::mbstate_t(); - const char * start = s.data(); - const char * end = start + s.size(); - while(start < end){ - wchar_t wc; - std::size_t length = std::mbrtowc(&wc, start, end - start, &mbs); - if(static_cast(-1) == length) - boost::serialization::throw_exception( - iterators::dataflow_exception( - iterators::dataflow_exception::invalid_conversion - ) - ); - if(static_cast(-2) == length) - continue; - - start += length; - *ws++ = wc; - } - *ws = L'\0'; -} -#endif // BOOST_NO_INTRINSIC_WCHAR_T - -#endif // BOOST_NO_CWCHAR - -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::load(std::string &s){ - bool result = gimpl->parse_string(is, s); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); -} - -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::load(char * s){ - std::string tstring; - bool result = gimpl->parse_string(is, tstring); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); - std::memcpy(s, tstring.data(), tstring.size()); - s[tstring.size()] = 0; -} - -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::load_override(class_name_type & t){ - const std::string & s = gimpl->rv.class_name; - if(s.size() > BOOST_SERIALIZATION_MAX_KEY_SIZE - 1) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_class_name) - ); - char * tptr = t; - std::memcpy(tptr, s.data(), s.size()); - tptr[s.size()] = '\0'; -} - -template -BOOST_ARCHIVE_DECL void -xml_iarchive_impl::init(){ - gimpl->init(is); - this->set_library_version( - boost::serialization::library_version_type(gimpl->rv.version) - ); -} - -template -BOOST_ARCHIVE_DECL -xml_iarchive_impl::xml_iarchive_impl( - std::istream &is_, - unsigned int flags -) : - basic_text_iprimitive( - is_, - 0 != (flags & no_codecvt) - ), - basic_xml_iarchive(flags), - gimpl(new xml_grammar()) -{} - -template -BOOST_ARCHIVE_DECL -xml_iarchive_impl::~xml_iarchive_impl(){ - if(boost::core::uncaught_exceptions() > 0) - return; - if(0 == (this->get_flags() & no_header)){ - gimpl->windup(is); - } -} -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/xml_oarchive_impl.ipp b/boost/archive/impl/xml_oarchive_impl.ipp deleted file mode 100644 index 0f4ccbbf..00000000 --- a/boost/archive/impl/xml_oarchive_impl.ipp +++ /dev/null @@ -1,139 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_oarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#include -#include -#include // std::copy -#include - -#include // strlen -#include // msvc 6.0 needs this to suppress warnings -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::strlen; -} // namespace std -#endif - -#include -#include -#include - -#ifndef BOOST_NO_CWCHAR -#include -#include -#endif - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implemenations of functions specific to char archives - -// wide char stuff used by char archives -#ifndef BOOST_NO_CWCHAR -// copy chars to output escaping to xml and translating wide chars to mb chars -template -void save_iterator(std::ostream &os, InputIterator begin, InputIterator end){ - typedef boost::archive::iterators::mb_from_wchar< - boost::archive::iterators::xml_escape - > translator; - std::copy( - translator(begin), - translator(end), - boost::archive::iterators::ostream_iterator(os) - ); -} - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_ARCHIVE_DECL void -xml_oarchive_impl::save(const std::wstring & ws){ -// at least one library doesn't typedef value_type for strings -// so rather than using string directly make a pointer iterator out of it -// save_iterator(os, ws.data(), ws.data() + std::wcslen(ws.data())); - save_iterator(os, ws.data(), ws.data() + ws.size()); -} -#endif - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_ARCHIVE_DECL void -xml_oarchive_impl::save(const wchar_t * ws){ - save_iterator(os, ws, ws + std::wcslen(ws)); -} -#endif - -#endif // BOOST_NO_CWCHAR - -template -BOOST_ARCHIVE_DECL void -xml_oarchive_impl::save(const std::string & s){ -// at least one library doesn't typedef value_type for strings -// so rather than using string directly make a pointer iterator out of it - typedef boost::archive::iterators::xml_escape< - const char * - > xml_escape_translator; - std::copy( - xml_escape_translator(s.data()), - xml_escape_translator(s.data()+ s.size()), - boost::archive::iterators::ostream_iterator(os) - ); -} - -template -BOOST_ARCHIVE_DECL void -xml_oarchive_impl::save(const char * s){ - typedef boost::archive::iterators::xml_escape< - const char * - > xml_escape_translator; - std::copy( - xml_escape_translator(s), - xml_escape_translator(s + std::strlen(s)), - boost::archive::iterators::ostream_iterator(os) - ); -} - -template -BOOST_ARCHIVE_DECL -xml_oarchive_impl::xml_oarchive_impl( - std::ostream & os_, - unsigned int flags -) : - basic_text_oprimitive( - os_, - 0 != (flags & no_codecvt) - ), - basic_xml_oarchive(flags) -{} - -template -BOOST_ARCHIVE_DECL void -xml_oarchive_impl::save_binary(const void *address, std::size_t count){ - this->end_preamble(); - #if ! defined(__MWERKS__) - this->basic_text_oprimitive::save_binary( - #else - this->basic_text_oprimitive::save_binary( - #endif - address, - count - ); - this->indent_next = true; -} - -template -BOOST_ARCHIVE_DECL -xml_oarchive_impl::~xml_oarchive_impl(){ - if(boost::core::uncaught_exceptions() > 0) - return; - if(0 == (this->get_flags() & no_header)) - this->windup(); -} - -} // namespace archive -} // namespace boost diff --git a/boost/archive/impl/xml_wiarchive_impl.ipp b/boost/archive/impl/xml_wiarchive_impl.ipp deleted file mode 100644 index 198dfafb..00000000 --- a/boost/archive/impl/xml_wiarchive_impl.ipp +++ /dev/null @@ -1,187 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_wiarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::memcpy; -} //std -#endif - -#include // msvc 6.0 needs this to suppress warnings -#ifndef BOOST_NO_STD_WSTREAMBUF - -#include -#include // std::copy -#include // Dinkumware and RogueWave -#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) -#include -#endif - -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include - -#include "basic_xml_grammar.hpp" - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implemenations of functions specific to wide char archives - -namespace { // anonymous - -void copy_to_ptr(char * s, const std::wstring & ws){ - std::copy( - iterators::mb_from_wchar( - ws.begin() - ), - iterators::mb_from_wchar( - ws.end() - ), - s - ); - s[ws.size()] = 0; -} - -} // anonymous - -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::load(std::string & s){ - std::wstring ws; - bool result = gimpl->parse_string(is, ws); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != s.data()) - #endif - s.resize(0); - s.reserve(ws.size()); - std::copy( - iterators::mb_from_wchar( - ws.begin() - ), - iterators::mb_from_wchar( - ws.end() - ), - std::back_inserter(s) - ); -} - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::load(std::wstring & ws){ - bool result = gimpl->parse_string(is, ws); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); -} -#endif - -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::load(char * s){ - std::wstring ws; - bool result = gimpl->parse_string(is, ws); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); - copy_to_ptr(s, ws); -} - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::load(wchar_t * ws){ - std::wstring twstring; - bool result = gimpl->parse_string(is, twstring); - if(! result) - boost::serialization::throw_exception( - xml_archive_exception(xml_archive_exception::xml_archive_parsing_error) - ); - std::memcpy(ws, twstring.c_str(), twstring.size()); - ws[twstring.size()] = L'\0'; -} -#endif - -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::load_override(class_name_type & t){ - const std::wstring & ws = gimpl->rv.class_name; - if(ws.size() > BOOST_SERIALIZATION_MAX_KEY_SIZE - 1) - boost::serialization::throw_exception( - archive_exception(archive_exception::invalid_class_name) - ); - copy_to_ptr(t, ws); -} - -template -BOOST_WARCHIVE_DECL void -xml_wiarchive_impl::init(){ - gimpl->init(is); - this->set_library_version( - boost::serialization::library_version_type(gimpl->rv.version) - ); -} - -template -BOOST_WARCHIVE_DECL -xml_wiarchive_impl::xml_wiarchive_impl( - std::wistream &is_, - unsigned int flags -) : - basic_text_iprimitive( - is_, - true // don't change the codecvt - use the one below - ), - basic_xml_iarchive(flags), - gimpl(new xml_wgrammar()) -{ - if(0 == (flags & no_codecvt)){ - archive_locale = std::locale( - is_.getloc(), - new boost::archive::detail::utf8_codecvt_facet - ); - // libstdc++ crashes without this - is_.sync(); - is_.imbue(archive_locale); - } -} - -template -BOOST_WARCHIVE_DECL -xml_wiarchive_impl::~xml_wiarchive_impl(){ - if(boost::core::uncaught_exceptions() > 0) - return; - if(0 == (this->get_flags() & no_header)){ - gimpl->windup(is); - } -} - -} // namespace archive -} // namespace boost - -#endif // BOOST_NO_STD_WSTREAMBUF diff --git a/boost/archive/impl/xml_woarchive_impl.ipp b/boost/archive/impl/xml_woarchive_impl.ipp deleted file mode 100644 index dabaf230..00000000 --- a/boost/archive/impl/xml_woarchive_impl.ipp +++ /dev/null @@ -1,169 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_woarchive_impl.ipp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#include -#ifndef BOOST_NO_STD_WSTREAMBUF - -#include -#include -#include // std::copy -#include - -#include // strlen -#include // mbtowc -#ifndef BOOST_NO_CWCHAR -#include // wcslen -#endif - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::strlen; - #if ! defined(BOOST_NO_INTRINSIC_WCHAR_T) - using ::mbtowc; - using ::wcslen; - #endif -} // namespace std -#endif - -#include - -#include -#include - -#include - -#include -#include -#include -#include - -namespace boost { -namespace archive { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implemenations of functions specific to wide char archives - -// copy chars to output escaping to xml and widening characters as we go -template -void save_iterator(std::wostream &os, InputIterator begin, InputIterator end){ - typedef iterators::wchar_from_mb< - iterators::xml_escape - > xmbtows; - std::copy( - xmbtows(begin), - xmbtows(end), - boost::archive::iterators::ostream_iterator(os) - ); -} - -template -BOOST_WARCHIVE_DECL void -xml_woarchive_impl::save(const std::string & s){ - // note: we don't use s.begin() and s.end() because dinkumware - // doesn't have string::value_type defined. So use a wrapper - // around these values to implement the definitions. - const char * begin = s.data(); - const char * end = begin + s.size(); - save_iterator(os, begin, end); -} - -#ifndef BOOST_NO_STD_WSTRING -template -BOOST_WARCHIVE_DECL void -xml_woarchive_impl::save(const std::wstring & ws){ -#if 0 - typedef iterators::xml_escape xmbtows; - std::copy( - xmbtows(ws.begin()), - xmbtows(ws.end()), - boost::archive::iterators::ostream_iterator(os) - ); -#endif - typedef iterators::xml_escape xmbtows; - std::copy( - xmbtows(ws.data()), - xmbtows(ws.data() + ws.size()), - boost::archive::iterators::ostream_iterator(os) - ); -} -#endif //BOOST_NO_STD_WSTRING - -template -BOOST_WARCHIVE_DECL void -xml_woarchive_impl::save(const char * s){ - save_iterator(os, s, s + std::strlen(s)); -} - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template -BOOST_WARCHIVE_DECL void -xml_woarchive_impl::save(const wchar_t * ws){ - typedef iterators::xml_escape xmbtows; - std::copy( - xmbtows(ws), - xmbtows(ws + std::wcslen(ws)), - boost::archive::iterators::ostream_iterator(os) - ); -} -#endif - -template -BOOST_WARCHIVE_DECL -xml_woarchive_impl::xml_woarchive_impl( - std::wostream & os_, - unsigned int flags -) : - basic_text_oprimitive( - os_, - true // don't change the codecvt - use the one below - ), - basic_xml_oarchive(flags) -{ - if(0 == (flags & no_codecvt)){ - archive_locale = std::locale( - os_.getloc(), - new boost::archive::detail::utf8_codecvt_facet - ); - os_.flush(); - os_.imbue(archive_locale); - } -} - -template -BOOST_WARCHIVE_DECL -xml_woarchive_impl::~xml_woarchive_impl(){ - if(boost::core::uncaught_exceptions() > 0) - return; - if(0 == (this->get_flags() & no_header)){ - os << L""; - } -} - -template -BOOST_WARCHIVE_DECL void -xml_woarchive_impl::save_binary( - const void *address, - std::size_t count -){ - this->end_preamble(); - #if ! defined(__MWERKS__) - this->basic_text_oprimitive::save_binary( - #else - this->basic_text_oprimitive::save_binary( - #endif - address, - count - ); - this->indent_next = true; -} - -} // namespace archive -} // namespace boost - -#endif //BOOST_NO_STD_WSTREAMBUF diff --git a/boost/archive/iterators/base64_from_binary.hpp b/boost/archive/iterators/base64_from_binary.hpp deleted file mode 100644 index bd0b38fa..00000000 --- a/boost/archive/iterators/base64_from_binary.hpp +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_BASE64_FROM_BINARY_HPP -#define BOOST_ARCHIVE_ITERATORS_BASE64_FROM_BINARY_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// base64_from_binary.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include // size_t -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// convert binary integers to base64 characters - -namespace detail { - -template -struct from_6_bit { - typedef CharType result_type; - CharType operator()(CharType t) const{ - static const char * lookup_table = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789" - "+/"; - BOOST_ASSERT(t < 64); - return lookup_table[static_cast(t)]; - } -}; - -} // namespace detail - -// note: what we would like to do is -// template -// typedef transform_iterator< -// from_6_bit, -// transform_width -// > base64_from_binary; -// but C++ won't accept this. Rather than using a "type generator" and -// using a different syntax, make a derivation which should be equivalent. -// -// Another issue addressed here is that the transform_iterator doesn't have -// a templated constructor. This makes it incompatible with the dataflow -// ideal. This is also addressed here. - -//template -template< - class Base, - class CharType = typename boost::iterator_value::type -> -class base64_from_binary : - public transform_iterator< - detail::from_6_bit, - Base - > -{ - friend class boost::iterator_core_access; - typedef transform_iterator< - typename detail::from_6_bit, - Base - > super_t; - -public: - // make composible buy using templated constructor - template - base64_from_binary(T start) : - super_t( - Base(static_cast< T >(start)), - detail::from_6_bit() - ) - {} - // intel 7.1 doesn't like default copy constructor - base64_from_binary(const base64_from_binary & rhs) : - super_t( - Base(rhs.base_reference()), - detail::from_6_bit() - ) - {} -// base64_from_binary(){}; -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_BASE64_FROM_BINARY_HPP diff --git a/boost/archive/iterators/binary_from_base64.hpp b/boost/archive/iterators/binary_from_base64.hpp deleted file mode 100644 index 5aeccb3a..00000000 --- a/boost/archive/iterators/binary_from_base64.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_BINARY_FROM_BASE64_HPP -#define BOOST_ARCHIVE_ITERATORS_BINARY_FROM_BASE64_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// binary_from_base64.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// convert base64 characters to binary data - -namespace detail { - -template -struct to_6_bit { - typedef CharType result_type; - CharType operator()(CharType t) const{ - static const signed char lookup_table[] = { - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63, - 52,53,54,55,56,57,58,59,60,61,-1,-1,-1, 0,-1,-1, // render '=' as 0 - -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1, - -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1 - }; - // metrowerks trips this assertion - how come? - #if ! defined(__MWERKS__) - BOOST_STATIC_ASSERT(128 == sizeof(lookup_table)); - #endif - signed char value = -1; - if((unsigned)t <= 127) - value = lookup_table[(unsigned)t]; - if(-1 == value) - boost::serialization::throw_exception( - dataflow_exception(dataflow_exception::invalid_base64_character) - ); - return value; - } -}; - -} // namespace detail - -// note: what we would like to do is -// template -// typedef transform_iterator< -// from_6_bit, -// transform_width -// > base64_from_binary; -// but C++ won't accept this. Rather than using a "type generator" and -// using a different syntax, make a derivation which should be equivalent. -// -// Another issue addressed here is that the transform_iterator doesn't have -// a templated constructor. This makes it incompatible with the dataflow -// ideal. This is also addressed here. - -template< - class Base, - class CharType = typename boost::iterator_value::type -> -class binary_from_base64 : public - transform_iterator< - detail::to_6_bit, - Base - > -{ - friend class boost::iterator_core_access; - typedef transform_iterator< - detail::to_6_bit, - Base - > super_t; -public: - // make composible buy using templated constructor - template - binary_from_base64(T start) : - super_t( - Base(static_cast< T >(start)), - detail::to_6_bit() - ) - {} - // intel 7.1 doesn't like default copy constructor - binary_from_base64(const binary_from_base64 & rhs) : - super_t( - Base(rhs.base_reference()), - detail::to_6_bit() - ) - {} -// binary_from_base64(){}; -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_BINARY_FROM_BASE64_HPP diff --git a/boost/archive/iterators/dataflow_exception.hpp b/boost/archive/iterators/dataflow_exception.hpp deleted file mode 100644 index a144a8bd..00000000 --- a/boost/archive/iterators/dataflow_exception.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP -#define BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// dataflow_exception.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifndef BOOST_NO_EXCEPTIONS -#include -#endif //BOOST_NO_EXCEPTIONS - -#include - -namespace boost { -namespace archive { -namespace iterators { - -////////////////////////////////////////////////////////////////////// -// exceptions thrown by dataflows -// -class dataflow_exception : public std::exception -{ -public: - typedef enum { - invalid_6_bitcode, - invalid_base64_character, - invalid_xml_escape_sequence, - comparison_not_permitted, - invalid_conversion, - other_exception - } exception_code; - exception_code code; - - dataflow_exception(exception_code c = other_exception) : code(c) - {} - - const char *what( ) const throw( ) BOOST_OVERRIDE - { - const char *msg = "unknown exception code"; - switch(code){ - case invalid_6_bitcode: - msg = "attempt to encode a value > 6 bits"; - break; - case invalid_base64_character: - msg = "attempt to decode a value not in base64 char set"; - break; - case invalid_xml_escape_sequence: - msg = "invalid xml escape_sequence"; - break; - case comparison_not_permitted: - msg = "cannot invoke iterator comparison now"; - break; - case invalid_conversion: - msg = "invalid multbyte/wide char conversion"; - break; - default: - BOOST_ASSERT(false); - break; - } - return msg; - } -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif //BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP diff --git a/boost/archive/iterators/escape.hpp b/boost/archive/iterators/escape.hpp deleted file mode 100644 index 9af34ac9..00000000 --- a/boost/archive/iterators/escape.hpp +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_ESCAPE_HPP -#define BOOST_ARCHIVE_ITERATORS_ESCAPE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// escape.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // NULL - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// insert escapes into text - -template -class escape : - public boost::iterator_adaptor< - Derived, - Base, - typename boost::iterator_value::type, - single_pass_traversal_tag, - typename boost::iterator_value::type - > -{ - typedef typename boost::iterator_value::type base_value_type; - typedef typename boost::iterator_reference::type reference_type; - friend class boost::iterator_core_access; - - typedef typename boost::iterator_adaptor< - Derived, - Base, - base_value_type, - single_pass_traversal_tag, - base_value_type - > super_t; - - typedef escape this_t; - - void dereference_impl() { - m_current_value = static_cast(this)->fill(m_bnext, m_bend); - m_full = true; - } - - //Access the value referred to - reference_type dereference() const { - if(!m_full) - const_cast(this)->dereference_impl(); - return m_current_value; - } - - bool equal(const this_t & rhs) const { - if(m_full){ - if(! rhs.m_full) - const_cast(& rhs)->dereference_impl(); - } - else{ - if(rhs.m_full) - const_cast(this)->dereference_impl(); - } - if(m_bnext != rhs.m_bnext) - return false; - if(this->base_reference() != rhs.base_reference()) - return false; - return true; - } - - void increment(){ - if(++m_bnext < m_bend){ - m_current_value = *m_bnext; - return; - } - ++(this->base_reference()); - m_bnext = NULL; - m_bend = NULL; - m_full = false; - } - - // buffer to handle pending characters - const base_value_type *m_bnext; - const base_value_type *m_bend; - bool m_full; - base_value_type m_current_value; -public: - escape(Base base) : - super_t(base), - m_bnext(NULL), - m_bend(NULL), - m_full(false), - m_current_value(0) - { - } -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_ESCAPE_HPP diff --git a/boost/archive/iterators/insert_linebreaks.hpp b/boost/archive/iterators/insert_linebreaks.hpp deleted file mode 100644 index c75ea841..00000000 --- a/boost/archive/iterators/insert_linebreaks.hpp +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_INSERT_LINEBREAKS_HPP -#define BOOST_ARCHIVE_ITERATORS_INSERT_LINEBREAKS_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// insert_linebreaks.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ using ::memcpy; } -#endif - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// insert line break every N characters -template< - class Base, - int N, - class CharType = typename boost::iterator_value::type -> -class insert_linebreaks : - public iterator_adaptor< - insert_linebreaks, - Base, - CharType, - single_pass_traversal_tag, - CharType - > -{ -private: - friend class boost::iterator_core_access; - typedef iterator_adaptor< - insert_linebreaks, - Base, - CharType, - single_pass_traversal_tag, - CharType - > super_t; - - bool equal(const insert_linebreaks & rhs) const { - return -// m_count == rhs.m_count -// && base_reference() == rhs.base_reference() - this->base_reference() == rhs.base_reference() - ; - } - - void increment() { - if(m_count == N){ - m_count = 0; - return; - } - ++m_count; - ++(this->base_reference()); - } - CharType dereference() const { - if(m_count == N) - return '\n'; - return * (this->base_reference()); - } - unsigned int m_count; -public: - // make composible buy using templated constructor - template - insert_linebreaks(T start) : - super_t(Base(static_cast< T >(start))), - m_count(0) - {} - // intel 7.1 doesn't like default copy constructor - insert_linebreaks(const insert_linebreaks & rhs) : - super_t(rhs.base_reference()), - m_count(rhs.m_count) - {} -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_INSERT_LINEBREAKS_HPP diff --git a/boost/archive/iterators/istream_iterator.hpp b/boost/archive/iterators/istream_iterator.hpp deleted file mode 100644 index 05b87996..00000000 --- a/boost/archive/iterators/istream_iterator.hpp +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_ISTREAM_ITERATOR_HPP -#define BOOST_ARCHIVE_ITERATORS_ISTREAM_ITERATOR_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// istream_iterator.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// note: this is a custom version of the standard istream_iterator. -// This is necessary as the standard version doesn't work as expected -// for wchar_t based streams on systems for which wchar_t not a true -// type but rather a synonym for some integer type. - -#include // NULL -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -// given a type, make an input iterator based on a pointer to that type -template -class istream_iterator : - public boost::iterator_facade< - istream_iterator, - Elem, - std::input_iterator_tag, - Elem - > -{ - friend class boost::iterator_core_access; - typedef istream_iterator this_t ; - typedef typename boost::iterator_facade< - istream_iterator, - Elem, - std::input_iterator_tag, - Elem - > super_t; - typedef typename std::basic_istream istream_type; - - bool equal(const this_t & rhs) const { - // note: only works for comparison against end of stream - return m_istream == rhs.m_istream; - } - - //Access the value referred to - Elem dereference() const { - return static_cast(m_istream->peek()); - } - - void increment(){ - if(NULL != m_istream){ - m_istream->ignore(1); - } - } - - istream_type *m_istream; - Elem m_current_value; -public: - istream_iterator(istream_type & is) : - m_istream(& is) - { - //increment(); - } - - istream_iterator() : - m_istream(NULL), - m_current_value(NULL) - {} - - istream_iterator(const istream_iterator & rhs) : - m_istream(rhs.m_istream), - m_current_value(rhs.m_current_value) - {} -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_ISTREAM_ITERATOR_HPP diff --git a/boost/archive/iterators/mb_from_wchar.hpp b/boost/archive/iterators/mb_from_wchar.hpp deleted file mode 100644 index dbd17b7c..00000000 --- a/boost/archive/iterators/mb_from_wchar.hpp +++ /dev/null @@ -1,142 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_MB_FROM_WCHAR_HPP -#define BOOST_ARCHIVE_ITERATORS_MB_FROM_WCHAR_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// mb_from_wchar.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // size_t -#ifndef BOOST_NO_CWCHAR -#include // mbstate_t -#endif -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::mbstate_t; -} // namespace std -#endif - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// class used by text archives to translate wide strings and to char -// strings of the currently selected locale -template // the input iterator -class mb_from_wchar - : public boost::iterator_adaptor< - mb_from_wchar, - Base, - wchar_t, - single_pass_traversal_tag, - char - > -{ - friend class boost::iterator_core_access; - - typedef typename boost::iterator_adaptor< - mb_from_wchar, - Base, - wchar_t, - single_pass_traversal_tag, - char - > super_t; - - typedef mb_from_wchar this_t; - - char dereference_impl() { - if(! m_full){ - fill(); - m_full = true; - } - return m_buffer[m_bnext]; - } - - char dereference() const { - return (const_cast(this))->dereference_impl(); - } - // test for iterator equality - bool equal(const mb_from_wchar & rhs) const { - // once the value is filled, the base_reference has been incremented - // so don't permit comparison anymore. - return - 0 == m_bend - && 0 == m_bnext - && this->base_reference() == rhs.base_reference() - ; - } - - void fill(){ - wchar_t value = * this->base_reference(); - const wchar_t *wend; - char *bend; - BOOST_VERIFY( - m_codecvt_facet.out( - m_mbs, - & value, & value + 1, wend, - m_buffer, m_buffer + sizeof(m_buffer), bend - ) - == - std::codecvt_base::ok - ); - m_bnext = 0; - m_bend = bend - m_buffer; - } - - void increment(){ - if(++m_bnext < m_bend) - return; - m_bend = - m_bnext = 0; - ++(this->base_reference()); - m_full = false; - } - - boost::archive::detail::utf8_codecvt_facet m_codecvt_facet; - std::mbstate_t m_mbs; - // buffer to handle pending characters - char m_buffer[9 /* MB_CUR_MAX */]; - std::size_t m_bend; - std::size_t m_bnext; - bool m_full; - -public: - // make composible buy using templated constructor - template - mb_from_wchar(T start) : - super_t(Base(static_cast< T >(start))), - m_mbs(std::mbstate_t()), - m_bend(0), - m_bnext(0), - m_full(false) - {} - // intel 7.1 doesn't like default copy constructor - mb_from_wchar(const mb_from_wchar & rhs) : - super_t(rhs.base_reference()), - m_bend(rhs.m_bend), - m_bnext(rhs.m_bnext), - m_full(rhs.m_full) - {} -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_MB_FROM_WCHAR_HPP diff --git a/boost/archive/iterators/ostream_iterator.hpp b/boost/archive/iterators/ostream_iterator.hpp deleted file mode 100644 index 80b5d1d4..00000000 --- a/boost/archive/iterators/ostream_iterator.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_OSTREAM_ITERATOR_HPP -#define BOOST_ARCHIVE_ITERATORS_OSTREAM_ITERATOR_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// ostream_iterator.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// note: this is a custom version of the standard ostream_iterator. -// This is necessary as the standard version doesn't work as expected -// for wchar_t based streams on systems for which wchar_t not a true -// type but rather a synonym for some integer type. - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -// given a type, make an input iterator based on a pointer to that type -template -class ostream_iterator : - public boost::iterator_facade< - ostream_iterator, - Elem, - std::output_iterator_tag, - ostream_iterator & - > -{ - friend class boost::iterator_core_access; - typedef ostream_iterator this_t ; - typedef Elem char_type; - typedef std::basic_ostream ostream_type; - - //emulate the behavior of std::ostream - ostream_iterator & dereference() const { - return const_cast(*this); - } - bool equal(const this_t & rhs) const { - return m_ostream == rhs.m_ostream; - } - void increment(){} -protected: - ostream_type *m_ostream; - void put_val(char_type e){ - if(NULL != m_ostream){ - m_ostream->put(e); - if(! m_ostream->good()) - m_ostream = NULL; - } - } -public: - this_t & operator=(char_type c){ - put_val(c); - return *this; - } - ostream_iterator(ostream_type & os) : - m_ostream (& os) - {} - ostream_iterator() : - m_ostream (NULL) - {} - ostream_iterator(const ostream_iterator & rhs) : - m_ostream (rhs.m_ostream) - {} -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_OSTREAM_ITERATOR_HPP diff --git a/boost/archive/iterators/remove_whitespace.hpp b/boost/archive/iterators/remove_whitespace.hpp deleted file mode 100644 index eb756f37..00000000 --- a/boost/archive/iterators/remove_whitespace.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_REMOVE_WHITESPACE_HPP -#define BOOST_ARCHIVE_ITERATORS_REMOVE_WHITESPACE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// remove_whitespace.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include -#include - -// here is the default standard implementation of the functor used -// by the filter iterator to remove spaces. Unfortunately usage -// of this implementation in combination with spirit trips a bug -// VC 6.5. The only way I can find to work around it is to -// implement a special non-standard version for this platform - -#ifndef BOOST_NO_CWCTYPE -#include // iswspace -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ using ::iswspace; } -#endif -#endif - -#include // isspace -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ using ::isspace; } -#endif - -#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -// this is required for the RW STL on Linux and Tru64. -#undef isspace -#undef iswspace -#endif - -namespace { // anonymous - -template -struct remove_whitespace_predicate; - -template<> -struct remove_whitespace_predicate -{ - bool operator()(unsigned char t){ - return ! std::isspace(t); - } -}; - -#ifndef BOOST_NO_CWCHAR -template<> -struct remove_whitespace_predicate -{ - bool operator()(wchar_t t){ - return ! std::iswspace(t); - } -}; -#endif - -} // namespace anonymous - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// convert base64 file data (including whitespace and padding) to binary - -namespace boost { -namespace archive { -namespace iterators { - -// custom version of filter iterator which doesn't look ahead further than -// necessary - -template -class filter_iterator - : public boost::iterator_adaptor< - filter_iterator, - Base, - use_default, - single_pass_traversal_tag - > -{ - friend class boost::iterator_core_access; - typedef typename boost::iterator_adaptor< - filter_iterator, - Base, - use_default, - single_pass_traversal_tag - > super_t; - typedef filter_iterator this_t; - typedef typename super_t::reference reference_type; - - reference_type dereference_impl(){ - if(! m_full){ - while(! m_predicate(* this->base_reference())) - ++(this->base_reference()); - m_full = true; - } - return * this->base_reference(); - } - - reference_type dereference() const { - return const_cast(this)->dereference_impl(); - } - - Predicate m_predicate; - bool m_full; -public: - // note: this function is public only because comeau compiler complained - // I don't know if this is because the compiler is wrong or what - void increment(){ - m_full = false; - ++(this->base_reference()); - } - filter_iterator(Base start) : - super_t(start), - m_full(false) - {} - filter_iterator(){} -}; - -template -class remove_whitespace : - public filter_iterator< - remove_whitespace_predicate< - typename boost::iterator_value::type - //typename Base::value_type - >, - Base - > -{ - friend class boost::iterator_core_access; - typedef filter_iterator< - remove_whitespace_predicate< - typename boost::iterator_value::type - //typename Base::value_type - >, - Base - > super_t; -public: -// remove_whitespace(){} // why is this needed? - // make composible buy using templated constructor - template - remove_whitespace(T start) : - super_t(Base(static_cast< T >(start))) - {} - // intel 7.1 doesn't like default copy constructor - remove_whitespace(const remove_whitespace & rhs) : - super_t(rhs.base_reference()) - {} -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_REMOVE_WHITESPACE_HPP diff --git a/boost/archive/iterators/transform_width.hpp b/boost/archive/iterators/transform_width.hpp deleted file mode 100644 index 162dccfa..00000000 --- a/boost/archive/iterators/transform_width.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_TRANSFORM_WIDTH_HPP -#define BOOST_ARCHIVE_ITERATORS_TRANSFORM_WIDTH_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// transform_width.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// iterator which takes elements of x bits and returns elements of y bits. -// used to change streams of 8 bit characters into streams of 6 bit characters. -// and vice-versa for implementing base64 encodeing/decoding. Be very careful -// when using and end iterator. end is only reliable detected when the input -// stream length is some common multiple of x and y. E.G. Base64 6 bit -// character and 8 bit bytes. Lowest common multiple is 24 => 4 6 bit characters -// or 3 8 bit characters - -#include -#include - -#include // std::min - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// class used by text archives to translate char strings to wchar_t -// strings of the currently selected locale -template< - class Base, - int BitsOut, - int BitsIn, - class CharType = typename boost::iterator_value::type // output character -> -class transform_width : - public boost::iterator_adaptor< - transform_width, - Base, - CharType, - single_pass_traversal_tag, - CharType - > -{ - friend class boost::iterator_core_access; - typedef typename boost::iterator_adaptor< - transform_width, - Base, - CharType, - single_pass_traversal_tag, - CharType - > super_t; - - typedef transform_width this_t; - typedef typename iterator_value::type base_value_type; - - void fill(); - - CharType dereference() const { - if(!m_buffer_out_full) - const_cast(this)->fill(); - return m_buffer_out; - } - - bool equal_impl(const this_t & rhs){ - if(BitsIn < BitsOut) // discard any left over bits - return this->base_reference() == rhs.base_reference(); - else{ - // BitsIn > BitsOut // zero fill - if(this->base_reference() == rhs.base_reference()){ - m_end_of_sequence = true; - return 0 == m_remaining_bits; - } - return false; - } - } - - // standard iterator interface - bool equal(const this_t & rhs) const { - return const_cast(this)->equal_impl(rhs); - } - - void increment(){ - m_buffer_out_full = false; - } - - bool m_buffer_out_full; - CharType m_buffer_out; - - // last read element from input - base_value_type m_buffer_in; - - // number of bits to left in the input buffer. - unsigned int m_remaining_bits; - - // flag to indicate we've reached end of data. - bool m_end_of_sequence; - -public: - // make composible buy using templated constructor - template - transform_width(T start) : - super_t(Base(static_cast< T >(start))), - m_buffer_out_full(false), - m_buffer_out(0), - // To disable GCC warning, but not truly necessary - //(m_buffer_in will be initialized later before being - //used because m_remaining_bits == 0) - m_buffer_in(0), - m_remaining_bits(0), - m_end_of_sequence(false) - {} - // intel 7.1 doesn't like default copy constructor - transform_width(const transform_width & rhs) : - super_t(rhs.base_reference()), - m_buffer_out_full(rhs.m_buffer_out_full), - m_buffer_out(rhs.m_buffer_out), - m_buffer_in(rhs.m_buffer_in), - m_remaining_bits(rhs.m_remaining_bits), - m_end_of_sequence(false) - {} -}; - -template< - class Base, - int BitsOut, - int BitsIn, - class CharType -> -void transform_width::fill() { - unsigned int missing_bits = BitsOut; - m_buffer_out = 0; - do{ - if(0 == m_remaining_bits){ - if(m_end_of_sequence){ - m_buffer_in = 0; - m_remaining_bits = missing_bits; - } - else{ - m_buffer_in = * this->base_reference()++; - m_remaining_bits = BitsIn; - } - } - - // append these bits to the next output - // up to the size of the output - unsigned int i = (std::min)(missing_bits, m_remaining_bits); - // shift interesting bits to least significant position - base_value_type j = m_buffer_in >> (m_remaining_bits - i); - // and mask off the un interesting higher bits - // note presumption of twos complement notation - j &= (1 << i) - 1; - // append then interesting bits to the output value - m_buffer_out <<= i; - m_buffer_out |= j; - - // and update counters - missing_bits -= i; - m_remaining_bits -= i; - }while(0 < missing_bits); - m_buffer_out_full = true; -} - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_TRANSFORM_WIDTH_HPP diff --git a/boost/archive/iterators/unescape.hpp b/boost/archive/iterators/unescape.hpp deleted file mode 100644 index 6753c644..00000000 --- a/boost/archive/iterators/unescape.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_UNESCAPE_HPP -#define BOOST_ARCHIVE_ITERATORS_UNESCAPE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// unescape.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// class used by text archives to translate char strings to wchar_t -// strings of the currently selected locale -template -class unescape - : public boost::iterator_adaptor< - unescape, - Base, - typename pointee::type, - single_pass_traversal_tag, - typename pointee::type - > -{ - friend class boost::iterator_core_access; - typedef typename boost::iterator_adaptor< - unescape, - Base, - typename pointee::type, - single_pass_traversal_tag, - typename pointee::type - > super_t; - - typedef unescape this_t; -public: - typedef typename this_t::value_type value_type; - typedef typename this_t::reference reference; -private: - value_type dereference_impl() { - if(! m_full){ - m_current_value = static_cast(this)->drain(); - m_full = true; - } - return m_current_value; - } - - reference dereference() const { - return const_cast(this)->dereference_impl(); - } - - value_type m_current_value; - bool m_full; - - void increment(){ - ++(this->base_reference()); - dereference_impl(); - m_full = false; - } - -public: - - unescape(Base base) : - super_t(base), - m_full(false) - {} - -}; - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_UNESCAPE_HPP diff --git a/boost/archive/iterators/wchar_from_mb.hpp b/boost/archive/iterators/wchar_from_mb.hpp deleted file mode 100644 index 6067245d..00000000 --- a/boost/archive/iterators/wchar_from_mb.hpp +++ /dev/null @@ -1,196 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP -#define BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// wchar_from_mb.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // size_t -#ifndef BOOST_NO_CWCHAR -#include // mbstate_t -#endif -#include // copy - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::mbstate_t; -} // namespace std -#endif -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// class used by text archives to translate char strings to wchar_t -// strings of the currently selected locale -template -class wchar_from_mb - : public boost::iterator_adaptor< - wchar_from_mb, - Base, - wchar_t, - single_pass_traversal_tag, - wchar_t - > -{ - friend class boost::iterator_core_access; - typedef typename boost::iterator_adaptor< - wchar_from_mb, - Base, - wchar_t, - single_pass_traversal_tag, - wchar_t - > super_t; - - typedef wchar_from_mb this_t; - - void drain(); - - wchar_t dereference() const { - if(m_output.m_next == m_output.m_next_available) - return static_cast(0); - return * m_output.m_next; - } - - void increment(){ - if(m_output.m_next == m_output.m_next_available) - return; - if(++m_output.m_next == m_output.m_next_available){ - if(m_input.m_done) - return; - drain(); - } - } - - bool equal(this_t const & rhs) const { - return dereference() == rhs.dereference(); - } - - boost::archive::detail::utf8_codecvt_facet m_codecvt_facet; - std::mbstate_t m_mbs; - - template - struct sliding_buffer { - boost::array m_buffer; - typename boost::array::const_iterator m_next_available; - typename boost::array::iterator m_next; - bool m_done; - // default ctor - sliding_buffer() : - m_next_available(m_buffer.begin()), - m_next(m_buffer.begin()), - m_done(false) - {} - // copy ctor - sliding_buffer(const sliding_buffer & rhs) : - m_next_available( - std::copy( - rhs.m_buffer.begin(), - rhs.m_next_available, - m_buffer.begin() - ) - ), - m_next( - m_buffer.begin() + (rhs.m_next - rhs.m_buffer.begin()) - ), - m_done(rhs.m_done) - {} - }; - - sliding_buffer::type> m_input; - sliding_buffer::type> m_output; - -public: - // make composible buy using templated constructor - template - wchar_from_mb(T start) : - super_t(Base(static_cast< T >(start))), - m_mbs(std::mbstate_t()) - { - BOOST_ASSERT(std::mbsinit(&m_mbs)); - drain(); - } - // default constructor used as an end iterator - wchar_from_mb(){} - - // copy ctor - wchar_from_mb(const wchar_from_mb & rhs) : - super_t(rhs.base_reference()), - m_mbs(rhs.m_mbs), - m_input(rhs.m_input), - m_output(rhs.m_output) - {} -}; - -template -void wchar_from_mb::drain(){ - BOOST_ASSERT(! m_input.m_done); - for(;;){ - typename boost::iterators::iterator_reference::type c = *(this->base_reference()); - // a null character in a multibyte stream is takes as end of string - if(0 == c){ - m_input.m_done = true; - break; - } - ++(this->base_reference()); - * const_cast::type *>( - (m_input.m_next_available++) - ) = c; - // if input buffer is full - we're done for now - if(m_input.m_buffer.end() == m_input.m_next_available) - break; - } - const typename boost::iterators::iterator_value::type * input_new_start; - typename iterator_value::type * next_available; - - BOOST_ATTRIBUTE_UNUSED // redundant with ignore_unused below but clarifies intention - std::codecvt_base::result r = m_codecvt_facet.in( - m_mbs, - m_input.m_buffer.begin(), - m_input.m_next_available, - input_new_start, - m_output.m_buffer.begin(), - m_output.m_buffer.end(), - next_available - ); - BOOST_ASSERT(std::codecvt_base::ok == r); - m_output.m_next_available = next_available; - m_output.m_next = m_output.m_buffer.begin(); - - // we're done with some of the input so shift left. - m_input.m_next_available = std::copy( - input_new_start, - m_input.m_next_available, - m_input.m_buffer.begin() - ); - m_input.m_next = m_input.m_buffer.begin(); -} - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP diff --git a/boost/archive/iterators/xml_escape.hpp b/boost/archive/iterators/xml_escape.hpp deleted file mode 100644 index c45733ea..00000000 --- a/boost/archive/iterators/xml_escape.hpp +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_XML_ESCAPE_HPP -#define BOOST_ARCHIVE_ITERATORS_XML_ESCAPE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_escape.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// insert escapes into xml text - -template -class xml_escape - : public escape, Base> -{ - friend class boost::iterator_core_access; - - typedef escape, Base> super_t; - -public: - char fill(const char * & bstart, const char * & bend); - wchar_t fill(const wchar_t * & bstart, const wchar_t * & bend); - - template - xml_escape(T start) : - super_t(Base(static_cast< T >(start))) - {} - // intel 7.1 doesn't like default copy constructor - xml_escape(const xml_escape & rhs) : - super_t(rhs.base_reference()) - {} -}; - -template -char xml_escape::fill( - const char * & bstart, - const char * & bend -){ - char current_value = * this->base_reference(); - switch(current_value){ - case '<': - bstart = "<"; - bend = bstart + 4; - break; - case '>': - bstart = ">"; - bend = bstart + 4; - break; - case '&': - bstart = "&"; - bend = bstart + 5; - break; - case '"': - bstart = """; - bend = bstart + 6; - break; - case '\'': - bstart = "'"; - bend = bstart + 6; - break; - default: - return current_value; - } - return *bstart; -} - -template -wchar_t xml_escape::fill( - const wchar_t * & bstart, - const wchar_t * & bend -){ - wchar_t current_value = * this->base_reference(); - switch(current_value){ - case '<': - bstart = L"<"; - bend = bstart + 4; - break; - case '>': - bstart = L">"; - bend = bstart + 4; - break; - case '&': - bstart = L"&"; - bend = bstart + 5; - break; - case '"': - bstart = L"""; - bend = bstart + 6; - break; - case '\'': - bstart = L"'"; - bend = bstart + 6; - break; - default: - return current_value; - } - return *bstart; -} - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_XML_ESCAPE_HPP diff --git a/boost/archive/iterators/xml_unescape.hpp b/boost/archive/iterators/xml_unescape.hpp deleted file mode 100644 index 7fc9fd5f..00000000 --- a/boost/archive/iterators/xml_unescape.hpp +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_XML_UNESCAPE_HPP -#define BOOST_ARCHIVE_ITERATORS_XML_UNESCAPE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_unescape.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#include - -#include -#include - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// replace &??? xml escape sequences with the corresponding characters -template -class xml_unescape - : public unescape, Base> -{ - friend class boost::iterator_core_access; - typedef xml_unescape this_t; - typedef unescape super_t; - typedef typename boost::iterator_reference reference_type; - - reference_type dereference() const { - return unescape, Base>::dereference(); - } -public: - // msvc versions prior to 14.0 crash with and ICE - #if BOOST_WORKAROUND(BOOST_MSVC, < 1900) - typedef int value_type; - #else - typedef typename super_t::value_type value_type; - #endif - - void drain_residue(const char *literal); - value_type drain(); - - template - xml_unescape(T start) : - super_t(Base(static_cast< T >(start))) - {} - // intel 7.1 doesn't like default copy constructor - xml_unescape(const xml_unescape & rhs) : - super_t(rhs.base_reference()) - {} -}; - -template -void xml_unescape::drain_residue(const char * literal){ - do{ - if(* literal != * ++(this->base_reference())) - boost::serialization::throw_exception( - dataflow_exception( - dataflow_exception::invalid_xml_escape_sequence - ) - ); - } - while('\0' != * ++literal); -} - -// note key constraint on this function is that can't "look ahead" any -// more than necessary into base iterator. Doing so would alter the base -// iterator refenence which would make subsequent iterator comparisons -// incorrect and thereby break the composiblity of iterators. -template -typename xml_unescape::value_type -//int -xml_unescape::drain(){ - value_type retval = * this->base_reference(); - if('&' != retval){ - return retval; - } - retval = * ++(this->base_reference()); - switch(retval){ - case 'l': // < - drain_residue("t;"); - retval = '<'; - break; - case 'g': // > - drain_residue("t;"); - retval = '>'; - break; - case 'a': - retval = * ++(this->base_reference()); - switch(retval){ - case 'p': // ' - drain_residue("os;"); - retval = '\''; - break; - case 'm': // & - drain_residue("p;"); - retval = '&'; - break; - } - break; - case 'q': - drain_residue("uot;"); - retval = '"'; - break; - } - return retval; -} - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_XML_UNESCAPE_HPP diff --git a/boost/archive/polymorphic_binary_iarchive.hpp b/boost/archive/polymorphic_binary_iarchive.hpp deleted file mode 100644 index c1af77a3..00000000 --- a/boost/archive/polymorphic_binary_iarchive.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_BINARY_IARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_BINARY_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_binary_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_binary_iarchive : - public detail::polymorphic_iarchive_route -{ -public: - polymorphic_binary_iarchive(std::istream & is, unsigned int flags = 0) : - detail::polymorphic_iarchive_route(is, flags) - {} - ~polymorphic_binary_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_binary_iarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_BINARY_IARCHIVE_HPP diff --git a/boost/archive/polymorphic_binary_oarchive.hpp b/boost/archive/polymorphic_binary_oarchive.hpp deleted file mode 100644 index e9282484..00000000 --- a/boost/archive/polymorphic_binary_oarchive.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_BINARY_OARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_BINARY_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_binary_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_binary_oarchive : - public detail::polymorphic_oarchive_route -{ -public: - polymorphic_binary_oarchive(std::ostream & os, unsigned int flags = 0) : - detail::polymorphic_oarchive_route(os, flags) - {} - ~polymorphic_binary_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_binary_oarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_BINARY_OARCHIVE_HPP diff --git a/boost/archive/polymorphic_iarchive.hpp b/boost/archive/polymorphic_iarchive.hpp deleted file mode 100644 index ade9e5da..00000000 --- a/boost/archive/polymorphic_iarchive.hpp +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_IARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // std::size_t -#include // ULONG_MAX -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include - -#include -#include -#include -#include -#include - -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization -namespace archive { -namespace detail { - class basic_iarchive; - class basic_iserializer; -} - -class polymorphic_iarchive; - -class BOOST_SYMBOL_VISIBLE polymorphic_iarchive_impl : - public detail::interface_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else - friend class detail::interface_iarchive; - friend class load_access; -#endif - // primitive types the only ones permitted by polymorphic archives - virtual void load(bool & t) = 0; - - virtual void load(char & t) = 0; - virtual void load(signed char & t) = 0; - virtual void load(unsigned char & t) = 0; - #ifndef BOOST_NO_CWCHAR - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - virtual void load(wchar_t & t) = 0; - #endif - #endif - virtual void load(short & t) = 0; - virtual void load(unsigned short & t) = 0; - virtual void load(int & t) = 0; - virtual void load(unsigned int & t) = 0; - virtual void load(long & t) = 0; - virtual void load(unsigned long & t) = 0; - - #if defined(BOOST_HAS_LONG_LONG) - virtual void load(boost::long_long_type & t) = 0; - virtual void load(boost::ulong_long_type & t) = 0; - #elif defined(BOOST_HAS_MS_INT64) - virtual void load(__int64 & t) = 0; - virtual void load(unsigned __int64 & t) = 0; - #endif - - virtual void load(float & t) = 0; - virtual void load(double & t) = 0; - - // string types are treated as primitives - virtual void load(std::string & t) = 0; - #ifndef BOOST_NO_STD_WSTRING - virtual void load(std::wstring & t) = 0; - #endif - - // used for xml and other tagged formats - virtual void load_start(const char * name) = 0; - virtual void load_end(const char * name) = 0; - virtual void register_basic_serializer(const detail::basic_iserializer & bis) = 0; - virtual detail::helper_collection & get_helper_collection() = 0; - - // msvc and borland won't automatically pass these to the base class so - // make it explicit here - template - void load_override(T & t) - { - archive::load(* this->This(), t); - } - // special treatment for name-value pairs. - template - void load_override( - const boost::serialization::nvp< T > & t - ){ - load_start(t.name()); - archive::load(* this->This(), t.value()); - load_end(t.name()); - } -protected: - virtual ~polymorphic_iarchive_impl() {} -public: - // utility function implemented by all legal archives - virtual void set_library_version( - boost::serialization::library_version_type archive_library_version - ) = 0; - virtual boost::serialization::library_version_type get_library_version() const = 0; - virtual unsigned int get_flags() const = 0; - virtual void delete_created_pointers() = 0; - virtual void reset_object_address( - const void * new_address, - const void * old_address - ) = 0; - - virtual void load_binary(void * t, std::size_t size) = 0; - - // these are used by the serialization library implementation. - virtual void load_object( - void *t, - const detail::basic_iserializer & bis - ) = 0; - virtual const detail::basic_pointer_iserializer * load_pointer( - void * & t, - const detail::basic_pointer_iserializer * bpis_ptr, - const detail::basic_pointer_iserializer * (*finder)( - const boost::serialization::extended_type_info & type - ) - ) = 0; -}; - -} // namespace archive -} // namespace boost - -#include // pops abi_suffix.hpp pragmas - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_iarchive : - public polymorphic_iarchive_impl -{ -public: - ~polymorphic_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::polymorphic_iarchive) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_IARCHIVE_HPP diff --git a/boost/archive/polymorphic_oarchive.hpp b/boost/archive/polymorphic_oarchive.hpp deleted file mode 100644 index c8146105..00000000 --- a/boost/archive/polymorphic_oarchive.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_OARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // size_t -#include // ULONG_MAX -#include - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include -#include - -#include -#include // must be the last header - -namespace boost { -namespace serialization { - class extended_type_info; -} // namespace serialization -namespace archive { -namespace detail { - class basic_oarchive; - class basic_oserializer; -} - -class polymorphic_oarchive; - -class BOOST_SYMBOL_VISIBLE polymorphic_oarchive_impl : - public detail::interface_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else - friend class detail::interface_oarchive; - friend class save_access; -#endif - // primitive types the only ones permitted by polymorphic archives - virtual void save(const bool t) = 0; - - virtual void save(const char t) = 0; - virtual void save(const signed char t) = 0; - virtual void save(const unsigned char t) = 0; - #ifndef BOOST_NO_CWCHAR - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - virtual void save(const wchar_t t) = 0; - #endif - #endif - virtual void save(const short t) = 0; - virtual void save(const unsigned short t) = 0; - virtual void save(const int t) = 0; - virtual void save(const unsigned int t) = 0; - virtual void save(const long t) = 0; - virtual void save(const unsigned long t) = 0; - - #if defined(BOOST_HAS_LONG_LONG) - virtual void save(const boost::long_long_type t) = 0; - virtual void save(const boost::ulong_long_type t) = 0; - #elif defined(BOOST_HAS_MS_INT64) - virtual void save(const __int64 t) = 0; - virtual void save(const unsigned __int64 t) = 0; - #endif - - virtual void save(const float t) = 0; - virtual void save(const double t) = 0; - - // string types are treated as primitives - virtual void save(const std::string & t) = 0; - #ifndef BOOST_NO_STD_WSTRING - virtual void save(const std::wstring & t) = 0; - #endif - - virtual void save_null_pointer() = 0; - // used for xml and other tagged formats - virtual void save_start(const char * name) = 0; - virtual void save_end(const char * name) = 0; - virtual void register_basic_serializer(const detail::basic_oserializer & bos) = 0; - virtual detail::helper_collection & get_helper_collection() = 0; - - virtual void end_preamble() = 0; - - // msvc and borland won't automatically pass these to the base class so - // make it explicit here - template - void save_override(T & t) - { - archive::save(* this->This(), t); - } - // special treatment for name-value pairs. - template - void save_override( - const ::boost::serialization::nvp< T > & t - ){ - save_start(t.name()); - archive::save(* this->This(), t.const_value()); - save_end(t.name()); - } -protected: - virtual ~polymorphic_oarchive_impl() {} -public: - // utility functions implemented by all legal archives - virtual unsigned int get_flags() const = 0; - virtual boost::serialization::library_version_type get_library_version() const = 0; - virtual void save_binary(const void * t, std::size_t size) = 0; - - virtual void save_object( - const void *x, - const detail::basic_oserializer & bos - ) = 0; - virtual void save_pointer( - const void * t, - const detail::basic_pointer_oserializer * bpos_ptr - ) = 0; -}; - -// note: preserve naming symmetry -class BOOST_SYMBOL_VISIBLE polymorphic_oarchive : - public polymorphic_oarchive_impl -{ -public: - ~polymorphic_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::polymorphic_oarchive) - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_POLYMORPHIC_OARCHIVE_HPP diff --git a/boost/archive/polymorphic_text_iarchive.hpp b/boost/archive/polymorphic_text_iarchive.hpp deleted file mode 100644 index 790d8def..00000000 --- a/boost/archive/polymorphic_text_iarchive.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_TEXT_IARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_TEXT_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_text_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_text_iarchive : - public detail::polymorphic_iarchive_route -{ -public: - polymorphic_text_iarchive(std::istream & is, unsigned int flags = 0) : - detail::polymorphic_iarchive_route(is, flags) - {} - ~polymorphic_text_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_text_iarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_TEXT_IARCHIVE_HPP diff --git a/boost/archive/polymorphic_text_oarchive.hpp b/boost/archive/polymorphic_text_oarchive.hpp deleted file mode 100644 index 82b3ed78..00000000 --- a/boost/archive/polymorphic_text_oarchive.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_TEXT_OARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_TEXT_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_text_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_text_oarchive : - public detail::polymorphic_oarchive_route -{ -public: - polymorphic_text_oarchive(std::ostream & os, unsigned int flags = 0) : - detail::polymorphic_oarchive_route(os, flags) - {} - ~polymorphic_text_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_text_oarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_TEXT_OARCHIVE_HPP diff --git a/boost/archive/polymorphic_text_wiarchive.hpp b/boost/archive/polymorphic_text_wiarchive.hpp deleted file mode 100644 index b32d5334..00000000 --- a/boost/archive/polymorphic_text_wiarchive.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_TEXT_WIARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_TEXT_WIARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_text_wiarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_text_wiarchive : - public detail::polymorphic_iarchive_route -{ -public: - polymorphic_text_wiarchive(std::wistream & is, unsigned int flags = 0) : - detail::polymorphic_iarchive_route(is, flags) - {} - ~polymorphic_text_wiarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_text_wiarchive -) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_POLYMORPHIC_TEXT_WIARCHIVE_HPP diff --git a/boost/archive/polymorphic_text_woarchive.hpp b/boost/archive/polymorphic_text_woarchive.hpp deleted file mode 100644 index 4e0f5ea4..00000000 --- a/boost/archive/polymorphic_text_woarchive.hpp +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_TEXT_WOARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_TEXT_WOARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_text_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_text_woarchive : - public detail::polymorphic_oarchive_route -{ -public: - polymorphic_text_woarchive(std::wostream & os, unsigned int flags = 0) : - detail::polymorphic_oarchive_route(os, flags) - {} - ~polymorphic_text_woarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_text_woarchive -) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_POLYMORPHIC_TEXT_WOARCHIVE_HPP diff --git a/boost/archive/polymorphic_xml_iarchive.hpp b/boost/archive/polymorphic_xml_iarchive.hpp deleted file mode 100644 index f8ddaf96..00000000 --- a/boost/archive/polymorphic_xml_iarchive.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_XML_IARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_XML_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_xml_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_xml_iarchive : - public detail::polymorphic_iarchive_route -{ -public: - polymorphic_xml_iarchive(std::istream & is, unsigned int flags = 0) : - detail::polymorphic_iarchive_route(is, flags) - {} - ~polymorphic_xml_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_xml_iarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_XML_IARCHIVE_HPP diff --git a/boost/archive/polymorphic_xml_oarchive.hpp b/boost/archive/polymorphic_xml_oarchive.hpp deleted file mode 100644 index 08324e50..00000000 --- a/boost/archive/polymorphic_xml_oarchive.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_XML_OARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_XML_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_xml_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_xml_oarchive : - public detail::polymorphic_oarchive_route -{ -public: - polymorphic_xml_oarchive(std::ostream & os, unsigned int flags = 0) : - detail::polymorphic_oarchive_route(os, flags) - {} - ~polymorphic_xml_oarchive() BOOST_OVERRIDE {} -}; -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_xml_oarchive -) - -#endif // BOOST_ARCHIVE_POLYMORPHIC_XML_OARCHIVE_HPP diff --git a/boost/archive/polymorphic_xml_wiarchive.hpp b/boost/archive/polymorphic_xml_wiarchive.hpp deleted file mode 100644 index 5b325329..00000000 --- a/boost/archive/polymorphic_xml_wiarchive.hpp +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_XML_WIARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_XML_WIARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_xml_wiarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_xml_wiarchive : - public detail::polymorphic_iarchive_route -{ -public: - polymorphic_xml_wiarchive(std::wistream & is, unsigned int flags = 0) : - detail::polymorphic_iarchive_route(is, flags) - {} - ~polymorphic_xml_wiarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_xml_wiarchive -) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_POLYMORPHIC_XML_WIARCHIVE_HPP diff --git a/boost/archive/polymorphic_xml_woarchive.hpp b/boost/archive/polymorphic_xml_woarchive.hpp deleted file mode 100644 index f7a3349f..00000000 --- a/boost/archive/polymorphic_xml_woarchive.hpp +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef BOOST_ARCHIVE_POLYMORPHIC_XML_WOARCHIVE_HPP -#define BOOST_ARCHIVE_POLYMORPHIC_XML_WOARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// polymorphic_xml_woarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE polymorphic_xml_woarchive : - public detail::polymorphic_oarchive_route -{ -public: - polymorphic_xml_woarchive(std::wostream & os, unsigned int flags = 0) : - detail::polymorphic_oarchive_route(os, flags) - {} - ~polymorphic_xml_woarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE( - boost::archive::polymorphic_xml_woarchive -) - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_POLYMORPHIC_XML_WOARCHIVE_HPP diff --git a/boost/archive/text_iarchive.hpp b/boost/archive/text_iarchive.hpp deleted file mode 100644 index 73fc39f5..00000000 --- a/boost/archive/text_iarchive.hpp +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef BOOST_ARCHIVE_TEXT_IARCHIVE_HPP -#define BOOST_ARCHIVE_TEXT_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE text_iarchive_impl : - public basic_text_iprimitive, - public basic_text_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_iarchive; - friend class load_access; -#endif - template - void load(T & t){ - basic_text_iprimitive::load(t); - } - void load(version_type & t){ - unsigned int v; - load(v); - t = version_type(v); - } - void load(boost::serialization::item_version_type & t){ - unsigned int v; - load(v); - t = boost::serialization::item_version_type(v); - } - BOOST_ARCHIVE_DECL void - load(char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_ARCHIVE_DECL void - load(wchar_t * t); - #endif - BOOST_ARCHIVE_DECL void - load(std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_DECL void - load(std::wstring &ws); - #endif - template - void load_override(T & t){ - basic_text_iarchive::load_override(t); - } - BOOST_ARCHIVE_DECL void - load_override(class_name_type & t); - BOOST_ARCHIVE_DECL void - init(); - BOOST_ARCHIVE_DECL - text_iarchive_impl(std::istream & is, unsigned int flags); - // don't import inline definitions! leave this as a reminder. - //BOOST_ARCHIVE_DECL - ~text_iarchive_impl() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE text_iarchive : - public text_iarchive_impl{ -public: - text_iarchive(std::istream & is_, unsigned int flags = 0) : - // note: added _ to suppress useless gcc warning - text_iarchive_impl(is_, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~text_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_iarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_TEXT_IARCHIVE_HPP diff --git a/boost/archive/text_oarchive.hpp b/boost/archive/text_oarchive.hpp deleted file mode 100644 index f94f876d..00000000 --- a/boost/archive/text_oarchive.hpp +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef BOOST_ARCHIVE_TEXT_OARCHIVE_HPP -#define BOOST_ARCHIVE_TEXT_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include // std::size_t - -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE text_oarchive_impl : - /* protected ? */ public basic_text_oprimitive, - public basic_text_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_oarchive; - friend class basic_text_oarchive; - friend class save_access; -#endif - template - void save(const T & t){ - this->newtoken(); - basic_text_oprimitive::save(t); - } - void save(const version_type & t){ - save(static_cast(t)); - } - void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); - } - BOOST_ARCHIVE_DECL void - save(const char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_ARCHIVE_DECL void - save(const wchar_t * t); - #endif - BOOST_ARCHIVE_DECL void - save(const std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_DECL void - save(const std::wstring &ws); - #endif - BOOST_ARCHIVE_DECL - text_oarchive_impl(std::ostream & os, unsigned int flags); - // don't import inline definitions! leave this as a reminder. - //BOOST_ARCHIVE_DECL - ~text_oarchive_impl() BOOST_OVERRIDE {} -public: - BOOST_ARCHIVE_DECL void - save_binary(const void *address, std::size_t count); -}; - -// do not derive from this class. If you want to extend this functionality -// via inheritance, derived from text_oarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE text_oarchive : - public text_oarchive_impl -{ -public: - text_oarchive(std::ostream & os_, unsigned int flags = 0) : - // note: added _ to suppress useless gcc warning - text_oarchive_impl(os_, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~text_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_oarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_ARCHIVE_TEXT_OARCHIVE_HPP diff --git a/boost/archive/text_wiarchive.hpp b/boost/archive/text_wiarchive.hpp deleted file mode 100644 index 5daf52f5..00000000 --- a/boost/archive/text_wiarchive.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef BOOST_ARCHIVE_TEXT_WIARCHIVE_HPP -#define BOOST_ARCHIVE_TEXT_WIARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_wiarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include - -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE text_wiarchive_impl : - public basic_text_iprimitive, - public basic_text_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_iarchive; - friend load_access; - #else - friend class detail::interface_iarchive; - friend class load_access; - #endif -#endif - template - void load(T & t){ - basic_text_iprimitive::load(t); - } - void load(version_type & t){ - unsigned int v; - load(v); - t = version_type(v); - } - void load(boost::serialization::item_version_type & t){ - unsigned int v; - load(v); - t = boost::serialization::item_version_type(v); - } - BOOST_WARCHIVE_DECL void - load(char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_WARCHIVE_DECL void - load(wchar_t * t); - #endif - BOOST_WARCHIVE_DECL void - load(std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_WARCHIVE_DECL void - load(std::wstring &ws); - #endif - template - void load_override(T & t){ - basic_text_iarchive::load_override(t); - } - BOOST_WARCHIVE_DECL - text_wiarchive_impl(std::wistream & is, unsigned int flags); - ~text_wiarchive_impl() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE text_wiarchive : - public text_wiarchive_impl{ -public: - text_wiarchive(std::wistream & is, unsigned int flags = 0) : - text_wiarchive_impl(is, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~text_wiarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_wiarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_TEXT_WIARCHIVE_HPP diff --git a/boost/archive/text_woarchive.hpp b/boost/archive/text_woarchive.hpp deleted file mode 100644 index 713d89fc..00000000 --- a/boost/archive/text_woarchive.hpp +++ /dev/null @@ -1,155 +0,0 @@ -#ifndef BOOST_ARCHIVE_TEXT_WOARCHIVE_HPP -#define BOOST_ARCHIVE_TEXT_WOARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// text_woarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include -#include // size_t - -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE text_woarchive_impl : - public basic_text_oprimitive, - public basic_text_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - #if BOOST_WORKAROUND(BOOST_MSVC, < 1500) - // for some inexplicable reason insertion of "class" generates compile erro - // on msvc 7.1 - friend detail::interface_oarchive; - friend basic_text_oarchive; - friend save_access; - #else - friend class detail::interface_oarchive; - friend class basic_text_oarchive; - friend class save_access; - #endif -#endif - template - void save(const T & t){ - this->newtoken(); - basic_text_oprimitive::save(t); - } - void save(const version_type & t){ - save(static_cast(t)); - } - void save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); - } - BOOST_WARCHIVE_DECL void - save(const char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_WARCHIVE_DECL void - save(const wchar_t * t); - #endif - BOOST_WARCHIVE_DECL void - save(const std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_WARCHIVE_DECL void - save(const std::wstring &ws); - #endif - text_woarchive_impl(std::wostream & os, unsigned int flags) : - basic_text_oprimitive( - os, - 0 != (flags & no_codecvt) - ), - basic_text_oarchive(flags) - {} -public: - void save_binary(const void *address, std::size_t count){ - put(static_cast('\n')); - this->end_preamble(); - #if ! defined(__MWERKS__) - this->basic_text_oprimitive::save_binary( - #else - this->basic_text_oprimitive::save_binary( - #endif - address, - count - ); - put(static_cast('\n')); - this->delimiter = this->none; - } - -}; - -// we use the following because we can't use -// typedef text_oarchive_impl > text_oarchive; - -// do not derive from this class. If you want to extend this functionality -// via inheritance, derived from text_oarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE text_woarchive : - public text_woarchive_impl -{ -public: - text_woarchive(std::wostream & os, unsigned int flags = 0) : - text_woarchive_impl(os, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~text_woarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_woarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_TEXT_WOARCHIVE_HPP diff --git a/boost/archive/wcslen.hpp b/boost/archive/wcslen.hpp deleted file mode 100644 index 6138c3e4..00000000 --- a/boost/archive/wcslen.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef BOOST_ARCHIVE_WCSLEN_HPP -#define BOOST_ARCHIVE_WCSLEN_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// wcslen.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include // size_t -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#ifndef BOOST_NO_CWCHAR - -// a couple of libraries which include wchar_t don't include -// wcslen - -#if defined(BOOST_DINKUMWARE_STDLIB) && BOOST_DINKUMWARE_STDLIB < 306 \ -|| defined(__LIBCOMO__) - -namespace std { -inline std::size_t wcslen(const wchar_t * ws) -{ - const wchar_t * eows = ws; - while(* eows != 0) - ++eows; - return eows - ws; -} -} // namespace std - -#else - -#ifndef BOOST_NO_CWCHAR -#include -#endif -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std{ using ::wcslen; } -#endif - -#endif // wcslen - -#endif //BOOST_NO_CWCHAR - -#endif //BOOST_ARCHIVE_WCSLEN_HPP diff --git a/boost/archive/xml_archive_exception.hpp b/boost/archive/xml_archive_exception.hpp deleted file mode 100644 index 1852d428..00000000 --- a/boost/archive/xml_archive_exception.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef BOOST_ARCHIVE_XML_ARCHIVE_EXCEPTION_HPP -#define BOOST_ARCHIVE_XML_ARCHIVE_EXCEPTION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_archive_exception.hpp: - -// (C) Copyright 2007 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#include - -#include -#include -#include - -#include // must be the last header - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// exceptions thrown by xml archives -// -class BOOST_SYMBOL_VISIBLE xml_archive_exception : - public virtual boost::archive::archive_exception -{ -public: - typedef enum { - xml_archive_parsing_error, // see save_register - xml_archive_tag_mismatch, - xml_archive_tag_name_error - } exception_code; - BOOST_ARCHIVE_DECL xml_archive_exception( - exception_code c, - const char * e1 = NULL, - const char * e2 = NULL - ); - BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &); - BOOST_ARCHIVE_DECL ~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE; -}; - -}// namespace archive -}// namespace boost - -#include // pops abi_suffix.hpp pragmas - -#endif //BOOST_XML_ARCHIVE_ARCHIVE_EXCEPTION_HPP diff --git a/boost/archive/xml_iarchive.hpp b/boost/archive/xml_iarchive.hpp deleted file mode 100644 index 2d04edcb..00000000 --- a/boost/archive/xml_iarchive.hpp +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef BOOST_ARCHIVE_XML_IARCHIVE_HPP -#define BOOST_ARCHIVE_XML_IARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_iarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -template -class basic_xml_grammar; -typedef basic_xml_grammar xml_grammar; - -template -class BOOST_SYMBOL_VISIBLE xml_iarchive_impl : - public basic_text_iprimitive, - public basic_xml_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_iarchive; - friend class basic_xml_iarchive; - friend class load_access; -#endif - // use boost:scoped_ptr to implement automatic deletion; - boost::scoped_ptr gimpl; - - std::istream & get_is(){ - return is; - } - template - void load(T & t){ - basic_text_iprimitive::load(t); - } - void - load(version_type & t){ - unsigned int v; - load(v); - t = version_type(v); - } - void - load(boost::serialization::item_version_type & t){ - unsigned int v; - load(v); - t = boost::serialization::item_version_type(v); - } - BOOST_ARCHIVE_DECL void - load(char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_ARCHIVE_DECL void - load(wchar_t * t); - #endif - BOOST_ARCHIVE_DECL void - load(std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_DECL void - load(std::wstring &ws); - #endif - template - void load_override(T & t){ - basic_xml_iarchive::load_override(t); - } - BOOST_ARCHIVE_DECL void - load_override(class_name_type & t); - BOOST_ARCHIVE_DECL void - init(); - BOOST_ARCHIVE_DECL - xml_iarchive_impl(std::istream & is, unsigned int flags); - BOOST_ARCHIVE_DECL - ~xml_iarchive_impl() BOOST_OVERRIDE; -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE xml_iarchive : - public xml_iarchive_impl{ -public: - xml_iarchive(std::istream & is, unsigned int flags = 0) : - xml_iarchive_impl(is, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~xml_iarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_iarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_XML_IARCHIVE_HPP diff --git a/boost/archive/xml_oarchive.hpp b/boost/archive/xml_oarchive.hpp deleted file mode 100644 index 84871b2d..00000000 --- a/boost/archive/xml_oarchive.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef BOOST_ARCHIVE_XML_OARCHIVE_HPP -#define BOOST_ARCHIVE_XML_OARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_oarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include - -#include // size_t -#include -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE xml_oarchive_impl : - public basic_text_oprimitive, - public basic_xml_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_oarchive; - friend class basic_xml_oarchive; - friend class save_access; -#endif - template - void save(const T & t){ - basic_text_oprimitive::save(t); - } - void - save(const version_type & t){ - save(static_cast(t)); - } - void - save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); - } - BOOST_ARCHIVE_DECL void - save(const char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_ARCHIVE_DECL void - save(const wchar_t * t); - #endif - BOOST_ARCHIVE_DECL void - save(const std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_ARCHIVE_DECL void - save(const std::wstring &ws); - #endif - BOOST_ARCHIVE_DECL - xml_oarchive_impl(std::ostream & os, unsigned int flags); - BOOST_ARCHIVE_DECL - ~xml_oarchive_impl() BOOST_OVERRIDE; -public: - BOOST_ARCHIVE_DECL - void save_binary(const void *address, std::size_t count); -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -// we use the following because we can't use -// typedef xml_oarchive_impl > xml_oarchive; - -// do not derive from this class. If you want to extend this functionality -// via inheritance, derived from xml_oarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE xml_oarchive : - public xml_oarchive_impl -{ -public: - xml_oarchive(std::ostream & os, unsigned int flags = 0) : - xml_oarchive_impl(os, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~xml_oarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_oarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_ARCHIVE_XML_OARCHIVE_HPP diff --git a/boost/archive/xml_wiarchive.hpp b/boost/archive/xml_wiarchive.hpp deleted file mode 100644 index e496621c..00000000 --- a/boost/archive/xml_wiarchive.hpp +++ /dev/null @@ -1,152 +0,0 @@ -#ifndef BOOST_ARCHIVE_XML_WIARCHIVE_HPP -#define BOOST_ARCHIVE_XML_WIARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_wiarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else - -#include - -#include -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_iarchive; -} // namespace detail - -template -class basic_xml_grammar; -typedef basic_xml_grammar xml_wgrammar; - -template -class BOOST_SYMBOL_VISIBLE xml_wiarchive_impl : - public basic_text_iprimitive, - public basic_xml_iarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_iarchive; - friend class basic_xml_iarchive; - friend class load_access; -#endif - std::locale archive_locale; - boost::scoped_ptr gimpl; - std::wistream & get_is(){ - return is; - } - template - void - load(T & t){ - basic_text_iprimitive::load(t); - } - void - load(version_type & t){ - unsigned int v; - load(v); - t = version_type(v); - } - void - load(boost::serialization::item_version_type & t){ - unsigned int v; - load(v); - t = boost::serialization::item_version_type(v); - } - BOOST_WARCHIVE_DECL void - load(char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_WARCHIVE_DECL void - load(wchar_t * t); - #endif - BOOST_WARCHIVE_DECL void - load(std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_WARCHIVE_DECL void - load(std::wstring &ws); - #endif - template - void load_override(T & t){ - basic_xml_iarchive::load_override(t); - } - BOOST_WARCHIVE_DECL void - load_override(class_name_type & t); - BOOST_WARCHIVE_DECL void - init(); - BOOST_WARCHIVE_DECL - xml_wiarchive_impl(std::wistream & is, unsigned int flags); - BOOST_WARCHIVE_DECL - ~xml_wiarchive_impl() BOOST_OVERRIDE; -}; - -} // namespace archive -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -class BOOST_SYMBOL_VISIBLE xml_wiarchive : - public xml_wiarchive_impl{ -public: - xml_wiarchive(std::wistream & is, unsigned int flags = 0) : - xml_wiarchive_impl(is, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~xml_wiarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_wiarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_XML_WIARCHIVE_HPP diff --git a/boost/archive/xml_woarchive.hpp b/boost/archive/xml_woarchive.hpp deleted file mode 100644 index 9f4a4c8e..00000000 --- a/boost/archive/xml_woarchive.hpp +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef BOOST_ARCHIVE_XML_WOARCHIVE_HPP -#define BOOST_ARCHIVE_XML_WOARCHIVE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// xml_woarchive.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include -#ifdef BOOST_NO_STD_WSTREAMBUF -#error "wide char i/o not supported on this platform" -#else -#include // size_t -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::size_t; -} // namespace std -#endif - -#include - -#include -#include -#include -#include -#include - -#include // must be the last header - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable : 4511 4512) -#endif - -namespace boost { -namespace archive { - -namespace detail { - template class interface_oarchive; -} // namespace detail - -template -class BOOST_SYMBOL_VISIBLE xml_woarchive_impl : - public basic_text_oprimitive, - public basic_xml_oarchive -{ -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -protected: - friend class detail::interface_oarchive; - friend class basic_xml_oarchive; - friend class save_access; -#endif - //void end_preamble(){ - // basic_xml_oarchive::end_preamble(); - //} - template - void - save(const T & t){ - basic_text_oprimitive::save(t); - } - void - save(const version_type & t){ - save(static_cast(t)); - } - void - save(const boost::serialization::item_version_type & t){ - save(static_cast(t)); - } - BOOST_WARCHIVE_DECL void - save(const char * t); - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - BOOST_WARCHIVE_DECL void - save(const wchar_t * t); - #endif - BOOST_WARCHIVE_DECL void - save(const std::string &s); - #ifndef BOOST_NO_STD_WSTRING - BOOST_WARCHIVE_DECL void - save(const std::wstring &ws); - #endif - BOOST_WARCHIVE_DECL - xml_woarchive_impl(std::wostream & os, unsigned int flags); - BOOST_WARCHIVE_DECL - ~xml_woarchive_impl() BOOST_OVERRIDE; -public: - BOOST_WARCHIVE_DECL void - save_binary(const void *address, std::size_t count); - -}; - -// we use the following because we can't use -// typedef xml_woarchive_impl > xml_woarchive; - -// do not derive from this class. If you want to extend this functionality -// via inheritance, derived from xml_woarchive_impl instead. This will -// preserve correct static polymorphism. -class BOOST_SYMBOL_VISIBLE xml_woarchive : - public xml_woarchive_impl -{ -public: - xml_woarchive(std::wostream & os, unsigned int flags = 0) : - xml_woarchive_impl(os, flags) - { - if(0 == (flags & no_header)) - init(); - } - ~xml_woarchive() BOOST_OVERRIDE {} -}; - -} // namespace archive -} // namespace boost - -// required by export -BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_woarchive) - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#include // pops abi_suffix.hpp pragmas - -#endif // BOOST_NO_STD_WSTREAMBUF -#endif // BOOST_ARCHIVE_XML_OARCHIVE_HPP diff --git a/boost/array.hpp b/boost/array.hpp index f047063d..02bd76db 100644 --- a/boost/array.hpp +++ b/boost/array.hpp @@ -33,18 +33,18 @@ #include -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -# pragma warning(push) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +# pragma warning(push) # pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe -# pragma warning(disable:4510) // boost::array' : default constructor could not be generated -# pragma warning(disable:4610) // warning C4610: class 'boost::array' can never be instantiated - user defined constructor required +# pragma warning(disable:4510) // boost::array' : default constructor could not be generated +# pragma warning(disable:4610) // warning C4610: class 'boost::array' can never be instantiated - user defined constructor required #endif #include #include #include #include -#include +#include #include #include @@ -75,7 +75,7 @@ namespace boost { iterator begin() { return elems; } const_iterator begin() const { return elems; } const_iterator cbegin() const { return elems; } - + iterator end() { return elems+N; } const_iterator end() const { return elems+N; } const_iterator cend() const { return elems+N; } @@ -84,9 +84,9 @@ namespace boost { #if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; -#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - typedef std::reverse_iterator reverse_iterator; +#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) + typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; #else @@ -112,39 +112,39 @@ namespace boost { } // operator[] - reference operator[](size_type i) - { - return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i]; + reference operator[](size_type i) + { + return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i]; } - - /*BOOST_CONSTEXPR*/ const_reference operator[](size_type i) const - { - return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i]; + + /*BOOST_CONSTEXPR*/ const_reference operator[](size_type i) const + { + return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i]; } // at() with range check reference at(size_type i) { return rangecheck(i), elems[i]; } /*BOOST_CONSTEXPR*/ const_reference at(size_type i) const { return rangecheck(i), elems[i]; } - + // front() and back() - reference front() - { - return elems[0]; - } - - BOOST_CONSTEXPR const_reference front() const + reference front() { return elems[0]; } - - reference back() - { - return elems[N-1]; + + BOOST_CONSTEXPR const_reference front() const + { + return elems[0]; } - - BOOST_CONSTEXPR const_reference back() const - { - return elems[N-1]; + + reference back() + { + return elems[N-1]; + } + + BOOST_CONSTEXPR const_reference back() const + { + return elems[N-1]; } // size is constant @@ -156,7 +156,7 @@ namespace boost { // swap (note: linear complexity) void swap (array& y) { for (size_type i = 0; i < N; ++i) - boost::swap(elems[i],y.elems[i]); + boost::core::invoke_swap(elems[i],y.elems[i]); } // direct access to data (read-only) @@ -213,9 +213,9 @@ namespace boost { #if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; -#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - typedef std::reverse_iterator reverse_iterator; +#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) + typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; #else @@ -301,7 +301,7 @@ namespace boost { // assign one value to all elements void assign (const T& value) { fill ( value ); } void fill (const T& ) {} - + // check range (may be private because it is static) static reference failed_rangecheck () { std::out_of_range e("attempt to access element of an empty array"); @@ -353,16 +353,16 @@ namespace boost { #if defined(__SUNPRO_CC) // Trac ticket #4757; the Sun Solaris compiler can't handle // syntax like 'T(&get_c_array(boost::array& arg))[N]' -// -// We can't just use this for all compilers, because the -// borland compilers can't handle this form. +// +// We can't just use this for all compilers, because the +// borland compilers can't handle this form. namespace detail { template struct c_array { typedef T type[N]; }; } - + // Specific for boost::array: simply returns its elems data member. template typename detail::c_array::type& get_c_array(boost::array& arg) @@ -383,7 +383,7 @@ namespace boost { { return arg.elems; } - + // Const version. template const T(&get_c_array(const boost::array& arg))[N] @@ -391,7 +391,7 @@ namespace boost { return arg.elems; } #endif - + #if 0 // Overload for std::array, assuming that std::array will have // explicit conversion functions as discussed at the WG21 meeting @@ -401,7 +401,7 @@ namespace boost { { return static_cast(arg); } - + // Const version. template const T(&get_c_array(const std::array& arg))[N] @@ -423,7 +423,7 @@ namespace boost { BOOST_STATIC_ASSERT_MSG ( Idx < N, "boost::get<>(boost::array &) index out of range" ); return arr[Idx]; } - + template const T &get(const boost::array &arr) BOOST_NOEXCEPT { BOOST_STATIC_ASSERT_MSG ( Idx < N, "boost::get<>(const boost::array &) index out of range" ); @@ -440,7 +440,7 @@ namespace std { BOOST_STATIC_ASSERT_MSG ( Idx < N, "std::get<>(boost::array &) index out of range" ); return arr[Idx]; } - + template const T &get(const boost::array &arr) BOOST_NOEXCEPT { BOOST_STATIC_ASSERT_MSG ( Idx < N, "std::get<>(const boost::array &) index out of range" ); @@ -449,8 +449,8 @@ namespace std { } #endif -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -# pragma warning(pop) -#endif +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +# pragma warning(pop) +#endif #endif /*BOOST_ARRAY_HPP*/ diff --git a/boost/asio.hpp b/boost/asio.hpp index 1d78a758..7b889de4 100644 --- a/boost/asio.hpp +++ b/boost/asio.hpp @@ -82,30 +82,15 @@ #include #include #include -#include -#include -#include #include #include -#include #include #include #include #include -#include #include #include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include #include #include #include @@ -114,9 +99,7 @@ #include #include #include -#include #include -#include #include #include #include diff --git a/boost/asio/any_completion_executor.hpp b/boost/asio/any_completion_executor.hpp index a006bbc9..319fab23 100644 --- a/boost/asio/any_completion_executor.hpp +++ b/boost/asio/any_completion_executor.hpp @@ -76,20 +76,18 @@ public: #endif // !defined(GENERATING_DOCUMENTATION) /// Default constructor. - BOOST_ASIO_DECL any_completion_executor() BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL any_completion_executor() noexcept; /// Construct in an empty state. Equivalent effects to default constructor. - BOOST_ASIO_DECL any_completion_executor(nullptr_t) BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL any_completion_executor(nullptr_t) noexcept; /// Copy constructor. BOOST_ASIO_DECL any_completion_executor( - const any_completion_executor& e) BOOST_ASIO_NOEXCEPT; + const any_completion_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move constructor. BOOST_ASIO_DECL any_completion_executor( - any_completion_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + any_completion_executor&& e) noexcept; /// Construct to point to the same target as another any_executor. #if defined(GENERATING_DOCUMENTATION) @@ -99,7 +97,7 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_completion_executor(OtherAnyExecutor e, - typename constraint< + constraint_t< conditional< !is_same::value && is_base_of, false_type >::type::value - >::type = 0) - : base_type(BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + > = 0) + : base_type(static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) @@ -123,7 +121,7 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_completion_executor(std::nothrow_t, OtherAnyExecutor e, - typename constraint< + constraint_t< conditional< !is_same::value && is_base_of, false_type >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT - : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) /// Construct to point to the same target as another any_executor. BOOST_ASIO_DECL any_completion_executor(std::nothrow_t, - const any_completion_executor& e) BOOST_ASIO_NOEXCEPT; + const any_completion_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Construct to point to the same target as another any_executor. BOOST_ASIO_DECL any_completion_executor(std::nothrow_t, - any_completion_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + any_completion_executor&& e) noexcept; /// Construct a polymorphic wrapper for the specified executor. #if defined(GENERATING_DOCUMENTATION) @@ -156,7 +152,7 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_completion_executor(Executor e, - typename constraint< + constraint_t< conditional< !is_same::value && !is_base_of, false_type >::type::value - >::type = 0) - : base_type(BOOST_ASIO_MOVE_CAST(Executor)(e)) + > = 0) + : base_type(static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) @@ -178,7 +174,7 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_completion_executor(std::nothrow_t, Executor e, - typename constraint< + constraint_t< conditional< !is_same::value && !is_base_of, false_type >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT - : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(Executor)(e)) + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) /// Assignment operator. BOOST_ASIO_DECL any_completion_executor& operator=( - const any_completion_executor& e) BOOST_ASIO_NOEXCEPT; + const any_completion_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move assignment operator. BOOST_ASIO_DECL any_completion_executor& operator=( - any_completion_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + any_completion_executor&& e) noexcept; /// Assignment operator that sets the polymorphic wrapper to the empty state. BOOST_ASIO_DECL any_completion_executor& operator=(nullptr_t); @@ -210,7 +204,7 @@ public: BOOST_ASIO_DECL ~any_completion_executor(); /// Swap targets with another polymorphic wrapper. - BOOST_ASIO_DECL void swap(any_completion_executor& other) BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL void swap(any_completion_executor& other) noexcept; /// Obtain a polymorphic wrapper with the specified property. /** @@ -223,9 +217,9 @@ public: */ template any_completion_executor require(const Property& p, - typename constraint< + constraint_t< traits::require_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).require(p); } @@ -241,9 +235,9 @@ public: */ template any_completion_executor prefer(const Property& p, - typename constraint< + constraint_t< traits::prefer_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).prefer(p); } diff --git a/boost/asio/any_completion_handler.hpp b/boost/asio/any_completion_handler.hpp index 3164492d..17c72759 100644 --- a/boost/asio/any_completion_handler.hpp +++ b/boost/asio/any_completion_handler.hpp @@ -12,12 +12,6 @@ #define BOOST_ASIO_ANY_COMPLETION_HANDLER_HPP #include - -#if (defined(BOOST_ASIO_HAS_STD_TUPLE) \ - && defined(BOOST_ASIO_HAS_MOVE) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) \ - || defined(GENERATING_DOCUMENTATION) - #include #include #include @@ -42,11 +36,11 @@ class any_completion_handler_impl_base public: template explicit any_completion_handler_impl_base(S&& slot) - : cancel_state_(BOOST_ASIO_MOVE_CAST(S)(slot), enable_total_cancellation()) + : cancel_state_(static_cast(slot), enable_total_cancellation()) { } - cancellation_slot get_cancellation_slot() const BOOST_ASIO_NOEXCEPT + cancellation_slot get_cancellation_slot() const noexcept { return cancel_state_.slot(); } @@ -62,8 +56,8 @@ class any_completion_handler_impl : public: template any_completion_handler_impl(S&& slot, H&& h) - : any_completion_handler_impl_base(BOOST_ASIO_MOVE_CAST(S)(slot)), - handler_(BOOST_ASIO_MOVE_CAST(H)(h)) + : any_completion_handler_impl_base(static_cast(slot)), + handler_(static_cast(h)) { } @@ -106,7 +100,7 @@ public: any_completion_handler_impl* ptr = new (uninit_ptr.get()) any_completion_handler_impl( - BOOST_ASIO_MOVE_CAST(S)(slot), BOOST_ASIO_MOVE_CAST(H)(h)); + static_cast(slot), static_cast(h)); uninit_ptr.release(); return ptr; @@ -122,14 +116,14 @@ public: } any_completion_executor executor( - const any_completion_executor& candidate) const BOOST_ASIO_NOEXCEPT + const any_completion_executor& candidate) const noexcept { return any_completion_executor(std::nothrow, (get_associated_executor)(handler_, candidate)); } any_completion_executor immediate_executor( - const any_io_executor& candidate) const BOOST_ASIO_NOEXCEPT + const any_io_executor& candidate) const noexcept { return any_completion_executor(std::nothrow, (get_associated_immediate_executor)(handler_, candidate)); @@ -190,11 +184,11 @@ public: boost::asio::recycling_allocator())}; std::unique_ptr ptr(this, d); - Handler handler(BOOST_ASIO_MOVE_CAST(Handler)(handler_)); + Handler handler(static_cast(handler_)); ptr.reset(); - BOOST_ASIO_MOVE_CAST(Handler)(handler)( - BOOST_ASIO_MOVE_CAST(Args)(args)...); + static_cast(handler)( + static_cast(args)...); } private: @@ -217,14 +211,14 @@ public: void call(any_completion_handler_impl_base* impl, Args... args) const { - call_fn_(impl, BOOST_ASIO_MOVE_CAST(Args)(args)...); + call_fn_(impl, static_cast(args)...); } template static void impl(any_completion_handler_impl_base* impl, Args... args) { static_cast*>(impl)->call( - BOOST_ASIO_MOVE_CAST(Args)(args)...); + static_cast(args)...); } private: @@ -476,7 +470,7 @@ private: detail::any_completion_handler_impl_base* impl_; constexpr any_completion_handler_allocator(int, - const any_completion_handler& h) BOOST_ASIO_NOEXCEPT + const any_completion_handler& h) noexcept : fn_table_(h.fn_table_), impl_(h.impl_) { @@ -498,7 +492,7 @@ public: template constexpr any_completion_handler_allocator( const any_completion_handler_allocator& a) - BOOST_ASIO_NOEXCEPT + noexcept : fn_table_(a.fn_table_), impl_(a.impl_) { @@ -506,14 +500,14 @@ public: /// Equality operator. constexpr bool operator==( - const any_completion_handler_allocator& other) const BOOST_ASIO_NOEXCEPT + const any_completion_handler_allocator& other) const noexcept { return fn_table_ == other.fn_table_ && impl_ == other.impl_; } /// Inequality operator. constexpr bool operator!=( - const any_completion_handler_allocator& other) const BOOST_ASIO_NOEXCEPT + const any_completion_handler_allocator& other) const noexcept { return fn_table_ != other.fn_table_ || impl_ != other.impl_; } @@ -521,9 +515,15 @@ public: /// Allocate space for @c n objects of the allocator's value type. T* allocate(std::size_t n) const { - return static_cast( - fn_table_->allocate( - impl_, sizeof(T) * n, alignof(T))); + if (fn_table_) + { + return static_cast( + fn_table_->allocate( + impl_, sizeof(T) * n, alignof(T))); + } + std::bad_alloc ex; + boost::asio::detail::throw_exception(ex); + return nullptr; } /// Deallocate space for @c n objects of the allocator's value type. @@ -550,7 +550,7 @@ private: detail::any_completion_handler_impl_base* impl_; constexpr any_completion_handler_allocator(int, - const any_completion_handler& h) BOOST_ASIO_NOEXCEPT + const any_completion_handler& h) noexcept : fn_table_(h.fn_table_), impl_(h.impl_) { @@ -572,7 +572,7 @@ public: template constexpr any_completion_handler_allocator( const any_completion_handler_allocator& a) - BOOST_ASIO_NOEXCEPT + noexcept : fn_table_(a.fn_table_), impl_(a.impl_) { @@ -580,14 +580,14 @@ public: /// Equality operator. constexpr bool operator==( - const any_completion_handler_allocator& other) const BOOST_ASIO_NOEXCEPT + const any_completion_handler_allocator& other) const noexcept { return fn_table_ == other.fn_table_ && impl_ == other.impl_; } /// Inequality operator. constexpr bool operator!=( - const any_completion_handler_allocator& other) const BOOST_ASIO_NOEXCEPT + const any_completion_handler_allocator& other) const noexcept { return fn_table_ != other.fn_table_ || impl_ != other.impl_; } @@ -652,16 +652,16 @@ public: } /// Construct an @c any_completion_handler to contain the specified target. - template ::type> + template > any_completion_handler(H&& h, - typename constraint< - !is_same::type, any_completion_handler>::value - >::type = 0) + constraint_t< + !is_same, any_completion_handler>::value + > = 0) : fn_table_( &detail::any_completion_handler_fn_table_instance< Handler, Signatures...>::value), impl_(detail::any_completion_handler_impl::create( - (get_associated_cancellation_slot)(h), BOOST_ASIO_MOVE_CAST(H)(h))) + (get_associated_cancellation_slot)(h), static_cast(h))) { } @@ -669,7 +669,7 @@ public: /** * After the operation, the moved-from object @c other has no target. */ - any_completion_handler(any_completion_handler&& other) BOOST_ASIO_NOEXCEPT + any_completion_handler(any_completion_handler&& other) noexcept : fn_table_(other.fn_table_), impl_(other.impl_) { @@ -682,15 +682,15 @@ public: * After the operation, the moved-from object @c other has no target. */ any_completion_handler& operator=( - any_completion_handler&& other) BOOST_ASIO_NOEXCEPT + any_completion_handler&& other) noexcept { any_completion_handler( - BOOST_ASIO_MOVE_CAST(any_completion_handler)(other)).swap(*this); + static_cast(other)).swap(*this); return *this; } /// Assignment operator that sets the polymorphic wrapper to the empty state. - any_completion_handler& operator=(nullptr_t) BOOST_ASIO_NOEXCEPT + any_completion_handler& operator=(nullptr_t) noexcept { any_completion_handler().swap(*this); return *this; @@ -704,34 +704,34 @@ public: } /// Test if the polymorphic wrapper is empty. - constexpr explicit operator bool() const BOOST_ASIO_NOEXCEPT + constexpr explicit operator bool() const noexcept { return impl_ != nullptr; } /// Test if the polymorphic wrapper is non-empty. - constexpr bool operator!() const BOOST_ASIO_NOEXCEPT + constexpr bool operator!() const noexcept { return impl_ == nullptr; } /// Swap the content of an @c any_completion_handler with another. - void swap(any_completion_handler& other) BOOST_ASIO_NOEXCEPT + void swap(any_completion_handler& other) noexcept { std::swap(fn_table_, other.fn_table_); std::swap(impl_, other.impl_); } /// Get the associated allocator. - allocator_type get_allocator() const BOOST_ASIO_NOEXCEPT + allocator_type get_allocator() const noexcept { return allocator_type(0, *this); } /// Get the associated cancellation slot. - cancellation_slot_type get_cancellation_slot() const BOOST_ASIO_NOEXCEPT + cancellation_slot_type get_cancellation_slot() const noexcept { - return impl_->get_cancellation_slot(); + return impl_ ? impl_->get_cancellation_slot() : cancellation_slot_type(); } /// Function call operator. @@ -745,12 +745,12 @@ public: */ template auto operator()(Args&&... args) - -> decltype(fn_table_->call(impl_, BOOST_ASIO_MOVE_CAST(Args)(args)...)) + -> decltype(fn_table_->call(impl_, static_cast(args)...)) { if (detail::any_completion_handler_impl_base* impl = impl_) { impl_ = nullptr; - return fn_table_->call(impl, BOOST_ASIO_MOVE_CAST(Args)(args)...); + return fn_table_->call(impl, static_cast(args)...); } std::bad_function_call ex; boost::asio::detail::throw_exception(ex); @@ -758,28 +758,28 @@ public: /// Equality operator. friend constexpr bool operator==( - const any_completion_handler& a, nullptr_t) BOOST_ASIO_NOEXCEPT + const any_completion_handler& a, nullptr_t) noexcept { return a.impl_ == nullptr; } /// Equality operator. friend constexpr bool operator==( - nullptr_t, const any_completion_handler& b) BOOST_ASIO_NOEXCEPT + nullptr_t, const any_completion_handler& b) noexcept { return nullptr == b.impl_; } /// Inequality operator. friend constexpr bool operator!=( - const any_completion_handler& a, nullptr_t) BOOST_ASIO_NOEXCEPT + const any_completion_handler& a, nullptr_t) noexcept { return a.impl_ != nullptr; } /// Inequality operator. friend constexpr bool operator!=( - nullptr_t, const any_completion_handler& b) BOOST_ASIO_NOEXCEPT + nullptr_t, const any_completion_handler& b) noexcept { return nullptr != b.impl_; } @@ -791,10 +791,12 @@ struct associated_executor, Candidate> using type = any_completion_executor; static type get(const any_completion_handler& handler, - const Candidate& candidate = Candidate()) BOOST_ASIO_NOEXCEPT + const Candidate& candidate = Candidate()) noexcept { - return handler.fn_table_->executor(handler.impl_, - any_completion_executor(std::nothrow, candidate)); + any_completion_executor any_candidate(std::nothrow, candidate); + return handler.fn_table_ + ? handler.fn_table_->executor(handler.impl_, any_candidate) + : any_candidate; } }; @@ -805,10 +807,12 @@ struct associated_immediate_executor< using type = any_completion_executor; static type get(const any_completion_handler& handler, - const Candidate& candidate = Candidate()) BOOST_ASIO_NOEXCEPT + const Candidate& candidate = Candidate()) noexcept { - return handler.fn_table_->immediate_executor(handler.impl_, - any_io_executor(std::nothrow, candidate)); + any_io_executor any_candidate(std::nothrow, candidate); + return handler.fn_table_ + ? handler.fn_table_->immediate_executor(handler.impl_, any_candidate) + : any_candidate; } }; @@ -817,9 +821,4 @@ struct associated_immediate_executor< #include -#endif // (defined(BOOST_ASIO_HAS_STD_TUPLE) - // && defined(BOOST_ASIO_HAS_MOVE) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) - // || defined(GENERATING_DOCUMENTATION) - #endif // BOOST_ASIO_ANY_COMPLETION_HANDLER_HPP diff --git a/boost/asio/any_io_executor.hpp b/boost/asio/any_io_executor.hpp index 12e0008b..4d6a058d 100644 --- a/boost/asio/any_io_executor.hpp +++ b/boost/asio/any_io_executor.hpp @@ -88,18 +88,16 @@ public: #endif // !defined(GENERATING_DOCUMENTATION) /// Default constructor. - BOOST_ASIO_DECL any_io_executor() BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL any_io_executor() noexcept; /// Construct in an empty state. Equivalent effects to default constructor. - BOOST_ASIO_DECL any_io_executor(nullptr_t) BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL any_io_executor(nullptr_t) noexcept; /// Copy constructor. - BOOST_ASIO_DECL any_io_executor(const any_io_executor& e) BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL any_io_executor(const any_io_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move constructor. - BOOST_ASIO_DECL any_io_executor(any_io_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + BOOST_ASIO_DECL any_io_executor(any_io_executor&& e) noexcept; /// Construct to point to the same target as another any_executor. #if defined(GENERATING_DOCUMENTATION) @@ -108,8 +106,8 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(OtherAnyExecutor e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value && is_base_of::value, @@ -117,9 +115,9 @@ public: 0, supportable_properties_type>::template is_valid_target, false_type - >::type::value - >::type = 0) - : base_type(BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + >::value + > = 0) + : base_type(static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) @@ -132,8 +130,8 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(std::nothrow_t, OtherAnyExecutor e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value && is_base_of::value, @@ -141,22 +139,19 @@ public: 0, supportable_properties_type>::template is_valid_target, false_type - >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT - : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + >::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) /// Construct to point to the same target as another any_executor. BOOST_ASIO_DECL any_io_executor(std::nothrow_t, - const any_io_executor& e) BOOST_ASIO_NOEXCEPT; + const any_io_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Construct to point to the same target as another any_executor. - BOOST_ASIO_DECL any_io_executor(std::nothrow_t, - any_io_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + BOOST_ASIO_DECL any_io_executor(std::nothrow_t, any_io_executor&& e) noexcept; /// Construct a polymorphic wrapper for the specified executor. #if defined(GENERATING_DOCUMENTATION) @@ -165,17 +160,17 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(Executor e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value && !is_base_of::value, execution::detail::is_valid_target_executor< Executor, supportable_properties_type>, false_type - >::type::value - >::type = 0) - : base_type(BOOST_ASIO_MOVE_CAST(Executor)(e)) + >::value + > = 0) + : base_type(static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) @@ -187,30 +182,27 @@ public: #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(std::nothrow_t, Executor e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value && !is_base_of::value, execution::detail::is_valid_target_executor< Executor, supportable_properties_type>, false_type - >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT - : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(Executor)(e)) + >::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) /// Assignment operator. BOOST_ASIO_DECL any_io_executor& operator=( - const any_io_executor& e) BOOST_ASIO_NOEXCEPT; + const any_io_executor& e) noexcept; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move assignment operator. - BOOST_ASIO_DECL any_io_executor& operator=( - any_io_executor&& e) BOOST_ASIO_NOEXCEPT; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + BOOST_ASIO_DECL any_io_executor& operator=(any_io_executor&& e) noexcept; /// Assignment operator that sets the polymorphic wrapper to the empty state. BOOST_ASIO_DECL any_io_executor& operator=(nullptr_t); @@ -219,7 +211,7 @@ public: BOOST_ASIO_DECL ~any_io_executor(); /// Swap targets with another polymorphic wrapper. - BOOST_ASIO_DECL void swap(any_io_executor& other) BOOST_ASIO_NOEXCEPT; + BOOST_ASIO_DECL void swap(any_io_executor& other) noexcept; /// Obtain a polymorphic wrapper with the specified property. /** @@ -232,9 +224,9 @@ public: */ template any_io_executor require(const Property& p, - typename constraint< + constraint_t< traits::require_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).require(p); } @@ -250,9 +242,9 @@ public: */ template any_io_executor prefer(const Property& p, - typename constraint< + constraint_t< traits::prefer_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).prefer(p); } diff --git a/boost/asio/append.hpp b/boost/asio/append.hpp index 7b34641c..fc3d8624 100644 --- a/boost/asio/append.hpp +++ b/boost/asio/append.hpp @@ -16,11 +16,6 @@ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include - -#if (defined(BOOST_ASIO_HAS_STD_TUPLE) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) \ - || defined(GENERATING_DOCUMENTATION) - #include #include @@ -38,11 +33,9 @@ class append_t public: /// Constructor. template - BOOST_ASIO_CONSTEXPR explicit append_t( - BOOST_ASIO_MOVE_ARG(T) completion_token, - BOOST_ASIO_MOVE_ARG(V)... values) - : token_(BOOST_ASIO_MOVE_CAST(T)(completion_token)), - values_(BOOST_ASIO_MOVE_CAST(V)(values)...) + constexpr explicit append_t(T&& completion_token, V&&... values) + : token_(static_cast(completion_token)), + values_(static_cast(values)...) { } @@ -55,15 +48,13 @@ public: /// arguments should be passed additional values after the results of the /// operation. template -BOOST_ASIO_NODISCARD inline BOOST_ASIO_CONSTEXPR append_t< - typename decay::type, typename decay::type...> -append(BOOST_ASIO_MOVE_ARG(CompletionToken) completion_token, - BOOST_ASIO_MOVE_ARG(Values)... values) +BOOST_ASIO_NODISCARD inline constexpr +append_t, decay_t...> +append(CompletionToken&& completion_token, Values&&... values) { - return append_t< - typename decay::type, typename decay::type...>( - BOOST_ASIO_MOVE_CAST(CompletionToken)(completion_token), - BOOST_ASIO_MOVE_CAST(Values)(values)...); + return append_t, decay_t...>( + static_cast(completion_token), + static_cast(values)...); } } // namespace asio @@ -73,8 +64,4 @@ append(BOOST_ASIO_MOVE_ARG(CompletionToken) completion_token, #include -#endif // (defined(BOOST_ASIO_HAS_STD_TUPLE) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) - // || defined(GENERATING_DOCUMENTATION) - #endif // BOOST_ASIO_APPEND_HPP diff --git a/boost/asio/as_tuple.hpp b/boost/asio/as_tuple.hpp index 03aeac1e..0f89b460 100644 --- a/boost/asio/as_tuple.hpp +++ b/boost/asio/as_tuple.hpp @@ -16,11 +16,6 @@ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include - -#if (defined(BOOST_ASIO_HAS_STD_TUPLE) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) \ - || defined(GENERATING_DOCUMENTATION) - #include #include @@ -51,18 +46,18 @@ public: * token is itself defaulted as an argument to allow it to capture a source * location. */ - BOOST_ASIO_CONSTEXPR as_tuple_t( + constexpr as_tuple_t( default_constructor_tag = default_constructor_tag(), CompletionToken token = CompletionToken()) - : token_(BOOST_ASIO_MOVE_CAST(CompletionToken)(token)) + : token_(static_cast(token)) { } /// Constructor. template - BOOST_ASIO_CONSTEXPR explicit as_tuple_t( - BOOST_ASIO_MOVE_ARG(T) completion_token) - : token_(BOOST_ASIO_MOVE_CAST(T)(completion_token)) + constexpr explicit as_tuple_t( + T&& completion_token) + : token_(static_cast(completion_token)) { } @@ -77,13 +72,13 @@ public: /// Construct the adapted executor from the inner executor type. template executor_with_default(const InnerExecutor1& ex, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value, is_convertible, false_type - >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT + >::value + > = 0) noexcept : InnerExecutor(ex) { } @@ -91,25 +86,21 @@ public: /// Type alias to adapt an I/O object to use @c as_tuple_t as its /// default completion token type. -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) \ - || defined(GENERATING_DOCUMENTATION) template using as_default_on_t = typename T::template rebind_executor< - executor_with_default >::other; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) + executor_with_default>::other; /// Function helper to adapt an I/O object to use @c as_tuple_t as its /// default completion token type. template - static typename decay::type::template rebind_executor< - executor_with_default::type::executor_type> + static typename decay_t::template rebind_executor< + executor_with_default::executor_type> >::other - as_default_on(BOOST_ASIO_MOVE_ARG(T) object) + as_default_on(T&& object) { - return typename decay::type::template rebind_executor< - executor_with_default::type::executor_type> - >::other(BOOST_ASIO_MOVE_CAST(T)(object)); + return typename decay_t::template rebind_executor< + executor_with_default::executor_type> + >::other(static_cast(object)); } //private: @@ -120,11 +111,11 @@ public: /// arguments should be combined into a single tuple argument. template BOOST_ASIO_NODISCARD inline -BOOST_ASIO_CONSTEXPR as_tuple_t::type> -as_tuple(BOOST_ASIO_MOVE_ARG(CompletionToken) completion_token) +constexpr as_tuple_t> +as_tuple(CompletionToken&& completion_token) { - return as_tuple_t::type>( - BOOST_ASIO_MOVE_CAST(CompletionToken)(completion_token)); + return as_tuple_t>( + static_cast(completion_token)); } } // namespace asio @@ -134,8 +125,4 @@ as_tuple(BOOST_ASIO_MOVE_ARG(CompletionToken) completion_token) #include -#endif // (defined(BOOST_ASIO_HAS_STD_TUPLE) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)) - // || defined(GENERATING_DOCUMENTATION) - #endif // BOOST_ASIO_AS_TUPLE_HPP diff --git a/boost/asio/associated_allocator.hpp b/boost/asio/associated_allocator.hpp index 50cc9c45..38825fa3 100644 --- a/boost/asio/associated_allocator.hpp +++ b/boost/asio/associated_allocator.hpp @@ -37,9 +37,7 @@ struct has_allocator_type : false_type }; template -struct has_allocator_type::type> - : true_type +struct has_allocator_type> : true_type { }; @@ -50,33 +48,30 @@ struct associated_allocator_impl typedef A type; - static type get(const T&) BOOST_ASIO_NOEXCEPT + static type get(const T&) noexcept { return type(); } - static const type& get(const T&, const A& a) BOOST_ASIO_NOEXCEPT + static const type& get(const T&, const A& a) noexcept { return a; } }; template -struct associated_allocator_impl::type> +struct associated_allocator_impl> { typedef typename T::allocator_type type; - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) + static auto get(const T& t) noexcept + -> decltype(t.get_allocator()) { return t.get_allocator(); } - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t, const A&) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) + static auto get(const T& t, const A&) noexcept + -> decltype(t.get_allocator()) { return t.get_allocator(); } @@ -84,12 +79,12 @@ struct associated_allocator_impl struct associated_allocator_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -116,7 +111,7 @@ struct associated_allocator_impl > +template > struct associated_allocator #if !defined(GENERATING_DOCUMENTATION) : detail::associated_allocator_impl @@ -129,11 +124,11 @@ struct associated_allocator /// If @c T has a nested type @c allocator_type, returns /// t.get_allocator(). Otherwise returns @c type(). - static decltype(auto) get(const T& t) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t) noexcept; /// If @c T has a nested type @c allocator_type, returns /// t.get_allocator(). Otherwise returns @c a. - static decltype(auto) get(const T& t, const Allocator& a) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, const Allocator& a) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -143,7 +138,7 @@ struct associated_allocator */ template BOOST_ASIO_NODISCARD inline typename associated_allocator::type -get_associated_allocator(const T& t) BOOST_ASIO_NOEXCEPT +get_associated_allocator(const T& t) noexcept { return associated_allocator::get(t); } @@ -153,23 +148,17 @@ get_associated_allocator(const T& t) BOOST_ASIO_NOEXCEPT * @returns associated_allocator::get(t, a) */ template -BOOST_ASIO_NODISCARD inline BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2( - typename associated_allocator::type) -get_associated_allocator(const T& t, const Allocator& a) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_allocator::get(t, a))) +BOOST_ASIO_NODISCARD inline auto get_associated_allocator( + const T& t, const Allocator& a) noexcept + -> decltype(associated_allocator::get(t, a)) { return associated_allocator::get(t, a); } -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - -template > +template > using associated_allocator_t = typename associated_allocator::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -179,22 +168,19 @@ struct associated_allocator_forwarding_base template struct associated_allocator_forwarding_base::asio_associated_allocator_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_allocator_is_unspecialised; }; } // namespace detail -#if defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) - /// Specialisation of associated_allocator for @c std::reference_wrapper. template struct associated_allocator, Allocator> @@ -208,25 +194,20 @@ struct associated_allocator, Allocator> /// Forwards the request to get the allocator to the associator specialisation /// for the unwrapped type @c T. - static type get(reference_wrapper t) BOOST_ASIO_NOEXCEPT + static type get(reference_wrapper t) noexcept { return associated_allocator::get(t.get()); } /// Forwards the request to get the allocator to the associator specialisation /// for the unwrapped type @c T. - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - reference_wrapper t, const Allocator& a) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_allocator::get(t.get(), a))) + static auto get(reference_wrapper t, const Allocator& a) noexcept + -> decltype(associated_allocator::get(t.get(), a)) { return associated_allocator::get(t.get(), a); } }; -#endif // defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio } // namespace boost diff --git a/boost/asio/associated_cancellation_slot.hpp b/boost/asio/associated_cancellation_slot.hpp index ab55354f..e44bff9f 100644 --- a/boost/asio/associated_cancellation_slot.hpp +++ b/boost/asio/associated_cancellation_slot.hpp @@ -37,9 +37,8 @@ struct has_cancellation_slot_type : false_type }; template -struct has_cancellation_slot_type::type> - : true_type +struct has_cancellation_slot_type> + : true_type { }; @@ -50,12 +49,12 @@ struct associated_cancellation_slot_impl typedef S type; - static type get(const T&) BOOST_ASIO_NOEXCEPT + static type get(const T&) noexcept { return type(); } - static const type& get(const T&, const S& s) BOOST_ASIO_NOEXCEPT + static const type& get(const T&, const S& s) noexcept { return s; } @@ -63,20 +62,18 @@ struct associated_cancellation_slot_impl template struct associated_cancellation_slot_impl::type> + void_t> { typedef typename T::cancellation_slot_type type; - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + static auto get(const T& t) noexcept + -> decltype(t.get_cancellation_slot()) { return t.get_cancellation_slot(); } - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t, const S&) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + static auto get(const T& t, const S&) noexcept + -> decltype(t.get_cancellation_slot()) { return t.get_cancellation_slot(); } @@ -84,12 +81,12 @@ struct associated_cancellation_slot_impl struct associated_cancellation_slot_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -130,12 +127,12 @@ struct associated_cancellation_slot /// If @c T has a nested type @c cancellation_slot_type, returns /// t.get_cancellation_slot(). Otherwise returns @c type(). - static decltype(auto) get(const T& t) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t) noexcept; /// If @c T has a nested type @c cancellation_slot_type, returns /// t.get_cancellation_slot(). Otherwise returns @c s. static decltype(auto) get(const T& t, - const CancellationSlot& s) BOOST_ASIO_NOEXCEPT; + const CancellationSlot& s) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -145,7 +142,7 @@ struct associated_cancellation_slot */ template BOOST_ASIO_NODISCARD inline typename associated_cancellation_slot::type -get_associated_cancellation_slot(const T& t) BOOST_ASIO_NOEXCEPT +get_associated_cancellation_slot(const T& t) noexcept { return associated_cancellation_slot::get(t); } @@ -156,24 +153,17 @@ get_associated_cancellation_slot(const T& t) BOOST_ASIO_NOEXCEPT * CancellationSlot>::get(t, st) */ template -BOOST_ASIO_NODISCARD inline BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2( - typename associated_cancellation_slot::type) -get_associated_cancellation_slot(const T& t, - const CancellationSlot& st) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_cancellation_slot::get(t, st))) +BOOST_ASIO_NODISCARD inline auto get_associated_cancellation_slot( + const T& t, const CancellationSlot& st) noexcept + -> decltype(associated_cancellation_slot::get(t, st)) { return associated_cancellation_slot::get(t, st); } -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - template using associated_cancellation_slot_t = typename associated_cancellation_slot::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -183,22 +173,19 @@ struct associated_cancellation_slot_forwarding_base template struct associated_cancellation_slot_forwarding_base::asio_associated_cancellation_slot_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_cancellation_slot_is_unspecialised; }; } // namespace detail -#if defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) - /// Specialisation of associated_cancellation_slot for @c /// std::reference_wrapper. template @@ -213,25 +200,21 @@ struct associated_cancellation_slot, CancellationSlot> /// Forwards the request to get the cancellation slot to the associator /// specialisation for the unwrapped type @c T. - static type get(reference_wrapper t) BOOST_ASIO_NOEXCEPT + static type get(reference_wrapper t) noexcept { return associated_cancellation_slot::get(t.get()); } /// Forwards the request to get the cancellation slot to the associator /// specialisation for the unwrapped type @c T. - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get(reference_wrapper t, - const CancellationSlot& s) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_cancellation_slot::get(t.get(), s))) + static auto get(reference_wrapper t, const CancellationSlot& s) noexcept + -> decltype( + associated_cancellation_slot::get(t.get(), s)) { return associated_cancellation_slot::get(t.get(), s); } }; -#endif // defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio } // namespace boost diff --git a/boost/asio/associated_executor.hpp b/boost/asio/associated_executor.hpp index 4ffc80f9..a8d4776a 100644 --- a/boost/asio/associated_executor.hpp +++ b/boost/asio/associated_executor.hpp @@ -39,8 +39,7 @@ struct has_executor_type : false_type }; template -struct has_executor_type::type> +struct has_executor_type> : true_type { }; @@ -52,33 +51,30 @@ struct associated_executor_impl typedef E type; - static type get(const T&) BOOST_ASIO_NOEXCEPT + static type get(const T&) noexcept { return type(); } - static const type& get(const T&, const E& e) BOOST_ASIO_NOEXCEPT + static const type& get(const T&, const E& e) noexcept { return e; } }; template -struct associated_executor_impl::type> +struct associated_executor_impl> { typedef typename T::executor_type type; - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_executor())) + static auto get(const T& t) noexcept + -> decltype(t.get_executor()) { return t.get_executor(); } - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t, const E&) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_executor())) + static auto get(const T& t, const E&) noexcept + -> decltype(t.get_executor()) { return t.get_executor(); } @@ -86,12 +82,12 @@ struct associated_executor_impl struct associated_executor_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -131,11 +127,11 @@ struct associated_executor /// If @c T has a nested type @c executor_type, returns /// t.get_executor(). Otherwise returns @c type(). - static decltype(auto) get(const T& t) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t) noexcept; /// If @c T has a nested type @c executor_type, returns /// t.get_executor(). Otherwise returns @c ex. - static decltype(auto) get(const T& t, const Executor& ex) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, const Executor& ex) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -145,7 +141,7 @@ struct associated_executor */ template BOOST_ASIO_NODISCARD inline typename associated_executor::type -get_associated_executor(const T& t) BOOST_ASIO_NOEXCEPT +get_associated_executor(const T& t) noexcept { return associated_executor::get(t); } @@ -155,14 +151,12 @@ get_associated_executor(const T& t) BOOST_ASIO_NOEXCEPT * @returns associated_executor::get(t, ex) */ template -BOOST_ASIO_NODISCARD inline BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2( - typename associated_executor::type) -get_associated_executor(const T& t, const Executor& ex, - typename constraint< +BOOST_ASIO_NODISCARD inline auto get_associated_executor( + const T& t, const Executor& ex, + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_executor::get(t, ex))) + > = 0) noexcept + -> decltype(associated_executor::get(t, ex)) { return associated_executor::get(t, ex); } @@ -176,20 +170,16 @@ template BOOST_ASIO_NODISCARD inline typename associated_executor::type get_associated_executor(const T& t, ExecutionContext& ctx, - typename constraint::value>::type = 0) BOOST_ASIO_NOEXCEPT + constraint_t::value> = 0) noexcept { return associated_executor::get(t, ctx.get_executor()); } -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - template using associated_executor_t = typename associated_executor::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -199,22 +189,19 @@ struct associated_executor_forwarding_base template struct associated_executor_forwarding_base::asio_associated_executor_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_executor_is_unspecialised; }; } // namespace detail -#if defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) - /// Specialisation of associated_executor for @c std::reference_wrapper. template struct associated_executor, Executor> @@ -228,25 +215,20 @@ struct associated_executor, Executor> /// Forwards the request to get the executor to the associator specialisation /// for the unwrapped type @c T. - static type get(reference_wrapper t) BOOST_ASIO_NOEXCEPT + static type get(reference_wrapper t) noexcept { return associated_executor::get(t.get()); } /// Forwards the request to get the executor to the associator specialisation /// for the unwrapped type @c T. - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - reference_wrapper t, const Executor& ex) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_executor::get(t.get(), ex))) + static auto get(reference_wrapper t, const Executor& ex) noexcept + -> decltype(associated_executor::get(t.get(), ex)) { return associated_executor::get(t.get(), ex); } }; -#endif // defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio } // namespace boost diff --git a/boost/asio/associated_immediate_executor.hpp b/boost/asio/associated_immediate_executor.hpp index d73d395f..ff0b8b88 100644 --- a/boost/asio/associated_immediate_executor.hpp +++ b/boost/asio/associated_immediate_executor.hpp @@ -42,7 +42,7 @@ struct has_immediate_executor_type : false_type template struct has_immediate_executor_type::type> + void_t> : true_type { }; @@ -50,9 +50,9 @@ struct has_immediate_executor_type struct default_immediate_executor { - typedef typename require_result::type type; + typedef require_result_t type; - static type get(const E& e) BOOST_ASIO_NOEXCEPT + static type get(const E& e) noexcept { return boost::asio::require(e, execution::blocking.never); } @@ -60,59 +60,57 @@ struct default_immediate_executor template struct default_immediate_executor::value - >::type, - typename enable_if< + >, + enable_if_t< is_executor::value - >::type> + >> { class type : public E { public: template explicit type(const Executor1& e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value, is_convertible, false_type - >::type::value - >::type = 0) BOOST_ASIO_NOEXCEPT + >::value + > = 0) noexcept : E(e) { } - type(const type& other) BOOST_ASIO_NOEXCEPT + type(const type& other) noexcept : E(static_cast(other)) { } -#if defined(BOOST_ASIO_HAS_MOVE) - type(type&& other) BOOST_ASIO_NOEXCEPT - : E(BOOST_ASIO_MOVE_CAST(E)(other)) + type(type&& other) noexcept + : E(static_cast(other)) { } -#endif // defined(BOOST_ASIO_HAS_MOVE) template - void dispatch(BOOST_ASIO_MOVE_ARG(Function) f, const Allocator& a) const + void dispatch(Function&& f, const Allocator& a) const { - this->post(BOOST_ASIO_MOVE_CAST(Function)(f), a); + this->post(static_cast(f), a); } - friend bool operator==(const type& a, const type& b) BOOST_ASIO_NOEXCEPT + friend bool operator==(const type& a, const type& b) noexcept { return static_cast(a) == static_cast(b); } - friend bool operator!=(const type& a, const type& b) BOOST_ASIO_NOEXCEPT + friend bool operator!=(const type& a, const type& b) noexcept { return static_cast(a) != static_cast(b); } }; - static type get(const E& e) BOOST_ASIO_NOEXCEPT + static type get(const E& e) noexcept { return type(e); } @@ -125,9 +123,8 @@ struct associated_immediate_executor_impl typedef typename default_immediate_executor::type type; - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T&, const E& e) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((default_immediate_executor::get(e))) + static auto get(const T&, const E& e) noexcept + -> decltype(default_immediate_executor::get(e)) { return default_immediate_executor::get(e); } @@ -135,13 +132,12 @@ struct associated_immediate_executor_impl template struct associated_immediate_executor_impl::type> + void_t> { typedef typename T::immediate_executor_type type; - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - const T& t, const E&) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_immediate_executor())) + static auto get(const T& t, const E&) noexcept + -> decltype(t.get_immediate_executor()) { return t.get_immediate_executor(); } @@ -149,12 +145,12 @@ struct associated_immediate_executor_impl struct associated_immediate_executor_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -195,7 +191,7 @@ struct associated_immediate_executor /// If @c T has a nested type @c immediate_executor_type, returns /// t.get_immediate_executor(). Otherwise returns /// boost::asio::require(ex, boost::asio::execution::blocking.never). - static decltype(auto) get(const T& t, const Executor& ex) BOOST_ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, const Executor& ex) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -204,14 +200,12 @@ struct associated_immediate_executor * @returns associated_immediate_executor::get(t, ex) */ template -BOOST_ASIO_NODISCARD inline BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2( - typename associated_immediate_executor::type) -get_associated_immediate_executor(const T& t, const Executor& ex, - typename constraint< +BOOST_ASIO_NODISCARD inline auto get_associated_immediate_executor( + const T& t, const Executor& ex, + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_immediate_executor::get(t, ex))) + > = 0) noexcept + -> decltype(associated_immediate_executor::get(t, ex)) { return associated_immediate_executor::get(t, ex); } @@ -225,21 +219,18 @@ template BOOST_ASIO_NODISCARD inline typename associated_immediate_executor::type get_associated_immediate_executor(const T& t, ExecutionContext& ctx, - typename constraint::value>::type = 0) BOOST_ASIO_NOEXCEPT + constraint_t< + is_convertible::value + > = 0) noexcept { return associated_immediate_executor::get(t, ctx.get_executor()); } -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - template using associated_immediate_executor_t = typename associated_immediate_executor::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -249,22 +240,19 @@ struct associated_immediate_executor_forwarding_base template struct associated_immediate_executor_forwarding_base::asio_associated_immediate_executor_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_immediate_executor_is_unspecialised; }; } // namespace detail -#if defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) - /// Specialisation of associated_immediate_executor for /// @c std::reference_wrapper. template @@ -279,18 +267,13 @@ struct associated_immediate_executor, Executor> /// Forwards the request to get the executor to the associator specialisation /// for the unwrapped type @c T. - static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( - reference_wrapper t, const Executor& ex) BOOST_ASIO_NOEXCEPT - BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(( - associated_immediate_executor::get(t.get(), ex))) + static auto get(reference_wrapper t, const Executor& ex) noexcept + -> decltype(associated_immediate_executor::get(t.get(), ex)) { return associated_immediate_executor::get(t.get(), ex); } }; -#endif // defined(BOOST_ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio } // namespace boost diff --git a/boost/asio/async_result.hpp b/boost/asio/async_result.hpp index c73e0eed..a4525951 100644 --- a/boost/asio/async_result.hpp +++ b/boost/asio/async_result.hpp @@ -17,16 +17,13 @@ #include #include -#include #include namespace boost { namespace asio { -#if defined(BOOST_ASIO_HAS_CONCEPTS) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) \ - && defined(BOOST_ASIO_HAS_DECLTYPE) +#if defined(BOOST_ASIO_HAS_CONCEPTS) namespace detail { @@ -40,8 +37,6 @@ struct is_completion_signature : true_type { }; -#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - template struct is_completion_signature : true_type { @@ -70,7 +65,6 @@ struct is_completion_signature : true_type }; # endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) template struct are_completion_signatures : false_type @@ -108,8 +102,6 @@ struct is_completion_handler_for { }; -#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - template struct is_completion_handler_for : integral_constant)> @@ -143,7 +135,6 @@ struct is_completion_handler_for }; # endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) template struct is_completion_handler_for @@ -175,8 +166,6 @@ BOOST_ASIO_CONCEPT completion_handler_for = ::boost::asio::completion_handler_for #else // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(BOOST_ASIO_HAS_DECLTYPE) #define BOOST_ASIO_COMPLETION_SIGNATURE typename #define BOOST_ASIO_COMPLETION_HANDLER_FOR(sig) typename @@ -184,8 +173,6 @@ BOOST_ASIO_CONCEPT completion_handler_for = #define BOOST_ASIO_COMPLETION_HANDLER_FOR3(sig0, sig1, sig2) typename #endif // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(BOOST_ASIO_HAS_DECLTYPE) namespace detail { @@ -197,8 +184,6 @@ struct is_simple_completion_signature : false_type template struct simple_completion_signature; -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - template struct is_simple_completion_signature : true_type { @@ -229,8 +214,6 @@ struct simple_completion_signature typedef R type(Args...); }; -#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - template struct simple_completion_signature { @@ -264,197 +247,9 @@ struct simple_completion_signature }; # endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct is_simple_completion_signature : true_type -{ -}; - -#define BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct is_simple_completion_signature \ - : true_type \ - { \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF - -template -struct are_simple_completion_signatures : false_type -{ -}; - -template -struct are_simple_completion_signatures - : is_simple_completion_signature -{ -}; - -template -struct are_simple_completion_signatures - : integral_constant::value - && is_simple_completion_signature::value)> -{ -}; - -template -struct are_simple_completion_signatures - : integral_constant::value - && is_simple_completion_signature::value - && is_simple_completion_signature::value)> -{ -}; - -template <> -struct simple_completion_signature -{ - typedef void type; -}; - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -#define BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF - -#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -#define BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature< \ - R(BOOST_ASIO_VARIADIC_TARGS(n)) &> \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(BOOST_ASIO_VARIADIC_TARGS(n)) &&> \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF - -# if defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -template -struct simple_completion_signature -{ - typedef R type(); -}; - -#define BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature< \ - R(BOOST_ASIO_VARIADIC_TARGS(n)) noexcept> \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(BOOST_ASIO_VARIADIC_TARGS(n)) & noexcept> \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(BOOST_ASIO_VARIADIC_TARGS(n)) && noexcept> \ - { \ - typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef BOOST_ASIO_PRIVATE_SIMPLE_SIG_DEF - -# endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) \ - || defined(GENERATING_DOCUMENTATION) - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TPARAMS \ - BOOST_ASIO_COMPLETION_SIGNATURE... Signatures - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TSPECPARAMS \ - BOOST_ASIO_COMPLETION_SIGNATURE... Signatures - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TARGS Signatures... - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TSIMPLEARGS \ - typename boost::asio::detail::simple_completion_signature< \ - Signatures>::type... - -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TPARAMS \ - typename Sig0 = void, \ - typename Sig1 = void, \ - typename Sig2 = void - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TSPECPARAMS \ - typename Sig0, \ - typename Sig1, \ - typename Sig2 - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TARGS Sig0, Sig1, Sig2 - -# define BOOST_ASIO_COMPLETION_SIGNATURES_TSIMPLEARGS \ - typename ::boost::asio::detail::simple_completion_signature::type, \ - typename ::boost::asio::detail::simple_completion_signature::type, \ - typename ::boost::asio::detail::simple_completion_signature::type - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -template +template class completion_handler_async_result { public: @@ -469,56 +264,22 @@ public: { } -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - template - static return_type initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, - BOOST_ASIO_MOVE_ARG(Args)... args) + static return_type initiate(Initiation&& initiation, + RawCompletionToken&& token, Args&&... args) { - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token), - BOOST_ASIO_MOVE_CAST(Args)(args)...); + static_cast(initiation)( + static_cast(token), + static_cast(args)...); } -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - - template - static return_type initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token) - { - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token)); - } - -#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - static return_type initiate( \ - BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ - BOOST_ASIO_MOVE_CAST(RawCompletionToken)(token), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) -#undef BOOST_ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - private: completion_handler_async_result( - const completion_handler_async_result&) BOOST_ASIO_DELETED; + const completion_handler_async_result&) = delete; completion_handler_async_result& operator=( - const completion_handler_async_result&) BOOST_ASIO_DELETED; + const completion_handler_async_result&) = delete; }; } // namespace detail @@ -543,7 +304,8 @@ private: * The primary template assumes that the CompletionToken is the completion * handler. */ -template +template class async_result { public: @@ -568,70 +330,44 @@ public: /// obtain the value to be returned from the initiating function. template static return_type initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, - BOOST_ASIO_MOVE_ARG(Args)... args); + Initiation&& initiation, + RawCompletionToken&& token, + Args&&... args); private: - async_result(const async_result&) BOOST_ASIO_DELETED; - async_result& operator=(const async_result&) BOOST_ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; }; #else // defined(GENERATING_DOCUMENTATION) -#if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template +template class async_result : - public conditional< - detail::are_simple_completion_signatures< - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>::value, - detail::completion_handler_async_result< - CompletionToken, BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>, + public conditional_t< + detail::are_simple_completion_signatures::value, + detail::completion_handler_async_result, async_result - >::type + typename detail::simple_completion_signature::type...> + > { public: - typedef typename conditional< - detail::are_simple_completion_signatures< - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>::value, - detail::completion_handler_async_result< - CompletionToken, BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>, + typedef conditional_t< + detail::are_simple_completion_signatures::value, + detail::completion_handler_async_result, async_result - >::type base_type; + typename detail::simple_completion_signature::type...> + > base_type; using base_type::base_type; private: - async_result(const async_result&) BOOST_ASIO_DELETED; - async_result& operator=(const async_result&) BOOST_ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; }; -#else // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -class async_result : - public detail::completion_handler_async_result< - CompletionToken, BOOST_ASIO_COMPLETION_SIGNATURES_TARGS> -{ -public: - explicit async_result(CompletionToken& h) - : detail::completion_handler_async_result< - CompletionToken, BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>(h) - { - } - -private: - async_result(const async_result&) BOOST_ASIO_DELETED; - async_result& operator=(const async_result&) BOOST_ASIO_DELETED; -}; - -#endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -class async_result +template +class async_result { // Empty. }; @@ -641,65 +377,39 @@ class async_result /// Helper template to deduce the handler type from a CompletionToken, capture /// a local copy of the handler, and then create an async_result for the /// handler. -template +template struct async_completion { /// The real handler type to be used for the asynchronous operation. typedef typename boost::asio::async_result< - typename decay::type, - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS>::completion_handler_type - completion_handler_type; + decay_t, Signatures...>::completion_handler_type + completion_handler_type; -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Constructor. /** * The constructor creates the concrete completion handler and makes the link * between the handler and the asynchronous result. */ explicit async_completion(CompletionToken& token) - : completion_handler(static_cast::value, - completion_handler_type&, CompletionToken&&>::type>(token)), + completion_handler_type&, CompletionToken&&>>(token)), result(completion_handler) { } -#else // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - explicit async_completion(typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } - - explicit async_completion(const typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// A copy of, or reference to, a real handler object. -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - typename conditional< + conditional_t< is_same::value, - completion_handler_type&, completion_handler_type>::type completion_handler; -#else // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - completion_handler_type completion_handler; -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + completion_handler_type&, completion_handler_type> completion_handler; /// The result of the asynchronous operation's initiating function. - async_result::type, - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS> result; + async_result, Signatures...> result; }; namespace detail { -template -struct async_result_helper - : async_result::type, - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS> -{ -}; - struct async_result_memfns_base { void initiate(); @@ -725,11 +435,11 @@ char async_result_initiate_memfn_helper( void (async_result_memfns_base::*)(), &async_result_memfns_derived::initiate>*); -template +template struct async_result_has_initiate_memfn : integral_constant::type, - BOOST_ASIO_COMPLETION_SIGNATURES_TARGS> + async_result, Signatures...> >(0)) != 1> { }; @@ -743,25 +453,6 @@ struct async_result_has_initiate_memfn void_or_deduced # define BOOST_ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) \ void_or_deduced -#elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define BOOST_ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig>::return_type -# define BOOST_ASIO_INITFN_RESULT_TYPE2(ct, sig0, sig1) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig0, sig1>::return_type -# define BOOST_ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig0, sig1, sig2>::return_type -#define BOOST_ASIO_HANDLER_TYPE(ct, sig) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig>::completion_handler_type -#define BOOST_ASIO_HANDLER_TYPE2(ct, sig0, sig1) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig0, sig1>::completion_handler_type -#define BOOST_ASIO_HANDLER_TYPE3(ct, sig0, sig1, sig2) \ - typename ::boost::asio::detail::async_result_helper< \ - ct, sig0, sig1, sig2>::completion_handler_type #else # define BOOST_ASIO_INITFN_RESULT_TYPE(ct, sig) \ typename ::boost::asio::async_result< \ @@ -824,7 +515,7 @@ struct async_result_has_initiate_memfn # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ auto # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) -#elif defined(BOOST_ASIO_HAS_DECLTYPE) +#else # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ct, sig) \ auto # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX2(ct, sig0, sig1) \ @@ -832,14 +523,6 @@ struct async_result_has_initiate_memfn # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ auto # define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) -> decltype expr -#else -# define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ct, sig) \ - BOOST_ASIO_INITFN_RESULT_TYPE(ct, sig) -# define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX2(ct, sig0, sig1) \ - BOOST_ASIO_INITFN_RESULT_TYPE2(ct, sig0, sig1) -# define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ - BOOST_ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) -# define BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) #endif #if defined(GENERATING_DOCUMENTATION) @@ -849,20 +532,13 @@ struct async_result_has_initiate_memfn void_or_deduced # define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ void_or_deduced -#elif defined(BOOST_ASIO_HAS_DECLTYPE) -# define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(ct, sig, expr) \ - decltype expr -# define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE2(ct, sig0, sig1, expr) \ - decltype expr -# define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ - decltype expr #else # define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(ct, sig, expr) \ - BOOST_ASIO_INITFN_RESULT_TYPE(ct, sig) + decltype expr # define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE2(ct, sig0, sig1, expr) \ - BOOST_ASIO_INITFN_RESULT_TYPE2(ct, sig0, sig1) + decltype expr # define BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ - BOOST_ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) + decltype expr #endif #if defined(GENERATING_DOCUMENTATION) @@ -871,326 +547,57 @@ template void_or_deduced async_initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken), - BOOST_ASIO_MOVE_ARG(Args)... args); + Initiation&& initiation, + type_identity_t& token, + Args&&... args); -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#else // defined(GENERATING_DOCUMENTATION) template -inline typename constraint< +inline auto async_initiate(Initiation&& initiation, + type_identity_t& token, Args&&... args) + -> constraint_t< detail::async_result_has_initiate_memfn< CompletionToken, Signatures...>::value, - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, Signatures..., - (async_result::type, - Signatures...>::initiate(declval(), - declval(), - declval()...)))>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, - BOOST_ASIO_MOVE_ARG(Args)... args) + decltype( + async_result, Signatures...>::initiate( + static_cast(initiation), + static_cast(token), + static_cast(args)...))> { - return async_result::type, - Signatures...>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), - BOOST_ASIO_MOVE_CAST(CompletionToken)(token), - BOOST_ASIO_MOVE_CAST(Args)(args)...); + return async_result, Signatures...>::initiate( + static_cast(initiation), + static_cast(token), + static_cast(args)...); } template -inline typename constraint< +inline constraint_t< !detail::async_result_has_initiate_memfn< CompletionToken, Signatures...>::value, - BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Signatures...)>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, - BOOST_ASIO_MOVE_ARG(Args)... args) + typename async_result, Signatures...>::return_type> +async_initiate(Initiation&& initiation, + type_identity_t& token, Args&&... args) { async_completion completion(token); - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, - Signatures...))(completion.completion_handler), - BOOST_ASIO_MOVE_CAST(Args)(args)...); + static_cast(initiation)( + static_cast< + typename async_result, + Signatures...>::completion_handler_type&&>( + completion.completion_handler), + static_cast(args)...); return completion.result.get(); } -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#endif // defined(GENERATING_DOCUMENTATION) -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0>::value, - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, Sig0, - (async_result::type, - Sig0>::initiate(declval(), - declval())))>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), - BOOST_ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1>::value, - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE2(CompletionToken, Sig0, Sig1, - (async_result::type, - Sig0, Sig1>::initiate(declval(), - declval())))>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0, Sig1>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), - BOOST_ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1, Sig2>::value, - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2, - (async_result::type, - Sig0, Sig1, Sig2>::initiate(declval(), - declval())))>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0, Sig1, Sig2>::initiate(BOOST_ASIO_MOVE_CAST(Initiation)(initiation), - BOOST_ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0>::value, - BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Sig0)>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, - Sig0))(completion.completion_handler)); - - return completion.result.get(); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1>::value, - BOOST_ASIO_INITFN_RESULT_TYPE2(CompletionToken, Sig0, Sig1)>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE2(CompletionToken, - Sig0, Sig1))(completion.completion_handler)); - - return completion.result.get(); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1, Sig2>::value, - BOOST_ASIO_INITFN_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2)>::type -async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE3(CompletionToken, - Sig0, Sig1, Sig2))(completion.completion_handler)); - - return completion.result.get(); -} - -#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0>::value, \ - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE( \ - CompletionToken, Sig0, \ - (async_result::type, \ - Sig0>::initiate( \ - declval(), \ - declval(), \ - BOOST_ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0>::initiate( \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation), \ - BOOST_ASIO_MOVE_CAST(CompletionToken)(token), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1>::value, \ - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE2( \ - CompletionToken, Sig0, Sig1, \ - (async_result::type, \ - Sig0, Sig1>::initiate( \ - declval(), \ - declval(), \ - BOOST_ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0, Sig1>::initiate( \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation), \ - BOOST_ASIO_MOVE_CAST(CompletionToken)(token), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1, Sig2>::value, \ - BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE3( \ - CompletionToken, Sig0, Sig1, Sig2, \ - (async_result::type, \ - Sig0, Sig1, Sig2>::initiate( \ - declval(), \ - declval(), \ - BOOST_ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0, Sig1, Sig2>::initiate( \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation), \ - BOOST_ASIO_MOVE_CAST(CompletionToken)(token), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0>::value, \ - BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, Sig0)>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(CompletionToken, \ - Sig0))(completion.completion_handler), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1>::value, \ - BOOST_ASIO_INITFN_RESULT_TYPE2(CompletionToken, Sig0, Sig1)>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE2(CompletionToken, \ - Sig0, Sig1))(completion.completion_handler), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1, Sig2>::value, \ - BOOST_ASIO_INITFN_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2)>::type \ - async_initiate(BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)( \ - BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE3(CompletionToken, \ - Sig0, Sig1, Sig2))(completion.completion_handler), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) -#undef BOOST_ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -#if defined(BOOST_ASIO_HAS_CONCEPTS) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) \ - && defined(BOOST_ASIO_HAS_DECLTYPE) +#if defined(BOOST_ASIO_HAS_CONCEPTS) namespace detail { @@ -1223,16 +630,12 @@ BOOST_ASIO_CONCEPT completion_token_for = ::boost::asio::completion_token_for #else // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(BOOST_ASIO_HAS_DECLTYPE) #define BOOST_ASIO_COMPLETION_TOKEN_FOR(sig) typename #define BOOST_ASIO_COMPLETION_TOKEN_FOR2(sig0, sig1) typename #define BOOST_ASIO_COMPLETION_TOKEN_FOR3(sig0, sig1, sig2) typename #endif // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(BOOST_ASIO_HAS_DECLTYPE) namespace detail { @@ -1246,21 +649,21 @@ struct is_async_operation_call : false_type template struct is_async_operation_call::type, + result_of_t, async_operation_probe_result >::value - >::type - >::type> : true_type + > + > + > : true_type { }; } // namespace detail #if !defined(GENERATING_DOCUMENTATION) -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template class async_result @@ -1269,56 +672,13 @@ public: typedef detail::async_operation_probe_result return_type; template - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), - detail::async_operation_probe, BOOST_ASIO_MOVE_ARG(InitArgs)...) + static return_type initiate(Initiation&&, + detail::async_operation_probe, InitArgs&&...) { return return_type(); } }; -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -namespace detail { - -struct async_result_probe_base -{ - typedef detail::async_operation_probe_result return_type; - - template - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), - detail::async_operation_probe) - { - return return_type(); - } - -#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), \ - detail::async_operation_probe, \ - BOOST_ASIO_VARIADIC_UNNAMED_MOVE_PARAMS(n)) \ - { \ - return return_type(); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) -#undef BOOST_ASIO_PRIVATE_INITIATE_DEF -}; - -} // namespace detail - -template -class async_result - : public detail::async_result_probe_base {}; - -template -class async_result - : public detail::async_result_probe_base {}; - -template -class async_result - : public detail::async_result_probe_base {}; - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) #endif // !defined(GENERATING_DOCUMENTATION) #if defined(GENERATING_DOCUMENTATION) @@ -1336,7 +696,7 @@ struct is_async_operation : integral_constant { }; -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#else // defined(GENERATING_DOCUMENTATION) template struct is_async_operation : @@ -1345,35 +705,9 @@ struct is_async_operation : { }; -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#endif // defined(GENERATING_DOCUMENTATION) -template -struct is_async_operation; - -template -struct is_async_operation : - detail::is_async_operation_call< - T(detail::async_operation_probe)> -{ -}; - -#define BOOST_ASIO_PRIVATE_IS_ASYNC_OP_DEF(n) \ - template \ - struct is_async_operation : \ - detail::is_async_operation_call< \ - T(BOOST_ASIO_VARIADIC_TARGS(n), detail::async_operation_probe)> \ - { \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_IS_ASYNC_OP_DEF) -#undef BOOST_ASIO_PRIVATE_IS_ASYNC_OP_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -#if defined(BOOST_ASIO_HAS_CONCEPTS) \ - && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#if defined(BOOST_ASIO_HAS_CONCEPTS) template BOOST_ASIO_CONCEPT async_operation = is_async_operation::value; @@ -1388,7 +722,6 @@ BOOST_ASIO_CONCEPT async_operation = is_async_operation::value; ::boost::asio::async_operation #else // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) #define BOOST_ASIO_ASYNC_OPERATION(t) typename #define BOOST_ASIO_ASYNC_OPERATION1(t, a0) typename @@ -1396,14 +729,11 @@ BOOST_ASIO_CONCEPT async_operation = is_async_operation::value; #define BOOST_ASIO_ASYNC_OPERATION3(t, a0, a1, a2) typename #endif // defined(BOOST_ASIO_HAS_CONCEPTS) - // && defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) namespace detail { struct completion_signature_probe {}; -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - template struct completion_signature_probe_result { @@ -1436,25 +766,9 @@ struct completion_signature_probe_result }; }; -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct completion_signature_probe_result -{ - typedef T type; -}; - -template <> -struct completion_signature_probe_result -{ -}; - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - } // namespace detail #if !defined(GENERATING_DOCUMENTATION) -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template class async_result @@ -1463,8 +777,8 @@ public: typedef detail::completion_signature_probe_result return_type; template - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), - detail::completion_signature_probe, BOOST_ASIO_MOVE_ARG(InitArgs)...) + static return_type initiate(Initiation&&, + detail::completion_signature_probe, InitArgs&&...) { return return_type(); } @@ -1477,62 +791,13 @@ public: typedef detail::completion_signature_probe_result return_type; template - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), - detail::completion_signature_probe, BOOST_ASIO_MOVE_ARG(InitArgs)...) + static return_type initiate(Initiation&&, + detail::completion_signature_probe, InitArgs&&...) { return return_type(); } }; -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -namespace detail { - -template -class async_result_sig_probe_base -{ -public: - typedef detail::completion_signature_probe_result return_type; - - template - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), - detail::async_operation_probe) - { - return return_type(); - } - -#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - static return_type initiate(BOOST_ASIO_MOVE_ARG(Initiation), \ - detail::completion_signature_probe, \ - BOOST_ASIO_VARIADIC_UNNAMED_MOVE_PARAMS(n)) \ - { \ - return return_type(); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) -#undef BOOST_ASIO_PRIVATE_INITIATE_DEF -}; - -} // namespace detail - -template <> -class async_result - : public detail::async_result_sig_probe_base {}; - -template -class async_result - : public detail::async_result_sig_probe_base {}; - -template -class async_result - : public detail::async_result_sig_probe_base {}; - -template -class async_result - : public detail::async_result_sig_probe_base {}; - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) #endif // !defined(GENERATING_DOCUMENTATION) #if defined(GENERATING_DOCUMENTATION) @@ -1555,50 +820,19 @@ struct completion_signature_of typedef automatically_determined type; }; -template -using completion_signature_of_t = - typename completion_signature_of::type; - -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +#else // defined(GENERATING_DOCUMENTATION) template struct completion_signature_of : - result_of::type + result_of_t { }; -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) +#endif // defined(GENERATING_DOCUMENTATION) + template using completion_signature_of_t = typename completion_signature_of::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct completion_signature_of; - -template -struct completion_signature_of : - result_of::type -{ -}; - -#define BOOST_ASIO_PRIVATE_COMPLETION_SIG_OF_DEF(n) \ - template \ - struct completion_signature_of : \ - result_of< \ - T(BOOST_ASIO_VARIADIC_TARGS(n), \ - detail::completion_signature_probe)>::type \ - { \ - }; \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_COMPLETION_SIG_OF_DEF) -#undef BOOST_ASIO_PRIVATE_COMPLETION_SIG_OF_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) namespace detail { @@ -1610,7 +844,8 @@ struct default_completion_token_impl template struct default_completion_token_impl::type> + void_t + > { typedef typename T::default_completion_token_type type; }; @@ -1644,27 +879,14 @@ struct default_completion_token }; #endif -#if defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - template using default_completion_token_t = typename default_completion_token::type; -#endif // defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES) - -#if defined(BOOST_ASIO_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS) - #define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(e) \ = typename ::boost::asio::default_completion_token::type #define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(e) \ = typename ::boost::asio::default_completion_token::type() -#else // defined(BOOST_ASIO_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS) - -#define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(e) -#define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(e) - -#endif // defined(BOOST_ASIO_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS) - } // namespace asio } // namespace boost diff --git a/boost/asio/basic_datagram_socket.hpp b/boost/asio/basic_datagram_socket.hpp index 7f6326bf..c2287db7 100644 --- a/boost/asio/basic_datagram_socket.hpp +++ b/boost/asio/basic_datagram_socket.hpp @@ -114,9 +114,9 @@ public: */ template explicit basic_datagram_socket(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context) { } @@ -152,10 +152,10 @@ public: template basic_datagram_socket(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_socket(context, protocol) { } @@ -199,9 +199,9 @@ public: template basic_datagram_socket(ExecutionContext& context, const endpoint_type& endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, endpoint) { } @@ -244,14 +244,13 @@ public: template basic_datagram_socket(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_socket, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, protocol, native_socket) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_datagram_socket from another. /** * This constructor moves a datagram socket from one object to another. @@ -263,7 +262,7 @@ public: * constructed using the @c basic_datagram_socket(const executor_type&) * constructor. */ - basic_datagram_socket(basic_datagram_socket&& other) BOOST_ASIO_NOEXCEPT + basic_datagram_socket(basic_datagram_socket&& other) noexcept : basic_socket(std::move(other)) { } @@ -300,10 +299,10 @@ public: */ template basic_datagram_socket(basic_datagram_socket&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : basic_socket(std::move(other)) { } @@ -322,16 +321,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_datagram_socket& - >::type operator=(basic_datagram_socket&& other) + > operator=(basic_datagram_socket&& other) { basic_socket::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the socket. /** @@ -480,18 +478,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -545,18 +539,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -706,19 +696,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send_to(const ConstBufferSequence& buffers, const endpoint_type& destination, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, buffers, - destination, socket_base::message_flags(0)))) + destination, socket_base::message_flags(0))) { return async_initiate( @@ -771,19 +757,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send_to(const ConstBufferSequence& buffers, const endpoint_type& destination, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, destination, flags))) + buffers, destination, flags)) { return async_initiate( @@ -934,18 +916,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -999,18 +977,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -1160,19 +1134,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive_from(const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, buffers, - &sender_endpoint, socket_base::message_flags(0)))) + &sender_endpoint, socket_base::message_flags(0))) { return async_initiate( @@ -1227,19 +1197,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive_from(const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, &sender_endpoint, flags))) + buffers, &sender_endpoint, flags)) { return async_initiate( @@ -1249,9 +1215,9 @@ public: private: // Disallow copying and assignment. - basic_datagram_socket(const basic_datagram_socket&) BOOST_ASIO_DELETED; + basic_datagram_socket(const basic_datagram_socket&) = delete; basic_datagram_socket& operator=( - const basic_datagram_socket&) BOOST_ASIO_DELETED; + const basic_datagram_socket&) = delete; class initiate_async_send { @@ -1263,13 +1229,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, socket_base::message_flags flags) const { @@ -1297,13 +1263,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, const endpoint_type& destination, socket_base::message_flags flags) const { @@ -1331,13 +1297,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, socket_base::message_flags flags) const { @@ -1365,13 +1331,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, endpoint_type* sender_endpoint, socket_base::message_flags flags) const { diff --git a/boost/asio/basic_deadline_timer.hpp b/boost/asio/basic_deadline_timer.hpp index 47796ad4..0ef81efa 100644 --- a/boost/asio/basic_deadline_timer.hpp +++ b/boost/asio/basic_deadline_timer.hpp @@ -179,9 +179,9 @@ public: */ template explicit basic_deadline_timer(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { } @@ -217,9 +217,9 @@ public: */ template basic_deadline_timer(ExecutionContext& context, const time_type& expiry_time, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -261,9 +261,9 @@ public: template basic_deadline_timer(ExecutionContext& context, const duration_type& expiry_time, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -272,7 +272,6 @@ public: boost::asio::detail::throw_error(ec, "expires_from_now"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_deadline_timer from another. /** * This constructor moves a timer from one object to another. @@ -306,7 +305,6 @@ public: impl_ = std::move(other.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the timer. /** @@ -318,7 +316,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -650,15 +648,12 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code)) - WaitToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WaitToken, - void (boost::system::error_code)) - async_wait( - BOOST_ASIO_MOVE_ARG(WaitToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WaitToken = default_completion_token_t> + auto async_wait( + WaitToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token))) + declval(), token)) { return async_initiate( initiate_async_wait(this), token); @@ -666,9 +661,9 @@ public: private: // Disallow copying and assignment. - basic_deadline_timer(const basic_deadline_timer&) BOOST_ASIO_DELETED; + basic_deadline_timer(const basic_deadline_timer&) = delete; basic_deadline_timer& operator=( - const basic_deadline_timer&) BOOST_ASIO_DELETED; + const basic_deadline_timer&) = delete; class initiate_async_wait { @@ -680,13 +675,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WaitHandler) handler) const + void operator()(WaitHandler&& handler) const { // If you get an error on the following line it means that your handler // does not meet the documented type requirements for a WaitHandler. diff --git a/boost/asio/basic_file.hpp b/boost/asio/basic_file.hpp index 6bac363c..8b7fcb6e 100644 --- a/boost/asio/basic_file.hpp +++ b/boost/asio/basic_file.hpp @@ -21,6 +21,7 @@ || defined(GENERATING_DOCUMENTATION) #include +#include #include #include #include @@ -39,10 +40,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -113,10 +110,10 @@ public: */ template explicit basic_file(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { } @@ -158,10 +155,10 @@ public: template explicit basic_file(ExecutionContext& context, const char* path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -207,10 +204,10 @@ public: template explicit basic_file(ExecutionContext& context, const std::string& path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -253,10 +250,10 @@ public: */ template basic_file(ExecutionContext& context, const native_handle_type& native_file, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -265,7 +262,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_file from another. /** * This constructor moves a file from one object to another. @@ -276,7 +272,7 @@ public: * @note Following the move, the moved-from object is in the same state as if * constructed using the @c basic_file(const executor_type&) constructor. */ - basic_file(basic_file&& other) BOOST_ASIO_NOEXCEPT + basic_file(basic_file&& other) noexcept : impl_(std::move(other.impl_)) { } @@ -313,10 +309,10 @@ public: */ template basic_file(basic_file&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(std::move(other.impl_)) { } @@ -332,19 +328,18 @@ public: * constructed using the @c basic_file(const executor_type&) constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_file& - >::type operator=(basic_file&& other) + > operator=(basic_file&& other) { basic_file tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -816,8 +811,8 @@ protected: private: // Disallow copying and assignment. - basic_file(const basic_file&) BOOST_ASIO_DELETED; - basic_file& operator=(const basic_file&) BOOST_ASIO_DELETED; + basic_file(const basic_file&) = delete; + basic_file& operator=(const basic_file&) = delete; }; } // namespace asio diff --git a/boost/asio/basic_io_object.hpp b/boost/asio/basic_io_object.hpp index 589b4435..1ec10b55 100644 --- a/boost/asio/basic_io_object.hpp +++ b/boost/asio/basic_io_object.hpp @@ -23,7 +23,6 @@ namespace boost { namespace asio { -#if defined(BOOST_ASIO_HAS_MOVE) namespace detail { // Type trait used to determine whether a service supports move. @@ -46,14 +45,13 @@ namespace detail static_cast(0))) == 1; }; } -#endif // defined(BOOST_ASIO_HAS_MOVE) /// Base class for all I/O objects. /** * @note All I/O objects are non-copyable. However, when using C++0x, certain * I/O objects do support move construction and move assignment. */ -#if !defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) +#if defined(GENERATING_DOCUMENTATION) template #else template class basic_io_object @@ -214,7 +211,7 @@ public: typedef boost::asio::io_context::executor_type executor_type; - executor_type get_executor() BOOST_ASIO_NOEXCEPT + executor_type get_executor() noexcept { return service_->get_io_context().get_executor(); } @@ -282,7 +279,6 @@ private: IoObjectService* service_; implementation_type implementation_; }; -#endif // defined(BOOST_ASIO_HAS_MOVE) } // namespace asio } // namespace boost diff --git a/boost/asio/basic_random_access_file.hpp b/boost/asio/basic_random_access_file.hpp index 464a66be..55129563 100644 --- a/boost/asio/basic_random_access_file.hpp +++ b/boost/asio/basic_random_access_file.hpp @@ -108,10 +108,10 @@ public: */ template explicit basic_random_access_file(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context) { } @@ -154,10 +154,10 @@ public: template basic_random_access_file(ExecutionContext& context, const char* path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context, path, open_flags) { } @@ -200,10 +200,10 @@ public: template basic_random_access_file(ExecutionContext& context, const std::string& path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context, path, open_flags) { } @@ -242,15 +242,14 @@ public: template basic_random_access_file(ExecutionContext& context, const native_handle_type& native_file, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context, native_file) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_random_access_file from another. /** * This constructor moves a random-access file from one object to another. @@ -262,7 +261,7 @@ public: * constructed using the @c basic_random_access_file(const executor_type&) * constructor. */ - basic_random_access_file(basic_random_access_file&& other) BOOST_ASIO_NOEXCEPT + basic_random_access_file(basic_random_access_file&& other) noexcept : basic_file(std::move(other)) { } @@ -299,10 +298,10 @@ public: */ template basic_random_access_file(basic_random_access_file&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(std::move(other)) { } @@ -321,15 +320,14 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_random_access_file& - >::type operator=(basic_random_access_file&& other) + > operator=(basic_random_access_file&& other) { basic_file::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the file. /** @@ -460,18 +458,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_write_some_at(uint64_t offset, const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, offset, buffers))) + declval(), token, offset, buffers)) { return async_initiate( @@ -601,18 +594,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_read_some_at(uint64_t offset, const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, offset, buffers))) + declval(), token, offset, buffers)) { return async_initiate( @@ -621,9 +609,9 @@ public: private: // Disallow copying and assignment. - basic_random_access_file(const basic_random_access_file&) BOOST_ASIO_DELETED; + basic_random_access_file(const basic_random_access_file&) = delete; basic_random_access_file& operator=( - const basic_random_access_file&) BOOST_ASIO_DELETED; + const basic_random_access_file&) = delete; class initiate_async_write_some_at { @@ -635,13 +623,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, uint64_t offset, const ConstBufferSequence& buffers) const { // If you get an error on the following line it means that your handler @@ -668,13 +656,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, uint64_t offset, const MutableBufferSequence& buffers) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/basic_raw_socket.hpp b/boost/asio/basic_raw_socket.hpp index 92537100..724c2110 100644 --- a/boost/asio/basic_raw_socket.hpp +++ b/boost/asio/basic_raw_socket.hpp @@ -114,9 +114,9 @@ public: */ template explicit basic_raw_socket(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context) { } @@ -151,10 +151,10 @@ public: */ template basic_raw_socket(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_socket(context, protocol) { } @@ -197,9 +197,9 @@ public: */ template basic_raw_socket(ExecutionContext& context, const endpoint_type& endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, endpoint) { } @@ -242,14 +242,13 @@ public: template basic_raw_socket(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_socket, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, protocol, native_socket) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_raw_socket from another. /** * This constructor moves a raw socket from one object to another. @@ -261,7 +260,7 @@ public: * constructed using the @c basic_raw_socket(const executor_type&) * constructor. */ - basic_raw_socket(basic_raw_socket&& other) BOOST_ASIO_NOEXCEPT + basic_raw_socket(basic_raw_socket&& other) noexcept : basic_socket(std::move(other)) { } @@ -297,10 +296,10 @@ public: */ template basic_raw_socket(basic_raw_socket&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : basic_socket(std::move(other)) { } @@ -317,16 +316,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_raw_socket& - >::type operator=(basic_raw_socket&& other) + > operator=(basic_raw_socket&& other) { basic_socket::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the socket. /** @@ -472,18 +470,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -537,18 +531,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -698,19 +688,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send_to(const ConstBufferSequence& buffers, const endpoint_type& destination, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, buffers, - destination, socket_base::message_flags(0)))) + destination, socket_base::message_flags(0))) { return async_initiate( @@ -763,19 +749,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send_to(const ConstBufferSequence& buffers, const endpoint_type& destination, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, destination, flags))) + buffers, destination, flags)) { return async_initiate( @@ -926,18 +908,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -992,17 +970,14 @@ public: template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, + = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -1152,19 +1127,16 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive_from(const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token + = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, buffers, - &sender_endpoint, socket_base::message_flags(0)))) + &sender_endpoint, socket_base::message_flags(0))) { return async_initiate( @@ -1220,18 +1192,15 @@ public: template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, + = default_completion_token_t> + auto async_receive_from(const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, &sender_endpoint, flags))) + buffers, &sender_endpoint, flags)) { return async_initiate( @@ -1241,8 +1210,8 @@ public: private: // Disallow copying and assignment. - basic_raw_socket(const basic_raw_socket&) BOOST_ASIO_DELETED; - basic_raw_socket& operator=(const basic_raw_socket&) BOOST_ASIO_DELETED; + basic_raw_socket(const basic_raw_socket&) = delete; + basic_raw_socket& operator=(const basic_raw_socket&) = delete; class initiate_async_send { @@ -1254,13 +1223,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, socket_base::message_flags flags) const { @@ -1288,13 +1257,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, const endpoint_type& destination, socket_base::message_flags flags) const { @@ -1322,13 +1291,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, socket_base::message_flags flags) const { @@ -1356,13 +1325,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, endpoint_type* sender_endpoint, socket_base::message_flags flags) const { diff --git a/boost/asio/basic_readable_pipe.hpp b/boost/asio/basic_readable_pipe.hpp index 28404a94..ab737ba4 100644 --- a/boost/asio/basic_readable_pipe.hpp +++ b/boost/asio/basic_readable_pipe.hpp @@ -21,6 +21,7 @@ || defined(GENERATING_DOCUMENTATION) #include +#include #include #include #include @@ -38,10 +39,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -113,10 +110,10 @@ public: */ template explicit basic_readable_pipe(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { } @@ -160,9 +157,9 @@ public: template basic_readable_pipe(ExecutionContext& context, const native_handle_type& native_pipe, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -171,7 +168,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_readable_pipe from another. /** * This constructor moves a pipe from one object to another. @@ -222,10 +218,10 @@ public: */ template basic_readable_pipe(basic_readable_pipe&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(std::move(other.impl_)) { } @@ -242,16 +238,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_readable_pipe& - >::type operator=(basic_readable_pipe&& other) + > operator=(basic_readable_pipe&& other) { basic_readable_pipe tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the pipe. /** @@ -264,7 +259,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -562,17 +557,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_read_some(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -581,8 +572,8 @@ public: private: // Disallow copying and assignment. - basic_readable_pipe(const basic_readable_pipe&) BOOST_ASIO_DELETED; - basic_readable_pipe& operator=(const basic_readable_pipe&) BOOST_ASIO_DELETED; + basic_readable_pipe(const basic_readable_pipe&) = delete; + basic_readable_pipe& operator=(const basic_readable_pipe&) = delete; class initiate_async_read_some { @@ -594,13 +585,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/basic_seq_packet_socket.hpp b/boost/asio/basic_seq_packet_socket.hpp index 8ed9b1fd..f03f388b 100644 --- a/boost/asio/basic_seq_packet_socket.hpp +++ b/boost/asio/basic_seq_packet_socket.hpp @@ -112,9 +112,9 @@ public: */ template explicit basic_seq_packet_socket(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context) { } @@ -155,10 +155,10 @@ public: template basic_seq_packet_socket(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_socket(context, protocol) { } @@ -203,9 +203,9 @@ public: template basic_seq_packet_socket(ExecutionContext& context, const endpoint_type& endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, endpoint) { } @@ -248,14 +248,13 @@ public: template basic_seq_packet_socket(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_socket, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, protocol, native_socket) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_seq_packet_socket from another. /** * This constructor moves a sequenced packet socket from one object to @@ -268,7 +267,7 @@ public: * constructed using the @c basic_seq_packet_socket(const executor_type&) * constructor. */ - basic_seq_packet_socket(basic_seq_packet_socket&& other) BOOST_ASIO_NOEXCEPT + basic_seq_packet_socket(basic_seq_packet_socket&& other) noexcept : basic_socket(std::move(other)) { } @@ -306,10 +305,10 @@ public: */ template basic_seq_packet_socket(basic_seq_packet_socket&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : basic_socket(std::move(other)) { } @@ -328,16 +327,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_seq_packet_socket& - >::type operator=(basic_seq_packet_socket&& other) + > operator=(basic_seq_packet_socket&& other) { basic_socket::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the socket. /** @@ -460,17 +458,15 @@ public: template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, + = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token + = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -652,19 +648,15 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, socket_base::message_flags& out_flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0), &out_flags))) + buffers, socket_base::message_flags(0), &out_flags)) { return async_initiate( @@ -732,20 +724,16 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, socket_base::message_flags in_flags, socket_base::message_flags& out_flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), - token, buffers, in_flags, &out_flags))) + token, buffers, in_flags, &out_flags)) { return async_initiate( @@ -755,9 +743,9 @@ public: private: // Disallow copying and assignment. - basic_seq_packet_socket(const basic_seq_packet_socket&) BOOST_ASIO_DELETED; + basic_seq_packet_socket(const basic_seq_packet_socket&) = delete; basic_seq_packet_socket& operator=( - const basic_seq_packet_socket&) BOOST_ASIO_DELETED; + const basic_seq_packet_socket&) = delete; class initiate_async_send { @@ -769,13 +757,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, socket_base::message_flags flags) const { @@ -803,13 +791,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, socket_base::message_flags in_flags, socket_base::message_flags* out_flags) const diff --git a/boost/asio/basic_serial_port.hpp b/boost/asio/basic_serial_port.hpp index 503406c7..835ed016 100644 --- a/boost/asio/basic_serial_port.hpp +++ b/boost/asio/basic_serial_port.hpp @@ -22,6 +22,7 @@ || defined(GENERATING_DOCUMENTATION) #include +#include #include #include #include @@ -38,10 +39,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -113,10 +110,10 @@ public: */ template explicit basic_serial_port(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { } @@ -155,9 +152,9 @@ public: */ template basic_serial_port(ExecutionContext& context, const char* device, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -199,9 +196,9 @@ public: */ template basic_serial_port(ExecutionContext& context, const std::string& device, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -248,9 +245,9 @@ public: template basic_serial_port(ExecutionContext& context, const native_handle_type& native_serial_port, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -259,7 +256,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_serial_port from another. /** * This constructor moves a serial port from one object to another. @@ -311,10 +307,10 @@ public: */ template basic_serial_port(basic_serial_port&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(std::move(other.impl_)) { } @@ -332,16 +328,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_serial_port& - >::type operator=(basic_serial_port&& other) + > operator=(basic_serial_port&& other) { basic_serial_port tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the serial port. /** @@ -354,7 +349,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -761,17 +756,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_write_some(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -896,17 +887,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_read_some(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -915,8 +902,8 @@ public: private: // Disallow copying and assignment. - basic_serial_port(const basic_serial_port&) BOOST_ASIO_DELETED; - basic_serial_port& operator=(const basic_serial_port&) BOOST_ASIO_DELETED; + basic_serial_port(const basic_serial_port&) = delete; + basic_serial_port& operator=(const basic_serial_port&) = delete; class initiate_async_write_some { @@ -928,13 +915,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers) const { // If you get an error on the following line it means that your handler @@ -961,13 +948,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/basic_signal_set.hpp b/boost/asio/basic_signal_set.hpp index c080bdff..4753f915 100644 --- a/boost/asio/basic_signal_set.hpp +++ b/boost/asio/basic_signal_set.hpp @@ -135,10 +135,10 @@ public: */ template explicit basic_signal_set(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { } @@ -181,10 +181,10 @@ public: */ template basic_signal_set(ExecutionContext& context, int signal_number_1, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -240,10 +240,10 @@ public: template basic_signal_set(ExecutionContext& context, int signal_number_1, int signal_number_2, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -309,10 +309,10 @@ public: template basic_signal_set(ExecutionContext& context, int signal_number_1, int signal_number_2, int signal_number_3, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -335,7 +335,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -591,15 +591,12 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code, int)) - SignalToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(SignalToken, - void (boost::system::error_code, int)) - async_wait( - BOOST_ASIO_MOVE_ARG(SignalToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + SignalToken = default_completion_token_t> + auto async_wait( + SignalToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token))) + declval(), token)) { return async_initiate( initiate_async_wait(this), token); @@ -607,8 +604,8 @@ public: private: // Disallow copying and assignment. - basic_signal_set(const basic_signal_set&) BOOST_ASIO_DELETED; - basic_signal_set& operator=(const basic_signal_set&) BOOST_ASIO_DELETED; + basic_signal_set(const basic_signal_set&) = delete; + basic_signal_set& operator=(const basic_signal_set&) = delete; class initiate_async_wait { @@ -620,13 +617,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(SignalHandler) handler) const + void operator()(SignalHandler&& handler) const { // If you get an error on the following line it means that your handler // does not meet the documented type requirements for a SignalHandler. diff --git a/boost/asio/basic_socket.hpp b/boost/asio/basic_socket.hpp index 1bb6d280..8db1e06b 100644 --- a/boost/asio/basic_socket.hpp +++ b/boost/asio/basic_socket.hpp @@ -15,6 +15,7 @@ # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) +#include #include #include #include @@ -38,10 +39,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -135,9 +132,9 @@ public: */ template explicit basic_socket(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { } @@ -175,10 +172,10 @@ public: */ template basic_socket(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -230,9 +227,9 @@ public: */ template basic_socket(ExecutionContext& context, const endpoint_type& endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -283,9 +280,9 @@ public: template basic_socket(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_socket, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -294,7 +291,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_socket from another. /** * This constructor moves a socket from one object to another. @@ -305,7 +301,7 @@ public: * @note Following the move, the moved-from object is in the same state as if * constructed using the @c basic_socket(const executor_type&) constructor. */ - basic_socket(basic_socket&& other) BOOST_ASIO_NOEXCEPT + basic_socket(basic_socket&& other) noexcept : impl_(std::move(other.impl_)) { } @@ -342,10 +338,10 @@ public: */ template basic_socket(basic_socket&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : impl_(std::move(other.impl_)) { } @@ -361,20 +357,19 @@ public: * constructed using the @c basic_socket(const executor_type&) constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_socket& - >::type operator=(basic_socket&& other) + > operator=(basic_socket&& other) { basic_socket tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -968,16 +963,13 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code)) - ConnectToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ConnectToken, - void (boost::system::error_code)) - async_connect(const endpoint_type& peer_endpoint, - BOOST_ASIO_MOVE_ARG(ConnectToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ConnectToken = default_completion_token_t> + auto async_connect(const endpoint_type& peer_endpoint, + ConnectToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, - peer_endpoint, declval()))) + declval(), token, + peer_endpoint, declval())) { boost::system::error_code open_ec; if (!is_open()) @@ -1822,15 +1814,12 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code)) - WaitToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WaitToken, - void (boost::system::error_code)) - async_wait(wait_type w, - BOOST_ASIO_MOVE_ARG(WaitToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WaitToken = default_completion_token_t> + auto async_wait(wait_type w, + WaitToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, w))) + declval(), token, w)) { return async_initiate( initiate_async_wait(this), token, w); @@ -1862,8 +1851,8 @@ protected: private: // Disallow copying and assignment. - basic_socket(const basic_socket&) BOOST_ASIO_DELETED; - basic_socket& operator=(const basic_socket&) BOOST_ASIO_DELETED; + basic_socket(const basic_socket&) = delete; + basic_socket& operator=(const basic_socket&) = delete; class initiate_async_connect { @@ -1875,13 +1864,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ConnectHandler) handler, + void operator()(ConnectHandler&& handler, const endpoint_type& peer_endpoint, const boost::system::error_code& open_ec) const { @@ -1893,7 +1882,7 @@ private: { boost::asio::post(self_->impl_.get_executor(), boost::asio::detail::bind_handler( - BOOST_ASIO_MOVE_CAST(ConnectHandler)(handler), open_ec)); + static_cast(handler), open_ec)); } else { @@ -1918,13 +1907,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WaitHandler) handler, wait_type w) const + void operator()(WaitHandler&& handler, wait_type w) const { // If you get an error on the following line it means that your handler // does not meet the documented type requirements for a WaitHandler. diff --git a/boost/asio/basic_socket_acceptor.hpp b/boost/asio/basic_socket_acceptor.hpp index a9d1d25e..e06ed7fa 100644 --- a/boost/asio/basic_socket_acceptor.hpp +++ b/boost/asio/basic_socket_acceptor.hpp @@ -15,6 +15,7 @@ # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) +#include #include #include #include @@ -37,10 +38,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -152,9 +149,9 @@ public: */ template explicit basic_socket_acceptor(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { } @@ -194,10 +191,10 @@ public: template basic_socket_acceptor(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { boost::system::error_code ec; @@ -283,9 +280,9 @@ public: template basic_socket_acceptor(ExecutionContext& context, const endpoint_type& endpoint, bool reuse_addr = true, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -348,9 +345,9 @@ public: template basic_socket_acceptor(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_acceptor, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -359,7 +356,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_socket_acceptor from another. /** * This constructor moves an acceptor from one object to another. @@ -371,7 +367,7 @@ public: * constructed using the @c basic_socket_acceptor(const executor_type&) * constructor. */ - basic_socket_acceptor(basic_socket_acceptor&& other) BOOST_ASIO_NOEXCEPT + basic_socket_acceptor(basic_socket_acceptor&& other) noexcept : impl_(std::move(other.impl_)) { } @@ -411,10 +407,10 @@ public: */ template basic_socket_acceptor(basic_socket_acceptor&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : impl_(std::move(other.impl_)) { } @@ -432,17 +428,16 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_socket_acceptor& - >::type operator=(basic_socket_acceptor&& other) + > operator=(basic_socket_acceptor&& other) { basic_socket_acceptor tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the acceptor. /** @@ -455,7 +450,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -1255,15 +1250,12 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code)) - WaitToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WaitToken, - void (boost::system::error_code)) - async_wait(wait_type w, - BOOST_ASIO_MOVE_ARG(WaitToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WaitToken = default_completion_token_t> + auto async_wait(wait_type w, + WaitToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, w))) + declval(), token, w)) { return async_initiate( initiate_async_wait(this), token, w); @@ -1290,9 +1282,9 @@ public: */ template void accept(basic_socket& peer, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { boost::system::error_code ec; impl_.get_service().accept(impl_.get_implementation(), @@ -1326,9 +1318,9 @@ public: template BOOST_ASIO_SYNC_OP_VOID accept( basic_socket& peer, boost::system::error_code& ec, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { impl_.get_service().accept(impl_.get_implementation(), peer, static_cast(0), ec); @@ -1392,19 +1384,16 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(AcceptToken, - void (boost::system::error_code)) - async_accept(basic_socket& peer, - BOOST_ASIO_MOVE_ARG(AcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type), - typename constraint< + AcceptToken = default_completion_token_t> + auto async_accept(basic_socket& peer, + AcceptToken&& token = default_completion_token_t(), + constraint_t< is_convertible::value - >::type = 0) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + > = 0) + -> decltype( async_initiate( - declval(), token, - &peer, static_cast(0)))) + declval(), token, + &peer, static_cast(0))) { return async_initiate( initiate_async_accept(this), token, @@ -1525,23 +1514,19 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(AcceptToken, - void (boost::system::error_code)) - async_accept(basic_socket& peer, + AcceptToken = default_completion_token_t> + auto async_accept(basic_socket& peer, endpoint_type& peer_endpoint, - BOOST_ASIO_MOVE_ARG(AcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + AcceptToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, &peer, &peer_endpoint))) + declval(), token, &peer, &peer_endpoint)) { return async_initiate( initiate_async_accept(this), token, &peer, &peer_endpoint); } #endif // !defined(BOOST_ASIO_NO_EXTENSIONS) -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Accept a new connection. /** * This function is used to accept a new connection from a peer. The function @@ -1671,22 +1656,17 @@ public: BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code, typename Protocol::socket::template rebind_executor< executor_type>::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template - rebind_executor::other)) - async_accept( - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + = default_completion_token_t> + auto async_accept( + MoveAcceptToken&& token = default_completion_token_t()) + -> decltype( async_initiate::other)>( declval(), token, - declval(), static_cast(0), + declval(), static_cast(0), static_cast::other*>(0)))) + rebind_executor::other*>(0))) { return async_initiate typename Protocol::socket::template rebind_executor::other accept(const Executor1& ex, - typename constraint< + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) + > = 0) { boost::system::error_code ec; typename Protocol::socket::template @@ -1763,9 +1743,9 @@ public: typename Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type>::other accept(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { boost::system::error_code ec; typename Protocol::socket::template rebind_executor< @@ -1806,10 +1786,10 @@ public: template typename Protocol::socket::template rebind_executor::other accept(const Executor1& ex, boost::system::error_code& ec, - typename constraint< + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) + > = 0) { typename Protocol::socket::template rebind_executor::other peer(ex); @@ -1849,9 +1829,9 @@ public: typename Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type>::other accept(ExecutionContext& context, boost::system::error_code& ec, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { typename Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type>::other peer(context); @@ -1925,22 +1905,17 @@ public: template ::value + constraint_t::value || execution::is_executor::value, - Executor1>::type>::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template rebind_executor< - Executor1>::other)) - async_accept(const Executor1& ex, - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type), - typename constraint< + Executor1>>::other)) MoveAcceptToken + = default_completion_token_t> + auto async_accept(const Executor1& ex, + MoveAcceptToken&& token = default_completion_token_t(), + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + > = 0) + -> decltype( async_initiate(), token, ex, static_cast(0), static_cast::other*>(0)))) + rebind_executor::other*>(0))) { return async_initiate::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template rebind_executor< - typename ExecutionContext::executor_type>::other)) - async_accept(ExecutionContext& context, - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type), - typename constraint< + = default_completion_token_t> + auto async_accept(ExecutionContext& context, + MoveAcceptToken&& token = default_completion_token_t(), + constraint_t< is_convertible::value - >::type = 0) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + > = 0) + -> decltype( async_initiate(), token, context.get_executor(), static_cast(0), static_cast::other*>(0)))) + typename ExecutionContext::executor_type>::other*>(0))) { return async_initiate::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template - rebind_executor::other)) - async_accept(endpoint_type& peer_endpoint, - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + = default_completion_token_t> + auto async_accept(endpoint_type& peer_endpoint, + MoveAcceptToken&& token = default_completion_token_t()) + -> decltype( async_initiate::other)>( declval(), token, - declval(), &peer_endpoint, + declval(), &peer_endpoint, static_cast::other*>(0)))) + rebind_executor::other*>(0))) { return async_initiate typename Protocol::socket::template rebind_executor::other accept(const Executor1& ex, endpoint_type& peer_endpoint, - typename constraint< + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) + > = 0) { boost::system::error_code ec; typename Protocol::socket::template @@ -2306,9 +2271,9 @@ public: typename Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type>::other accept(ExecutionContext& context, endpoint_type& peer_endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { boost::system::error_code ec; typename Protocol::socket::template rebind_executor< @@ -2356,10 +2321,10 @@ public: typename Protocol::socket::template rebind_executor::other accept(const executor_type& ex, endpoint_type& peer_endpoint, boost::system::error_code& ec, - typename constraint< + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) + > = 0) { typename Protocol::socket::template rebind_executor::other peer(ex); @@ -2406,9 +2371,9 @@ public: typename ExecutionContext::executor_type>::other accept(ExecutionContext& context, endpoint_type& peer_endpoint, boost::system::error_code& ec, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) { typename Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type>::other peer(context); @@ -2489,29 +2454,24 @@ public: template ::value + constraint_t::value || execution::is_executor::value, - Executor1>::type>::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template rebind_executor< - Executor1>::other)) - async_accept(const Executor1& ex, endpoint_type& peer_endpoint, - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type), - typename constraint< + Executor1>>::other)) MoveAcceptToken + = default_completion_token_t> + auto async_accept(const Executor1& ex, endpoint_type& peer_endpoint, + MoveAcceptToken&& token = default_completion_token_t(), + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + > = 0) + -> decltype( async_initiate::other)>( declval(), token, ex, &peer_endpoint, static_cast::other*>(0)))) + rebind_executor::other*>(0))) { return async_initiate::other)) MoveAcceptToken - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(MoveAcceptToken, - void (boost::system::error_code, - typename Protocol::socket::template rebind_executor< - typename ExecutionContext::executor_type>::other)) - async_accept(ExecutionContext& context, - endpoint_type& peer_endpoint, - BOOST_ASIO_MOVE_ARG(MoveAcceptToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type), - typename constraint< + = default_completion_token_t> + auto async_accept(ExecutionContext& context, endpoint_type& peer_endpoint, + MoveAcceptToken&& token = default_completion_token_t(), + constraint_t< is_convertible::value - >::type = 0) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + > = 0) + -> decltype( async_initiate(), token, context.get_executor(), &peer_endpoint, static_cast::other*>(0)))) + typename ExecutionContext::executor_type>::other*>(0))) { return async_initiate::other*>(0)); } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) private: // Disallow copying and assignment. - basic_socket_acceptor(const basic_socket_acceptor&) BOOST_ASIO_DELETED; + basic_socket_acceptor(const basic_socket_acceptor&) = delete; basic_socket_acceptor& operator=( - const basic_socket_acceptor&) BOOST_ASIO_DELETED; + const basic_socket_acceptor&) = delete; class initiate_async_wait { @@ -2644,13 +2597,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WaitHandler) handler, wait_type w) const + void operator()(WaitHandler&& handler, wait_type w) const { // If you get an error on the following line it means that your handler // does not meet the documented type requirements for a WaitHandler. @@ -2676,13 +2629,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(AcceptHandler) handler, + void operator()(AcceptHandler&& handler, basic_socket* peer, endpoint_type* peer_endpoint) const { @@ -2710,13 +2663,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler, + void operator()(MoveAcceptHandler&& handler, const Executor1& peer_ex, endpoint_type* peer_endpoint, Socket*) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/basic_socket_iostream.hpp b/boost/asio/basic_socket_iostream.hpp index a7eb6bec..d5d324d0 100644 --- a/boost/asio/basic_socket_iostream.hpp +++ b/boost/asio/basic_socket_iostream.hpp @@ -23,55 +23,6 @@ #include #include -#if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -# include - -// A macro that should expand to: -// template -// explicit basic_socket_iostream(T1 x1, ..., Tn xn) -// : std::basic_iostream( -// &this->detail::socket_iostream_base< -// Protocol, Clock, WaitTraits>::streambuf_) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define BOOST_ASIO_PRIVATE_CTR_DEF(n) \ - template \ - explicit basic_socket_iostream(BOOST_ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - : std::basic_iostream( \ - &this->detail::socket_iostream_base< \ - Protocol, Clock, WaitTraits>::streambuf_) \ - { \ - this->setf(std::ios_base::unitbuf); \ - if (rdbuf()->connect(BOOST_ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -// A macro that should expand to: -// template -// void connect(T1 x1, ..., Tn xn) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define BOOST_ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - void connect(BOOST_ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - if (rdbuf()->connect(BOOST_ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - #include namespace boost { @@ -88,7 +39,6 @@ protected: { } -#if defined(BOOST_ASIO_HAS_MOVE) socket_iostream_base(socket_iostream_base&& other) : streambuf_(std::move(other.streambuf_)) { @@ -104,7 +54,6 @@ protected: streambuf_ = std::move(other.streambuf_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) basic_socket_streambuf streambuf_; }; @@ -119,11 +68,11 @@ template > + typename WaitTraits = time_traits> #else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits > + typename WaitTraits = wait_traits> #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) class basic_socket_iostream; @@ -134,7 +83,7 @@ class basic_socket_iostream; #if defined(GENERATING_DOCUMENTATION) template > + typename WaitTraits = wait_traits> #else // defined(GENERATING_DOCUMENTATION) template #endif // defined(GENERATING_DOCUMENTATION) @@ -194,7 +143,6 @@ public: this->setf(std::ios_base::unitbuf); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Construct a basic_socket_iostream from the supplied socket. explicit basic_socket_iostream(basic_stream_socket s) : detail::socket_iostream_base< @@ -206,8 +154,6 @@ public: this->setf(std::ios_base::unitbuf); } -#if defined(BOOST_ASIO_HAS_STD_IOSTREAM_MOVE) \ - || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_socket_iostream from another. basic_socket_iostream(basic_socket_iostream&& other) : detail::socket_iostream_base< @@ -226,20 +172,13 @@ public: Protocol, Clock, WaitTraits>::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_STD_IOSTREAM_MOVE) - // || defined(GENERATING_DOCUMENTATION) -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -#if defined(GENERATING_DOCUMENTATION) /// Establish a connection to an endpoint corresponding to a resolver query. /** * This constructor automatically establishes a connection based on the * supplied resolver query parameters. The arguments are used to construct * a resolver query object. */ - template - explicit basic_socket_iostream(T1 t1, ..., TN tn); -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template explicit basic_socket_iostream(T... x) : std::basic_iostream( @@ -250,29 +189,19 @@ public: if (rdbuf()->connect(x...) == 0) this->setstate(std::ios_base::failbit); } -#else - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_CTR_DEF) -#endif -#if defined(GENERATING_DOCUMENTATION) /// Establish a connection to an endpoint corresponding to a resolver query. /** * This function automatically establishes a connection based on the supplied * resolver query parameters. The arguments are used to construct a resolver * query object. */ - template - void connect(T1 t1, ..., TN tn); -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template void connect(T... x) { if (rdbuf()->connect(x...) == 0) this->setstate(std::ios_base::failbit); } -#else - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_CONNECT_DEF) -#endif /// Close the connection. void close() @@ -389,9 +318,9 @@ public: private: // Disallow copying and assignment. - basic_socket_iostream(const basic_socket_iostream&) BOOST_ASIO_DELETED; + basic_socket_iostream(const basic_socket_iostream&) = delete; basic_socket_iostream& operator=( - const basic_socket_iostream&) BOOST_ASIO_DELETED; + const basic_socket_iostream&) = delete; }; } // namespace asio @@ -399,11 +328,6 @@ private: #include -#if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) -# undef BOOST_ASIO_PRIVATE_CTR_DEF -# undef BOOST_ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - #endif // !defined(BOOST_ASIO_NO_IOSTREAM) #endif // BOOST_ASIO_BASIC_SOCKET_IOSTREAM_HPP diff --git a/boost/asio/basic_socket_streambuf.hpp b/boost/asio/basic_socket_streambuf.hpp index 8b6aee09..23114a38 100644 --- a/boost/asio/basic_socket_streambuf.hpp +++ b/boost/asio/basic_socket_streambuf.hpp @@ -37,38 +37,6 @@ #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -#if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - -# include - -// A macro that should expand to: -// template -// basic_socket_streambuf* connect(T1 x1, ..., Tn xn) -// { -// init_buffers(); -// typedef typename Protocol::resolver resolver_type; -// resolver_type resolver(socket().get_executor()); -// connect_to_endpoints( -// resolver.resolve(x1, ..., xn, ec_)); -// return !ec_ ? this : 0; -// } -// This macro should only persist within this file. - -# define BOOST_ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - basic_socket_streambuf* connect(BOOST_ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - init_buffers(); \ - typedef typename Protocol::resolver resolver_type; \ - resolver_type resolver(socket().get_executor()); \ - connect_to_endpoints( \ - resolver.resolve(BOOST_ASIO_VARIADIC_BYVAL_ARGS(n), ec_)); \ - return !ec_ ? this : 0; \ - } \ - /**/ - -#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - #include namespace boost { @@ -117,11 +85,11 @@ template > + typename WaitTraits = time_traits> #else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits > + typename WaitTraits = wait_traits> #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) class basic_socket_streambuf; @@ -132,7 +100,7 @@ class basic_socket_streambuf; #if defined(GENERATING_DOCUMENTATION) template > + typename WaitTraits = wait_traits> #else // defined(GENERATING_DOCUMENTATION) template #endif // defined(GENERATING_DOCUMENTATION) @@ -198,7 +166,6 @@ public: init_buffers(); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Construct a basic_socket_streambuf from the supplied socket. explicit basic_socket_streambuf(basic_stream_socket s) : detail::socket_streambuf_io_context(0), @@ -242,7 +209,6 @@ public: other.init_buffers(); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destructor flushes buffered data. virtual ~basic_socket_streambuf() @@ -266,7 +232,6 @@ public: return !ec_ ? this : 0; } -#if defined(GENERATING_DOCUMENTATION) /// Establish a connection. /** * This function automatically establishes a connection based on the supplied @@ -276,9 +241,6 @@ public: * @return \c this if a connection was successfully established, a null * pointer otherwise. */ - template - basic_socket_streambuf* connect(T1 t1, ..., TN tn); -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template basic_socket_streambuf* connect(T... x) { @@ -288,9 +250,6 @@ public: connect_to_endpoints(resolver.resolve(x..., ec_)); return !ec_ ? this : 0; } -#else - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_CONNECT_DEF) -#endif /// Close the connection. /** @@ -560,9 +519,9 @@ protected: private: // Disallow copying and assignment. - basic_socket_streambuf(const basic_socket_streambuf&) BOOST_ASIO_DELETED; + basic_socket_streambuf(const basic_socket_streambuf&) = delete; basic_socket_streambuf& operator=( - const basic_socket_streambuf&) BOOST_ASIO_DELETED; + const basic_socket_streambuf&) = delete; void init_buffers() { @@ -680,10 +639,6 @@ private: #include -#if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) -# undef BOOST_ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - #endif // !defined(BOOST_ASIO_NO_IOSTREAM) #endif // BOOST_ASIO_BASIC_SOCKET_STREAMBUF_HPP diff --git a/boost/asio/basic_stream_file.hpp b/boost/asio/basic_stream_file.hpp index 727f85cb..66115a1c 100644 --- a/boost/asio/basic_stream_file.hpp +++ b/boost/asio/basic_stream_file.hpp @@ -107,10 +107,10 @@ public: */ template explicit basic_stream_file(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context) { this->impl_.get_service().set_is_stream( @@ -162,10 +162,10 @@ public: template basic_stream_file(ExecutionContext& context, const char* path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context) { boost::system::error_code ec; @@ -222,10 +222,10 @@ public: template basic_stream_file(ExecutionContext& context, const std::string& path, file_base::flags open_flags, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context) { boost::system::error_code ec; @@ -273,17 +273,16 @@ public: template basic_stream_file(ExecutionContext& context, const native_handle_type& native_file, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(context, native_file) { this->impl_.get_service().set_is_stream( this->impl_.get_implementation(), true); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_stream_file from another. /** * This constructor moves a stream file from one object to another. @@ -295,7 +294,7 @@ public: * constructed using the @c basic_stream_file(const executor_type&) * constructor. */ - basic_stream_file(basic_stream_file&& other) BOOST_ASIO_NOEXCEPT + basic_stream_file(basic_stream_file&& other) noexcept : basic_file(std::move(other)) { } @@ -331,10 +330,10 @@ public: */ template basic_stream_file(basic_stream_file&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_file(std::move(other)) { } @@ -351,15 +350,14 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_stream_file& - >::type operator=(basic_stream_file&& other) + > operator=(basic_stream_file&& other) { basic_file::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the file. /** @@ -523,17 +521,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_write_some(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -656,17 +650,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_read_some(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -675,8 +665,8 @@ public: private: // Disallow copying and assignment. - basic_stream_file(const basic_stream_file&) BOOST_ASIO_DELETED; - basic_stream_file& operator=(const basic_stream_file&) BOOST_ASIO_DELETED; + basic_stream_file(const basic_stream_file&) = delete; + basic_stream_file& operator=(const basic_stream_file&) = delete; class initiate_async_write_some { @@ -688,13 +678,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers) const { // If you get an error on the following line it means that your handler @@ -721,13 +711,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/basic_stream_socket.hpp b/boost/asio/basic_stream_socket.hpp index a877c4c4..441210d8 100644 --- a/boost/asio/basic_stream_socket.hpp +++ b/boost/asio/basic_stream_socket.hpp @@ -117,9 +117,9 @@ public: */ template explicit basic_stream_socket(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context) { } @@ -156,10 +156,10 @@ public: */ template basic_stream_socket(ExecutionContext& context, const protocol_type& protocol, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : basic_socket(context, protocol) { } @@ -202,9 +202,9 @@ public: */ template basic_stream_socket(ExecutionContext& context, const endpoint_type& endpoint, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, endpoint) { } @@ -247,14 +247,13 @@ public: template basic_stream_socket(ExecutionContext& context, const protocol_type& protocol, const native_handle_type& native_socket, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : basic_socket(context, protocol, native_socket) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_stream_socket from another. /** * This constructor moves a stream socket from one object to another. @@ -266,7 +265,7 @@ public: * constructed using the @c basic_stream_socket(const executor_type&) * constructor. */ - basic_stream_socket(basic_stream_socket&& other) BOOST_ASIO_NOEXCEPT + basic_stream_socket(basic_stream_socket&& other) noexcept : basic_socket(std::move(other)) { } @@ -302,10 +301,10 @@ public: */ template basic_stream_socket(basic_stream_socket&& other, - typename constraint< + constraint_t< is_convertible::value && is_convertible::value - >::type = 0) + > = 0) : basic_socket(std::move(other)) { } @@ -322,16 +321,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value && is_convertible::value, basic_stream_socket& - >::type operator=(basic_stream_socket&& other) + > operator=(basic_stream_socket&& other) { basic_socket::operator=(std::move(other)); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the socket. /** @@ -494,18 +492,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -568,18 +562,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, + std::size_t)) WriteToken = default_completion_token_t> + auto async_send(const ConstBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -746,18 +736,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -822,18 +808,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, + std::size_t)) ReadToken = default_completion_token_t> + auto async_receive(const MutableBufferSequence& buffers, socket_base::message_flags flags, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers, flags))) + declval(), token, buffers, flags)) { return async_initiate( @@ -954,18 +936,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_write_some(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -1090,18 +1068,14 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ReadToken, - void (boost::system::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(ReadToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) ReadToken = default_completion_token_t> + auto async_read_some(const MutableBufferSequence& buffers, + ReadToken&& token = default_completion_token_t()) + -> decltype( async_initiate( declval(), token, - buffers, socket_base::message_flags(0)))) + buffers, socket_base::message_flags(0))) { return async_initiate( @@ -1111,8 +1085,8 @@ public: private: // Disallow copying and assignment. - basic_stream_socket(const basic_stream_socket&) BOOST_ASIO_DELETED; - basic_stream_socket& operator=(const basic_stream_socket&) BOOST_ASIO_DELETED; + basic_stream_socket(const basic_stream_socket&) = delete; + basic_stream_socket& operator=(const basic_stream_socket&) = delete; class initiate_async_send { @@ -1124,13 +1098,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers, socket_base::message_flags flags) const { @@ -1158,13 +1132,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(ReadHandler) handler, + void operator()(ReadHandler&& handler, const MutableBufferSequence& buffers, socket_base::message_flags flags) const { diff --git a/boost/asio/basic_streambuf.hpp b/boost/asio/basic_streambuf.hpp index f28bb1ea..801c6a13 100644 --- a/boost/asio/basic_streambuf.hpp +++ b/boost/asio/basic_streambuf.hpp @@ -104,7 +104,7 @@ namespace asio { * @endcode */ #if defined(GENERATING_DOCUMENTATION) -template > +template > #else template #endif @@ -156,7 +156,7 @@ public: * } * @endcode */ - std::size_t size() const BOOST_ASIO_NOEXCEPT + std::size_t size() const noexcept { return pptr() - gptr(); } @@ -166,7 +166,7 @@ public: * @returns The allowed maximum of the sum of the sizes of the input sequence * and output sequence. */ - std::size_t max_size() const BOOST_ASIO_NOEXCEPT + std::size_t max_size() const noexcept { return max_size_; } @@ -176,7 +176,7 @@ public: * @returns The current total capacity of the streambuf, i.e. for both the * input sequence and output sequence. */ - std::size_t capacity() const BOOST_ASIO_NOEXCEPT + std::size_t capacity() const noexcept { return buffer_.capacity(); } @@ -190,7 +190,7 @@ public: * @note The returned object is invalidated by any @c basic_streambuf member * function that modifies the input sequence or output sequence. */ - const_buffers_type data() const BOOST_ASIO_NOEXCEPT + const_buffers_type data() const noexcept { return boost::asio::buffer(boost::asio::const_buffer(gptr(), (pptr() - gptr()) * sizeof(char_type))); @@ -362,7 +362,7 @@ private: /// Adapts basic_streambuf to the dynamic buffer sequence type requirements. #if defined(GENERATING_DOCUMENTATION) -template > +template > #else template #endif @@ -384,39 +384,37 @@ public: } /// Copy construct a basic_streambuf_ref. - basic_streambuf_ref(const basic_streambuf_ref& other) BOOST_ASIO_NOEXCEPT + basic_streambuf_ref(const basic_streambuf_ref& other) noexcept : sb_(other.sb_) { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move construct a basic_streambuf_ref. - basic_streambuf_ref(basic_streambuf_ref&& other) BOOST_ASIO_NOEXCEPT + basic_streambuf_ref(basic_streambuf_ref&& other) noexcept : sb_(other.sb_) { } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Get the size of the input sequence. - std::size_t size() const BOOST_ASIO_NOEXCEPT + std::size_t size() const noexcept { return sb_.size(); } /// Get the maximum size of the dynamic buffer. - std::size_t max_size() const BOOST_ASIO_NOEXCEPT + std::size_t max_size() const noexcept { return sb_.max_size(); } /// Get the current capacity of the dynamic buffer. - std::size_t capacity() const BOOST_ASIO_NOEXCEPT + std::size_t capacity() const noexcept { return sb_.capacity(); } /// Get a list of buffers that represents the input sequence. - const_buffers_type data() const BOOST_ASIO_NOEXCEPT + const_buffers_type data() const noexcept { return sb_.data(); } diff --git a/boost/asio/basic_streambuf_fwd.hpp b/boost/asio/basic_streambuf_fwd.hpp index 65b1cb7e..c4d6110b 100644 --- a/boost/asio/basic_streambuf_fwd.hpp +++ b/boost/asio/basic_streambuf_fwd.hpp @@ -24,10 +24,10 @@ namespace boost { namespace asio { -template > +template > class basic_streambuf; -template > +template > class basic_streambuf_ref; } // namespace asio diff --git a/boost/asio/basic_waitable_timer.hpp b/boost/asio/basic_waitable_timer.hpp index 23333de1..a2d590d4 100644 --- a/boost/asio/basic_waitable_timer.hpp +++ b/boost/asio/basic_waitable_timer.hpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -27,10 +28,6 @@ #include #include -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -195,9 +192,9 @@ public: */ template explicit basic_waitable_timer(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { } @@ -234,9 +231,9 @@ public: template explicit basic_waitable_timer(ExecutionContext& context, const time_point& expiry_time, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -277,9 +274,9 @@ public: template explicit basic_waitable_timer(ExecutionContext& context, const duration& expiry_time, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -288,7 +285,6 @@ public: boost::asio::detail::throw_error(ec, "expires_after"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_waitable_timer from another. /** * This constructor moves a timer from one object to another. @@ -341,9 +337,9 @@ public: template basic_waitable_timer( basic_waitable_timer&& other, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(std::move(other.impl_)) { } @@ -361,16 +357,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_waitable_timer& - >::type operator=(basic_waitable_timer&& other) + > operator=(basic_waitable_timer&& other) { basic_waitable_timer tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the timer. /** @@ -382,7 +377,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -769,15 +764,12 @@ public: */ template < BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code)) - WaitToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX( - WaitToken, void (boost::system::error_code)) - async_wait( - BOOST_ASIO_MOVE_ARG(WaitToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + WaitToken = default_completion_token_t> + auto async_wait( + WaitToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token))) + declval(), token)) { return async_initiate( initiate_async_wait(this), token); @@ -785,9 +777,8 @@ public: private: // Disallow copying and assignment. - basic_waitable_timer(const basic_waitable_timer&) BOOST_ASIO_DELETED; - basic_waitable_timer& operator=( - const basic_waitable_timer&) BOOST_ASIO_DELETED; + basic_waitable_timer(const basic_waitable_timer&) = delete; + basic_waitable_timer& operator=(const basic_waitable_timer&) = delete; class initiate_async_wait { @@ -799,13 +790,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WaitHandler) handler) const + void operator()(WaitHandler&& handler) const { // If you get an error on the following line it means that your handler // does not meet the documented type requirements for a WaitHandler. @@ -823,7 +814,7 @@ private: detail::io_object_impl< detail::deadline_timer_service< - detail::chrono_time_traits >, + detail::chrono_time_traits>, executor_type > impl_; }; diff --git a/boost/asio/basic_writable_pipe.hpp b/boost/asio/basic_writable_pipe.hpp index 3ae16b76..27f79035 100644 --- a/boost/asio/basic_writable_pipe.hpp +++ b/boost/asio/basic_writable_pipe.hpp @@ -21,6 +21,7 @@ || defined(GENERATING_DOCUMENTATION) #include +#include #include #include #include @@ -38,10 +39,6 @@ # include #endif -#if defined(BOOST_ASIO_HAS_MOVE) -# include -#endif // defined(BOOST_ASIO_HAS_MOVE) - #include namespace boost { @@ -113,10 +110,10 @@ public: */ template explicit basic_writable_pipe(ExecutionContext& context, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(0, 0, context) { } @@ -160,9 +157,9 @@ public: template basic_writable_pipe(ExecutionContext& context, const native_handle_type& native_pipe, - typename constraint< + constraint_t< is_convertible::value - >::type = 0) + > = 0) : impl_(0, 0, context) { boost::system::error_code ec; @@ -171,7 +168,6 @@ public: boost::asio::detail::throw_error(ec, "assign"); } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move-construct a basic_writable_pipe from another. /** * This constructor moves a pipe from one object to another. @@ -222,10 +218,10 @@ public: */ template basic_writable_pipe(basic_writable_pipe&& other, - typename constraint< + constraint_t< is_convertible::value, defaulted_constraint - >::type = defaulted_constraint()) + > = defaulted_constraint()) : impl_(std::move(other.impl_)) { } @@ -242,16 +238,15 @@ public: * constructor. */ template - typename constraint< + constraint_t< is_convertible::value, basic_writable_pipe& - >::type operator=(basic_writable_pipe&& other) + > operator=(basic_writable_pipe&& other) { basic_writable_pipe tmp(std::move(other)); impl_ = std::move(tmp.impl_); return *this; } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Destroys the pipe. /** @@ -264,7 +259,7 @@ public: } /// Get the executor associated with the object. - const executor_type& get_executor() BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() noexcept { return impl_.get_executor(); } @@ -558,17 +553,13 @@ public: */ template - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(WriteToken, - void (boost::system::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - BOOST_ASIO_MOVE_ARG(WriteToken) token - BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) - BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(( + std::size_t)) WriteToken = default_completion_token_t> + auto async_write_some(const ConstBufferSequence& buffers, + WriteToken&& token = default_completion_token_t()) + -> decltype( async_initiate( - declval(), token, buffers))) + declval(), token, buffers)) { return async_initiate( @@ -577,8 +568,8 @@ public: private: // Disallow copying and assignment. - basic_writable_pipe(const basic_writable_pipe&) BOOST_ASIO_DELETED; - basic_writable_pipe& operator=(const basic_writable_pipe&) BOOST_ASIO_DELETED; + basic_writable_pipe(const basic_writable_pipe&) = delete; + basic_writable_pipe& operator=(const basic_writable_pipe&) = delete; class initiate_async_write_some { @@ -590,13 +581,13 @@ private: { } - const executor_type& get_executor() const BOOST_ASIO_NOEXCEPT + const executor_type& get_executor() const noexcept { return self_->get_executor(); } template - void operator()(BOOST_ASIO_MOVE_ARG(WriteHandler) handler, + void operator()(WriteHandler&& handler, const ConstBufferSequence& buffers) const { // If you get an error on the following line it means that your handler diff --git a/boost/asio/bind_allocator.hpp b/boost/asio/bind_allocator.hpp index 8123f1fa..7cb4c75d 100644 --- a/boost/asio/bind_allocator.hpp +++ b/boost/asio/bind_allocator.hpp @@ -17,7 +17,6 @@ #include #include -#include #include #include #include @@ -38,8 +37,7 @@ protected: }; template -struct allocator_binder_result_type::type> +struct allocator_binder_result_type> { typedef typename T::result_type result_type; protected: @@ -100,8 +98,7 @@ template struct allocator_binder_argument_type {}; template -struct allocator_binder_argument_type::type> +struct allocator_binder_argument_type> { typedef typename T::argument_type argument_type; }; @@ -126,7 +123,7 @@ struct allocator_binder_argument_types {}; template struct allocator_binder_argument_types::type> + void_t> { typedef typename T::first_argument_type first_argument_type; typedef typename T::second_argument_type second_argument_type; @@ -146,21 +143,6 @@ struct allocator_binder_argument_type typedef A2 second_argument_type; }; -// Helper to enable SFINAE on zero-argument operator() below. - -template -struct allocator_binder_result_of0 -{ - typedef void type; -}; - -template -struct allocator_binder_result_of0::type>::type> -{ - typedef typename result_of::type type; -}; - } // namespace detail /// A call wrapper type to bind an allocator of type @c Allocator @@ -248,10 +230,9 @@ public: * @c U. */ template - allocator_binder(const allocator_type& s, - BOOST_ASIO_MOVE_ARG(U) u) + allocator_binder(const allocator_type& s, U&& u) : allocator_(s), - target_(BOOST_ASIO_MOVE_CAST(U)(u)) + target_(static_cast(u)) { } @@ -263,8 +244,7 @@ public: } /// Construct a copy, but specify a different allocator. - allocator_binder(const allocator_type& s, - const allocator_binder& other) + allocator_binder(const allocator_type& s, const allocator_binder& other) : allocator_(s), target_(other.get()) { @@ -277,8 +257,7 @@ public: * constructible from type @c U. */ template - allocator_binder( - const allocator_binder& other) + allocator_binder(const allocator_binder& other) : allocator_(other.get_allocator()), target_(other.get()) { @@ -298,13 +277,11 @@ public: { } -#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. allocator_binder(allocator_binder&& other) - : allocator_(BOOST_ASIO_MOVE_CAST(allocator_type)( + : allocator_(static_cast( other.get_allocator())), - target_(BOOST_ASIO_MOVE_CAST(T)(other.get())) + target_(static_cast(other.get())) { } @@ -312,7 +289,7 @@ public: allocator_binder(const allocator_type& s, allocator_binder&& other) : allocator_(s), - target_(BOOST_ASIO_MOVE_CAST(T)(other.get())) + target_(static_cast(other.get())) { } @@ -320,9 +297,9 @@ public: template allocator_binder( allocator_binder&& other) - : allocator_(BOOST_ASIO_MOVE_CAST(OtherAllocator)( + : allocator_(static_cast( other.get_allocator())), - target_(BOOST_ASIO_MOVE_CAST(U)(other.get())) + target_(static_cast(other.get())) { } @@ -332,124 +309,47 @@ public: allocator_binder(const allocator_type& s, allocator_binder&& other) : allocator_(s), - target_(BOOST_ASIO_MOVE_CAST(U)(other.get())) + target_(static_cast(other.get())) { } -#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Destructor. ~allocator_binder() { } /// Obtain a reference to the target object. - target_type& get() BOOST_ASIO_NOEXCEPT + target_type& get() noexcept { return target_; } /// Obtain a reference to the target object. - const target_type& get() const BOOST_ASIO_NOEXCEPT + const target_type& get() const noexcept { return target_; } /// Obtain the associated allocator. - allocator_type get_allocator() const BOOST_ASIO_NOEXCEPT + allocator_type get_allocator() const noexcept { return allocator_; } -#if defined(GENERATING_DOCUMENTATION) - - template auto operator()(Args&& ...); - template auto operator()(Args&& ...) const; - -#elif defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - /// Forwarding function call operator. template - typename result_of::type operator()( - BOOST_ASIO_MOVE_ARG(Args)... args) + result_of_t operator()(Args&&... args) { - return target_(BOOST_ASIO_MOVE_CAST(Args)(args)...); + return target_(static_cast(args)...); } /// Forwarding function call operator. template - typename result_of::type operator()( - BOOST_ASIO_MOVE_ARG(Args)... args) const + result_of_t operator()(Args&&... args) const { - return target_(BOOST_ASIO_MOVE_CAST(Args)(args)...); + return target_(static_cast(args)...); } -#elif defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typename detail::allocator_binder_result_of0::type operator()() - { - return target_(); - } - - typename detail::allocator_binder_result_of0::type - operator()() const - { - return target_(); - } - -#define BOOST_ASIO_PRIVATE_BINDER_CALL_DEF(n) \ - template \ - typename result_of::type operator()( \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return target_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - typename result_of::type operator()( \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return target_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_BINDER_CALL_DEF) -#undef BOOST_ASIO_PRIVATE_BINDER_CALL_DEF - -#else // defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typedef typename detail::allocator_binder_result_type< - T>::result_type_or_void result_type_or_void; - - result_type_or_void operator()() - { - return target_(); - } - - result_type_or_void operator()() const - { - return target_(); - } - -#define BOOST_ASIO_PRIVATE_BINDER_CALL_DEF(n) \ - template \ - result_type_or_void operator()( \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return target_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - result_type_or_void operator()( \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return target_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_BINDER_CALL_DEF) -#undef BOOST_ASIO_PRIVATE_BINDER_CALL_DEF - -#endif // defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - private: Allocator allocator_; T target_; @@ -458,20 +358,17 @@ private: /// Associate an object of type @c T with an allocator of type /// @c Allocator. template -BOOST_ASIO_NODISCARD inline allocator_binder::type, Allocator> -bind_allocator(const Allocator& s, BOOST_ASIO_MOVE_ARG(T) t) +BOOST_ASIO_NODISCARD inline allocator_binder, Allocator> +bind_allocator(const Allocator& s, T&& t) { - return allocator_binder< - typename decay::type, Allocator>( - s, BOOST_ASIO_MOVE_CAST(T)(t)); + return allocator_binder, Allocator>(s, static_cast(t)); } #if !defined(GENERATING_DOCUMENTATION) namespace detail { -template +template class allocator_binder_completion_handler_async_result { public: @@ -483,10 +380,8 @@ public: template class allocator_binder_completion_handler_async_result< - TargetAsyncResult, Allocator, - typename void_type< - typename TargetAsyncResult::completion_handler_type - >::type> + TargetAsyncResult, Allocator, + void_t> { public: typedef allocator_binder< @@ -515,10 +410,7 @@ struct allocator_binder_async_result_return_type template struct allocator_binder_async_result_return_type< - TargetAsyncResult, - typename void_type< - typename TargetAsyncResult::return_type - >::type> + TargetAsyncResult, void_type> { typedef typename TargetAsyncResult::return_type return_type; }; @@ -528,9 +420,9 @@ struct allocator_binder_async_result_return_type< template class async_result, Signature> : public detail::allocator_binder_completion_handler_async_result< - async_result, Allocator>, + async_result, Allocator>, public detail::allocator_binder_async_result_return_type< - async_result > + async_result> { public: explicit async_result(allocator_binder& b) @@ -543,199 +435,82 @@ public: struct init_wrapper { template - init_wrapper(const Allocator& allocator, BOOST_ASIO_MOVE_ARG(Init) init) + init_wrapper(const Allocator& allocator, Init&& init) : allocator_(allocator), - initiation_(BOOST_ASIO_MOVE_CAST(Init)(init)) + initiation_(static_cast(init)) { } -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()( - BOOST_ASIO_MOVE_ARG(Handler) handler, - BOOST_ASIO_MOVE_ARG(Args)... args) - { - BOOST_ASIO_MOVE_CAST(Initiation)(initiation_)( - allocator_binder< - typename decay::type, Allocator>( - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler)), - BOOST_ASIO_MOVE_CAST(Args)(args)...); - } - template - void operator()( - BOOST_ASIO_MOVE_ARG(Handler) handler, - BOOST_ASIO_MOVE_ARG(Args)... args) const + void operator()(Handler&& handler, Args&&... args) + { + static_cast(initiation_)( + allocator_binder, Allocator>( + allocator_, static_cast(handler)), + static_cast(args)...); + } + + template + void operator()(Handler&& handler, Args&&... args) const { initiation_( - allocator_binder< - typename decay::type, Allocator>( - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler)), - BOOST_ASIO_MOVE_CAST(Args)(args)...); + allocator_binder, Allocator>( + allocator_, static_cast(handler)), + static_cast(args)...); } -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()( - BOOST_ASIO_MOVE_ARG(Handler) handler) - { - BOOST_ASIO_MOVE_CAST(Initiation)(initiation_)( - allocator_binder< - typename decay::type, Allocator>( - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler))); - } - - template - void operator()( - BOOST_ASIO_MOVE_ARG(Handler) handler) const - { - initiation_( - allocator_binder< - typename decay::type, Allocator>( - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler))); - } - -#define BOOST_ASIO_PRIVATE_INIT_WRAPPER_DEF(n) \ - template \ - void operator()( \ - BOOST_ASIO_MOVE_ARG(Handler) handler, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation_)( \ - allocator_binder< \ - typename decay::type, Allocator>( \ - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler)), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - void operator()( \ - BOOST_ASIO_MOVE_ARG(Handler) handler, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - initiation_( \ - allocator_binder< \ - typename decay::type, Allocator>( \ - allocator_, BOOST_ASIO_MOVE_CAST(Handler)(handler)), \ - BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INIT_WRAPPER_DEF) -#undef BOOST_ASIO_PRIVATE_INIT_WRAPPER_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - Allocator allocator_; Initiation initiation_; }; -#if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - template - static BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(T, Signature, - (async_initiate( - declval::type> >(), - declval().get(), - declval()...))) - initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, - BOOST_ASIO_MOVE_ARG(Args)... args) + static auto initiate(Initiation&& initiation, + RawCompletionToken&& token, Args&&... args) + -> decltype( + async_initiate( + declval>>(), + token.get(), static_cast(args)...)) { return async_initiate( - init_wrapper::type>( - token.get_allocator(), - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)), - token.get(), BOOST_ASIO_MOVE_CAST(Args)(args)...); + init_wrapper>(token.get_allocator(), + static_cast(initiation)), + token.get(), static_cast(args)...); } -#else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - - template - static BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(T, Signature, - (async_initiate( - declval::type> >(), - declval().get()))) - initiate( - BOOST_ASIO_MOVE_ARG(Initiation) initiation, - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token) - { - return async_initiate( - init_wrapper::type>( - token.get_allocator(), - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)), - token.get()); - } - -#define BOOST_ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - static BOOST_ASIO_INITFN_DEDUCED_RESULT_TYPE(T, Signature, \ - (async_initiate( \ - declval::type> >(), \ - declval().get(), \ - BOOST_ASIO_VARIADIC_MOVE_DECLVAL(n)))) \ - initiate( \ - BOOST_ASIO_MOVE_ARG(Initiation) initiation, \ - BOOST_ASIO_MOVE_ARG(RawCompletionToken) token, \ - BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_initiate( \ - init_wrapper::type>( \ - token.get_allocator(), \ - BOOST_ASIO_MOVE_CAST(Initiation)(initiation)), \ - token.get(), BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_INITIATE_DEF) -#undef BOOST_ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) - private: - async_result(const async_result&) BOOST_ASIO_DELETED; - async_result& operator=(const async_result&) BOOST_ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; async_result target_; }; template