On Tuesday, 16 April 2013 at 06:29:22 UTC, Ulf Johansson wrote:
I have a question regarding using a struct value as
user-defined attribute. The use-case I am trying to get working
is as follows:
struct message {
int atom;
}
...
class AnActor : ... {
@message(id) void myHandler(string arg1, real arg2) {
}
mixin ... // a mixin that builds message dispatch
}
The 'message' attribute defines methods of the class that will
participate in message dispatch argument matching. This works
fine but I want to take this one step further. I want to be
able to give a message and a handler an ID that more strictly
directs a message (and gives an error if arguments does not
match).
The problem I have is quite simple - getting the value of
'atom' out of the message attribute. How can I do this? I did
not post any of my actual code, I hope the above example
describes the problem.
Regards,
Ulf
foreach(attribute, __traits(getAttributes, AnActor))
{
static if (is(typeof(attribute) == message))
pragma(msg, attribute.atom);
}