C ++ बूस्ट लाइब्रेरीज़ का उपयोग करने के क्या फायदे हैं? [बन्द है]


122

इसलिए, मैं इसके माध्यम से पढ़ रहा हूं और ऐसा प्रतीत होता है कि बूस्ट पुस्तकालयों को बहुत अधिक उपयोग में लाया जाता है (मेरी दुकान पर नहीं, हालांकि)। ऐसा क्यों है? और क्या यह इतना अद्भुत है?


10
नाइटपिक: यह एक संक्षिप्त नहीं है, इसलिए यह बूस्ट (या बढ़ावा) है, न कि बुस्ट। जब तक आप निश्चित रूप से चिल्ला नहीं रहे हैं;)
निकल्स

10
@ निक्लास यह भी BOOST है जब आप प्रीप्रोसेसर मैक्रोज़ = P
KitsuneYMG में से

@KitsuneYMG मैं देख रहा हूं कि प्रश्न को वैसे भी संपादित किया गया है, लेकिन मुझे पूरा यकीन है कि ओपी प्रीप्रोसेसर कोड के संपादन के लिए प्रश्न क्षेत्र का उपयोग नहीं कर रहा था;)
निकल्स

3
@ निकीस मैं सिर्फ एक स्मार्ट-गधा = पी हूं। एक आदमी के शौक है।
KitsuneYMG

C ++ बिना बूस्ट के बकवास है :)
TriCore

जवाबों:


134

बूस्ट का उपयोग इसलिए बड़े पैमाने पर किया जाता है:

  • यह ओपन-सोर्स और पीयर-रिव्यू है।
  • यह मंच अज्ञेय कार्यक्षमता की एक विस्तृत श्रृंखला प्रदान करता है जो एसटीएल चूक गया।
  • यह प्रतिस्थापन के बजाय एसटीएल का पूरक है।
  • बूस्ट डेवलपर्स के कई सी ++ मानक समिति पर हैं। वास्तव में, बूस्ट के कई हिस्सों को अगले सी ++ मानक पुस्तकालय में शामिल माना जाता है।
  • यह अच्छी तरह से प्रलेखित है।
  • इसका लाइसेंस ओपन-सोर्स और क्लोज-सोर्स प्रोजेक्ट में शामिल करने की अनुमति देता है।
  • इसकी विशेषताएं आमतौर पर एक दूसरे पर निर्भर नहीं होती हैं, इसलिए आप केवल उन हिस्सों को जोड़ सकते हैं जिनकी आपको आवश्यकता होती है। [ ल्यूक हरमिट की टिप्पणी]

5
इसके अलावा, हम यह भी कह सकते हैं कि बूस्ट उप-पुस्तकालयों का उपयोग एक-दूसरे से स्वतंत्र रूप से किया जा सकता है (कुछ मुख्य पुस्तकालयों को छोड़कर)। ऐसा इसलिए नहीं है क्योंकि हम बूस्ट का उपयोग कर रहे हैं। उदाहरण के लिए हमें उदाहरण के लिए बूस्ट.ब्लॉ का उपयोग करना होगा।
ल्यूक हरमिट्टे

मुझे ऐसे उत्तर देखना पसंद है जो विश्वकोश प्रविष्टियों की तरह दिखते हैं। इससे बड़ी मात्रा में सामग्री प्राप्त करना आसान हो जाता है। +1
टायलर स्मिथ

ऐसा लगता है कि प्रत्येक पुस्तकालय एमपीएल पर निर्भर है ...
विक्टर सेहर

बूस्ट एक बार लिखने के लिए अनुमति देता है, क्रॉस-प्लेटफॉर्म विकास और उपयोग सही है?
FilBot3

क्या यह व्यावसायिक उपयोग के लिए स्वतंत्र है?
मयूर

39

मुख पृष्ठ से:

"" दुनिया में सबसे उच्च माना और विशेषज्ञ C ++ पुस्तकालय परियोजनाओं में से एक है। " - हर्ब सटर और आंद्रेई अलेक्जेंड्रेस्कु, सी ++ कोडिंग मानक

"आइटम 55: बूस्ट के साथ खुद को परिचित करें।" - स्कॉट मेयर्स, प्रभावी सी ++, तीसरा एड।

"अधिकांश प्रोग्रामर्स के लिए स्पष्ट समाधान एक पुस्तकालय का उपयोग करना है जो आवश्यक सेवाओं के लिए एक सुरुचिपूर्ण और कुशल मंच प्रदान करता है। उदाहरण BOOST हैं ..." - ब्रेज़न स्ट्रॉस्ट्रुप, एब्स्ट्रक्शन, लाइब्रेरीज़ और सी ++ में दक्षता।

तो, यह व्यापक रूप से इस्तेमाल और स्वीकृत पुस्तकालयों की एक सीमा है, लेकिन आपको इसकी आवश्यकता क्यों होगी?

अगर तुम्हे जरुरत हो:

  • regex
  • कार्य बंधन
  • लंबोदर कार्य
  • इकाई परीक्षण
  • स्मार्ट संकेत
  • noncopyable, वैकल्पिक
  • क्रमबद्धता
  • सामान्य तिथियां
  • पोर्टेबल फाइल सिस्टम
  • परिपत्र बफ़र्स
  • कॉन्फ़िगर बर्तन
  • सामान्य छवि पुस्तकालय
  • TR1
  • सूत्र
  • uBLAS

और अधिक जब आप C ++ में कोड करते हैं, तो Boost पर एक नज़र डालें ।


23

क्योंकि वे कई लापता चीजों को मानक पुस्तकालय में जोड़ते हैं, इसलिए उनमें से कुछ मानक में शामिल हो रहे हैं।

बूढ़े लोग झूठ नहीं बोल रहे हैं:

एक संगठन को बूस्ट का उपयोग क्यों करना चाहिए?

एक शब्द में, उत्पादकता। बूस्ट जैसे उच्च-गुणवत्ता वाले पुस्तकालयों का उपयोग प्रारंभिक विकास को गति देता है, कम बगों में परिणाम होता है, सुदृढीकरण-की-व्हील को कम करता है, और दीर्घकालिक रखरखाव लागतों में कटौती करता है। और जब से बूस्ट लाइब्रेरी डी फैक्टो या डी ज्यूर के मानक बन गए हैं, कई प्रोग्रामर पहले से ही उनसे परिचित हैं।

बूस्ट पुस्तकालयों में से दस C ++ मानक पुस्तकालय की TR1 में शामिल हैं, और इसलिए बाद में पूर्ण मानकीकरण के लिए स्लेट किए गए हैं। टीआर 2 के लिए अधिक बूस्ट लाइब्रेरी पाइपलाइन में हैं। बूस्ट पुस्तकालयों का उपयोग करने से नई तकनीकों को अपनाने के लिए एक संगठन शुरू होता है।

कई संगठन पहले से ही Boost के साथ कार्यान्वित कार्यक्रमों का उपयोग करते हैं, जैसे Adobe Acrobat Reader 7.0।


16

कुछ बूस्ट क्लास बहुत उपयोगी हैं (शेयर्ड_प्ट्र), लेकिन मुझे लगता है कि वे बूस्ट में लक्षण और अवधारणाओं के साथ थोड़ा पागल हो गए। संकलन समय और विशाल द्विआधारी आकार पूरी तरह से बूस्ट के साथ पागल हैं, जैसा कि किसी भी टेम्पलेट-भारी कोड के साथ होता है। एक संतुलन होना चाहिए। मुझे यकीन नहीं है कि अगर बूस्ट ने इसे पाया है।


10
आप भूल जाते हैं कि बूस्ट एक लाइब्रेरी नहीं बल्कि कई हैं। इसके अतिरिक्त, आपको बड़े आकार को ऑफसेट करना होगा और कार्यक्षमता के खिलाफ समय संकलित करना होगा। लक्षण और अवधारणाएं विकास में एक बड़ी मदद हैं। संकलित समय इसके लिए भुगतान करने के लिए वास्तव में एक छोटी सी कीमत है।
कोनराड रुडोल्फ

8

यह पुस्तकालयों को जोड़ता है जो C ++ प्रोग्रामिंग के लिए अधिक आधुनिक दृष्टिकोण की अनुमति देते हैं।

मेरे अनुभव में कई C ++ प्रोग्रामर्स वास्तव में 1990 के दशक के C ++ प्रोग्रामर हैं, बहुत ज्यादा C ++ क्लासेज लिखते हैं, जेनरिक का बहुत अधिक उपयोग नहीं है। अधिक आधुनिक दृष्टिकोण जेनेरिक का उपयोग करता है सॉफ्टवेयर को एक साथ तरीके से लिखने के लिए गतिशील भाषाएं अधिक पसंद करती हैं, फिर भी आपको अंत में टाइप चेकिंग / प्रदर्शन मिलता है। यह देखने में थोड़ा बदसूरत है। लेकिन एक बार जब आप वाक्यविन्यास मुद्दों पर पहुंच जाते हैं तो यह वास्तव में काफी अच्छा होता है। बूस्ट आपको बहुत सारे उपकरण देता है जिन्हें आपको आसानी से सामान रचना करने की आवश्यकता होती है। स्मार्ट पॉइंटर्स, फ़ंक्शंस, लैम्ब्डा, बाइंडिंग इत्यादि, फिर बूस्ट लाइब्रेरी हैं जो नेटवर्किंग, रेगेक्स, आदि जैसी चीजें प्रदान करने के लिए C ++ लिखने के इस नए तरीके का फायदा उठाते हैं।

यदि आप लूप के लिए बहुत सारे लिख रहे हैं, या फंक्शन रोलिंग ऑब्जेक्ट्स, या मेमोरी मैनेजमेंट कर रहे हैं, तो आपको निश्चित रूप से बूस्ट चेक आउट करना चाहिए।


8

BOOST पुस्तकालयों को भरने का एक संग्रह कई C ++ परियोजनाओं के लिए आम है। आम तौर पर, वे BOOST कार्यान्वयन कोड की पठनीयता, या कभी-कभी संकलन के समय में शुद्धता, पुन: प्रयोज्यता, सुवाह्यता, रन-टाइम प्रदर्शन और अंतरिक्ष-दक्षता को प्राथमिकता देते हैं। वे पूरी तरह से उच्च-स्तरीय कार्यात्मक आवश्यकताओं (जैसे एप्लिकेशन फ्रेमवर्क) को कवर नहीं करते हैं, और इसके बजाय (धन्यवाद) बिल्डिंग ब्लॉकों की पेशकश करते हैं, जो एप्लिकेशन डिज़ाइन को निर्देशित या हावी किए बिना अधिक स्वतंत्र रूप से संयुक्त हो सकते हैं।

BOOST का उपयोग करने पर विचार करने के लिए महत्वपूर्ण कारणों में शामिल हैं:

  • अधिकांश पुस्तकालयों को बहुत अच्छी तरह से परीक्षण और डिज़ाइन किया गया है: वे आम तौर पर कुछ उत्कृष्ट प्रोग्रामर द्वारा यथोचित ध्वनि समीक्षा प्राप्त करते हैं, उसी समस्या वाले स्थान पर घर-काढ़ा समाधान वाले लोगों की तुलना में, और व्यापक रूप से वास्तविक दुनिया की प्रतिक्रिया एकत्र करने के लिए पर्याप्त रूप से उपयोग किया जाता है
  • यह पहले से ही लिखा है और आपका समाधान शायद नहीं है
  • यह बहुत पोर्टेबल है (लेकिन यह प्रति पुस्तकालय में बदलता है)
  • C ++ समुदाय के अधिक लोग आपके कोड के साथ आपकी सहायता करने के लिए एक हेड-स्टार्ट करेंगे
  • BOOST अक्सर C ++ मानक के लिए एक साबित मैदान है, इसलिए आपके पास भविष्य के मानकों के अनुरूप होने के लिए अपने कोड को फिर से लिखने के लिए कम काम करना होगा BOOST
  • समुदाय की मांग के कारण, कंपाइलर विक्रेताओं को BOOST उपयोग के साथ शुद्धता के मुद्दों पर परीक्षण और प्रतिक्रिया करने की अधिक संभावना है
  • बूस्ट लाइब्रेरी से परिचित होने से आपको अन्य परियोजनाओं पर समान काम करने में मदद मिलेगी, संभवतः अन्य कंपनियों में, जहाँ अब आप जो भी कोड लिखेंगे, वह पुन: उपयोग के लिए उपलब्ध नहीं होगा।

पुस्तकालयों का वर्णन एक पंक्ति या दो में यहाँ किया गया है: http://www.boost.org/doc/libs/




3

बूस्ट मूल रूप से क्या मानक बन जाएगा, इसके अलावा सभी सहकर्मी की समीक्षा और उपयोग के अलावा जो बूस्ट आपको मिलता है वह आपके भरोसे के लिए काफी अच्छा सौदा हो सकता है।

हालांकि अधिकांश दुकानें बूस्ट का उपयोग नहीं करती हैं, क्योंकि इसकी बाहरी निर्भरता है। और वास्तव में बाहरी निर्भरता को कम करने के साथ-साथ बहुत महत्वपूर्ण है।


3

बूस्ट C ++ की तरह है। .NET फ्रेमवर्क C # की तरह है, लेकिन शायद छोटे पैमाने पर।


2

मैं फ़ाइल सिस्टम लाइब्रेरी का उपयोग करता हूं, थोड़ा सा छोड़ दिया है और बढ़ावा :: साझा_प्रति सुंदर निफ्टी है। मैंने सुना है यह अन्य चीजें भी करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.