采用以下使用 boost::asio 的代码。
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
class SocketTest
{
private:
boost::asio::io_service& mIOService;
tcp::acceptor mAcceptor; // Comment this line
public:
SocketTest(boost::asio::io_service& io_service)
: mIOService(io_service)
, mAcceptor(io_service, tcp::endpoint(tcp::v4(), 8080)) // Comment this line
{
}
};
如果您注释两条标记的行,编译器 (Visual Studio 2010) 在 /W4 上编译时会发出以下警告。
warning C4512: 'SocketTest' : assignment operator could not be generated
是什么让这两行如此特别?为什么它们的存在允许生成赋值运算符?