यदि निम्न फ़ंक्शन टेम्पलेट को परिभाषित कर रहा है

template<typename T>
int compare(const T& lhs, const T& rhs)
{
    // body 
}

फिर

const char* p1 = "abc";
const char* p2 = "efg";
compare(p1, p2);

कंपाइलर T को const char* के रूप में क्यों घटाता है (इसलिए lhs और rhs का प्रकार const char* const & है) char* नहीं (इसलिए lhs और rhs का प्रकार const char* & है)?

0
Lucas 13 जुलाई 2020, 16:11

1 उत्तर

सबसे बढ़िया उत्तर

जब आपके पास const T& lhs const T के प्रकार पर लागू होता है। चूंकि T एक स्थिर वर्ण के लिए एक गैर-स्थिर सूचक है, एक const char *, उस पर const लगाने से const char * const, या एक स्थिर वर्ण के लिए एक स्थिर सूचक।

1
NathanOliver 13 जुलाई 2020, 16:16