On Monday, 29 July 2013 at 23:09:20 UTC, JS wrote:
I have created a template Pragma that emulates pragma but better, the problem is that I have to assign it to something which is very redundant in my code:

enum temp = Pragma!(msg)

e.g.,

template Pragma(alias amsg)
{
    string Pragma(string file = __FILE__)
    {
        pragma(msg, amsg);
        return "";
    }
}

When I try to use void instead of string and do something like

Pragma!(msg)

I get an error that the template has no effect. It does have an effect but what it is complaining about is exactly what I want.

I've tried all kinds of combinations(mixins work but I then can't ise __FILE__) and nothing works. Maybe someone has an idea.

Does this code do what you want, or are there other requirements as well?

void Pragma(alias amsg)(string file = __FILE__)
{
        pragma(msg, amsg);
}

Reply via email to