更新通过迭代器修改std :: set元素:为什么我的代码不能编译?
这是给我麻烦的方法:
void A::normalizeUrls()
{
for (set<CUrl>::iterator it = _references.begin(); it != _references.end(); ++it)
{
if (it->isValid())
{
it->normalize().makeFull(_baseUrl);
}
}
}
这里是卷曲::规范和卷曲:: makeFull
CUrl& makeFull (CUrl&)
{
return *this;
}
CUrl& CUrl::normalize()
{
return *this;
}
的错误是:CUrl::normalize' : cannot convert 'this' pointer from 'const CUrl' to 'CUrl &'
left of '.makeFull' must have class/struct/union
这是为什么,我错过了什么?
在此先感谢!
错误或它没有发生。 –
如果您使用GCC(即'g ++')编译ypur代码,则应该将'-Wall'传递给编译器,并改进您的代码,直至不再有任何警告。你没有告诉使用关于编译器报告的错误。 –
@Basile Starynkevitch:VC2010。启用了Wall,感谢您的提示。但是,第三方标题使它不可能。我的默认警告lvl是4中的3个。 –