Linked list as a bidirectional range? I have some questions...

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Aug 13 12:23:30 PDT 2014


On Wednesday, 13 August 2014 at 18:58:59 UTC, H. S. Teoh via 
Digitalmars-d-learn wrote:
> On Wed, Aug 13, 2014 at 06:31:32PM +0000, Gary Willoughby via 
> Digitalmars-d-learn wrote:
>> On Monday, 11 August 2014 at 20:02:38 UTC, H. S. Teoh via
>> Digitalmars-d-learn wrote:
>> >Anyway, clearly we're not understanding each other, so let me 
>> >present
>> >some concrete code so that we aren't just talking past each 
>> >other:
>> 
>> I've used your advice and implemented a range over the list as
>> suggested, the problem being i cannot get it to pass the
>> isForwardRange check.
>> 
>> Code: http://dpaste.dzfl.pl/cad89406bbcc#line-220
>> 
>> You'll notice the assert on line 220 fails. Any idea what i'm 
>> doing
>> wrong?
>
> You need to put @property on .save.

Hmm...

     struct Result {
         public @property auto save1() {
             return this;
         }
         public auto save2() {
             return this;
         }
     }

     pragma(msg, typeof(Result.init.save1));
     pragma(msg, typeof(Result.init.save2));

This outputs:

     Result
     Result()

`Result()` looks bogus.


More information about the Digitalmars-d-learn mailing list