gpt4 book ai didi

c++ - boost::asio async_read_some async_read_until 编译器警告

转载 作者:行者123 更新时间:2023-11-30 03:04:55 30 4
gpt4 key购买 nike

我正在使用以下方法:

boost::asio::streambuf io_bufstream;

boost::asio::async_read_until(socket_, io_bufstream, "</message>",
strand_.wrap(
boost::bind(&Connection::handleRead, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)));//warning: line 36


boost::array<char, 8192> buffer_
socket_.async_read_some(boost::asio::buffer(buffer_),
strand_.wrap(
boost::bind(&Connection::handleRead, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred))); // warning

我收到以下警告:

C:\dev\sapphire\boost_1_46_1\boost/asio/detail/reactive_socket_recv_op.hpp(58) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)

这里也是完整的输出:

C:\dev\sapphire\boost_1_46_1\boost/asio/detail/reactive_socket_recv_op.hpp(58) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
C:\dev\sapphire\boost_1_46_1\boost/asio/detail/reactive_socket_recv_op.hpp(48) : while compiling class template member function 'bool boost::asio::detail::reactive_socket_recv_op_base::do_perform(boost::asio::detail::reactor_op *)'
with
[
MutableBufferSequence=boost::asio::mutable_buffers_1
]
C:\dev\sapphire\boost_1_46_1\boost/asio/detail/reactive_socket_recv_op.hpp(71) : see reference to class template instantiation 'boost::asio::detail::reactive_socket_recv_op_base' being compiled
with
[
MutableBufferSequence=boost::asio::mutable_buffers_1
]
C:\dev\sapphire\boost_1_46_1\boost/asio/detail/reactive_socket_service_base.hpp(227) : see reference to class template instantiation 'boost::asio::detail::reactive_socket_recv_op' being compiled
with
[
MutableBufferSequence=boost::asio::mutable_buffers_1,
Handler=boost::asio::detail::wrapped_handler,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>>
]
C:\dev\sapphire\boost_1_46_1\boost/asio/stream_socket_service.hpp(263) : see reference to function template instantiation 'void boost::asio::detail::reactive_socket_service_base::async_receive(boost::asio::detail::reactive_socket_service_base::base_implementation_type &,const MutableBufferSequence &,boost::asio::socket_base::message_flags,Handler)' being compiled
with
[
MutableBufferSequence=boost::asio::mutable_buffers_1,
ReadHandler=boost::asio::detail::wrapped_handler,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>>,
Handler=boost::asio::detail::wrapped_handler,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>>
]
C:\dev\sapphire\boost_1_46_1\boost/asio/basic_stream_socket.hpp(708) : see reference to function template instantiation 'void boost::asio::stream_socket_service::async_receive(boost::asio::detail::reactive_socket_service::implementation_type &,const MutableBufferSequence &,boost::asio::socket_base::message_flags,ReadHandler)' being compiled
with
[
Protocol=boost::asio::ip::tcp,
MutableBufferSequence=boost::asio::mutable_buffers_1,
ReadHandler=boost::asio::detail::wrapped_handler,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>>
]
..\..\..\platform_epi\src\connection.cpp(36) : see reference to function template instantiation 'void boost::asio::basic_stream_socket::async_read_some>(const MutableBufferSequence &,ReadHandler)' being compiled
with
[
Protocol=boost::asio::ip::tcp,
Dispatcher=boost::asio::io_service::strand,
Handler=boost::_bi::bind_t,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>,
MutableBufferSequence=boost::asio::mutable_buffers_1,
ReadHandler=boost::asio::detail::wrapped_handler,boost::_bi::list3>,boost::arg<1>,boost::arg<2>>>>
]

据我了解,错误来自第 36 行,但我不明白发生了什么。我认为这与当它是 int 时被用作 bool 的 bytes_transferred 有关。如果有人能澄清这个问题和/或如何解决它,那就太好了!

谢谢!

最佳答案

这是特定于 Visual Studio 的警告,它是从 Boost 的代码发出的,而不是您的。大多数情况下可以忽略。如果您想禁用它,请使用适当的编译指示。

#pragma warning(disable: 4800)

它可能已在最新的 Boost.ASIO 版本中得到修复。我安装了 1.47 并且有问题的行没有发出此警告。

关于c++ - boost::asio async_read_some async_read_until 编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221354/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com