In member function ‘void socks4Server::listener(int)’:
sock4.cpp:16:49: error: no matching function for call to ‘std::vector<boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp>>>::push_back(boost::asio::ip::tcp::socket*)’ sockets.push_back(new tcp::socket(io_service));
sockets.push_back(shared_ptr<tcp::socket>(new tcp::socket(io_service)));
sockets.push_back(make_shared<tcp::socket>(io_service));
sockets.emplace_back(new tcp::socket(io_service)); // C++11 or later
另外,倾倒两者时要小心std and boost进入全局命名空间。有很多名称(例如shared_ptr) 在两个命名空间中都定义了,因此这种不加区别的污染很可能会导致歧义。