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

Reply via email to