"Frits van Bommel" <fvbom...@remwovexcapss.nl> wrote in message news:gkfmr2$1n9...@digitalmars.com... > Nick Sabalausky wrote: >> void func(ref int x) {...} >> func(foo.aProperty); >> >> void func(int* x) {...} >> func(&foo.aProperty); >> >> *Should* work with both variables and properties (but might need some >> thinking in how to actually pull it off correctly. Someone mentioned C# >> just doesn't even bother with it.) > > That just can't work without radically changing what a pointer is. > Disallowing pointers to properties is really the best fix. > > If you really wanted, you might be able to wrap a getter/setter pair into > a struct and pass that instead (and have default getter/setter templates > for non-properties). > It's probably easier to just pass in getter/setter delegates explicitly > though.
What if properties were internally defined to be a struct of two delegates (and maybe the internal value)? Although that would still leave an issue of compatibility between int* and (property int)*, and might prevent the intrnal value from being optimized away...