Hi,
I have upgraded to dmd 2.063.2 and have some troubles making my custom
bidirectional range work (it used to). In fact, even this code fails on
assert and I am not really sure why...
import std.range;
struct MyRange(T)
{
private:
T[] data;
public:
T front() @property { return data[0]; }
T back() @property { return data[0]; }
void popFront() {}
void popBack() {}
bool empty() @property { return false; }
auto save()
{
typeof(this) result;
result.data = data;
return result;
}
}
static this()
{
MyRange!string tmp;
static assert(isInputRange!(MyRange!string));
static assert(is(typeof(tmp.save) == MyRange!string));
}
I get this when trying to compile:
> drasar@uriel:/tmp$ dmd test.d
> test.d(26): Error: static assert (is(pure nothrow @safe MyRange!(string)()
> == MyRange!(string))) is false
Do you have an idea?
Thanks,
Martin