Is this range behaviour correct?
Andrea Fontana
nospam at example.com
Sun Mar 17 12:04:26 PDT 2013
On Sunday, 17 March 2013 at 04:54:58 UTC, Ali Çehreli wrote:
> On 03/15/2013 02:57 AM, Andrea Fontana wrote:
> > On Friday, 15 March 2013 at 03:44:51 UTC, Ali Çehreli wrote:
> > - I've added a method (it's an "hack" to make it works):
> > this(this)
> > {
> > auto dummy = lazyCache.newView(lazyCache.cache.ptr);
> > myId = dummy.myId;
> > }
>
> I am not sure why that was necessary. Additionally, some of the
> member functions like empty() can be made const.
If not something like:
foreach(e; yourrange) // <-- here this(this) is called
{
writeln(e);
}
foreach(e; yourrange) // <-- here this(this) is called
{
writeln(e);
}
Print:
1 2 3 4 5 6
instead of:
1 2 3 1 2 3 as "expected"
But it's an hack, you should know a better way to do it :)
When a struct is copied like in example above, every copy should
retain its own pointer to data (restarted from begin).
More information about the Digitalmars-d-learn
mailing list