2010-04-13 18 views
8

जब भी कोई प्रश्न पूछा जाता है, और एक संदर्भ पाठ की आवश्यकता होती है, तो मुझे कभी भी MSDN C++ Language Reference संदर्भित नहीं किया जाता है।माइक्रोसॉफ्ट सी ++ भाषा संदर्भ

मैं इसके माध्यम से ब्राउज़ कर रहा था और मुझे व्यक्तिगत रूप से लगता है कि यह बेहद अच्छी तरह लिखा गया है।

क्या कोई विशिष्ट कारण यह मानक के रूप में अक्सर उपयोग नहीं किया जाता है?

क्या ऐसा इसलिए है क्योंकि इसमें कुछ वीसी ++ विशिष्ट विशेषताएं शामिल हैं?

+0

करीबी मतदाता: क्या यह समुदाय समुदाय विकी बनने में मदद करता है? – Lazer

+1

यह एक करीबी वोट नहीं है, यह मेटा वोट में माइग्रेट है। –

+0

मैं अनुमान लगा रहा हूं कि एसओ ++ टैग ऑडियंस के बहुमत एसओ में एमएसवीसी का उपयोग अपनी पहली पसंद के रूप में नहीं करते हैं। एक मजबूत जीसीसी उपस्थिति है, कई ओपी इसे मानते हैं। वे एक कंपनी संदर्भ में ज्यादा हिस्सेदारी नहीं रखेंगे। यह निश्चित रूप से आधिकारिक भाषा संदर्भ के रूप में एक ही जमीन को कवर नहीं करता है। थोड़ा बिंदु है। –

उत्तर

3

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

तो सी ++ के बारे में प्रश्नों का उत्तर देते समय, लोग मानक का संदर्भ देते हैं। यदि आप विशेष रूप से पूछते हैं कि एमएसवीसी इसे कैसे लागू करता है, तो एमएसडीएन एक पूरी तरह से वैध स्रोत होगा। लेकिन ज्यादातर प्रश्न सी ++ के बारे में हैं।

या इसे एक और तरीका देने के लिए: यदि एमएसडीएन में टाइपो है, तो एमएसडीएन गलत है। यदि आईएसओ मानक में एक टाइपो होता है, तो इस प्रकार भाषा परिभाषित की जाती है।

8

मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि हम में से एक संदर्भ संदर्भ वास्तविक मानक स्वयं संदर्भित करते हैं।

+0

हालांकि वास्तविक मानक लाइन पर नहीं है लेकिन वर्तमान के ड्राफ्ट और अगले एक – Mark

+4

हैं। यदि आप सी ++ पर एक निश्चित स्रोत चाहते हैं, तो आईएसओ 14882: 2003 का उपयोग करें। एमएसडीएन विश्वसनीय हो सकता है, या यह नहीं हो सकता है, लेकिन यह आधिकारिक नहीं है। –

+0

@ डेरिक तुर्क: यह आईएसओ 14882: 2003 सी ++ मानक मुफ्त नहीं है! मुझे इसकी उम्मीद नहीं थी। – Lazer

2

Is it because it contains some VC++ specific features?

मुझे लगता है कि मूल कारण है। उदाहरण के लिए, इसमें अक्सर C++/CLI पर जानकारी होती है, न कि केवल C++।

वीसी ++ 2010 संदर्भ, मुझे लगता है कि सी ++ उचित में कौन सा हिस्सा उचित है और कौन सा हिस्सा सी ++/सीएलआई में है, यह समझने में सावधान है। लेकिन मानक को संदर्भित करने के लिए, निश्चित रूप से मानक को संदर्भित करना बेहतर है। वीसी ++ प्रलेखन अक्सर मानक को संदर्भित करता है।

0

एक दिलचस्प उदाहरण: बस उन सभी __XXX keywords पर देखें !! (सी ++ मानक में कोई नहीं है)

+0

@ रूके: हम्म। भ्रमित हालांकि पृष्ठ कहता है कि शीर्ष अंडरस्कोर वाले नाम माइक्रोसॉफ्ट एक्सटेंशन हैं। शीर्ष पर। – Lazer

+2

ऐसा इसलिए है क्योंकि मानक उन्हें कार्यान्वयनकर्ताओं के लिए सुरक्षित रखता है ... (_xyz और __xyz) – conio

+0

@conio: _xyz केवल वैश्विक नामस्थान पर आरक्षित है। –

2

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

मैं आम तौर पर मानकों दस्तावेज़ देखें अगर मैं के बारे में जानकारी के लिए देख रहा हूँ "क्या मानक है" क्योंकि:

  1. मैं उन्हें
  2. वे '(कैसे तुम्हारा पाने के लिए करने के लिए लिंक के लिए Where do I find the current C or C++ standard documents? देखें) पीडीएफ़ जो मैं आसान लगता है खोज और वेब आधारित या Windows सहायता आधारित MSDN डॉक्स से पढ़ने के लिए फिर से
  3. वे निश्चित कर रहे हैं (जहां तक ​​मानक के बारे में सवालों का जवाब दे के रूप में)

सबसे बड़ी कमी यह है कि मेरे पास C90 मानक का इलेक्ट्रॉनिक संस्करण नहीं है, फिर भी ..

0

सी ++ मानक परिभाषित करता है कि सी ++ भाषा कैसे काम करती है, माइक्रोसॉफ्ट सी ++ भाषा संदर्भ परिभाषित करता है कि उस भाषा का माइक्रोसॉफ्ट का कार्यान्वयन कैसे काम करता है।

तो यदि आप जानना चाहते हैं कि कंपाइलर से कौन सा व्यवहार गारंटीकृत है, तो मानक आपकी मार्गदर्शिका है। कुछ विवरण और कुछ कोने के मामलों को कार्यान्वित करने के लिए छोड़ दिया गया है- परिभाषित किया गया है और प्रत्येक कार्यान्वयन भाषा में एक्सटेंशन को परिभाषित कर सकता है, इसलिए यदि आप उन एमएससीवी विशिष्ट गुणों का उपयोग करना चाहते हैं तो माइक्रोसॉफ्ट के भाषा संदर्भ में उन्हें समझा जाना चाहिए।

सी ++ पर अधिकतर SO प्रश्न स्पष्ट रूप से एक एमएसवीसी विशिष्ट उत्तर के लिए नहीं पूछते हैं जो अन्य कंपाइलरों के लिए सच नहीं हो सकता है। तो मानक का जिक्र करते हुए एक सामान्य, कंपाइलर स्वतंत्र उत्तर देता है, जबकि एमएस भाषा संदर्भ एमएसवीसी की तुलना में किसी भी चीज़ के लिए ज्यादा वजन नहीं रखता है।

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