Yet another const problem...
Mehrdad
wfunction at hotmail.com
Sun May 20 17:07:04 PDT 2012
struct Foo
{
@property bool empty() const { return p == null; }
@property auto front() inout { return p; }
void popFront() { p--; }
// So far so good? okay, let's define save()..
auto save() inout { return typeof(this)(this.tupleof); }
// Now let's implement opApply() using the above ^^
int opApply(void delegate(size_t, typeof(p)) dg) const
{
size_t i = 0;
int r = 0;
// So far so good...
for (auto me = this.save(); !r && !me.empty; me.popFront())
{
// Whoops, won't work -- 'me' is const! :(
r = dg(me);
}
return r;
}
}
How do you fix this without duplicating your code?
More information about the Digitalmars-d
mailing list