Generating code based on UDA
Shammah Chancellor via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Oct 25 06:48:32 PDT 2014
On 2014-10-25 13:37:54 +0000, Rares Pop said:
> Hello everyone,
>
> I am trying to understand UDA traits scoping while mixing in code.
> Aiming to generate code based on UDA I wonder if the following is possible:
>
> class A
> {
> @Inject
> Logger logger;
>
> @Inject
> SomeOtherClass dependency;
>
> mixin injections!(A)
>
> ...
> }
>
> In "injections" function I want to iterate through members annotated
> with the @Inject attribute and generate some specific code.
> So far in my attempts the compiler complains about unknown identifier A.
> Should the A class be available to the compiler at the time of the
> mixin invocation?
>
> Thanks for your help,
> Rares
Very much possible. Since I don't see what your template is doing, I'm
going to give it a guess:
class A{
mixin injections;
}
template injections
{
.... typeof(this); // e.g. foreach( tra;
__traits(getAttributes, typeof(this)))
}
typeof(this) will be A.
More information about the Digitalmars-d-learn
mailing list