On Saturday, 21 February 2015 at 07:01:12 UTC, Baz wrote:
---
class S
{
private SomeType cache;
public const(SomeType) SomeProp() @property
{
if (cache is null)
cache = SomeExpensiveOperation();
return cache;
}
}
---
the result of the getter will be read-only
My intention is not to have a read-only getter, I want to call
SomeProp on a const object:
class S
{
private int cache = -1;
private int SomeExpensiveOp() { return 12345; }
public @property const(int) SomeProp()
{
if (cache = -1)
cache = SomeExpensiveOp();
return cache;
}
}
unittest
{
const(S) s = new S();
auto i = s.SomeProp; //mutable method S.SomeProp is not
callable using a const object
}