【发布时间】:2012-08-13 13:30:27
【问题描述】:
我正在尝试编译一个在 Xcode 中使用 OpenCV C++ 代码的项目。
template<typename _Tp> inline MatND_<_Tp>& MatND_<_Tp>::operator = (const MatND& m)
{
if( DataType<_Tp>::type == m.type() )
{
Mat::operator = (m);
return *this;
}
if( DataType<_Tp>::depth == m.depth() )
{
return (*this = m.reshape(DataType<_Tp>::channels));
}
CV_DbgAssert(DataType<_Tp>::channels == m.channels());
m.convertTo(*this, DataType<_Tp>::type);
return *this;
}
这里它给了我一个编译器错误“调用没有对象参数的非静态成员函数”行“Mat::operator = (m);”
代码没有损坏,我验证了here。
另一个有趣的是,如果我选择编译器为 LLVM GCC 4.2,那么代码可以正常工作,但是在使用 Apple LLVM 编译器 3.2 进行编译时出现此错误。我需要使用 Apple LLVM 编译器进行编译,因为使用 GCC 编译会产生其他问题。
这里有什么问题?
【问题讨论】:
标签: c++ xcode operator-overloading llvm