boost::asio::ip::tcp::socket& socket() const
正在返回_socket
类型boost::asio::ip::tcp::socket
正在给我这个错误
error: invalid initialization of non-const reference of type ‘boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >&’ from a temporary of type ‘const boost::reference_wrapper<const boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >’
socket()
函数只是getter,并没有改变这个对象的状态,那么为什么在我const
时它会触发错误?
答案 0 :(得分:0)
因为该函数正在返回对象的引用。调用const成员函数时,返回的引用也必须是const。
boost::asio::ip::tcp::socket const& socket() const
但是,根据您对该套接字引用的要求,您可能必须返回非const引用,在这种情况下,另一个选项是将getter函数声明为非const或声明套接字{{1在类定义中
mutable