Quantcast
Channel: C++博客-所有随笔
Viewing all articles
Browse latest Browse all 7882

在尝试写一个iocp的库的时候犹豫CSocket是否提供拷贝构造函数,结论是不要

$
0
0
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类似的东西,本来就不应该出现多个拷贝,如果有多个拷贝就有多个读写入口,这样会放纵程序员扩散这些入口。
在配上多线程和多模块多入口写入,就会把系统复杂化。


Enic 2013-03-30 16:03 发表评论

Viewing all articles
Browse latest Browse all 7882

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>