| |
| Posted by Steven Schveighoffer in reply to Salih Dincer | PermalinkReply |
|
Steven Schveighoffer
Posted in reply to Salih Dincer
| On 11/26/21 5:44 AM, Salih Dincer wrote:
> Hi All;
I have two questions that make each other redundant. Please answer one of them. I'm implementing bool empty() const for ranges as below:
bool empty() // const
{
bool result;
if(!head)
{
result = true;
fastRewind();
}
return result; // head ? false : true;
}
- Is the const essential for ranges?
No, there is no specification of whether any range methods have to be const. As Stanislav says, it is only a requirement that subsequent calls return the same value as long as popFront has not been called.
>
- Is it possible to rewind the pointer (
Node * head; ) when my head is empty by the const?
If const is set, then any members are treated as const, and anything they point to are treated as const. So no.
That being said, if fastRewind changes empty from true to false, the method is invalid.
-Steve
|