grauzone wrote: > Don wrote: >> Ary Borenszweig wrote: >>> http://www.prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP6 >> >> This looks like a solution in search of a problem. What's the problem >> being solved? > > Attaching additional data to types, that can't be specified otherwhere. > This should help with metaprogramming-like stuff. > > For example serialization. How do you specify that a field shouldn't be > part of the serialized data? Java has an extra keyword attribute like > "transient" (comes from before attributes were introduced). C# uses what > we call annotation in this thread. How would you do this in D?
struct Foo { int serialise_me, dont_serialise_me, or_me; alias Tuple!("dont_serialise_me", "or_me") IgnoreForSerialisation; } Or, if you'd rather have a less hacky interface: struct Foo { int serialise_me, dont_serialise_me, or_me; mixin IgnoreForSerialisation!("dont_serialise_me", "or_me"); }