C++ (error: passing ‘const …'’ as ‘this’ argument of ‘…’ discards qualifiers [duplicate])

1175 ワード

Ubuntuの下でGCCコンパイルcaffeをコンパイルして、errorが現れます
c++/4.8/bits/stl_algo.h:2245:19:     error: passing const yolo_v2::DATA as  this  argument of  bool yolo_v2::DATA::operator     while (__pivot < *__last)
非変数を渡すタイプが一致しないとエラーになる
作成者コード:
 bool operatorconfidence > data.confidence;
        }

STLのソースコードにナビゲート:
/// This is a helper function...
  template
    _RandomAccessIterator
    __unguarded_partition(_RandomAccessIterator __first,
			  _RandomAccessIterator __last, const _Tp& __pivot)
    {
      while (true)
	{
	  while (*__first < __pivot)
	    ++__first;
	  --__last;
	  while (__pivot < *__last)
	    --__last;
	  if (!(__first < __last))
	    return __first;
	  std::iter_swap(__first, __last);
	  ++__first;
	}
    }

ソリューション:(リンク:https://stackoverflow.com/questions/19073996/error-passing-const-as-this-argument-of-discards-qualifiers)
bool operatorconst DATA& data) const
        {
            return this->confidence > data.confidence;
        }