【发布时间】:2014-05-23 22:24:03
【问题描述】:
我有问题。为什么我不能编译这个?怎么了?
#include <boost/iterator/indirect_iterator.hpp>
bool finder(std::list<SomeObject*>::const_iterator first,
std::list<SomeObject*>::const_iterator last,
const SomeObject& x)
{
return std::find(boost::make_indirect_iterator(first),
boost::make_indirect_iterator(last),
x) != boost::make_indirect_iterator(last);
}
//此代码来自我之前帖子的回答
我有如下错误:
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : 错误 C2784: 'bool std::operator ==(const _Ty &,const std::complex<_other> &)' : 无法从 'const SomeObject
推导出 'const std::complex<_other> &' 的模板参数C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : 错误 C2784: 'bool std::operator ==(const std::complex<_other> &,const _Ty &)' : 无法推断模板 来自 'SomeObject' 的 'const std::complex<_other> &' 的参数
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : 错误 C2784: 'bool std::operator ==(const std::pair<_ty1> &,const std::pair<_ty1> &)':不能 从 'const std::pair<_ty1> &' 推导出模板参数 一些对象
还有几个类似的错误..
我已经定义了operator==:
bool operator==(const SomeObject& x, const SomeObject& y)
{
return x.id1() == y.id1();
}
我使用 VS 2005。
如何解决?怎么了?也许是VS2005的错误?你能编译这个吗?
【问题讨论】:
标签: c++ algorithm boost stl visual-studio-2005