Thread overview
Why if(__ctfe)?
Sep 16, 2014
Ilya Yaroshenko
Sep 16, 2014
Adam D. Ruppe
Sep 16, 2014
Rene Zwanenburg
Sep 16, 2014
Ilya Yaroshenko
September 16, 2014
Why not "static if(__ctfe)" ?
September 16, 2014
On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko wrote:
> Why not "static if(__ctfe)" ?

ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.
September 16, 2014
On Tuesday, 16 September 2014 at 13:17:28 UTC, Adam D. Ruppe wrote:
> On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko wrote:
>> Why not "static if(__ctfe)" ?
>
> ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.

Note that if(__ctfe) does not incur a runtime performance penalty. Even in debug builds will the branch be removed.
September 16, 2014
On Tuesday, 16 September 2014 at 13:28:17 UTC, Rene Zwanenburg wrote:
> On Tuesday, 16 September 2014 at 13:17:28 UTC, Adam D. Ruppe wrote:
>> On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko wrote:
>>> Why not "static if(__ctfe)" ?
>>
>> ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.
>
> Note that if(__ctfe) does not incur a runtime performance penalty. Even in debug builds will the branch be removed.

It is a kind of magic ;)