Question about UDAs
Ali Çehreli
acehreli at yahoo.com
Tue Aug 4 03:16:57 UTC 2020
On 8/2/20 8:00 PM, Cecil Ward wrote:
> Ali Çehreli’s book mentions them briefly with an example
> but that doesn’t seem to qualify as a realistic use-case.
The XML example I chose there qualifies as serialization like H. S. Teoh
mentions. UDAs on user-defined type members are for marking them for
later introspection in use cases like "do this for all members but take
UDAs into account." For example, the UDA in my example contributes as
"serialize all members as XML but obfuscate the members that have a
special UDA."
UDAs were added to D by a request from Manu Evans and that's when I
learned them. In one of Manu's use cases they would put a @Tweakable
attribute to certain struct members. The effect of that attribute would
be to compile special code that would expose that member in a dialog box
where the developer would "tweak" its value to see how the program (a
game) would behave at specific values of that member.
The awesomeness comes from the fact that once they have this @Tweakable
machinery, they don't change their code at all: They put that attribute
to certain members during development, find good values and then remove
it; perhaps in half an hour. The only addition to code is one @Tweakable
attribute and some magic produces a dialog box; then they remove the
attribute. Pretty cool. :)
Manu's presentatian is available here:
https://www.youtube.com/watch?v=FKceA691Wcg
Slide 25 at minute 18:30 is one spot he talks about it.
Ali
More information about the Digitalmars-d-learn
mailing list