The Konsepequality_comparable_with<T, U> ini dimaksudkan untuk menyatakan bahwa objek dari jenis Tdan Udapat dibandingkan sama satu sama lain, dan jika mereka, maka ini memiliki arti yang diharapkan. Tidak apa-apa.
Namun, konsep ini juga perlu common_reference_t<T&, U&>ada. Dorongan utama untuk common_referencedan fungsi petugasnya tampaknya adalah untuk mengaktifkan iterator proxy , untuk memiliki tempat untuk mewakili hubungan antara referencedan value_typeuntuk iterator tersebut.
Itu bagus, tapi ... apa hubungannya dengan pengujian jika a Tdan a Udapat dibandingkan dengan satu sama lain? Mengapa standar mengharuskan itu Tdan Umemiliki hubungan referensi yang sama hanya untuk memungkinkan Anda membandingkannya dengan setara?
Ini menciptakan situasi yang aneh di mana sangat sulit untuk memiliki dua jenis yang tidak cukup memiliki hubungan referensi umum yang secara logika sebanding. Misalnya, vector<int>dan pmr::vector<int>secara logis harus sebanding. Tapi mereka tidak bisa karena tidak ada referensi umum yang masuk akal antara dua jenis yang tidak berhubungan.
assignable_frommembutuhkan common_reference...