Reading this, I got the impression that this code should work:
class Connection : public std::enable_shared_from_this<Connection>
{
public:
Connection(tcp::socket&& socket) : socket_(std::move(socket)) {}
private:
tcp::socket socket_;
};
But the compiler issues this error in the constructor:
Call to implicitly-deleted copy constructor of 'tcp::socket' (aka'basic_stream_socket<boost::asio::ip::tcp>')
I have also defined BOOST_ASIO_HAS_MOVE . I use Xcode 4.6.3 and in the compiler settings I have this defined:
C++ Language dialect: GNU++11[-std=gnu++11]
C++ Standard Library: libc++(LLVM C++ standard library with C++11 support)
Connecionconstructor?Connectionobject? Does the compiler provide a trace of where the error was instantiated? This problem normal manifest itself when the code calling the constructor passes socket as an rvalue reference, rather than converting it to an xvalue viastd::move.