template <typename T>
void myswap(T a,T b)
{
T temp = a;
a = b;
b = temp;
}
int main()
{
int m(20),n(30);
myswap(ref(m),ref(n));
//m is still 20 and n is still 30
}
एम और एन के मूल्यों का अंतर क्यों नहीं है? std::ref
में एक इंक्रेमेंट फ़ंक्शन में लिपटे मान को मूल चर में मूल्य परिवर्तन (स्टैक फ्रेम में परिवर्तनीय जो कॉल फ़ंक्शन कहते हैं) में परिणाम बदलता है। या, std::ref
उपयोग प्रतिबंधित/सीमित है?std :: ref और swap function अच्छी तरह से काम नहीं कर रहा है
या 'std :: swap' – 101010
का उपयोग करें पहला वाक्य थोड़ा भ्रामक है।बेशक 'std :: ref' मानक लाइब्रेरी तक सीमित नहीं है (जैसा कि आप इसे इसके बाद भी नोट करते हैं) –