refRange and @disable this(this);
Jerry via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 14 05:39:16 PDT 2016
I got a range which disables copy construction and I want to loop
the range within another loop using the same range.
So I thought I can mark the struct range with @disable this(this)
and then use refRange to initialize the loop.
So with something like this:
void main()
{
auto valueRange = FooRange("123");
foreach(ch; refRange(&valueRange))
writeln(ch);
}
struct FooRange {
@disable this();
@disable this(this);
this(string str) {
this.str = str;
}
@property bool empty() { return str.empty; }
@property dchar front() { return str.front; }
void popFront() { str.popFront; }
private:
string str;
}
But I get compile time errors messages saying:
std/range/package.d(8155,23): Error: struct app.FooRange is not
copyable because it is annotated with @disable
It feels strange that refRange ever want to copy.
Bug or feature?
More information about the Digitalmars-d
mailing list