digitalmars.D.learn - Empty UDA for classes not allowed?
- bauss (18/18) Oct 26 2017 Why is it not allowed to have empty UDAs for classes?
- Jonathan M Davis (5/23) Oct 26 2017 It worked just fine when I just tried it on my machine - both with dmd
- bauss (3/11) Oct 26 2017 Yeah I can't reproduce it right now, so I'm not even sure.
- Nicholas Wilson (3/21) Oct 26 2017 FWIW all parameterless UDA in LDC use a struct literal e.g.
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?
Oct 26 2017
On Thursday, October 26, 2017 15:09:48 bauss via Digitalmars-d-learn 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?
It worked just fine when I just tried it on my machine - both with dmd
master and with 2.076.1. Are you using an older version of the compiler than
2.076.1? It's possible that there was a bug that was fixed.
- Jonathan M Davis
Oct 26 2017
On Thursday, 26 October 2017 at 21:24:43 UTC, Jonathan M Davis wrote:On Thursday, October 26, 2017 15:09:48 bauss via Digitalmars-d-learn wrote:Yeah I can't reproduce it right now, so I'm not even sure.[...]It worked just fine when I just tried it on my machine - both with dmd master and with 2.076.1. Are you using an older version of the compiler than 2.076.1? It's possible that there was a bug that was fixed. - Jonathan M Davis
Oct 26 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
Oct 26 2017









bauss <jj_1337 live.dk> 