Repository navigation
EDG fails to apply the tie-breaker in [over.match.best.general]/2.11
#280
yronglin
started this conversation in
Issue Triage - Standard Conformance
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Tests:
https://godbolt.org/z/e3or11rMM
EDG fails to apply the tie-breaker in [over.match.best.general]/2.11, which says: a candidate generated from a deduction-guide is better than one generated from a constructor Seems the tie-breaker is skipped when any constructor of the class carries a requires-clause. EDG then finds no single best candidate and reports the deduction as ambiguous.
The content of the constraint does not matter. A literal requires(true) reproduces. Removing the requires-clause leaves exactly the same three candidates, and EDG then resolves them correctly.
clang and gcc accept the program at -std=c++17, -std=c++20 and -std=c++23. EDG rejects it in both its gnu and its clang host compatibility modes.
All reactions