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