2013-01-23 42 views
5

सी ++ को औपचारिक रूप से 1 99 8 में मानकीकृत किया गया था, लेकिन string नामक कक्षा को हम कितनी दूर देख सकते हैं जो std::string जैसा कि पूर्व-मानक सी ++ कार्यान्वयन में सी ++ 2003 में करता है?मानकीकरण 'स्ट्रिंग' उपलब्ध होने से कितने समय पहले उपलब्ध था?

मैं पूछता हूँ क्योंकि CString, MFC के भाग के रूप, "वहाँ" 1992 के बाद से किया गया है और मैं निर्धारित करने के लिए यह पहली से पहले या क्या अंततः std::string बन गया जब देखा गया था कोशिश कर रहा हूँ।

+0

सबसे पुराना मेरे पास अभी भी रोग वेव से 1 99 4 का कॉपीराइट है। एसटीएल को पहली बार नवंबर 1 99 3 में प्रस्तुत किया गया था। यह देखने में मुश्किल है कि आज आप जो कुछ भी काम करेंगे, वह कैसे बदलता है। –

+0

पृथ्वी पर यह विषय कैसे है ?! –

+0

@ हंसपैसेंट: यह नहीं है। यहां व्यावहारिक समस्या यह है कि मैं जानना चाहता हूं। –

उत्तर

5

ठीक पहले। 1 99 2 में हर कोई अभी भी अपनी खुद की स्ट्रिंग कक्षाएं चला रहा था। याद रखें कि std::string मूल रूप से भयानक था, और फिर यह भयानक और एक एसटीएल-शैली कंटेनर बन गया- लेकिन यह प्रक्रिया में बहुत देर हो चुकी थी, क्योंकि समिति ने एसटीएल में फिट होने के लिए दो साल के लिए पहले मानक में देरी की और सब कुछ स्टेपानोव की आवश्यकता थी। तो std::string को काफी देर तक अंतिम रूप दिया गया था।

+1

मुझे अभी भी समय-समय पर कस्टम स्ट्रिंग क्लास रोल करना पसंद है; जबकि std :: स्ट्रिंग "अच्छी तरह से परीक्षण" और "शक्तिशाली" है, वहां कुछ अच्छी चीजें हैं जो कस्टम स्ट्रिंग क्लास के साथ की जा सकती हैं, जैसे अंतर्निर्मित हैशिंग, विशिष्ट आर्किटेक्चर पर मेमोरी ऑप्टिमाइज़ेशन, इंटरफ़ेस डिज़ाइन का सरलीकरण, आदि। "भयानक" के लिए –

+0

+1। – juanchopanza

+0

ओउ। ठीक है फिर। –

2

आप एक कुछ हद तक 1998 से पहले इसी तरह की मिल सकती है, लेकिन व्यवहार में, यह मानक के बाद कई वर्षों था इससे पहले कि आप सकता है और अधिक या कम एक पर गिनती वहाँ जा रहा है। और पहले सबसे अच्छे "तरह" समान थे; मुझे push_back की अनुपस्थिति को कमेटी ड्राफ्ट्स में से एक में (अंतिम एक, मुझे लगता है), जो एक स्पष्ट निरीक्षण था, नहीं होगा अगर किसी ने फ़ंक्शन के साथ संस्करण लागू किया हो।