सभी को लेने वाले फ़ंक्शन का मूल्यांकन नहीं करता है! मैं नक्शा कंटेनर में चैनल डेटा का एक समूह बनाए रखता हूं, जिसमें से एक चैनल चैनल डेटा को अपने चैनले नाम से एक्सेस किया जा सकता है। इसके संबंध में, मैं एक साधारण कार्य GetIRChannelData
लिखता हूं (कृपया निम्नलिखित कोड देखें)। जब compliing, बयान pusIRChannelData = cit->second();
throwed जोत्रुटि C2064: शब्द 0 तर्क
error C2064: term does not evaluate to a function taking 0 arguments
सभी समारोह पढ़ ऐसा करने के लिए एक त्रुटि, कुछ भी नहीं लेकिन नक्शा कंटेनर में किसी विशेष चैनल के नाम/ID की खोज, और यह एक अस्थायी सूचक के लिए डेटा सूचक आवंटित करने के लिए है अगर मिल गया। क्या आप कृपया मुझे दिखाएंगे कि क्या गलत है?
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;
}
कोई विशेष कारण है कि आप कुंजी की तलाश में सभी तत्वों के माध्यम से लूपिंग के बजाय 'std :: map' की' find' विधि का उपयोग नहीं कर रहे हैं? –
एक साइड नोट के रूप में, प्रकार उपनाम वास्तव में कोड को और अधिक पठनीय बनाने में सहायता करते हैं: 'typedef std :: map <...> डेटापूल; के लिए (DataPool :: const_iterator ... ' –