выражение, имеющее тип "const CompareVPtrs", потеряет некоторые квалификаторы const-volatile для вызова
я реализую пятнадцать консольных игр-головоломок на C++, вызывает следующую ошибку
Error 4 error C3848: expression having type 'const CompareVPtrs' would lose some const-volatile qualifiers in order to call 'bool CompareVPtrs::operator ()(Vertex *,Vertex *)' c:program filesmicrosoft visual studio 11.0vcincludexfunctional 324 1 puzzle15
Это моя структура
struct CompareVPtrs: public binary_function<Vertex*, Vertex*, bool>
{
bool operator()( Vertex *lhs, Vertex *rhs)
{
return equal((int *)lhs->state, (int *)lhs->state+16,
(int *)rhs->state);
}
}
CompareVP;
полный исходный код игры https://gist.github.com/sunloverz/7338003
1 ответов
Это означает, что ваш оператор сравнения должен быть const
:
bool operator()( Vertex *lhs, Vertex *rhs) const
{ // ^^^^^
....
}