Cannot use movable objects with Boost.Asio
boost, boost-asio, c++, c++11
Solution
You need to have `BOOST_ASIO_HAS_MOVE` defined before including the ASIO headers. If you don't, move support is disabled. See `asio/basic_stream_socket.hpp`.
https://svn.boost.org/trac/boost/ticket/8959
Problem
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) ```