map迭代器这种写法可以改进吗?

最近使用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的是这个函数的返回值,没啥绕的啊,代码已经很简洁了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^