Ref and class function calls?
Tofu Ninja
emmons0 at purdue.edu
Tue Apr 16 07:57:09 PDT 2013
On Tuesday, 16 April 2013 at 14:33:21 UTC, John Colvin wrote:
> A member function cannot modify it's own 'this' pointer.
>
> However, a free function can do it happily, which when combined
> with UFCS gives you the same syntax and behaviour:
>
> class A {
> //......
> }
>
> void replace(ref A a)
> {
> a = new A();
> }
>
> void main() {
> A a = new A();
> A b = a;
> assert(b is a);
> b.replace();
> assert(!(b is a));
> }
>
> http://dpaste.dzfl.pl/147f69e1
Yes... this is what I feared. I knew I could do it like that but
I was hoping a more elegant solution was available, seems like
bad design to have a function that is fully intended to be a
class function but not actually be able to declare it within the
class block.
More information about the Digitalmars-d-learn
mailing list