এটি দুটি অংশের একটি প্রশ্ন, এর পারমাণবিকতা সম্পর্কে সমস্ত std::shared_ptr
:
১.
যতদূর আমি বলতে পারি, std::shared_ptr
এটিই <memory>
পারমাণবিক একমাত্র স্মার্ট পয়েন্টার । আমি ভাবছি যে কোনও অ-পারমাণবিক সংস্করণ std::shared_ptr
উপলব্ধ আছে কিনা (আমি এতে কিছু দেখতে পাচ্ছি না <memory>
, তাই আমি বুস্টের মতো, স্ট্যান্ডার্ডের বাইরেও পরামর্শের জন্য উন্মুক্ত আছি)। আমি জানি boost::shared_ptr
পারমাণবিকও (যদি BOOST_SP_DISABLE_THREADS
সংজ্ঞায়িত না হয়) তবে সম্ভবত অন্য কোন বিকল্প আছে? আমি এমন কিছু সন্ধান করছি যার মতো শব্দার্থকতা রয়েছে std::shared_ptr
তবে পারমাণবিকতা ছাড়াই।
2. আমি বুঝতে পারছি কেন std::shared_ptr
পারমাণবিক; এটা খুব সুন্দর। তবে এটি প্রতিটি পরিস্থিতির পক্ষে দুর্দান্ত নয়, এবং সি ++ এর ইতিহাস icallyতিহাসিকভাবে "আপনি যা ব্যবহার করেন তার জন্য কেবল অর্থ প্রদান করুন" মন্ত্রটি রয়েছে had যদি আমি একাধিক থ্রেড ব্যবহার না করে থাকি বা যদি আমি একাধিক থ্রেড ব্যবহার করছি তবে থ্রেডগুলিতে পয়েন্টার মালিকানা ভাগ না করছি তবে একটি পারমাণবিক স্মার্ট পয়েন্টার ওভারকিল। আমার দ্বিতীয় প্রশ্নটি হ'ল কেন std::shared_ptr
সি ++ 11 -তে একটি অ-পরমাণু সংস্করণ সরবরাহ করা হয়নি ? (সেখানে অভিমানী একটি হল কেন (যদি উত্তর কেবল হল "একটি অ-পারমাণবিক সংস্করণ কেবল কখনোই হিসেবে বিবেচনা করা হয়" বা "কেউ কি কখনও একটি অ পারমাণবিক সংস্করণের জন্য জিজ্ঞাসা করলেন," সেটা ঠিক আছে!))।
প্রশ্ন # 2 দিয়ে, আমি ভাবছি যে কেউ যদি কখনও কোনও অণু সংস্করণ প্রস্তাব করেন shared_ptr
(হয় বুস্ট বা মানক কমিটির কাছে) (এর পারমাণবিক সংস্করণ প্রতিস্থাপন করার জন্য নয় shared_ptr
, তবে এটির সাথে সহাবস্থান রাখতে) এবং এটি একটির জন্য নষ্ট হয়ে গেছে নির্দিষ্ট কারণ