我有以下代码:
typedef Coord2d<double> dCoord;
typedef std::pair<dCoord, Color<double> > cdpair;
CircularBuffer<cdpair> _path;
dCoord head()
{
return _path.front().first(); // error here
}
dCoord
是一个类,但我收到以下错误:
错误C2064:term不计算为采用0参数的函数
即使我没有返回值,我也会得到同样的错误。为什么我会收到此错误,如何解决?
P.S。
front()
会返回myPair
类型的项目。
答案 0 :(得分:2)
因为first
上的std::pair
是一个成员变量,在你的情况下是一个dCoord
,正如错误所说的那样,它不会计算为一个带有0个参数的函数。
tl; dr:std::pair::first
是一个变量,而不是一个函数。
答案 1 :(得分:2)
first
是一个成员,而不是一个函数:
return _path.front().first;
答案 2 :(得分:2)
最可能的答案是first
是first
的{{1}}成员。它是std::pair
类型的公共数据成员,而不是函数,因此不能将其作为函数调用。
尝试:
dCoord
答案 3 :(得分:1)
first
和second
是std::pair
的数据成员,而不是成员函数。试试这个:
dCoord head()
{
return _path.front().first;
}