Adr*_*ian 6 c++ boost boost-asio c++11
读到这个,我得到的印象是这段代码应该有效:
class Connection : public std::enable_shared_from_this<Connection>
{
public:
Connection(tcp::socket&& socket) : socket_(std::move(socket)) {}
private:
tcp::socket socket_;
};
Run Code Online (Sandbox Code Playgroud)
但编译器在构造函数中发出此错误:
Call to implicitly-deleted copy constructor of 'tcp::socket' (aka'basic_stream_socket<boost::asio::ip::tcp>')
Run Code Online (Sandbox Code Playgroud)
我也定义了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)
Run Code Online (Sandbox Code Playgroud)
您需要BOOST_ASIO_HAS_MOVE在包含 ASIO 标头之前进行定义。如果不这样做,则移动支持将被禁用。见asio/basic_stream_socket.hpp。
https://svn.boost.org/trac/boost/ticket/8959
| 归档时间: |
|
| 查看次数: |
1553 次 |
| 最近记录: |