On Sunday, 4 September 2016 at 01:44:40 UTC, sarn wrote:
On Sunday, 4 September 2016 at 00:04:16 UTC, Stefan Koch wrote:
I recently implemented __ctfeWriteln.

Sounds like pragma msg.  How does it compare?
https://dlang.org/spec/pragma.html#msg

Pragma msg can only print compiletime constants.
While __ctfeWriteln can print state while doing CTFE.

Example
int fn(int n)
{
  import std.conv;
  __ctfeWriteln((n-10).to!string);
  return n;
}

static assert(fn(22));

will print 12;
whereas
int fn(int n)
{
  import std.conv;
  pragma(msg, n.to!string);
  return n;
}
will tell you that the symbol n is not avilable at compiletime

Reply via email to