I have a class that I'm implementing ranges for. I'd like to implement the functions the way the phobos library does, i.e. outside the main class.
void popBack(T)(ref T[] a) if (!is(Unqual!T == char) && !is(Unqual!T == wchar))
{
assert(a.length);
a = a[0 .. $ - 1];
}
Here's my version:
void popFront(T)(ref PersistentList!(T) a)
{
a = a.next();
}
When I try to compile this code with a forech, I get:
Error 1 Error: no property 'popFront' for type 'stmd.PersistentList!(int).PersistentList' main.d
I could move the member code into the main class, but since I'm modifying the input "ref" value I can't use popFront() I really need popFront(ref a).
What am I doing wrong?