कुछ वर्षों के बाद इस प्रश्न पर वापस आना संपादित करें कुछ वर्षों
से अधिक से अधिक पुस्तकालयों का उपयोग करना जारी रहा, मैंने सोचा कि मैं इस प्रश्न को अपडेट करूंगा कि जब उत्पाद का विवरण आपकी वांछित कार्यक्षमता से मेल खाता है तो आपको बूस्ट का उपयोग क्यों करना चाहिए। यह भी नेकदिल लोगों को मना लेंगे। ओपनएसएसएल डाउनलोड करें, इसके साथ एक क्लाइंट और सर्वर एप्लिकेशन बनाने का प्रयास करें। अब कोशिश करें और हर प्लेटफॉर्म पर वह काम करें। फिर, एक ही आवेदन करने के लिए बढ़ावा :: asio :: ssl डाउनलोड और उपयोग करें। यदि आप आश्वस्त नहीं हैं कि स्वच्छ, अच्छी तरह से अनुकूलित, सहकर्मी की समीक्षा, क्रॉस-प्लेटफ़ॉर्म कोड देखने के लिए बढ़ावा देने के लिए सही जगह है, तो यह सरल व्यायाम आपको परिवर्तित कर देगा।
टीएल; डॉ। संस्करण:
मेरी राय में, आप एक टन इंडी या छोटे से मध्यम आकार की विकास फर्मों को बढ़ावा देने का उपयोग करते हुए नहीं देखते हैं क्योंकि यह एक विशाल और शक्तिशाली जंगली जानवर है जो कि वश में करना आसान नहीं है और आप मूल रूप से अपने दम पर हैं कि कैसे सीखने की कोशिश कर रहे हैं इसके प्रयेाग के लिए। प्रलेखन में कुछ तरीकों की कमी है (लंबे संस्करण देखें) और परियोजना के आसपास "समुदाय" या तो गायब, बिखरे या निष्क्रिय (अन्य परियोजनाओं की तुलना में) प्रतीत होता है।
बहुत लंबा घुमावदार संस्करण:
मुझे लगता है कि पहले से ही एक स्वीकृत उत्तर है लेकिन जैसा कि कोई व्यक्ति जो वास्तव में मेरे द्वारा किए जाने वाले लगभग हर प्रोजेक्ट में बढ़ावा देता है, मैंने सोचा कि मैं एक उत्तर पोस्ट करूंगा।
मुझे याद है कि जब मैं पहली बार बढ़ावा देने के लिए इधर-उधर घूम रहा था और ईमानदारी से मुझे कोई भयावह विचार नहीं था कि क्या हो रहा था। बूस्ट बहुत अच्छी तरह से प्रलेखित नहीं है। लोग इस पर मुझसे असहमत हो सकते हैं कि मुझे यकीन है क्योंकि उदाहरण कोड और टिप्पणियों और इस तरह के स्निपेट्स के टन हैं, लेकिन यह सब बहुत ठंडा और अस्पष्ट है और साथ ही साथ नेविगेट करना मुश्किल है।
इसके अलावा किसी भी ऐसी जगह को ढूंढना मुश्किल है जहां आपको ऐसा लगे कि आपने प्रोजेक्ट के आसपास "समुदाय" पाया है। वास्तव में समुदाय गैर-मौजूद है, या खानाबदोश लगता है। दुर्भाग्य से यहां तक कि उनकी मेलिंग सूची को कई जोंक साइटों द्वारा ट्रोल किया गया है कि आप इस खरगोश छेद को नीचे जा सकते हैं, जहां आप शुरू कर रहे थे, वहां वापस लूपिंग कर रहे थे।
इन दो कारकों को बढ़ावा पुस्तकालयों के बजाय एक कठिन काम सीखने के लिए बनाते हैं। यहां तक कि अगर बूस्ट का उपयोग करने की तकनीकी अत्यधिक जटिल नहीं है, तो यह पुस्तकालयों का एक विशाल सेट है और इसे नीचे घूर रहा है जब आप सभी से लैस हैं कुछ कोड स्निपेट और इंटरनेट के सबसे गहरे कोनों से मेलिंग सूची के टुकड़े बिखरे हुए हैं। ... खैर, आप विचार समझ गए।
मैं संस्करण 1.45 के आसपास बढ़ावा देने के साथ छेड़छाड़ करने लगा और यह अब केवल 1.52 / 1.53 संस्करण में है कि मैं इसे उत्पादन में उपयोग करने के लिए काफी सहज महसूस करता हूं। उपयोग करने और याद रखने के लिए बहुत सी चीजें हैं, यहां तक कि सरल चीजें भी हैं जैसे आपने कॉन्फ़िगरेशन को कैसे बढ़ाया और याद किया है, क्योंकि पुस्तकालयों का निर्माण कैसे किया जाता है और फ़ंक्शन अनुकूलन योग्य चीजों के कारण संकलन समय पर आपकी प्राथमिकताओं के आधार पर बेतहाशा भिन्न हो सकते हैं। कर रहे हैं।
हालांकि , कोई गलती न करें , एक बार जब आप को बढ़ावा दे सकते हैं, तो आप तेजी से ठोस, क्रॉस-प्लेटफॉर्म कार्यक्रमों के निर्माण के लिए एक शक्तिशाली हथियार प्राप्त कर चुके हैं। बस boost::asio
उदाहरण के लिए ले लो । आप बस दो सौ लाइनों में एक बेहद शक्तिशाली, स्केलेबल और रॉक सॉलिड क्रॉस प्लेटफॉर्म अतुल्यकालिक वेब सर्वर लिख सकते हैं। मैंने कई ग्राहकों, सर्वरों, परदे के पीछे आदि को कोड की कुछ सौ पंक्तियों के साथ वर्षों में लिखा है जो अभी तक मुझे विफल करने के लिए हैं, और उन्हें प्लेटफ़ॉर्म से प्लेटफ़ॉर्म पर मिनटों में पोर्ट कर सकते हैं।
जैसा कि दूसरों ने बताया है, बड़ी कंपनियां आमतौर पर विरासत सामान के साथ फंस जाती हैं या अपना खुद का रोल करना पसंद करती हैं, जिसे मैं पूरी तरह से समझता हूं। वहाँ भी मैं वास्तव में मूर्खतापूर्ण बात के बारे में सुना है और सामना किया है, जहां देव नेतृत्व और या परियोजना प्रबंधकों ने बढ़ावा का उपयोग करते हुए मना किया है क्योंकि यह "बहुत बड़ा है"। मेरा अनुमान है कि उनका मानना है कि बढ़ावा 1 एकल पुस्तकालय है या उन्होंने बीसीपी के बारे में कभी नहीं सुना है ।
WHY के लिए मैं बूस्ट का उपयोग करना चुनता हूं
मैं कहता हूं कि मैं इसका उपयोग करता हूं क्योंकि जैसा कि आप अपने प्रश्न में लगाते हैं, यह "सी ++ लाइब्रेरी" है। बूस्ट को सी ++ दुनिया में उन चीजों के स्विस सेना चाकू के रूप में देखा जाता है जो अंततः आपको उपयोग करने की आवश्यकता होती है। इसलिए विचार यह है कि यदि कोई आवश्यकता है, तो एक उच्च प्रदर्शन करने वाला होना चाहिए, और इसे बढ़ावा देने का पोर्टेबल संस्करण होना चाहिए। बड़ी कंपनियां बढ़ावा देने में योगदान देती हैं , प्रभावशाली रिज्यूमे वाले बहुत से शिक्षित लोग इसमें योगदान देते हैं और इसे बनाए रखते हैं , और जब सी ++ का एक नया मानक विकसित किया जा रहा है, तो लोग आमतौर पर यह देखने के लिए बढ़ावा देते हैं कि इसके कौन से हिस्से आईएसओ मानकीकृत सी ++ बनें।
इसलिए अगर मुझे कुछ ऐसी कार्यक्षमता जोड़ने की आवश्यकता है जो संभवत: एक मौजूदा पुस्तकालय के लिए है, तो पहली जगह जो मैं देखूंगा, वह सिर्फ इसलिए बढ़ावा दे रहा है क्योंकि मैं सट्टेबाजी में बहुत सुरक्षित हूं कि यह बहुत अच्छी तरह से अनुकूलित, पोर्टेबल है, इसके लिए समर्थन और रखरखाव किया जाएगा। एक बहुत लंबा समय और कीड़े मिल जाएंगे और इससे निपटा जाएगा। खुले स्रोत की दुनिया में उन गुणों का आना बहुत मुश्किल हो सकता है।