Why D const is annoying
Mehrdad
wfunction at hotmail.com
Tue May 1 18:55:03 PDT 2012
Let's say you have this hypothetical piece of code:
interface IConnection { string send(string data); }
class Student
{
private string id;
private string cachedName;
private IConnection conn;
public this(string id) { this.id = id; this.conn = ...; }
public @property string name() const
{
if (!cachedName)
{ cachedName = conn.send("get_name: " ~ id); }
return cachedName;
}
}
void main()
{
auto student = new immutable(Student)("142341234");
writeln(student.name);
}
Notice that there are two const-related issues in the code that are
literally *unsolvable* (unless you avoid const/immutable entirely, or unless
you cast() -- but then your entire code would be filled with dangerous const
casts...).
How does D2 plan to address these issues in the 'ideal' implementation?
More information about the Digitalmars-d
mailing list