As with most things in C++ that looks horribly convoluted for some very simple functionality. In D all we have to do is: * `if ( __ctfe) { ... }` for compile time * `if (!__ctfe) { ... }` for runtime
I don't think it's any secret D does CTFE better than any other language.
Yeah it never ceases to amaze me the lengths that C++ users goto to try to do things at compile time.