Error

C++博客 首页 新随笔 联系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
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类似的东西,本来就不应该出现多个拷贝,如果有多个拷贝就有多个读写入口,这样会放纵程序员扩散这些入口。
在配上多线程和多模块多入口写入,就会把系统复杂化。
posted on 2013-03-30 16:03 Enic 阅读(156) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理