我收到以下错误:
Conversion loses qualifiers
当试图在没有代码重复的情况下实现索引操作符时(我将显示代码段):
Point* BufferedList::indexTemp(size_t idx)
{
if (idx >= size) return nullptr;
return &arr[idx];
}
const Point* BufferedList::operator [](size_t idx) const
{
return indexTemp(idx);
}
Point* BufferedList::operator [](size_t idx)
{
return indexTemp(idx);
}
但是,以下工作(这不使用辅助函数indexTemp
,它是代码的重复):
const Point* BufferedList::operator [](size_t idx) const
{
if (idx >= size) return nullptr;
return &arr[idx];
}
Point* BufferedList::operator [](size_t idx)
{
if (idx >= size) return nullptr;
return &arr[idx];
}
我真的需要两个索引函数(一个返回Point*
而另一个返回const Point*
)?
答案 0 :(得分:1)
这是因为您从tf.einsum('ijk,kl->ijl', x, w)
函数调用了非const
函数。编译器警告您,const
对象在临时函数中不再是const
。