On Thursday, 22 March 2012 at 10:18:24 UTC, Andrej Mitrovic wrote:
On 3/21/12, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:
I think the liability here is that b needs to appear in two places.

Andrei, how about this:


Note that I've had to make a constructor because I can't implicitly assign a string to a NonSerialized!string inside of a struct literal
(but I think this is just a DMD frontend bug).

Altering the type is not a reasonable approach for a generic annotation system. 1) It wrecks things that use template arguments, possibly special casing for certain types.
2) It makes it difficult to combine attributes.
3) It forces altering actual code to indicate an annotation, as opposed to just annotating it.

Honestly, C# already handles annotations perfectly (with the exception of too little compile-time power to specify the arguments), I see no reason to attempt to reinvent it. I've never had a problem where I thought that C#'s attributes were not sufficient.

Reply via email to