Fix llvm9 not autoconverting int->double for variant
In llvm9 the following doesn't compile anymore:
struct S{};
std::variant<double, S> var{5};
This MR introduces additional check in the constructor and assignment operator of the Result
type, and will then try to force a conversion from the given type T2
to either the value type T
or the error type E
in case:
-
T
is not convertible toE
or vice versa -
T
is notE
-
T2
is not convertible toT
ANDE
at the same time
If this is the case, Result
will try to convert to T
if T2
is convertible to T
or E
if T2
is convertible to E
.
Merge request reports
Activity
changed milestone to %0.15.00
added Bug label
mentioned in merge request !743 (merged)
mentioned in merge request !732 (merged)
@pagessin I volkswagen'ed your MR as a proof that the CI failure is intermittent for you too ;)
I'll let you judge what to do next. Personally, I think that a half-working CI is better than a completely broken CI, so I'd be in favor of...
- Recording an issue about this intermittent vertex fitter test failure
- Merging this and !743 (merged) ASAP to at least get the basic LLVM and Result setup right
- Asynchronously investigating the vertex fitter failure in order to also fix it ASAP
mentioned in commit cfcd9d5f
mentioned in merge request !742 (merged)