मुझे किस उद्देश्य के लिए उपयोग करना चाहिए std::get_temporary_buffer? मानक निम्नलिखित कहते हैं:
पास के टी वस्तुओं तक स्टोर करने के लिए पर्याप्त भंडारण के लिए एक संकेतक प्राप्त करता है।
मैंने सोचा था कि स्टैक पर बफर आवंटित किया जाएगा, लेकिन यह सच नहीं है। सी ++ मानक के अनुसार यह बफर वास्तव में अस्थायी नहीं है। इस फ़ंक्शन के वैश्विक फ़ंक्शन पर क्या फायदे हैं ::operator new, जो वस्तुओं का निर्माण नहीं करता है। क्या मैं सही हूं कि निम्नलिखित कथन समान हैं?
int* x;
x = std::get_temporary_buffer<int>( 10 ).first;
x = static_cast<int*>( ::operator new( 10*sizeof(int) ) );
क्या यह फ़ंक्शन केवल सिंटैक्स चीनी के लिए मौजूद है? temporaryइसके नाम में क्यों है ?
एल्गोरिदम को लागू करने के लिए डॉ। डोब के जर्नल, 01 जुलाई, 1996 में एक उपयोग का मामला सुझाया गया था :
यदि कोई बफर आवंटित नहीं किया जा सकता है, या यदि यह अनुरोध से छोटा है, तो एल्गोरिथ्म अभी भी सही ढंग से काम करता है, यह केवल धीमा हो जाता है।
std::get_temporary_bufferC ++ 17 में पदावनत किया जाएगा।