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))

Reply via email to