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