On Wednesday, 26 August 2015 at 14:29:30 UTC, Andrea Fontana wrote:

__traits(setAttributes, ...)

It would be useful, for example, if I have a list of functions to mark. Let's say

enum toExport = ["oldFunction", "thisToo"];
foreach(d; toExport) __traits(setAttributes, ...);

Lots of compile-time information is fixed after the symbol is defined, making it effectively immutable. There's not, for example, a `__traits(setType, var)`.

If you want to apply a UDA to many functions at once, you can use the block syntax:

        @("hello") {
                void foo1() {}
                void foo2() {}
        }

        // or alternatively

        @("hello"):

        void foo3() {}
        void foo4() {}

Also if you're talking about the `export` keyword, then that's not a UDA.

Reply via email to