আসলে, আমি মনে করি না বুস্ট লাইব্রেরিগুলি উত্তরাধিকার হয়ে উঠবে।
হ্যাঁ, আপনি ব্যবহার করতে সক্ষম হওয়া উচিত std::type_traits
, regex
, shared_ptr
, unique_ptr
, tuple<>
, std::tie
, std::begin
বুস্ট Typetraits পরিবর্তে / ইউটিলিটি, Smartpointer বুস্ট, বুস্ট Tuple, রেঞ্জ লাইব্রেরি বুস্ট, কিন্তু বাস্তবে 'সুইচ' থেকে এর কোন প্রয়োজন হওয়া উচিত যদি না আপনি তার বেশি চলন্ত হয় আপনার কোড সি ++ 11।
এছাড়াও, আমার অভিজ্ঞতা অনুসারে, std
এর বেশিরভাগের সংস্করণগুলি কিছুটা কম বৈশিষ্ট্যযুক্ত। যেমন AFAICT মান নেই না আছে
- পার্ল 5 নিয়মিত অভিব্যক্তি
- call_traits
- কিছু নির্দিষ্ট রেগেক্স ইন্টারফেস সদস্য (যেমন
bool boost::basic_regex<>::empty()
) এবং অন্য ইন্টারফেসের পার্থক্য
- এটি বুস্ট এক্সপ্রেসিভের সাথে বুস্ট ইন্টারফেসের সাথে ঠিক মিলেছে বলে এটি আরও কামড়ায়
- এবং এটি বুস্ট স্ট্রিং অ্যালগরিদমগুলির সাথে আরও দুর্দান্তভাবে খেলেছে স্পষ্টতই, আধুনিকগুলির কাছে স্ট্যান্ডার্ড অংশ নেই (এখনও?)
- টিএমপি সম্পর্কিত অনেকগুলি জিনিস (বুস্ট ফিউশন)
অলস, এক্সপ্রেশন টেম্পলেট-ভিত্তিক ল্যাম্বডাস; তারা যেটা করতে পারে তাতে তাদের অনিবার্য সুবিধা রয়েছে সি ++ 11 এর বিপরীতে আজ বহুবর্ষীয় পারে । তাই তারা প্রায়শই অধিক সংক্ষিপ্ত হতে পারে:
std::vector<int> v = {1,2,-9,3};
for (auto i : v | filtered(_arg1 >=0))
std::cout << i << "\n";
// or:
boost::for_each(v, std::cout << _arg1);
সুনির্দিষ্টভাবে, এটি এখনও সি ++ 11 ল্যাম্বডাসের (কিছুটা পিছনে ফিরতি ধরণের, সুস্পষ্ট ক্যাপচারিং এবং ঘোষিত প্যারামিটারগুলির) সাথে কিছু আপিল করেছে।
এছাড়াও, বুস্টের জন্য একটি বিগ ভূমিকা আছে, সঠিকভাবে সি -+ 03 থেকে সি ++ 11-তে সি ++ 11 এবং সি ++ 03 কোডবাসগুলিকে সংহত করার জন্য পথ-অনুসারে স্থানান্তরকরণের সুবিধার্থে। আমি বিশেষভাবে চিন্তা করছি
- বুস্ট অটো (BOOST_AUTO)
- ইউটিলিটি বুস্ট করুন (
boost::result_of<>
এবং সম্পর্কিত)
- বুস্ট ফরচ (BOOST_FOREach)
- ভুলে যাবেন না: বুস্ট মুভ - যা বুট 1_48 + এবং সি ++ 11 সংকলক সহ সি ++ 03 সংকলকগুলিতে সমানভাবে সংকলন করবে এমন একটি সিনট্যাক্স সহ মুভ সিঁটমিকের সাথে ক্লাসগুলি লেখা সম্ভব করে তোলে।
শুধু আমার 0.02 ডলার