Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


The entry point for CTFE.

Specification ($LINK2, Compile Time Function Execution (CTFE))


Source dinterpret.d

Expression ctfeInterpret(Expression e);
Entry point for CTFE. A compile-time result is required. Give an error if not possible.
e must be semantically valid expression. In other words, it should not contain any ErrorExps in it. But, CTFE interpretation will cross over functions and may invoke a function that contains ErrorStatement in its body. If that, the "CTFE failed because of previous errors" error is raised.
T ctfeEmplaceExp(T : Expression, Args...)(Args args);
Allocate an Expression in the ctfe region.
T type of Expression to allocate
Args args arguments to Expression's constructor
allocated Expression
void incArrayAllocs();
CallExp isRuntimeHook(Expression e, Identifier id);
Checks if the given expresion is a call to the runtime hook id.
Expression e the expression to check
Identifier id the identifier of the runtime hook
e cast to CallExp if it's the hook, null otherwise