इस अवधारणाequality_comparable_with<T, U>
का उद्देश्य यह घोषित करना है कि प्रकार की वस्तुओं T
और U
एक दूसरे के बराबर तुलना की जा सकती है, और यदि वे हैं, तो इसका अपेक्षित अर्थ है। कोई बात नहीं।
हालाँकि, इस अवधारणा को भी common_reference_t<T&, U&>
मौजूद होना चाहिए । के लिए प्राथमिक प्रोत्साहन common_reference
और उसके परिचर कार्यक्षमता के लिए हो रहा है प्रॉक्सी iterators सक्षम , के बीच के रिश्ते का प्रतिनिधित्व करने के लिए एक जगह है करने के लिए reference
और value_type
इस तरह के iterators के लिए।
यह बहुत अच्छा है, लेकिन ... अगर एक T
और U
एक दूसरे के बराबर की तुलना की जा सकती है तो परीक्षण के साथ क्या करना है ? मानक की आवश्यकता क्यों है T
और U
एक समान संदर्भ संबंध है जो आपको उनकी तुलना करने की अनुमति देता है?
यह विषम परिस्थितियों को बनाता है जहाँ दो प्रकारों का होना बहुत मुश्किल होता है जो कि एक सामान्य-संदर्भ संबंध नहीं है जो तार्किक रूप से तुलनीय है। उदाहरण के लिए, vector<int>
और pmr::vector<int>
तार्किक रूप से तुलनीय होना चाहिए। लेकिन वे नहीं हो सकते क्योंकि दोनों के बीच कोई उचित सामान्य संदर्भ नहीं है अन्यथा असंबंधित प्रकार।
assignable_from
आवश्यकता है common_reference
...