सी ++ आईओएसट्रीम हास्यास्पद रूप से अक्षम हैं (अधिकांश कार्यान्वयन में मुझे पता है)। अक्सर, यह कोई चिंता नहीं है, लेकिन जब यह है, पुस्तकालय मूल रूप से बेकार है। यह भी एक अच्छा मुद्दा है कि वाक्यविन्यास अनजान (और बहुत, बहुत verbose) है। लाइब्रेरी जटिल और विस्तार करने के लिए अनिवार्य रूप से कठिन है। यह या तो बहुत लचीला नहीं है। जब एसटीएल की तरह कुछ के खिलाफ विपरीत, IOStreams वास्तव में एक बुरा सपना दिखता है। लेकिन यह यहाँ है, और हम इसके साथ अटक गए हैं।
यह कारण यहां है, और ऐसा लगता है कि ऐसा लगता है, यह पहले विकसित किया गया था, सी ++ परिपक्व भाषा होने से पहले। दशकों के अनुभव से पहले हमें बता रहा था कि क्या अच्छा पुस्तकालय डिजाइन है, और नहीं। किसी को वास्तव में पता था कि विकल्प क्या थे।
सी ++ को एक आई/ओ लाइब्रेरी की आवश्यकता है जो सी 0 की तुलना में बेहतर था। और कुछ महत्वपूर्ण तरीकों से, सी ++ IOStreams बेहतर हैं। वे टाइप-सेफ और एक्स्टेंसिबल हैं जैसे कि अन्य ने उल्लेख किया है। एक ऑपरेटर को लागू करके, मैं एक उपयोगकर्ता परिभाषित वर्ग मुद्रित कर सकता हूं। यह printf
के साथ नहीं किया जा सका। मुझे प्रारूप सुरक्षा की कमी की वजह से प्रारूप विनिर्देशकों को गलत और कचरा प्रिंट करने के बारे में भी चिंता करने की ज़रूरत नहीं है।
उन चीजों को को की आवश्यकता है। और हे, प्रारंभिक दिनों में, वर्चुअल फ़ंक्शंस और ऑपरेटर ओवरलोडिंग पर छिद्रित थे। यह अच्छा लग रहा था।बेशक पुस्तकालय उन सुविधाओं का उपयोग करना चाहता था।
IOStreams पुस्तकालय एक समझौता के बीच है:
- कुछ सुरक्षित और अधिक से अधिक एक्स्टेंसिबल सी
stdio.h
- कुछ कुशल
- कुछ अच्छी तरह से डिजाइन और सहज ज्ञान युक्त
- एक पुस्तकालय है कि वास्तव में अस्तित्व में उस समय जब सी ++ को मानकीकृत किया जा रहा था। कि आज (वे कुछ जोड़ने के लिए किया था, तो वे उम्मीदवारों है कि वास्तव में समय मौजूद बीच चयन करने के लिए किया था।)
पुस्तकालय इन सभी को प्राप्त नहीं है, और मुझे विश्वास है, हमारे दशकों के साथ भाषा के साथ अनुभव का, हम एक बेहतर पुस्तकालय डिजाइन कर सकते थे। लेकिन 90 के दशक के मध्य में, जब वे जोड़ने के लिए आई/ओ लाइब्रेरी की तलाश में थे, तो वे सबसे अच्छे थे।
क्षमता वास्तव में कोई चिंता नहीं है, क्योंकि 99% समय एक ही ओएस कॉल में कंसोल पर प्रिंट करने के लिए कॉल किया जाएगा –
क्या स्ट्रिंग अबास्ट्रक्शन? –
-1 हे लड़का, मुझे लगता है कि आप सी ++ दुनिया में शुरुआत कर रहे हैं। आप कैसे कह सकते हैं कि यदि आप नहीं जानते हैं तो यह कम कुशल है? आलोचना से पहले, कृपया सीखें, और विनम्र रहें। –