I have the following const function that uses the non-const function locate. locate can not be const because it might return a reference to *this but it never changes anything in this. I would like to be able to call locate so that I am not duplicating code, so what is the right way to use this non-const functon in this case?
As you can see, I even make the result of locate a const but that doesn't guarantee that I don't change something from within locate. So is there a way to make functions temporarily constant or something?
bool SegmentNode::find(const Segment& ss) const {
const SegmentNode& parent = locate(ss);
for (Segment in : parent.overlap_beg()) {
if (ss == in)
return true;
}
return false;
}