<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89909>89909</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Implementing friend operator with two exclusive requires clauses but same name of requirement causes "error: redefinition of 'operator<<'"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
gsamatt
</td>
</tr>
</table>
<pre>
This does not compile with clang 18 but it does with clang 17:
https://godbolt.org/z/orMfTfxMd
This would compile with both compiler as it uses a different name for the requirement:
https://godbolt.org/z/Mjxq54abb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMkc-OpCAQxp8GL2Q6WmqrBw69OzHZQ9_mBUAKZYLQA-V07z79Bt0_s3uaxEigPviqfp9Myc4eUbD2C2ufC7nREqKYk1wlUaGC_i5eFpu4Dpi4D8SnsN6sQ363tPDJST_zqudqI27pUH2sdKy-sPKZlZeF6JbyDkYG4xy0Co5OIc4Mxh8MxhCv5sU8rvqQH__d-h42p__1VSFbHCeRy5S9t4SJS66tMRjRE_dyRW5C5LQgj_i22Ygrevp0S9fXx1vbSKUOeaFFrYd6kAWKqqvqoa37qikWMU3YT7JVUPbY1Vqfz2WtJ90CtFBL6AoroISmbKCpyurcNqdzhe3ZKFNpAzD0wJoSV2ndybn3NXdQ2JQ2FP0wlEPhpEKX9ogAPN75XmQAObEo8p0ntc2JNaWzidLfV8iSQ_Ftvbl9cutnbqJFr3m4YZQU4sGT7oHjY3Jbsu9_WKUc4k41p5syzR1pMB9p8unQMACMMURWX3hEjcZ6Szb4LGfQ_fZj9df8QccAii068V8IlpZNnaawMhjzGL-Wp1sMrzgRg3EfPjEYdzg_AwAA__9De-hS">