std.format and uninitialized elements in CTFE

berni44 dlang at d-ecke.de
Fri Dec 6 12:47:14 UTC 2019


On Friday, 6 December 2019 at 06:49:41 UTC, berni44 wrote:
> int a = void;
>
> static if (!__traits(compiles, a?a:a))
>
> But I'm not sure if ?: can be applied to all thinkable types.

Even that doesn't work (don't know, why I got this morning the 
impression, that it does).


Is the following a bug in __traits?

```
struct Foo
{
     int a = void;
}

int foo(Foo f)
{
     static if (__traits(compiles, f.a == f.a))
     {
         if (f.a == f.a) return 1; // error
         return 2;
     }
     return 3;
}

static x = foo(Foo());
```


More information about the Digitalmars-d mailing list