void TestMainEntry()
{
boost::asio::io_service ioService;
boost::asio::ip::tcp::socket tcpSocket(ioService);
boost::asio::ip::tcp::socket tcpSocket1(ioService);
// tcpSocket = tcpSocket1;
}
void TestIfFstreamCanCopy()
{
std::fstream fs0;
std::fstream fs1;
// cause compile error
//fs0 = fs1;
}
猶豫的時候去看了下asio,發現asio的是不能copy的,然后去看了下類似fstream,發現也是不能拷貝的。
分析了下原因,像socket、文件句柄、或者是stream類似的東西,本來就不應該出現多個拷貝,如果有多個拷貝就有多個讀寫入口,這樣會放縱程序員擴散這些入口。
在配上多線程和多模塊多入口寫入,就會把系統復雜化。