<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/96911>96911</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            ADT/STLExtras has an operator== that is ambiguous with its own reversed form
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          aDifferentJT
      </td>
    </tr>
</table>

<pre>
    After switching to C++20 I'm getting many ambiguous use of operator== warnings, all pointed back to this

```
llvm/include/llvm/ADT/STLExtras.h:1359:6: note: ambiguity is between a regular call to this operator and a call with the argument order reversed
  bool operator==(const indexed_accessor_range_base<DerivedT, BaseT, T, PointerT,
```

[The relevant function is here](https://github.com/llvm/llvm-project/blob/5da6f64db3184be89ee8b7cca4e5e055baaef964/llvm/include/llvm/ADT/STLExtras.h#L1350)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk8-L4zoMx_8a5yJeSeT8aA45tNMXeI85LGzvgxwriXcTu9hOO_PfL0nLFIY97EKQHQvE5_uVRCGYwTI3ojiK4pTQEkfnGzqZvmfPNv5_TpTTH82hj-wh3EzsRmMHiA5eBB4FHjGF_wRWMwwc45qayX4AzcoMi1sCLIHB9eAu7Ck6L-RJyBPcyFtjhyDwBWia4OKMjaxBUfdzLR5HE0R6EunhEcv08W2_03SdBbbGdtOiWWD7eDiczgLb7-fXf9-jp7AbhTxksqiFPJRCHsC6yOt5xzPxA0wAxfHGbIHA87BM5KFbkR4Un-RAVgPdczcTR4gjA_lhmdlGcF6zB89X9oH1nRJAOTd9kS5w3zkbIhir-Z31G3Udh-D8myc78JuiwEK-nNibK-vzatCRAm-XLXzbrPLr_bfePGJxPI8Mnie-ko3QL7aLxtlV8MieRbGSjDFegpAHga3AdjBxXNSuc_PT0fX45-LdD-6iwFZNTglsC01lX-ZayWyfK97XzHtVdR3lXHBaFIqI-7rMn3X-oFUoXzNZpALrRDdS17KmhJusyuq8rooSk7GpSMus6HtddWlaZEiSVY3YYZ5SR6QT02CKeVpileUZ5rjbV1ma1b3a97LqFaPIU57JTLsVY-f8kJgQFm7qss6yZCLFU9i2AdHyDbakQFyXwzebGWoZgsjTyYQYnlWiiRM3X0TBSAHIfh3-OFJc-_Bckm2eTAzgbvZziKB3fk4WPzV_3aYNOwhs77KuDf4KAAD__x9tQTg">