これを読んで、このコードが機能するはずだという印象を受けました。
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)