Why isn't there more if(__ctfe) in std.math ?

user1234 user1234 at 12.hu
Sat Sep 23 21:46:40 UTC 2017


On Saturday, 23 September 2017 at 18:23:12 UTC, Juraj Mojzis 
wrote:
> Hi,
> browsing trough phobos bugzilla I found a couple of open issues 
> regarding CTFE and basic math functions ( Issue 4177, 5227).
> It looks to me that at least floor/ceil could by fixed by a 
> simple:
> if (__ctfe) return simple_floor_impl(x);
>
> But that looks too easy and would surely be implemented 
> already. So I would like to ask what the real problems are.
>
> Thanks,
> Juraj

"if (__ctfe) {}" is a test happening at runtime. Both the if and 
the else branches got compiled, this implies:
- more code to cache
- slower code
just to allow CTFE.


CTFE rounding can be more simply done using cast(int), although 
for negative numbers the behavior is not the same.


More information about the Digitalmars-d-learn mailing list