On 7 December 2017 at 19:49, Walter Bright via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On 12/7/2017 5:30 PM, Manu wrote:
I tried this, and was surprised it didn't work:

int ctfeOnly(int x)
{
static assert(__ctfe);
return x + 1;
}

The error is:

test2.d(3): Error: variable __ctfe cannot be read at compile time
test2.d(3):        while evaluating: static assert(__ctfe)

because static asserts are evaluated when the function is semantically analyzed, not when it is executed.

Sorry, in my mind, it was meant to be a template function...