大家!我在地图容器中维护一组通道数据,通过其通道名称可以从中访问单个通道数据.关于这一点,我写了一个简单的函数GetIRChannelData
(请参阅下面的代码).在compliing时,语句抛出了pusIRChannelData = cit->second();
一个错误,该错误在读取
error C2064: term does not evaluate to a function taking 0 arguments
Run Code Online (Sandbox Code Playgroud)
要做的所有功能只不过是在地图容器中搜索给定的通道名称/ 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;
}
Run Code Online (Sandbox Code Playgroud)
Den*_*ose 13
错误消息非常清楚......您调用的函数不存在. map::iterator
指向a std::pair
,它有两个成员对象,first
和second
.请注意,这些不是功能.()
从相关的行中删除,错误应该消失.