class iterator
{
public:
struct PosPtrs
{
NodeLevel Level;
TreeElement Element;
bool operator ==(const PosPtrs& input) const
{
return Level == input.Level && Element == input.Element;
}
};
std::deque<posptrs> TreeHistory;
private:
....
};
The clue comes from this message:
d:\program files\microsoft visual studio 10.0\vc\include\xutility(2990):error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const BaseTree::iterator::PosPtrs' (or there is no acceptable conversion)
Your left hand operand needs to be const also.