最近使用map迭代器,函数需要返回第二个值inpacket。请问最后一句return (this->*it->second)(listPacket,inPacket);还有更好的写法吗?
这样看起来很绕。
int CCommand::ExcuteCommand(int nCmd,std::list& 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);
}
函数中的map存储的是个函数指针,最后return的是这个函数的返回值,没啥绕的啊,代码已经很简洁了
不知道你这个问题是否已经解决, 如果还没有解决的话: