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