wth!! ctfe cannot format floating point at compile time?

HypperParrow via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Aug 13 20:52:40 PDT 2017


On Monday, 14 August 2017 at 01:52:16 UTC, Johnson Jones wrote:
> Error: uncaught CTFE exception 
> std.format.FormatException("Cannot format floating point types 
> at compile-time")
> called from here: to(0.75)
>
> pretty simply, trying to convert a floating point to a string 
> in a ctfe function and it thinks that it is too complex to do 
> in a ctfe, really?

There is this trick as workaround:

```
auto valueToString(alias v)(){return v.stringof;}
enum a = valueToString!(0.75);
static assert(a == "0.75");
```

The problem with to() and format() is that is requires external 
library calls that are not available at compile-time, just like 
when you try to use malloc() at CT.


More information about the Digitalmars-d-learn mailing list