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:
```d
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