On Fri, 14 Oct 2011 04:43:15 -0400, Kagamin <[email protected]> wrote:

Steven Schveighoffer Wrote:

struct cursor(T)
{
    T* node;
    void popFront() {node++;}
    ... // usual suspects front, empty, etc
}

This seems like cursor!(inout(V)) might work (V is the element type of the
container) as the return type for inout functions.  However, one of the
major requirements of inout is that it correctly cast back to the
constancy of the container.

try to return inout(cursor!(Unqual!(V)))

This won't solve the problem. I need inout to be on V, not on the cursor. Essentially, I need cursor to be tail-inout.

BTW, this assumes V is not const. I'm not exactly sure how well the containers work when V is not mutable. I'd expect they would fail spectacularly :)

-Steve

Reply via email to