template<typename T>
T foo(T&& t) {
    return T(t);
}

int main() {
    int x;
    foo(x);
}

तो, मैं यहाँ T=int& जानता हूँ, लेकिन मुझे समझ में नहीं आता कि इस वैल्ड को बनाने के लिए रिटर्न लाइन पर क्या होता है। क्या कोई समझा सकता है कैसे?

1
nononope 25 सितंबर 2020, 04:59

1 उत्तर

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

T(t) स्पष्ट रूपांतरण (कार्यात्मक कास्ट) करता है, जब T int& है, क्योंकि प्रभाव T(t) t के लिए एक संदर्भ बाध्यकारी बनाता है, और फिर वापसी मान के रूप में वापस आता है (रिटर्न प्रकार int& भी है)।

2
songyuanyao 25 सितंबर 2020, 02:08