On 2/3/13 11:28 AM, Steven Schveighoffer wrote:
This sounds good. It might be a bit confusing, but nice in the fact that
&(a.b) always means address of whatever b returns, whether it is a field
or property.
Yah, this is a good rule of thumb for generic code.
Note that there's a subtlety in the expression "&expr.name". This is not
precedence, just use of punctuation to express a unit. Attempting to
decompose it by inserting parens yields different things altogether:
&(expr.name) and (&expr).name are not mere redirections of precedence.
@property int foo(); // error
@property int goo(int); // fine, assume a getter for int
I think this is a possible solution, and I can live with that, I'm
fairly certain that some people use global properties currently, so they
will not be too happy.
Yah, let's see how this restriction pans out.
No. Templated member variables are not allowed either.
Wait, what? I don't like this idea. Why should this not be allowed:
@property void x(T)(T t) {_x = to!(typeof(_x))(t);}
Yah, I misspoke. Properties can be templated subject to the other
restrictions.
Andrei