यह कितना महत्वपूर्ण है कि आप C ++ मानक जानते हैं?


11

मैंने खोज करने का प्रयास किया, लेकिन मुझे एक समान प्रश्न नहीं दिखाई दिया (या तो मेरी या मेरी शब्दावली गलत थी - यदि ऐसा है, तो बंद करने के लिए स्वतंत्र महसूस करें)।

मैं SO का एक शौक़ीन उपयोगकर्ता हूँ, और मैं देखता हूँ कि चर्चाओं और उत्तरों में C ++ मानक के बहुत सारे संदर्भ हैं - और मुझे स्वीकार करना होगा, मैंने इस विशेष दस्तावेज़ को कभी नहीं पढ़ा है, भाषा मेरी आँखों को चोट पहुँचाती है ... तो सवाल यह है कि क्या C ++ डेवलपर वास्तव में इस दस्तावेज़ को पढ़े बिना किसी जीवित के लिए कोड बना सकता है? क्या यह वास्तव में हमारे लिए नश्वरता है जो लिखने वालों के व्यापार में नहीं है?


सवालों के हठ है कि कर रहे हैं जवाब मानक से संक्षिप्त उद्धरण के साथ सबूत पर्याप्त होना चाहिए कि इसे पढ़ने भाषा का प्रयोग के लिए एक शर्त नहीं है ... (बशर्ते आप कहीं भी हों, जब आप अटक जाते चालू करने के लिए)
Shog9

जवाबों:


16

नहीं - आप इसके बिना बस ठीक साथ मिल सकते हैं

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


8

यदि आप भाषा के शब्दार्थ और मानक के बारे में बहस करना चाहते हैं, तो मानक बहुत महत्वपूर्ण है। (मैं यह पूरी तरह से derogatorily मतलब नहीं है।) तुम सिर्फ काम करना चाहते हैं में भाषा (बनाम पर भाषा), तो यह बहुत कम तो है।

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

हालांकि, समिति के ड्राफ्ट और कागजात को पढ़ना C ++ 0x के बराबर रहने का एक तरीका है - वास्तव में, वर्तमान में केवल कुछ ही तरीकों में से एक है।

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


यदि कोई जानना चाहता है कि भाषा को क्या करना चाहिए, तो मानक अमूल्य है। यदि वे जानना चाहते हैं कि संकलक कुछ क्यों करता है, तो यह अक्सर बहुत उपयोगी होता है। अन्य सवालों के लिए, इतना नहीं।
डेविड थॉर्नले

1
@DavidThornley: इतने लंबे समय के बाद खुद को मानक पढ़ने के लिए इस्तेमाल करना मुश्किल है, लेकिन यह निश्चित रूप से लगता है कि ज्यादातर लोग टीसी ++ पीएल जैसे ग्रंथों को खोजने के लिए और भी अधिक अनुमानित पाते हैं कि भाषा को क्या करना चाहिए।
फ्रेड नर्क

1
@ फ़्रेड नर्क: लगभग कुछ भी मानक से अधिक स्वीकार्य है। मैं SO और इस तरह के सवालों के जवाब देने के लिए था, और इसके बारे में स्पष्ट नहीं था। यह एक छोटा प्राधिकरण जोड़ता है जब लोग cplusplus.com और अन्य स्रोतों को उद्धृत कर रहे हैं।
डेविड थॉर्नले

@DavidThornley: मैं शायद ही कभी ऐसी साइटों का उद्धरण दूंगा (जिनमें से cplusplus.com में विशेष रूप से मेरे स्वाद के लिए बहुत सारी समस्याएं हैं), लेकिन एसओ के अधिकांश पोस्टरों के लिए, वे मानक की तुलना में त्रुटियों के साथ भी अधिक उपयोगी लगते हैं - और आसानी से ऑनलाइन उपलब्ध है, दुर्भाग्य से, इसका एक बड़ा हिस्सा है।
फ्रेड नर्क

@ पता है, यह जानना दिलचस्प है, मैंने हमेशा सोचा है कि cplusplus एक अच्छा संदर्भ था (नकारात्मक पक्ष उनके विज्ञापन का स्रोत है - अत्यधिक अनुचित है!), अब मुझे sgi संदर्भ के साथ संदर्भ को पार करना याद रखना होगा।
निम

6

आपके पास यह संदर्भ के लिए उपलब्ध होना चाहिए, लेकिन मुझे नहीं लगता कि किसी ने भी, लेकिन इसके लेखकों ने पूरी बात पढ़ी है ... अगर उन्होंने भी किया (वे क्षेत्रों पर ध्यान केंद्रित करने वाले समूहों में काम करते हैं तो मुझे इस पर संदेह है)।

आपके पास यह उपलब्ध होने का कारण यह है कि कभी-कभी कोड शुद्धता के बारे में एक सवाल केवल मानक का हवाला देकर उत्तर दिया जा सकता है।


3
ज्यादातर स्थितियों में आपको इसकी आवश्यकता नहीं है। आपको जो चाहिए वह अन्य पुस्तकों में शामिल है। इसका केवल तभी जब आप उन कोने के मामलों में आते हैं या कभी भी भाषा के उन कोनों का उपयोग नहीं करते हैं जिनकी आपको मानक में परिभाषा की जांच करने की आवश्यकता होती है (और आमतौर पर भाषा में कोने के मामलों का उपयोग करने का विकल्प होता है)। संकलक डेवलपर्स के लिए मानक छोड़ दें और सामान्य डेवलपर अन्य गैर औपचारिक ग्रंथों के साथ मिल सकता है।
मार्टिन न्यूयॉर्क

2

यह शायद अधिक महत्वपूर्ण है कि आप जानते हैं कि मानक कहाँ है और पता है कि चीजों को कब देखना है।

यदि और कुछ नहीं तो आपको समय-समय पर यह सुनिश्चित करने के लिए जांच करनी चाहिए कि आप नवीनतम संस्करण का पालन कर रहे हैं और अपने कोड को बहाव नहीं होने दिया है।


2

एक बड़ी टीम में, आपके पास आमतौर पर एक (लेकिन आमतौर पर कोई और नहीं) व्यक्ति होना चाहिए जो मानक को कम से कम यथोचित रूप से अच्छी तरह से जानता है, इसलिए वे चीजों के बारे में किसी भी तर्क / प्रश्न को निपटाने जैसी चीजें कर सकते हैं जैसे कि क्या विशेष कोड मानक की आवश्यकताओं के अनुरूप है।

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

एक ही समय में, अधिकांश टीमें एक मंच पर सबसे अधिक काम करेंगी, और एक मानक (और कोई है जो कम से कम यथोचित परिचित है) के आसपास यह जांचने के लिए कि आप जो कर रहे हैं वह उस प्लेटफ़ॉर्म से बहुत निकटता से बंधा हुआ नहीं है। उपयोगी होना।


"अधिक नहीं" शायद महत्वपूर्ण है - जब तक कि आप मानक <g> की व्याख्या करने के विशेषज्ञों के बीच तर्क नहीं चाहते हैं
स्टीव 314

2

मैं बिना मानक पढ़े, कुल मिलाकर लगभग 4 वर्षों से C रोटी डेवलपर के रूप में अपनी रोटी कमा रहा हूं। वास्तव में, पहले दो वर्षों के लिए, मैंने स्टेन लिपमैन और एमएसडीएन के लेखों के अलावा सी ++ प्राइमर के अलावा बहुत कुछ नहीं पढ़ा है । तो यह संभव है - वास्तव में मुझे डर है कि C ++ कोड का उत्पादन करने वाले अधिकांश लोगों ने प्रभावी C ++ एट अल जैसे मौलिक कार्यों को भी नहीं पढ़ा है जिसे मैंने स्वयं ही बाद में खोजा।

IMHO एक अच्छा C ++ डेवलपर होने के लिए, किसी को भाषा के आंतरिक तर्क को समझना चाहिए (जैसे कि स्कॉट मेयर्स नोट, C ++ लगभग 4 अलग-अलग भाषाएं हैं) और सामान्य मुहावरे और नुकसान, और हमेशा अधिक जानने के लिए तैयार रहें। एसओ पर थ्रेडिंग पढ़ना कोने के मामलों के बारे में बहुत कुछ सिखा सकता है जहां बदले में यह मानक के प्रासंगिक भागों पर पढ़ने लायक हो सकता है, अगर कोई वास्तव में गहरा खुदाई करना चाहता है। लेकिन इसका पूरा पढ़ना शायद ही हम में से ज्यादातर के लिए आवश्यक हो।


अच्छी बात यह है कि मानक की तुलना में बहुत जरूरी (बहुत प्रोग्रामर जो कंपाइलर नहीं लिख रहे हैं) आवश्यक किताबें हैं। +1 - लेकिन "आवश्यक" पुस्तकों की एक उचित संख्या है।
स्टीव 314

@ स्टीव 314, वास्तव में - उन्हें सूचीबद्ध करना शुरू करना हालांकि इस विशिष्ट प्रश्न का उत्तर देने में मदद नहीं करेगा। लेकिन मैंने अब एसओ पर संबंधित थ्रेड के लिए एक लिंक जोड़ा।
पेटर तोर्क

@ Péter - अच्छा स्पर्श, लेकिन मेरा अस्थिर बिंदु यह था कि "आवश्यक" पुस्तकों में से कोई भी वास्तव में आवश्यक नहीं है। अधिकांश सी ++ प्रोग्रामर को उस सूची से कई शीर्षक पढ़ने चाहिए, लेकिन उनमें से सभी ? संभावना नहीं है। अगर आपने किया, तो भी मुझे संदेह है कि आप वास्तव में उस ज्ञान को बनाए रख सकते हैं। "प्रभावी C ++" मेरी अभी तक पढ़ी गई सूची में नहीं है, इसलिए मैं स्पष्ट रूप से इसे कम-से-आवश्यक आवश्यक पुस्तक के रूप में गिनता हूं।
स्टीव ३१

@ स्टीव ३१४, मेरा मतलब यह नहीं था कि उन सभी को पढ़ना चाहिए - मैं या तो नहीं हूं, और उनमें से कुछ मैं पढ़ता हूं लेकिन प्रभावित नहीं हुआ था :-) इनमें से कुछ के बीच कुछ ओवरलैप भी है, इसलिए यह एक है व्यक्तिगत स्वाद और मौका का सवाल जो एक डेवलपर पहले और / या जो एक (ओं) को मिलता है, वह "आवश्यक" लेबल करता है। मेरा मानना ​​है कि महत्वपूर्ण बात यह है कि कुछ सामान्य मुहावरे हैं जिनका पालन करना अच्छा है, और सामान्य नुकसान से बचने के लिए बुद्धिमान हैं, और इनमें से अधिकांश के बारे में जानना चाहिए, और इनको सीखने का सबसे कम दर्दनाक तरीका इन (कुछ) पुस्तकों से है ।
पेटर तोर्क

बेशक, मैं वास्तव में नहीं जानता कि यह तब तक कितना आवश्यक है जब तक मैंने इसे नहीं पढ़ा।
स्टीव 314

1

"मानक को जानना" डिग्री का मामला है, और मूल दस्तावेज को याद करने का मतलब जरूरी नहीं है।

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

पूर्ण प्रकटीकरण - मैं यह कहने के लिए बाध्य हूं - मैंने कभी मानक नहीं पढ़ा है। हालांकि मैं शायद अंतिम C ++ 0x दस्तावेज़ प्राप्त करने का प्रयास करूँगा जब यह अंतिम रूप दिया जाएगा।

EDIT बेशक अगर स्ट्रॉस्ट्रुप "द सी ++ प्रोग्रामिंग लैंग्वेज" का नया संस्करण जारी करता है, तो मैं फिर से उसके लिए समझौता कर सकता हूं।


1

जब मैंने C ++ में प्रोग्राम किया, तो मैंने अक्सर मानक पुस्तकालय कार्यों के बारे में जानकारी के लिए भाषा मानक का उल्लेख किया। C ++ मानक पुस्तकालय काफी बड़ा है, और मुझे भाषा मानक सबसे सुविधाजनक स्रोत लगता है।


1
क्या सच में? मैं हमेशा इस अर्थ में cplusplus अपरिहार्य के रूप में ऑनलाइन संसाधनों को खोजने के ...
निम

1

मैं शपथ ले सकता था कि मैंने पहले इस प्रश्न का उत्तर दिया है, लेकिन मुझे यह नहीं मिला। मूल रूप से, C ++ जावा के विपरीत है जिसमें विनिर्देशन में छेद करने का इरादा है अन्य प्लेटफ़ॉर्म विनिर्देशन भर सकते हैं (जैसे POSIX, या आपके आर्किटेक्चर का ABI विनिर्देश, या आपका कंपाइलर)। इस प्रकार, जब StackOverflow जैसी साइटों पर सवालों के जवाब देने के लिए, यह इंगित करने के लिए विनिर्देश लाने के लिए आम है कि सिर्फ इसलिए कि एक कंपाइलर पर कुछ काम करता है इसका मतलब यह नहीं है कि यह हर जगह काम करता है। दूसरे शब्दों में, C ++ के साथ काम करते समय विशेष विनिर्देशों को संदर्भित करने का एक बहुत कारण यह स्पष्ट करना है कि भाषा का एक विशेष उपयोग कितना पोर्टेबल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.