Boost :: asio kullanan aşağıdaki kodları kullanın. İki etiketlenmiş satırları yorum yaparsanızGarip C4512 uyarısı. Niye ya?
#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
{
}
};
derleyici (Visual Studio 2010)/W4 üzerinde derleme aşağıdaki uyarıyı verir.
warning C4512: 'SocketTest' : assignment operator could not be generated
Bu iki satırı bu kadar özel yapan nedir? Neden varoluşları atama operatörünün oluşturulmasına izin veriyor?
Ah, evet. Doğru görünüyorsun. Boost devralınamaz: noncopyable uyarıyı çözdü. Ayrıca, soruyu bir atomik tür (int ve int) ile yeniden oluşturma girişimin neden yeniden oluşturulamadığını açıklıyor. Çok teşekkürler. – UberMongoose
Gelecekten itibaren güncelleştirme: C++ 11'de bununla başa çıkmak için daha iyi bir yol var: http://stackoverflow.com/questions/9458741/with-explicitly-deleted-member-functions-in-c11-is-it-still -worthwhile-için-inh – Tim