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.