-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[libc++] error: call to constructor of 'std::complex<float>' is ambiguous #101960
Comments
Current libc++ behaviour seems to go against [member.functions]p2
Similar problem with llvm-project/libcxx/include/optional Lines 303 to 306 in dc95aa2
#include <optional>
struct X {
template <class T> operator T();
};
int main() {
std::optional<int> x(X{}, 0); // Intended: `X{}.operator std::in_place_t()`
} For For Something that could be done with all tagged constructors is instead of: class_name(__tag_type, ...); Have: template<typename _Tag, __enable_if_t<is_same<_Tag, __tag_type>::value, int> = 0>
explicit class_name(_Tag, ...) |
I can confirm that I also have encountered this defect - (also while running a downstream conformance suite). |
For the |
FYI @philnik777 |
Is anyone looking at this? It's a regression from 18 to 19. |
llvm#103409) Fixes llvm#101960 (cherry picked from commit 4d08bb1)
llvm#103409) Fixes llvm#101960 (cherry picked from commit 4d08bb1)
This program is accepted by libstdc++ but rejected by libc++
https://godbolt.org/z/6Ph1W7bq5
We found this from a downstream C++ library comparison test.
I think this is due to merge #83575
Would someone please have a look?
The text was updated successfully, but these errors were encountered: