Implement
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2468r2.html.
Primarily we now accept
template<typename T> struct CRTPBase { bool operator==(const T&) const; bool operator!=(const T&) const; }; struct CRTP : CRTPBase<CRTP> {}; bool cmp_crtp = CRTP() == CRTP(); bool cmp_crtp2 = CRTP() != CRTP();
I am not sure the new name adds clarity.
It's unclear what the true return value means here. should clearly indicated returning true means the code has to proceed with adding the reversed operator. may means the code can choose to do so or not, I don't think that's quite right. should was really a better choice here.
That said, I don't think the rename itself is a bad idea, maybe there is a better name, but I couldn't come up with one.