<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55439>55439</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
The implementation of `std::common_reference` seems to be wrong
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hewillk
</td>
</tr>
</table>
<pre>
```cpp
#include <concepts>
struct A { };
struct B {
B(const A&&) = delete;
operator A&&() const;
};
static_assert(std::same_as<std::common_reference<const A&&, B&&>::type, A>);
static_assert(std::same_as<std::common_reference<const A&&, const B&&>::type, A>);
```
https://godbolt.org/z/1e8Tf3W1P
According to [[meta#trans.other-5]](https://timsong-cpp.github.io/cppwp/meta#trans.other-5), the above two assertions should pass.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytUkuPmzAQ_jXmYgUZExJ84JBsuuceVupxZcwAbg1G9rDR9td3gG42W3WlHioN2PP45vGNa9-8VuwgNjHTxMSFiROTuR2NmxvgLH8wfjQwYWT5l9_u9R8xzAb5ibPjmb4Ly88fHOfNsZo4PzNZUqJIACYPqyhKfuENOEAg8C3UTxA0-vAeWS7BK_o97r7iW12N1jzrGCEggSI2LD-RRD0AmWmUm8n4YfDjc4AWAtB425j33T0sLa9XGnvF4OsEi_20WKS6m_f_1t0M_1r9tr17KnrEKS44-UjS-ab2DlMfOtJ-0pdB-dTm37Kv96CTMT40duw4es6KM8kAqOkxYNBjTD32EHYFKy6LyPJjEbRD9GO3o0eUdhb7uU6tJzvp14nOv6aiOWgkUriu_QtwvHq-8WiJBB57P7uGT2RKk6bKG5UrnaBFB9UTgewwORhgXBbgR-5bTjx8zvVB8AgwxGW-Gvg1UL_JHFz1B11b9wQnxbmXt2M3Bf8dDK340cY4Q6RLUexzlfRVu9-rrK1lA6JuWlErpTWAFkdZHg6tMYnTNbhYLbRKOcKVrynoTlwmtpJCSlFkeXaUSmRpXZaqzYwWZVmao8rYXsCgrUuXPpY9JqFaW6rnLpLT2Yjx3Ul82W4EWMtRfj1j70PVw9U69yNZS1dr678AIa40LQ">