A possible replacement for pragma(msg,...)

bearophile bearophileHUGS at lycos.com
Sat Mar 13 05:23:09 PST 2010


Here I have reported some bugs/problems of pragma(msg,...):
http://d.puremagic.com/issues/show_bug.cgi?id=3952

At the bottom I have added a small proposal too:

D2 programs have better and better CTFE, so the need for good enough printing is growing.

So I suggest to add a special printing function that works in the same way both at compile-time in CTFE and at runtime. To keep things simple it can just print a string (literal or inside a variable) and it does NOT print a newline.

It can be used in a loop too, in CTFE too, to print many things (so it's different from a pragma(msg,...):

string foo(int i) {
    foreach (i, 0 .. 10)
        ctputs(ToString!(i));
}

Note that it's a true function, so there is no need for {}.

"ctputs" is just one of the possible names of this function.

Once such function is present, the pragma(msg,...) can probably be removed from the language.

Bye,
bearophile



More information about the Digitalmars-d mailing list