Kavramequality_comparable_with<T, U> türü bu nesnelerin bildirmek için tasarlanmıştır Tve Ubirbirine eşit karşılaştırılabilir, ve eğer, bu beklenen anlama sahiptir. Bu iyi.
Ancak, bu kavramın da var olması gerekir common_reference_t<T&, U&>. İçin birincil itici güç common_referenceve onun işlevselliği , proxy yineleyicilerinin etkinleştirilmesi , bu yineleyiciler arasındaki referenceve value_typebu yineleyiciler arasındaki ilişkiyi temsil edecek bir yeri olması gibi görünmektedir .
Bu harika, ama ... a Tve Ua'nın birbiriyle eşit olup olmadığını test etmekle ne ilgisi var ? Standart neden bunu eşitlemenizi sağlamak için bunu gerektirir Tve Uortak bir referans ilişkisine sahiptir?
Bu, mantıklı olarak karşılaştırılabilir ortak referans ilişkisine sahip olmayan iki türün bulunmasının çok zor olduğu garip bir durum yaratır. Örneğin, vector<int>ve pmr::vector<int>mantıksal olarak benzer olması gerekir. Ancak bunun nedeni, birbiriyle alakasız iki tür arasında makul bir ortak referans olmamasıdır.
assignable_fromgerektirir common_reference...