On Monday, 26 December 2016 at 21:15:03 UTC, Adam D. Ruppe wrote:
On Monday, 26 December 2016 at 20:07:56 UTC, crimaniak wrote:
// I want to see Foo here and use it's reflection to
iterate fields and methods.
then pass foo to it....
What do you mean parent symbol? I assumed you mean subclass but
your example shows one class and one struct. So is it the
structure containing the class? Or what?
But, the answer of just passing the argument is probably the
best one anyway. You can use a factory function, or pass the
type from a constructor to a super method, or something like
that.
I think he wants the symbol that the UDA is attached to.
So instead of doing:
struct attribN(I, T) { }
@attrib1!(Implement1, MyStructName)
@attrib2!(Implement2, MyStructName)
struct MyStructName
{
}
you could instead possibly add a feature to do this:
struct attribN(I, T = __UDA__)
{
}
// or possibly
class attribN(I) : Attribute // Attribute then contains the
symbol its connected to
{
}
@attrib1!Implement1
@attrib2!Implement2
struct MyStructName
{
}
Not likely a feature to be added though.