On Tuesday, 27 December 2011 at 18:00:27 UTC, Artur Skawina wrote:
Is there a way to *force* CTFE? Without using an extra wrapper like this:

auto f_impl(alias a)() { / * ... ctfeable ... */ }
auto f(alias a)() { enum ctfed = f_impl!a; return ctfed; }

A "@compile" (or "@ctfe" etc) function attribute would eliminate the need for the wrapper...

import std.math;

template Now(alias e)
{
        enum Now = e;
}

void main()
{
        auto f = Now!(sin(3));
}

This should probably be in Phobos somewhere :) I suggested this before, but a bug (now fixed) prevented the idea from working.

Reply via email to