<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/2/4 Andrei Alexandrescu <span dir="ltr"><<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@erdani.org</a>></span><br>
<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On 2/3/13 3:16 AM, Andrei Alexandrescu wrote:<br>

[snip]<br>
<br>
Some more thinking got me to three simple principles that guide the proposed property design:<br>
<br>
<a href="http://wiki.dlang.org/DIP23#In_a_nutshell" target="_blank">http://wiki.dlang.org/DIP23#<u></u>In_a_nutshell</a></blockquote><div><br></div><div>> 2. A @property may have EXACTLY ONE or EXACTLY TWO parameters, counting the implicit this parameter if at all. The ONE-parameter version is ALWAYS a getter, and the TWO-parameter version is ALWAYS a setter. There's no variadics, defaulted parameters, and such.</div>
<div><br></div><div>Unfortunately, I can present a counterexample. </div><div><br></div><div><div>struct S {</div><div>    static int value;</div><div>    static @property int foo() { return value; }</div><div>    static @property void foo(int n) { value = n; }</div>
<br class=""><div>}<br></div><div>void main() {</div><div>    int n = S.foo;</div><div>    S.foo = 1;</div><div>}</div></div><div><br></div><div>Should they be disallowed, as like module level properties?<br></div><div><br>
</div><div>Kenji Hara</div></div></div></div>