- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个问题。为什么我不能编译这个?怎么了?
#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) : error C2784: 'bool std::operator ==(const _Ty &,const std::complex<_Other> &)' : could not deduce template argument for 'const std::complex<_Other> &' from 'const SomeObject
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : error C2784: 'bool std::operator ==(const std::complex<_Other> &,const _Ty &)' : could not deduce template argument for 'const std::complex<_Other> &' from 'SomeObject'
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : error C2784: 'bool std::operator ==(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from SomeObject
还有几个类似的错误..
我已经定义了operator==
:
bool operator==(const SomeObject& x, const SomeObject& y)
{
return x.id1() == y.id1();
}
我使用 VS 2005。
如何解决?怎么了?也许这是 VS2005 的错误?你能编译这个吗?
最佳答案
这意味着 *advance(boost::make_indirect_iterator(first), some_int) 不能传递给接受 const SomeObject& 的运算符 ==。这很奇怪。
一个建议是将 bool operator== 保留在命名空间 std 中。
namespace std {
bool operator==(const SomeObject& x, const SomeObject& y)
{
return x.id1() == y.id1();
}
}
关于c++ - std::find 和 boost::make_indirect_iterator - 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984203/
我有一个问题。为什么我不能编译这个?怎么了? #include bool finder(std::list::const_iterator first, std::list::con
我是一名优秀的程序员,十分优秀!