2011-01-06 9 views
5

मैंने इंटरनेट पर विरोधाभासी उत्तर देखा है कि सी ++/सीएलआई सी ++ का सुपरसेट है या नहीं।आईएसओ सी ++ कोड के उदाहरण वैध सी ++/सीएलआई

स्वीकृत उत्तर on this question का दावा है कि "तकनीकी रूप से नहीं", लेकिन गैर-सी ++/सीएलआई कोड का उदाहरण प्रदान नहीं करता है जो आईएसओ सी ++ के अनुरूप है। उस प्रश्न पर एक और जवाब एक किताब बताता है जो विपरीत कहता है।

तो, क्या आप कृपया सटीक उत्तर प्रदान कर सकते हैं उदाहरण के साथ जो सी ++/सीएलआई पर विफल रहता है या इस मामले पर एक विश्वसनीय स्रोत (उदाहरण के लिए एमएसडीएन) उद्धृत करता है?

मेरे पास कोई यह विषय आज आया और सोचा कि मैं खुद को सूचित करना चाहता हूं, लेकिन मुझे कहीं और स्पष्ट जवाब नहीं मिला!

+10

मैं उत्तर के रूप में पोस्ट नहीं कर रहा हूं क्योंकि मुझे इसके बारे में विश्वास नहीं है, लेकिन ऐसा कुछ आसान नहीं होगा उदाहरण: 'int main() {int gcnew = 5; } 'चूंकि' gcnew' एक कीवर्ड है? – GManNickG

उत्तर

9

मान्य सी ++, अवैध C++/CLI:

int main() 
{ 
    int gcnew = 42; 
} 

gcnew, generic, और nullptr C++/CLI में सभी आरक्षित शब्द हैं; nullptr वास्तव में सी ++ 0x में कोई समस्या नहीं है। हर्ब सटर ने 2003 में C++/CLI keywords: Under the hood ब्लॉग किया।

जब मैं एक बड़े मिश्रित कोडबेस (सी ++ और सी ++/सीएलआई दोनों) पर काम कर रहा था, तो मैं कभी भी सिंटैक्स मुद्दों या इस तरह के मामूली मुद्दों में भाग नहीं पाया। सी ++/सीएलआई (मेरी राय में, ज़ाहिर है) के साथ विशाल मुद्दा यह है कि देशी कोड और प्रबंधित कोड में पूरी तरह से संसाधन प्रबंधन प्रतिमान हैं, और मिश्रित कोड लिखते समय यह वास्तव में आसान है कि कुछ चीजों के लिए आपको किस प्रतिमान की आवश्यकता है। मैंने कई त्रुटियों को ठीक किया जो या तो एक धारणा के कारण थे कि प्रबंधित संसाधनों को निश्चित रूप से नष्ट कर दिया गया था या कचरा कलेक्टर द्वारा देशी संसाधनों को साफ किया जाएगा।

+0

धन्यवाद। अच्छा लिंक! मुझे लगता है कि यह जगह पर है। मुझे आश्चर्य है कि क्या कोई अर्थपूर्ण समस्याएं हैं या अन्य पार्सर मुद्दे हैं (पूर्व में '^' घोषणाकर्ता द्वारा पेश किए गए)? हालांकि ऐसा नहीं लगता है। –

+0

@ जोहान्स: मुझे नहीं लगता कि '^' या '%' विराम चिह्नक एक मुद्दा होंगे; उद्देश्य सी '^' (ब्लॉक के लिए) का भी उपयोग करता है। मैं कहीं भी नहीं सोच सकता कि संकलक भ्रमित हो सकता है। –

+0

शुद्ध जिज्ञासा से बाहर, क्या सी ++/सीएलआई को किसी भी मौके से 'मुख्य' में 'वापसी' कथन की आवश्यकता होती है? –

2

मैं सुपर-सेट/एक्सटेंशन पोलेमिक्स की अधिकता के बारे में सोच रहा हूं। सी ++/सीएलआई नई भाषा है जो आईएसओ सी ++ और आईएसओ सीएलआई के बीच बाध्यकारी के रूप में कार्य करने के लिए डिज़ाइन की गई है।

C++/CLI के मिशन ++ प्रोग्रामर मौजूदा CLI पुस्तकालयों का उपयोग और नए बनाने के लिए सी के लिए प्रत्यक्ष पहुँच प्रदान करना है: मैं दिल से C++/CLI Design Rationale जो स्पष्ट रूप से कहा गया है दस्तावेज़ के बहुत शुरुआत में डिजाइन लक्ष्यों को पढ़ने के लिए सलाह देते हैं वाले, कम या कोई प्रदर्शन ओवरहेड के साथ, न्यूनतम अतिरिक्त नोटेशन के साथ, और पूर्ण आईएसओ सी ++ संगतता के साथ।

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