Easy way to implement interface properties?

Frustrated c1514843 at drdrb.com
Tue Dec 31 23:44:41 PST 2013


On Wednesday, 1 January 2014 at 01:55:19 UTC, Adam D. Ruppe wrote:
> On Wednesday, 1 January 2014 at 01:33:04 UTC, Frustrated wrote:
>> But your template mixin is still duplicating generic code that 
>> should be easily handled automatically. (Generic properties 
>> are just wrappers around private fields that always have the 
>> same code (just return or set the field))
>
> Oh yeah, that can be done too.
>
> Here's an example:
> http://arsdnet.net/dcode/autoimpl.d
>
> The mixin template is implemented by a helper function, which 
> loops over the interface methods and builds a code string for 
> it. It doesn't handle complex cases, like a setter without a 
> getter, but it is a start.
>
> The pragma(msg) in there shows you the generated code when it 
> compiles, which can help debugging or just show you what's 
> going on, of course you can remove that when you're happy with 
> it.

This doesn't quite work(at least for me) and seems unstable.
Doesn't get all the attributes(what if you have a safe property?
And doesn't get methods. It is a start though....


More information about the Digitalmars-d-learn mailing list