2009-10-19 7 views
9

Apache C++ standard library से मुझे क्या लाभ मिलते हैं कि मुझे कंपाइलर और बूस्ट पुस्तकालयों के साथ आने वाले एसटीएल कार्यान्वयन से नहीं मिलता है?बूस्ट के साथ किसी भी अन्य एसटीएल कार्यान्वयन के बजाय मुझे अपाचे सी ++ मानक पुस्तकालय का उपयोग क्यों करना चाहिए?

+0

पोस्ट कुछ पृष्ठभूमि –

+0

मैं के बाद से यह 'पोर्टेबल' है और यह भी अपने प्रोजेक्ट में अपाचे के सी ++ मानक पुस्तकालय का उपयोग करने का सुझाव दिया गया था संग्रह और कई अन्य एल्गोरिदम कार्यान्वयन के समृद्ध सेट है। मैं अंधेरे से सुझाव का पालन नहीं करना चाहता, इसलिए उन लोगों से इनपुट की तलाश करना जिनके पास विभिन्न टेम्पलेट पुस्तकालयों का उपयोग करके बेहतर ज्ञान और अनुभव है। धन्यवाद। –

+0

आपके बूस्ट भाग के बारे में: क्या आप पूछ रहे हैं कि आपको बूस्ट के स्थान पर अपाचे सी ++ मानक लाइब्रेरी का उपयोग करना चाहिए या नहीं? या एसटीएल कार्यान्वयन – blwy10

उत्तर

5

अपाचे सी ++ स्टैंडर्ड लाइब्रेरी परियोजना आईएसओ/आईईसी 14882 सी ++ स्टैंडर्ड लाइब्रेरी की एक पूरी कार्यान्वयन है।

सबसे ख़ास विशेषता सी ++ स्टैंडर्ड लाइब्रेरी के इस कार्यान्वयन के सी ++ compilers, ऑपरेटिंग सिस्टम की एक बड़ी संख्या के लिए अपनी पोर्टेबिलिटी, और हार्डवेयर आर्किटेक्चर है।

लगता है जैसे आप अत्यधिक पोर्टेबिलिटी मानते हैं तो यह आपके लिए है। यदि आप नहीं करते हैं, तो अधिकांश लोग अपने कंपाइलर के डिफ़ॉल्ट कार्यान्वयन पर चूक जाते हैं, इसलिए यदि आपको कभी परेशानी होती है, तो समुदाय बड़ा होगा। यदि आप कार्यान्वयन के मुद्दों में नहीं भागते हैं तो मुझे नहीं लगता कि इसे एक अंतर क्यों बनाना चाहिए।

मुझे आम तौर पर इस राय के लिए फ्लेम किया जाता है लेकिन मुझे ऐसी समस्याएं पसंद हैं जो मैं समस्याओं को ठीक करने के लिए भुगतान कर सकता हूं, मेरे डेवलपर (और मैं) पर्याप्त नहीं हैं (या समय नहीं है) गोता लगाने के लिए आंतरिक और फिक्स बग।

1

अपाचे सी ++ लाइब्रेरी मूल रूप से रॉग वेव से एक वाणिज्यिक पुस्तकालय थी। वे सी ++ मानक को बहुत बारीकी से ट्रैक करने और विभिन्न ऑपरेटिंग सिस्टम और कंपाइलर्स में पोर्टेबिलिटी बीमा करने के लिए कड़ी मेहनत करने का दावा करते हैं। रॉग वेव लाइब्रेरी का दावा है कि 40 से अधिक कंपाइलर्स को पोर्ट किया गया है। ,

  • तेजी से compiles और अत्यंत छोटे निष्पादन योग्य फ़ाइल के लिए अनुकूलित आकार

इस पत्र में Stroustrup:

5

लाभों में से एक stdxx दावों मेरे लिए सच हो रहा है कि SCARY नामक कुछ सी ++ कंपाइलर्स में लागू एक नए विचार के बारे में बात करते हैं। मैंने पहले इसके बारे में one of his papers में पढ़ा। वैसे भी, यह सुविधा बड़ी संख्या में (~1x - ~25x) द्वारा उत्पादित निष्पादन योग्य आकार को कम करने की अनुमति देता है, और (~1.2x - ~2.1x) द्वारा तेज़ी से। पहले पत्र में उन्होंने कहा कि Rogue Wave STLSCARY का समर्थन करता है, कम से कम आधुनिक कार्यान्वयन में:

रोग वेव एसटीएल का नवीनतम संस्करण इसके उत्पादन मोड में iterators स्वतंत्र कंटेनर है, लेकिन मानक कंटेनरों के कुछ ' iterators मोड डीबग में स्वतंत्र नहीं हैं। N2911 बताता है कि इन निर्भरताओं को वास्तव में डिबगिंग उद्देश्यों के लिए आवश्यक नहीं है और आसानी से हटाया जा सकता है।

तो, अगर stdxxRogue Wave STL पर आधारित है, यह इस विचार को पहले से ही लागू किया हो सकता है।

+0

stdxx 2005 में फोर्क किया गया था; एससीआरआई पेपर हाल ही में है। – MSalters

0

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

  1. lambdas/क्लोजर
  2. खाका और पूर्वप्रक्रमक metaprogramming
  3. सिग्नल और स्लॉट/पर्यवेक्षक/श्रोता पैटर्न कार्यान्वयन
  4. संदर्भ रैपर
  5. अन्य यादृच्छिक बातें आप नहीं कर रहे हैं का एक बहुत एक पुस्तकालय में कहीं और खोजने की संभावना

यह सब आपको आवश्यक सुविधाओं पर निर्भर करता है।

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