static assert not printing out along the error diagnostic
someone
someone at somewhere.com
Wed Jul 14 03:06:06 UTC 2021
On Wednesday, 14 July 2021 at 02:42:21 UTC, Paul Backus wrote:
> Weirdly, adding a dummy `ResultType` declaration to the `else`
> branch makes the assert message show up:
My code is like following:
```d
public struct gudtUGC(typeStringUTF) {
static if (! (is (typeStringUTF == string) || is
(typeStringUTF == wstring) || is (typeStringUTF == dstring))) {
static assert(false, r"ooops … gudtUGC structure requires
[string|wstring|dstring] ≠ ["d ~ typeStringUTF.stringof ~ r"]"d);
/// meaning: this will halt compilation if this UDT was
instantiated with a type other than the ones intended
} else {
... actual structure code
}
}
```
... and it never fired the assert when I added something like:
```d
gudtUGC(int) something = gudtUGC(1); /// invalid of course
```
in main() ... so then I went to the D docs and to Ali's book
afterward and there I tested his example to same results.
More information about the Digitalmars-d-learn
mailing list