আমার কী উদ্দেশ্যে ব্যবহার করা উচিত std::get_temporary_buffer
? স্ট্যান্ডার্ড নিম্নলিখিত বলে:
N সংলগ্ন টি অবজেক্টগুলি সঞ্চয় করার জন্য পর্যাপ্ত স্টোরেজটির পয়েন্টার পান।
আমি ভেবেছিলাম যে বাফারটি স্ট্যাকের জন্য বরাদ্দ করা হবে, তবে এটি সত্য নয়। সি ++ স্ট্যান্ডার্ড অনুসারে এই বাফারটি আসলে অস্থায়ী নয়। এই ফাংশনটির কী কী সুবিধা রয়েছে বিশ্বব্যাপী ফাংশন থেকে ::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_buffer
সি ++ 17 এ অবমুক্ত করা হবে।