Dealing with raw types as attributes
Nicholas Wilson
iamthewilsonator at hotmail.com
Fri Nov 2 04:01:00 UTC 2018
On Friday, 2 November 2018 at 03:13:19 UTC, Neia Neutuladh wrote:
> On Fri, 02 Nov 2018 00:36:18 +0000, Nicholas Wilson wrote:
>>> What do you do to handle this?
>>
>> @Foo() int bar;
>>
>> instead of
>>
>> @Foo int bar;
>
> Right. And if you're offering a library with UDAs for other
> people to use?
I mean I suppose if you really wanted to avoid the parentheses,
you could do
static foreach (uda; __traits(getAttributes, bar))
{
static if (is(typeof(uda.init) == Foo)
{
pragma(msg, "bar is @Foo");
}
}
By noting that all (interesting for the purpose of UDA's i.e. not
void) types have a .init
or you could do
static if (is(typeof(uda) == Foo) || is(uda == Foo))
More information about the Digitalmars-d-learn
mailing list