On Wednesday, 7 February 2018 at 20:29:44 UTC, Timothee Cour wrote:
is there any way to get error from speculative execution (`__traits( compiles, ...)`)? would be useful in tests; If not currently how hard
would that be to implement? eg:

```

struct Status{bool ok; string msg;}

Status status = __traits(compilesReportError, {string b=10;})
assert(!status.ok);
assert(status.msg==`main.d(15) Error: cannot implicitly convert
expression 10 of type int to string`);
```

static if(!__traits(compiles, $CODE)) {
    $CODE
}

It's the same technique I use in concepts to produce an error message if a struct you wanted to be, say isInputRange, isn't:

https://github.com/atilaneves/concepts

Atila

Reply via email to