2011-01-13 13 views
35

संभव डुप्लिकेट:
Boost Libraryबढ़ावा सी ++ पुस्तकालयों का उपयोग करें?

अक्सर मैं जब कोशिश कर (और अनुत्तीर्ण) था एक सी ++ परियोजना मैं जब वेब ब्राउज़िंग बूस्ट में चलाने। मैंने बूस्ट वेबसाइट पढ़ने की कोशिश की, लेकिन बूस्ट का उपयोग करने के लिए कोई अच्छा संक्षिप्त विवरण नहीं था और यह वास्तव में क्या है।

चीजों में से एक जो मुझे पायथन के बारे में बहुत पसंद है वह यह है कि सब कुछ अंतर्निहित और क्रॉस-प्लेटफ़ॉर्म, वेब अनुरोध, ईमेल, एक्सएमएल, जेएसओएन इत्यादि है। क्या यह बूस्ट के साथ भी मामला है?

तो, पर्याप्त शेख़ी, मेरे ठोस जवाब करने योग्य प्रश्न:

  • वास्तव में क्या बूस्ट है?
  • बूस्ट का उपयोग करने के लिए सबसे अधिक आयात कारण क्या हैं?
  • क्या यह पूरी तरह से क्रॉस-प्लेटफॉर्म है?
  • क्या यह अधिक "सुरक्षित" है, फिर नियमित होम-ब्रू कोड जहां आप तुरंत उस बफर ओवरफ्लो को अनदेखा करते हैं, आदि?
  • क्या एक या दो वाक्यों में बूस्ट के सभी मॉड्यूल का वर्णन करने वाले किसी पृष्ठ का कोई लिंक है?
+0

यह भी देखें http://stackoverflow.com/q/125580/50079। – Jon

+7

प्रश्न का उत्तर देने के लिए कोई जवाब नहीं दे रहा है, बूस्ट लाइब्रेरी एक ही तरह के पागल और बोल्ट व्यावहारिक सामान नहीं करते हैं जो पाइथन पुस्तकालय करते हैं। कोई एक्सएमएल नहीं, कोई JSON नहीं, कोई ईमेल नहीं, कोई HTTP हैंडलिंग नहीं। बूस्ट लाइब्रेरीज़ उससे अधिक अमूर्त और अधिक निम्न स्तर दोनों हैं। अभी भी उन सभी के लिए अविश्वसनीय रूप से उपयोगी है, लेकिन एक अलग तरह का उपयोगी है। – Omnifarious

+0

@ अनौपचारिक: धन्यवाद, यह मेरे प्रश्न के सबसे महत्वपूर्ण भागों में से एक था। – orlp

उत्तर

43

बूस्ट वास्तव में क्या है?

बूस्ट सी ++ के लिए उपयोगी और अत्यधिक उच्च-गुणवत्ता वाले पुस्तकालयों का संग्रह है जो अपेक्षाकृत छोटी मानक लाइब्रेरी का पूरक है।

बूस्ट का उपयोग करने के लिए सबसे अधिक आयात कारण क्या हैं?

बूस्ट उच्च गुणवत्ता वाले टूल प्रदान करता है जो सी ++ से गायब हैं। उनका उपयोग बेहद विविध है हालांकि ऐसा है कि बूस्ट आपके लिए पूरी तरह से निर्भर करता है या नहीं। लेकिन मैं सुरक्षित रूप से कह सकता हूं कि प्रत्येक बूस्ट का उपयोग करने से काफी पर्याप्त सी ++ कोड बेस लाभान्वित होगा।

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

क्या यह पूरी तरह से क्रॉस-प्लेटफार्म है?

लगभग हमेशा हाँ। यह बूस्ट के मुख्य गुणों में से एक है।

क्या एक या दो वाक्यों में बूस्ट के सभी मॉड्यूल का वर्णन करने वाले पृष्ठ का कोई लिंक है?

There is indeed.

+5

बस अपने कोड में 'boost :: shared_ptr' या' boost :: scoped_ptr' का उपयोग करके और कभी भी 'हटाएं' लिखना कभी भी बढ़ावा देने के लिए पर्याप्त कारण नहीं है। –

3

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

क्या बढ़ावा में है का सवाल है, बाहर की जाँच करें: http://www.boost.org/doc/libs/1_45_0/?view=categorized

2

कुछ भी विकिपीडिया पर कि boost page उत्तर नहीं मिलता है?

+0

मेरे लिए, स्टैक ओवरफ़्लो का उद्देश्य केवल सवालों का जवाब नहीं दे रहा है। यह ज्ञान इकट्ठा करने और साझा करने का भी मामला है। मेरी राय में इस प्रकार का उत्तर समुदाय को कोई मूल्य प्रदान नहीं करता है। – auserdude

+0

@auserdude सहमत! स्वयं को भिगोने वाले ज्ञान को समझाए बिना कुछ अन्य वेब पेज पोस्ट करना एसओ में अनुमति नहीं दी जानी चाहिए। –

9

वास्तव में क्या बूस्ट है?

बूस्ट सी ++ पुस्तकालयों का एक संग्रह है जो आपको सामान्य समस्याओं को हल करने के लिए कस्टम कोड लिखने से बचने में मदद करता है।

बूस्ट का उपयोग करने के सबसे महत्वपूर्ण कारण क्या हैं?

बूस्ट आपको प्रदान किए गए समाधानों को डिजाइन, कार्यान्वित करने और परीक्षण करने से बचाता है। यह आपको जबरदस्त समय बचाता है और आपको रास्ते में बग से बचने में मदद करता है।

क्या यह पूरी तरह से क्रॉस-प्लेटफार्म है?

बूस्ट कई प्लेटफार्मों का समर्थन करता है, कभी-कभी विशेष प्लेटफ़ॉर्म पर कुशल होने के लिए खानपान समाधान प्रदान करता है। कंपाइलर परीक्षण शीर्षक के तहत वर्तमान संस्करण page के निचले भाग के पास, जिन प्लेटफॉर्म पर इसका परीक्षण किया गया है, देख सकते हैं।

क्या यह अधिक "सुरक्षित" है, फिर नियमित होम-ब्रू कोड जहां आप तुरंत बफर ओवरफ़्लो इत्यादि को अनदेखा करते हैं?

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

वहाँ एक पेज एक या दो वाक्यों में बूस्ट के सभी मॉड्यूल का वर्णन करने के लिए किसी भी लिंक है?

बूस्ट Library Documentation लिंक पेज बूस्ट में सभी पुस्तकालयों का एक वाक्य सारांश प्रदान करता है।

9

1) बूस्ट एपीआई का एक सेट है, जिसे सी ++ में कुछ बेहतरीन दिमागों द्वारा विकसित किया गया है। आप जितना चाहें उतना या कम उपयोग कर सकते हैं। प्रत्येक एपीआई लक्ष्य, और एक विशेष प्रतिमान हल करता है। उदाहरण के लिए:

lexical_cast<> - Type-safe ways of casting from one type to another. 
program_options - Library for parsing command lines in a type-safe manner 
asio   - Asynchronous Input/Output. Great for working with sockets, IP4/IP6 
shared_ptr  - Reference-counted smart pointer 

... और बहुत कुछ।

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

3) यह क्रॉस-प्लेटफार्म के रूप में है जैसा आप प्राप्त करने जा रहे हैं। यानी, हाँ।

4) मैं किसी के घर-ब्रूडेड कोड पर बढ़ावा देना चाहता हूं। होमब्रू एक एकल डेवलपर द्वारा उपयोग किया जाता है (वह व्यक्ति जो इसे कोडित करता है)। बूस्ट हर जगह वाणिज्यिक अनुप्रयोगों में उपयोग में है और जैसा कि मैंने पहले कहा था, यह सहकर्मी-समीक्षा की गई है। आप इससे ज्यादा मजबूत नहीं हो जाते हैं।

5) मुख्य बढ़ावा पृष्ठ में पुस्तकालयों की सूची कार्य और वर्णानुक्रम से है।

+0

यह होना चाहिए, उदाहरण के लिए नहीं, उदाहरण के लिए – nonremovable

+0

@nonremovable, धन्यवाद! संपादित। –

+0

सी ++ 11 की 'std :: _ shared_ptr' बूस्ट' shared_ptr' से लिया गया था, सही? फिर वे अपेक्षाकृत समान हैं, हम्म? –

3

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

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

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

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

संबंधित मुद्दे