Lited 发表于 2015-3-18 08:55:43

问一个编译时出现的错误

本帖最后由 Lited 于 2015-3-18 08:56 编辑

不知道论坛里有没有对Gmsh进行二次开发的,有的话更好啦!
总之源代码很长,我就把出错的那一段拿出来吧。
错误是error C2679: 二进制“=”: 没有找到接受“std::_Tree<_Traits>::const_iterator”类型的右操作数的运算符(或没有可接受的转换)
1>      with
1>      [
3>      ]
1>            _Traits=std::_Tset_traits<MElement *,std::less<MElement *>,std::allocator<MElement *>,false>

源代码出错的那段:
MVertex* Recombinator::find(MVertex* v1,MVertex* v2,MVertex* v3,MVertex* already,const std::set<MElement*>& bin){
bool flag1,flag2,flag3,flag4;
MElement* element;
MVertex *a,*b,*c,*d;
MVertex* pointer;
std::set<MElement*>::iterator it;

pointer = 0;

for(it=bin.begin();it!=bin.end();it++){
    element = *it;

      a = element->getVertex(0);
      b = element->getVertex(1);
      c = element->getVertex(2);
      d = element->getVertex(3);

      flag1 = inclusion(v1,a,b,c,d);
      flag2 = inclusion(v2,a,b,c,d);
      flag3 = inclusion(v3,a,b,c,d);
      flag4 = inclusion(already,a,b,c,d);

      if(flag1 && flag2 && flag3 && !flag4){
          if(a!=v1 && a!=v2 && a!=v3){
            pointer = a;
          }
          else if(b!=v1 && b!=v2 && b!=v3){
            pointer = b;
          }
          else if(c!=v1 && c!=v2 && c!=v3){
            pointer = c;
          }
          else{
            pointer = d;
          }
          break;
      }
}

return pointer;
}


页: [1]
查看完整版本: 问一个编译时出现的错误