难以置信的代码

xiaoxiao2021-02-28  55

看到下面的代码,我总觉得有些难以置信。

bool Server::addTransfer(const TransferPtr& transfer)

{   TransferPtr newtransfer = transfer;   boost::shared_ptr<TransferPtrs> newtransfers_(new TransferPtrs);   if (!newtransfers_)   {     return false;   }   {     MutexLockGuard lock(mutex_);     if (transfers_->find(newtransfer->name()) != transfers_->end())     {       return false;     }     for (TransferPtrs::iterator it=transfers_->begin(); it!=transfers_->end(); ++it)     {       const string& n = it->first;       const TransferPtr& s = it->second;       newtransfers_->insert(TransferPtrs::value_type(n,s));     }     newtransfers_->insert(TransferPtrs::value_type(newtransfer->name(), newtransfer));     transfers_.swap(newtransfers_);   }   LOG_INFO << "Add Transfer: " << newtransfer->name();   return true;

}

功能上是不是等价于下面的代码:

    MutexLockGuard lock(mutex_);     if (transfers_->find(transfer->name()) != transfers_->end())     {       return false;     }     transfers_->insert(TransferPtrs::value_type(transfer->name(), transfer));

    return true;

转载请注明原文地址: https://www.6miu.com/read-28815.html

最新回复(0)