সি ++ বুস্ট লাইব্রেরি ব্যবহারের সুবিধা কী কী? [বন্ধ]


122

সুতরাং, আমি পড়ছি এবং এটি প্রদর্শিত হয় যে বুস্ট লাইব্রেরিগুলি অনুশীলনে প্রচুর ব্যবহৃত হয় (যদিও আমার দোকানে নয়)। কেন? এবং কী এত সুন্দর করে তোলে?


10
নিতপিক: এটি সংক্ষিপ্ত রূপ নয়, সুতরাং এটি বুস্ট নয় (বা উত্সাহ দেওয়া), বুস্ট নয়। যদি না আপনি অবশ্যই চিৎকার করছেন;)
নিক্লাস

10
@ নিক্লাস যখন আপনি প্রিপ্রোসেসর ম্যাক্রোস = পি ব্যবহার করেন তখন এটিও অনেক ভাল = পি
কিটসুনওয়াইএমজি

@ কিটসনওয়াইএমজি আমি দেখতে পাচ্ছি যেভাবেই প্রশ্নটি সম্পাদিত হয়েছে, তবে আমি নিশ্চিত যে ওপি প্রিপ্রসেসর কোড সম্পাদনা করার জন্য প্রশ্ন ক্ষেত্রটি ব্যবহার করছে না;)
নিক্লাস

3
@ নিকিয়াস আমি কেবল একটি স্মার্ট গাধা = পি। একটি লোকের শখ আছে।
কিটসুনওয়াইএমজি

সি ++ বুস্ট ছাড়াই
ক্রেপ হয়

উত্তর:


134

বুস্ট এত ব্যাপকভাবে ব্যবহৃত হয় কারণ:

  • এটি ওপেন সোর্স এবং পিয়ার-পর্যালোচিত।
  • এটি প্ল্যাটফর্ম অজিনস্টিক কার্যকারিতা বিস্তৃত করে যা এসটিএল মিস করেছে।
  • এটি একটি প্রতিস্থাপনের চেয়ে এসটিএল এর পরিপূরক।
  • বুস্ট বিকাশকারীদের মধ্যে অনেকে সি ++ স্ট্যান্ডার্ড কমিটিতে রয়েছেন। আসলে, বুস্টের অনেকগুলি অংশ পরবর্তী সি ++ স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত বলে মনে করা হয়।
  • এটি সুন্দরভাবে নথিভুক্ত করা হয়।
  • এর লাইসেন্স ওপেন সোর্স এবং ক্লোজ সোর্স প্রকল্পগুলিতে অন্তর্ভুক্তির অনুমতি দেয়।
  • এর বৈশিষ্ট্যগুলি সাধারণত একে অপরের উপর নির্ভর করে না তাই আপনি কেবল আপনার প্রয়োজনীয় অংশগুলিকেই লিঙ্ক করতে পারেন। [ লুক হার্মিটের মন্তব্য]

5
তদতিরিক্ত, আমরা আরও বলতে পারি যে উপ-লাইব্রেরিগুলি বুস্ট করা একে অপরের স্বতন্ত্রভাবে ব্যবহার করা যেতে পারে (কয়েকটি কোর লাইব্রেরি বাদে)। উদাহরণস্বরূপ, আমরা বুস্ট.ব্ল্যাশ ব্যবহার করতে হবে তা নয়, কারণ আমরা boost.shared_ptr ব্যবহার করছি তা নয়।
লুক হার্মিটে

আমি উত্তরগুলি এনসাইক্লোপিডিয়া এন্ট্রিগুলির মতো দেখতে দেখতে পছন্দ করি। এটি প্রচুর পরিমাণে উপাদান পাওয়া এত সহজ করে তোলে। +1
টাইলার স্মিথ

অন্য যেহেতু মনে হয় যে প্রতিটি লাইব্রেরি এমপিএলের উপর নির্ভরশীল ...
ভিক্টর সেহর

বুস্ট একবার লেখার অনুমতি দেয়, ক্রস-প্ল্যাটফর্মের বিকাশ এবং ব্যবহার সঠিক?
ফিলবট 3

এটি কি বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে?
মায়ুর

39

হোম পৃষ্ঠা থেকে:

"... বিশ্বের সবচেয়ে সম্মানিত এবং দক্ষতার সাথে ডিজাইন করা সি ++ গ্রন্থাগার প্রকল্পগুলির মধ্যে একটি।" - ভেষজ সুটার এবং আন্ড্রেই আলেকজান্দ্রেস্কু, সি ++ কোডিং স্ট্যান্ডার্ড

"আইটেম 55: নিজেকে বুস্টের সাথে পরিচিত করুন।" - স্কট মায়ার্স, কার্যকর সি ++, তৃতীয় এড।

"বেশিরভাগ প্রোগ্রামারদের জন্য সুস্পষ্ট সমাধান হ'ল একটি লাইব্রেরি ব্যবহার করা যা প্রয়োজনীয় পরিষেবাদিগুলির কাছে স্বতন্ত্র এবং দক্ষ প্ল্যাটফর্ম সরবরাহ করে Ex উদাহরণগুলি হ'ল উত্তম ..." - বর্জন স্ট্রস্ট্রপ, বিমূর্ততা, গ্রন্থাগার এবং সি ++ এর দক্ষতা

সুতরাং, এটি বহুল ব্যবহৃত এবং গ্রহণযোগ্য গ্রন্থাগারগুলির একটি পরিসীমা, তবে কেন আপনার এটির প্রয়োজন হবে?

যদি তুমি চাও:

  • Regex
  • ফাংশন বাঁধাই
  • ল্যাম্বদা ফাংশন
  • ইউনিট পরীক্ষা
  • স্মার্ট পয়েন্টার
  • অপ্রয়োজনীয়, alচ্ছিক
  • ধারাবাহিকতাতে
  • জেনেরিক তারিখ
  • পোর্টেবল ফাইল সিস্টেম
  • বিজ্ঞপ্তি বাফার
  • কনফিগার ব্যবহার
  • জেনেরিক ইমেজ লাইব্রেরি
  • TR1
  • থ্রেড
  • uBLAS

এবং আরো যখন আপনি কোড সি ++ কটাক্ষপাত আছে বুস্ট


23

কারণ তারা স্ট্যান্ডার্ড লাইব্রেরিতে অনেক হারিয়ে যাওয়া জিনিস যুক্ত করে, তাই তাদের মধ্যে কিছু স্ট্যান্ডার্ডের অন্তর্ভুক্ত হচ্ছে।

বুস্ট লোকেরা মিথ্যা বলছে না:

কোনও প্রতিষ্ঠানের বুস্ট ব্যবহার করা উচিত কেন?

এক কথায়, উত্পাদনশীলতা। বুস্টের মতো উন্নত মানের লাইব্রেরিগুলির ব্যবহার প্রাথমিক বিকাশের গতি বাড়ায়, কম বাগের ফলস্বরূপ, চাকা পুনর্বিন্যাস হ্রাস করে এবং দীর্ঘমেয়াদী রক্ষণাবেক্ষণ ব্যয় হ্রাস করে। এবং যেহেতু বুস্ট লাইব্রেরিগুলি ডি ফ্যাক্টো বা ডি জুর স্ট্যান্ডার্ড হয়ে ওঠে, তাই অনেক প্রোগ্রামার ইতিমধ্যে তাদের সাথে পরিচিত।

বুস্ট লাইব্রেরির দশটি সি ++ স্ট্যান্ডার্ড লাইব্রেরির টিআর 1 এ অন্তর্ভুক্ত রয়েছে এবং তাই পরবর্তী পুরো মানীকরণের জন্য সেট করা আছে। আরও বুস্ট গ্রন্থাগারগুলি টিআর 2-র পাইপলাইনে রয়েছে। বুস্ট লাইব্রেরি ব্যবহার করে একটি সংস্থা নতুন প্রযুক্তি গ্রহণে একটি শুরুর দিক দেয়।

অনেক সংস্থা ইতিমধ্যে অ্যাডোব অ্যাক্রোব্যাট রিডার 7.0 এর মতো বুস্টের সাথে প্রয়োগ করা প্রোগ্রামগুলি ব্যবহার করে।


16

কয়েকটি বুস্ট ক্লাস খুব দরকারী (শেয়ারড_পিটার), তবে আমি মনে করি বুস্টের বৈশিষ্ট্য এবং ধারণার সাথে তারা কিছুটা বাদাম ফেলেছে। সংকলনের সময় এবং বিশাল বাইনারি আকারগুলি বুস্টের সাথে সম্পূর্ণ উন্মাদ, যেমন কোনও টেম্পলেট-ভারী কোডের ক্ষেত্রে। একটি ভারসাম্য থাকতে হবে। আমি নিশ্চিত না বুস্ট এটি খুঁজে পেয়েছে কিনা।


10
আপনি ভুলে গেছেন যে বুস্ট একটি লাইব্রেরি নয় অনেকগুলি। অতিরিক্তভাবে, আপনাকে কার্যকারিতার বিপরীতে বড় আকারের অফসেট করতে হবে এবং সময় সংকলন করতে হবে। বৈশিষ্ট্য এবং ধারণাগুলি বিকাশে একটি দুর্দান্ত সহায়তা। সংকলন সময় এটির জন্য অর্থ প্রদানের জন্য সত্যই একটি ছোট মূল্য।
কনরাড রুডল্ফ

8

এটি লাইব্রেরি যুক্ত করেছে যা সি ++ প্রোগ্রামিংয়ের আরও আধুনিক পদ্ধতির সুযোগ দেয়।

আমার অভিজ্ঞতায় অনেক সি ++ প্রোগ্রামার সত্যই 1990 এর দশকের গোড়ার দিকে সি ++ প্রোগ্রামার, বেশ বেশি সি ++ ক্লাস লেখেন, জেনেরিকের বেশি ব্যবহার হয় না। আরও আধুনিক পদ্ধতির সাথে জেনেরিকগুলি একসাথে সফ্টওয়্যার রচনা করতে ব্যবহার করে ডাইনামিক ভাষার মতো আরও কার্যকর হয়, তবুও আপনি এখনও প্রকারে পরীক্ষা / পারফরম্যান্স পেতে পারেন। এটি দেখতে একটু কুৎসিত হয়। তবে একবার সিনট্যাক্সের সমস্যাগুলি পেয়ে গেলে এটি সত্যিই দুর্দান্ত। বুস্ট আপনাকে সহজেই সামগ্রী রচনা করার জন্য প্রয়োজনীয় অনেক সরঞ্জাম দেয়। স্মার্ট পয়েন্টার, ফাংশন, ল্যাম্বডাস, বাইন্ডিং ইত্যাদি। এরপরে এমন বুস্ট লাইব্রেরি রয়েছে যা নেটওয়ার্কিং, রেজেক্স, ইত্যাদি ইত্যাদির জন্য সি ++ রচনার এই নতুন পদ্ধতিটি ব্যবহার করে ...

আপনি যদি লুপগুলি, বা হ্যান্ড রোলিং ফাংশন অবজেক্টগুলির জন্য প্রচুর লিখছেন, বা মেমরি পরিচালনা করছেন, তবে অবশ্যই আপনার উত্সাহটি পরীক্ষা করা উচিত।


8

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

BOOST ব্যবহার বিবেচনা করার জন্য গুরুত্বপূর্ণ কারণগুলির মধ্যে রয়েছে:

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

লাইব্রেরিগুলি এখানে একটি বা দুটি লাইনে বর্ণনা করা হয়েছে: http://www.boost.org/doc/libs/




3

মূলত স্ট্যান্ডার্ডটি কী হবে তার সংক্ষিপ্তসার ছাড়াও, সমস্ত পিয়ার পর্যালোচনা এবং বুস্টের ব্যবহারের সাহায্যে আপনি আপনার নির্ভরতাগুলির জন্য বেশ ভাল চুক্তিটি পেতে বেশ নিশ্চিত হতে পারেন।

তবে বেশিরভাগ দোকান বুস্ট ব্যবহার করে না, কারণ এটি একটি বাহ্যিক নির্ভরতা। এবং বাস্তবে বাহ্যিক নির্ভরতা হ্রাস করাও খুব গুরুত্বপূর্ণ।


3

বুস্ট হ'ল সি ++ এর মতো ধরণের। নেট ফ্রেমওয়ার্কটি সি # তে হয় তবে ছোট আকারেও হতে পারে।


2

আমি ফাইল সিস্টেম লাইব্রেরিটি কিছুটা ছাড়ার ব্যবহার করি এবং উত্সাহিত: শেয়ার্ড_পিটারটি বেশ নিফটি। আমি শুনেছি এটি অন্যান্য জিনিসগুলিও করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.