当前位置: 首页 > 知识库问答 >
问题:

std::查找和提升::make_indirect_iterator - 编译错误

谷光誉
2023-03-14

我有个问题。为什么我不能编译这个?怎么了?

#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):错误c 2784:“bool STD::operator = =(const _ Ty

C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\algorithm(40) : error C2784: 'bool std::operator ==(const std::complex

C:\Program Files(x86)\Microsoft Visual Studio 8\VC\include\算法(40):错误C2784:'bool std::运算符==(constd::对

和几个类似的错误..

我定义了运算符==

bool operator==(const SomeObject& x, const SomeObject& y)
{
    return x.id1() == y.id1();
}

我使用VS 2005。

如何解决?怎么了?也许是VS2005的错误?你能编译这个吗?

共有1个答案

何兴安
2023-03-14

意思是* advance(boost::make _ indirect _ iterator(first),some_int)不能传递给operator ==它接受const SomeObject

一个建议是将bool运算符==保留在名称空间std中。

namespace std {
  bool operator==(const SomeObject& x, const SomeObject& y)
  {
    return x.id1() == y.id1();
  }
}
 类似资料:
  • 我有一个奇怪的问题,我无法解决。它与助推推力代码有关。 法典: 此文件的名称为“myFirstMatrixTest.cu”。 所以,我有编译器错误: MSB3721退出命令" " C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v 9.2 \ bin \ nvcc . exe "-gen code = arch = compute

  • 我有一个使用Boost::move移动锁的函数- 我可以使用带有-std=c 11或-std=c 0x标志的gcc 4.7.3编译此代码。但是,使用gcc 4.6.4,即使使用-std=c 0x标志,此代码也会失败。关于如何修复此问题的任何想法? 用于使用C 11功能的CMAKE标志: 用于使用C 0x功能的CMAKE标志: 我在gcc 4.6.4中遇到的错误: 错误:不匹配~运算符!=™在~it

  • 在过去的几个月里,我一直在学习C语言并使用终端。我的代码使用g和c11编译并运行得很好,但在过去几天里它开始出现错误,此后我在编译时遇到了问题。我唯一可以编译和运行的程序依赖于旧的C标准。 我第一次遇到的错误包括 尝试使用ecg$g-o stoi_试验stoi_试验编译。cpp-std=c 11 大堆cpp:13:22:错误:命名空间“std”中没有名为“stoi”的成员;你是说“阿托伊”吗?in

  • 我在代码的不同地方使用< code>std::bind时遇到了很多问题。有时行得通,有时行不通,所以我认为我正在做一些根本错误的事情。 据我所知,的以下基本用法应该可以正常使用: 当然< code>bar_auto的类型是< code>std::function 它类似于这个bug,但是它太老了,我不认为它是相关的。 gcc的输出并不特别有启发性: 在文件中包含从bindnew.cpp: 1:0:

  • 我正在尝试创建一个基本的应用程序,它是建模“粘滞便笺”活动。这将包含添加注释和删除注释的函数。下面是代码。在deleteNote函数中,我正在使用std::find方法在Notes的向量中查找标题,该向量是作为输入参数给出的。std::find API抛出编译错误。下面是代码。 下面是错误。 文件中包含的文件为/usr/include/c++/5/bits/stl_algoBase.h:71:0,

  • 本文向大家介绍详解webpack编译速度提升之DllPlugin,包括了详解webpack编译速度提升之DllPlugin的使用技巧和注意事项,需要的朋友参考一下 一、前言 The DllPlugin and DllReferencePlugin provide means to split bundles in a way that can drastically improve build t