কপি elision হল একটি অপ্টিমাইজেশান যা বেশিরভাগ কম্পাইলার দ্বারা প্রয়োগ করা হয় কিছু নির্দিষ্ট পরিস্থিতিতে অতিরিক্ত (সম্ভাব্যভাবে ব্যয়বহুল) কপি প্রতিরোধ করার জন্য। তাই আপনার যদি এমন কিছু কোড থাকে যা ব্যবহার না করা বস্তু তৈরি করছে বা পার্শ্বপ্রতিক্রিয়া নেই,
উদাহরণ
struct MyStruct { MyStruct() {} MyStruct(const MyStruct&) { std::cout << "Copied.\n"; } }; MyStruct f() { return MyStruct(); } int main() { std::cout << "Main\n"; MyStruct obj = f(); }
আউটপুট
আপনি কম্পাইলার এবং সেটিংস −
এর উপর ভিত্তি করে নিম্নলিখিত আউটপুট পেতে পারেনMain Main Copied Copied Main Copied
এর মানে আপনার প্রত্যাশার চেয়ে কম বস্তু তৈরি করা যেতে পারে, তাই আপনি একটি নির্দিষ্ট সংখ্যক কনস্ট্রাক্টর এবং ডেস্ট্রাক্টরকে কল করার উপর নির্ভর করতে পারবেন না। কপি/মুভ-কনস্ট্রাক্টর বা ডেস্ট্রাক্টরদের মধ্যে আপনার সমালোচনামূলক যুক্তি থাকা উচিত নয়, কারণ আপনি তাদের ডাকার উপর নির্ভর করতে পারবেন না।