On Tuesday, 27 December 2011 at 19:03:07 UTC, Artur Skawina wrote:
Umm, the point was to *avoid* the extra useless wrapper.

Sorry, I thought you were writing one wrapper per CTFE-able function.

Hence the "@compile" attribute suggestion, and list selection.

Presently I don't see how your suggestion justifies an addition to the language itself, given that a wrapper is easy to implement. Furthermore, it would be yet another thing that requires people to inspect referenced code to keep track of what's going on (with @compile in the language, you can't inspect a function's body and know if any function call is at runtime or compile-time).

(I actually tried something similar to Now(), but that only obfuscates the code even more, for no gain)

If you don't like Now, let's go back to the per-function wrapper idea.

import std.math;
string makeNow(string name) { return `template `~name~`(X...) { enum `~name~` = `~name~`Impl(X); }`; }

mixin(makeNow("f"));
double fImpl(double f) { return sin(f); }

enum sin3 = f!3;

Reply via email to