User Defined Attributes

Walter Bright newshound2 at digitalmars.com
Tue Nov 6 08:41:17 PST 2012


On 11/6/2012 8:23 AM, bearophile wrote:
> Supporting annotations for function arguments is probably an important sub-feature.

It would be a significant extension, and so I'd like to see a compelling use 
case first.


> Yesterday I was discussing about the bug-prone nature of foreach loops on a
> struct array, and one of the solutions I've suggested was a user-defined
> annotation for the programmer to denote that she wants to modify just the copy:
>
> struct Foo {}
> Foo[10] foos;
> foreach (@copy f; foos) { ... }
>
> With UDA syntax:
>
> foreach ([Copy] f; foos) { ... }
> Or:
> foreach (@(Copy) f; foos) { ... }
>
> But I think there's no way to tell the compiler to give a compile-time error if
> such annotation is not present there (unless there's "ref").

User defined attributes cannot invent new semantics for the language. And 
besides, 'ref' already does what you suggest.



More information about the Digitalmars-d-announce mailing list