无法将可移动对象与Boost.Asio一起使用
Cannot use movable objects with Boost.Asio
读到这篇文章,我觉得这段代码应该可以工作:
class Connection : public std::enable_shared_from_this<Connection>
{
public:
Connection(tcp::socket&& socket) : socket_(std::move(socket)) {}
private:
tcp::socket socket_;
};
但是编译器在构造函数中发出了这个错误:
Call to implicitly-deleted copy constructor of 'tcp::socket' (aka'basic_stream_socket<boost::asio::ip::tcp>')
我还定义了BOOST_ASIO_HAS_MOVE
。我使用Xcode 4.6.3,在编译器设置中我定义了以下内容:
C++ Language dialect: GNU++11[-std=gnu++11]
C++ Standard Library: libc++(LLVM C++ standard library with C++11 support)
在包含ASIO标头之前,需要定义BOOST_ASIO_HAS_MOVE
。如果不这样做,移动支持将被禁用。参见asio/basic_stream_socket.hpp
。
https://svn.boost.org/trac/boost/ticket/8959
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 提升 ASIO 无法识别计时器对象
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何将boost::asio::d eadline_timer 与Qt一起使用?
- Boost Asio和Co_await-与任何第三方回调一起使用
- 将ZeroMQ与Boost::ASIO一起使用
- boost::与boost:asio绑定在一起.boost::绑定后续
- boost::与boost:asio绑定在一起.boost::绑定不起作用,从示例中复制
- XMPP库与Boost.ASIO一起工作
- boost::将 asio 与 accepter.async_accept 一起使用时出现绑定错误
- 将Boost.Log与Boost.Asio服务一起使用
- 无法将可移动对象与Boost.Asio一起使用
- 如何将Boost::asio::buffer(buf,size)与Boost绑定一起使用
- 这个boost-asio UDP广播代码如何仅与本地主机一起工作?
- 在boost::asio中一起接受IPv4和IPv6
- Boost::数组中的垃圾值与Boost:Asio一起使用
- 将 boost asio stream_handle与顺序的类似基于文件的设备一起使用