fibers and ranges: what's wrong here?

Tobias Pankrath via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Dec 13 04:34:10 PST 2014


On Saturday, 13 December 2014 at 12:26:49 UTC, zeljkog wrote:
> On 13.12.14 13:01, zeljkog wrote:
>>
>> void main() {
>>   auto tt = Tree(5, [Tree(7,[Tree(11), Tree(4)]), Tree(10)]);
>>   auto tr1 = TreeRange(tt);
>>   foreach(v; tr1){
>>     writef("%2d, ", v);
>>   }
>>   writeln();
>>   for(auto r = TreeRange(tt); !r.empty; r.popFront())
>>     writef("%2d, ", r.front);
>>   writeln();
>> }
>>
>
> Sorry, this works:
>
> void main() {
>   auto tt = Tree(5, [Tree(7,[Tree(11), Tree(4)]), Tree(10)]);
>   foreach(v; TreeRange(tt)){
>     writef("%2d, ", v);
>   }
>   writeln();
>   for(auto r = TreeRange(tt); !r.empty; r.popFront())
>     writef("%2d, ", r.front);
>   writeln();
> }
>
> I needed this:
>
> struct TreeRange{
>   this (this){ throw new Exception("TreeRange is 
> noncopyable!"); }
>   ...
> }
>
> Or use class :)

Have a look at @disable.


More information about the Digitalmars-d-learn mailing list