আমি দেখতে পাচ্ছি, অনেকগুলি রিয়েল-ওয়ার্ল্ড সি ++ প্রকল্পে স্মার্ট পয়েন্টারগুলি ব্যাপকভাবে ব্যবহৃত হয়।
যদিও কিছু ধরণের স্মার্ট পয়েন্টার RAII এবং মালিকানা স্থানান্তরকে সমর্থন করার জন্য স্পষ্টতই উপকারী, তবে "আবর্জনা সংগ্রহের" উপায় হিসাবে ডিফল্টরূপে ভাগ করে নেওয়া পয়েন্টারগুলি ব্যবহার করার প্রবণতাও রয়েছে , যাতে প্রোগ্রামারকে এত বেশি বরাদ্দের বিষয়ে ভাবতে না হয় ।
বোহেম জিসির মতো যথাযথ আবর্জনা সংগ্রহকারীকে সংহত করার চেয়ে ভাগ কেন পয়েন্টার বেশি জনপ্রিয় ? (বা আপনি কি একেবারেই একমত হন যে এগুলি প্রকৃত জিসির চেয়ে বেশি জনপ্রিয়?)
রেফারেন্স-কাউন্টিংয়ের তুলনায় আমি প্রচলিত জিসির দুটি সুবিধা সম্পর্কে জানি:
- প্রচলিত জিসি অ্যালগরিদমগুলির রেফারেন্স-চক্র নিয়ে কোনও সমস্যা নেই ।
- রেফারেন্স-গণনা সাধারণত একটি উপযুক্ত জিসির চেয়ে ধীর হয় ।
রেফারেন্স-কাউন্টিং স্মার্ট পয়েন্টার ব্যবহার করার কারণগুলি কী কী?
std::unique_ptr
যথেষ্ট এবং রান-টাইম পারফরম্যান্সের ক্ষেত্রে কাঁচা পয়েন্টারগুলির তুলনায় শূন্য-ওভারহেড রয়েছে।std::shared_ptr
সর্বত্র ব্যবহার করে আপনি মালিকানা শব্দার্থবিজ্ঞানকেও অস্পষ্ট করে রেখেছিলেন, স্বয়ংক্রিয় সংস্থান ব্যবস্থা ব্যতীত স্মার্ট পয়েন্টারগুলির একটি বড় সুবিধা - কোডের পিছনে উদ্দেশ্যটির স্পষ্ট বোঝা।