erreur C2064: terme n'évalue pas à une fonction prenant 0 arguments

tout le monde!
Je maintiens un groupe de canaux de données dans une carte contenant, à partir de laquelle un individu canal de données peut être consultée par ses channle nom. Par rapport à cela, j'écris une fonction simple GetIRChannelData (veuillez consulter le code suivant). Lorsque compliing, la déclaration pusIRChannelData = cit->second(); avaient envoyé une erreur, qui a lu

error C2064: term does not evaluate to a function taking 0 arguments

Tous la fonction de faire n'est rien, mais à la recherche d'un nom de canal/ID de la carte de conteneurs, et de l'affecter les données pointeur vers un pointeur temporel, le cas échéant. Veuillez s'il vous plaît me montrer quel est le problème?

const Array2D<unsigned short>* GetIRChannelData(std::string sChannelName) const
{   
    const Array2D<unsigned short>* pusIRChannelData = NULL;

    for (std::map<std::string, Array2D<unsigned short>* >::const_iterator cit =    m_usIRDataPool.begin(); cit != m_usIRDataPool.end(); ++cit) 
    {   
        std::string sKey = cit->first; 

        if (sKey == sChannelName)
        {   
           pusIRChannelData = cit->second(); //Error occurred on this line
           break;
        }
    }

    return pusIRChannelData;
}
Une raison particulière vous ne l'utilisez pas std::map's find méthode au lieu de passer en boucle sur tous les éléments de la recherche de la clé?
Comme une note de côté, de type alias vraiment aider à rendre le code plus lisible: typedef std::map<...> DataPool; for (DataPool::const_iterator ....

OriginalL'auteur GoldenLee | 2011-07-03