<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/101960>101960</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] error: call to constructor of 'std::complex<float>' is ambiguous
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
amilendra
</td>
</tr>
</table>
<pre>
```#include <complex>
typedef std::complex<float> Fcx;
struct S {
S() {}
S(const S&) {}
template <class T> operator T() { return 0; }
} s;
int main(void)
{
std::complex<float> *p00 = new std::complex<float>(s, s);
}
```
This program is accepted by libstdc++ but rejected by libc++
```<source>:13:36: error: call to constructor of 'std::complex<float>' is ambiguous
13 | std::complex<float> *p00 = new std::complex<float>(s, s);
| ^ ~~~~
/opt/compiler-explorer/clang-trunk-20240805/bin/../include/c++/v1/complex:422:43: note: candidate constructor
422 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR complex(float __re = 0.0f, float __im = 0.0f) : __re_(__re), __im_(__im) {}
| ^
/opt/compiler-explorer/clang-trunk-20240805/bin/../include/c++/v1/complex:424:43: note: candidate constructor
424 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR complex(__from_builtin_tag, _Complex float __v)
| ^
1 error generated.
Compiler returned: 1
```
https://godbolt.org/z/6Ph1W7bq5
We found this from a downstream C++ library comparison test.
I think this is due to merge https://github.com/llvm/llvm-project/pull/83575
Would someone please have a look?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8lVFvozgQxz_N5GXUCMYhhAceElJ0le5uq22lvTdksJP4ajBnm2x7D_3sJxOSRlVVaU93G0WAhmHmPz97xtw5te-kzCHZQLKd8cEfjM15q7TshOWz2oiXHJbR9CemukYPQiKwojFtr-UzsFuIthCtT1f_0kshd-i8ALYGtr64FTttuAd2i2XzDGxz_ZXzdmg8PiCkkx0fgFZA2WhJt5MRcbQ3pnM-PC0_8vCy7TX3J5GaO4ePIavppeXeWHx8i4xW-sF2GAHb4CUIpFt07xSqzmPLVQe0OholgLKz7-Yt82dFA637KEJgW-zk989cgVYOqEAXklxUXMRdVuNK3eNBOeyt2VveonLIm0b2XgqsX1Cr2nnRAG2ANlgPHq38UzZvb6dX78OzwpnBNjIoYuuYAVuzJbA1SmuNDQ8N1xq9wXE5wgIai2aHQOmn1aWjwrZW-8EM7kIvZghp8X8yxPEXkkByi6-vr69TzVSa3gOVIY7S0t7I514bK22wad7tb7wduqcbimgRraIEqKzDVijnc6By6ongO5Gk8hhP4UZZ6wVRuAaG2BkvT_Q6oUTYp1f8zkIXRKNQxOrXu01xf1_9cre9rcqvX36r1pu7i7X48vvD4-0f91_xnIxWIwOsKitHUtE82gUUZ7Nqr8wZBinBtwJahXsARsXodzKp9qMmu3D8eQgXP4pw8a8RVtXOmraqB6W96irP9yOT4uRwQXm8jIEPkMSnRsG97MLgkWJ-shcToWn2yLCHMf6kuQ_e9y5sdCqByr0RtdF-buweqPwbqFzeH-Jvaf1XcnL_JnFnhk6gD0Mh1IEchfkeAEneYjFNAq1qy-3LWDW3ypkOvXR-fp36LgTpnk6hlEMxyNDwrbR7ie90KX8Y6nljWqBS6-P5dtNbE8YNUNkPWgOVK5akZ61m0AKdaaXpJPZacifxwI8SOWpjnoCVJ8eZyJnIWMZnMo9TolWSJCybHfJINLu6iYVc1HGWZBllCY_qdEVpEiepSGcqP2-5OEpWSTZPFk3DGi6WS4rTRjawiGTLlZ4HtQHrTDk3yDyO4mwZzTSvpXbjCUl0NS2Jwolp87HGetg7WERaOe_e4njl9Xi2Xn2WbP_j-TkbrM5_eCnGEh1QOVV5zOmfAAAA__-uqF7Y">