On Thursday 03 March 2011 01:52:09 kenji hara wrote: > The two semantics have no relation with each other. > > My idea is that we allow 'this' keyword as the first parameter of free > function: ---- > T t; > > void method(T)(ref T this){...} > --> t.method(); > void method(T, A...)(ref T this, A args){...} > --> t.method(arg1, arg2); > > @property bool empty(T)(ref T this){...} > --> if (t.empty){...} > @property void empty(T)(ref T this, bool f){...} > --> t.empty = true; > ---- > > Do you think?
Why use this like that? UFCS is supposed to work with any function just like using the member function call syntax works with arrays and any function - otherwise it's not universal. And I would expect @property to work without "this". The functions you list should work just fine with arrays without the use of the keyword "this" and without the first parameter being a ref. The same should be true for UFCS if it's ever implemented. - Jonathan M Davis