最近使用map迭代器,函数需要返回第二个值inpacket。请问最后一句return (this->*it->second)(listPacket,inPacket);还有更好的写法吗?
这样看起来很绕。
int CCommand::ExcuteCommand(int nCmd,std::list<CPacket>& listPacket,CPacket& inPacket)
{
std::map<int, CMDFUNC>::iterator it = m_mapFunction.find(nCmd);
/*如果没找到直接返回-1*/
if (it==m_mapFunction.end())
{
return -1;
}
return (this->*it->second)(listPacket,inPacket);
}