张洋 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
..
impl 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
array.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
array_fwd.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
assert.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
atomic_count.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
base_from_cancellation_state.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
base_from_completion_cond.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
bind_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
blocking_executor_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
buffer_resize_guard.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
buffer_sequence_adapter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
buffered_stream_storage.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
call_stack.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
chrono.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
chrono_time_traits.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
completion_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
completion_message.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
completion_payload.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
completion_payload_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
composed_work.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
concurrency_hint.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
conditionally_enabled_event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
conditionally_enabled_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
config.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
consuming_buffers.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
cstddef.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
cstdint.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
date_time_fwd.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
deadline_timer_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
dependent_type.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
descriptor_ops.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
descriptor_read_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
descriptor_write_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
dev_poll_reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
epoll_reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
eventfd_select_interrupter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
exception.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
executor_function.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
executor_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
fd_set_adapter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
fenced_block.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
functional.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
future.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
global.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
handler_alloc_helpers.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
handler_cont_helpers.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
handler_tracking.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
handler_type_requirements.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
handler_work.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
hash_map.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
initiate_defer.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
initiate_dispatch.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
initiate_post.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
initiation_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_control.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_object_impl.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_descriptor_read_at_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_descriptor_read_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_descriptor_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_descriptor_write_at_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_descriptor_write_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_file_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_null_buffers_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_operation.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_accept_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_connect_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_recv_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_recvfrom_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_recvmsg_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_send_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_sendto_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_socket_service_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
io_uring_wait_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
is_buffer_sequence.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
is_executor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
keyword_tss_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
kqueue_reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
limits.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
local_free_on_block_exit.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
memory.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
non_const_lvalue.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
noncopyable.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_fenced_block.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_global.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_signal_blocker.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_socket_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_static_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
null_tss_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
object_pool.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
old_win_sdk_compat.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
op_queue.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
operation.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
pipe_select_interrupter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
pop_options.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_fd_set_adapter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_global.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_serial_port_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_signal_blocker.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_static_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
posix_tss_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
push_options.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_descriptor_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_null_buffers_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_accept_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_connect_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_recv_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_recvfrom_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_recvmsg_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_send_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_sendto_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_socket_service_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactive_wait_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactor_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
reactor_op_queue.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
recycling_allocator.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
regex_fwd.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolve_endpoint_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolve_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolve_query_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolver_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolver_service_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
resolver_thread_pool.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scheduler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scheduler_operation.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scheduler_task.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scheduler_thread_info.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scoped_lock.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
scoped_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
select_interrupter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
select_reactor.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
service_registry.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
signal_blocker.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
signal_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
signal_init.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
signal_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
signal_set_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
socket_holder.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
socket_ops.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
socket_option.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
socket_select_interrupter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
socket_types.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
source_location.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
static_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_fenced_block.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_global.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_static_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
std_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
strand_executor_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
strand_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
string_view.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
thread_context.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
thread_group.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
thread_info_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
throw_error.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
throw_exception.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timed_cancel_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timer_queue.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timer_queue_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timer_queue_set.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timer_scheduler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
timer_scheduler_fwd.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
tss_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
type_traits.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
utility.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
wait_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
wait_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_event.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_fd_set_adapter.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_global.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_file_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_handle_read_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_handle_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_handle_write_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_io_context.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_null_buffers_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_operation.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_overlapped_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_overlapped_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_serial_port_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_accept_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_connect_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_recv_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_recvfrom_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_recvmsg_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_send_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_socket_service_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_thread_info.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_iocp_wait_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_object_handle_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_static_mutex.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
win_tss_ptr.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winapp_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
wince_thread.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_async_manager.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_async_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_resolve_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_resolver_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_socket_connect_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_socket_recv_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_socket_send_op.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_ssocket_service.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_ssocket_service_base.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_timer_scheduler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winrt_utils.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
winsock_init.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
work_dispatcher.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten
wrapped_handler.hpp 863e2e5edd 做C++17兼容,先保存一下 3 viikkoa sitten