Empty UDA for classes not allowed?

Nicholas Wilson iamthewilsonator at hotmail.com
Fri Oct 27 06:15:19 UTC 2017


On Thursday, 26 October 2017 at 15:09:48 UTC, bauss wrote:
> Why is it not allowed to have empty UDAs for classes?
>
> Let's say we have an UDA like this:
> struct Exclude { }
>
> Then we want to put it on a class like:
>
> @Exclude class Foo
> {
>     ...
> }
>
> This will fail with the following error:
> Error: type Exclude has no value
>
> But on everything else we can place an empty UDA like that ex. 
> on a function:
>
> This is okay:
>
> @Exclude void foo()
> {
>     ...
> }
>
> Can someone explain to me why it's not possible with classes?

FWIW all parameterless UDA in LDC use a struct literal e.g.
https://github.com/ldc-developers/druntime/blob/ldc/src/ldc/attributes.d#L237


More information about the Digitalmars-d-learn mailing list