2008-10-07 11 views
13

क्या एक सी ++ CLI कंपाइलर बिना किसी संशोधन के सी ++ कक्षाओं के कुछ बड़े सेट संकलित करने में सक्षम होगा?सी ++ सीएलआई सी ++ का सुपरसेट है?

क्या सी ++ सीएलआई सी ++ का सुपरसेट है?

+2

मैं पहले इस प्रश्न से उलझन में था, तो मुझे पता चला कि "सीएलआई" यहां सामान्य भाषा इंटरफेस (.NET का हिस्सा) है और कमांड लाइन इंटरफेस नहीं है। नेमस्पेस टकराव! – Neall

+1

क्षमा करें - "सामान्य भाषा बुनियादी ढांचा" - http://en.wikipedia.org/wiki/Common_Language_Infrastructure – Neall

+0

हाँ, मेरा पहला विचार कमांड लाइन इंटरफेस था। मैंने सोचा, कूल! एक वीएमएस सवाल! – Vagrant

उत्तर

4

तकनीकी रूप से नहीं, लेकिन यह निर्भर करता है कि सी ++ कोड कितना मानक है, तो आप शायद ठीक हो जाएंगे। जब आप विंडोज़ सामान में जाते हैं तो आप मुद्दों में भाग ले सकते हैं। मैंने पूरे गेम इंजन को संकलित किया जिसे हम एक बार सी ++/सीएलआई में काम करते थे और यह ठीक काम करता था। एक सहयोगी ने मोज़िला के लिए ऐसा ही किया और ऐसी कोई किस्मत नहीं थी।

10

Wikipedia के अनुसार:

C++/CLI की अपनी एक भाषा के रूप में (कीवर्ड्स का एक नया सेट के साथ, उदाहरण के लिए) के बजाय सी ++ सुपरसेट उन्मुख प्रबंधित सी ++

के बारे में सोचा जाना चाहिए,
+0

हालांकि अधिकांश नए कीवर्ड प्रासंगिक हैं और अन्य कोड में पहचानकर्ता के रूप में उपयोग किए जा सकते हैं। – Eclipse

+0

तीन बिना शर्त कीवर्ड हैं, 'जीसीएनयू', 'जेनेरिक' और 'न्यूप्टर'। आखिरी वाला अब भी एक सी ++ कीवर्ड है। तो सी ++/सीएलआई सी ++ का सुपरसेट होने में विफल होने की राशि वास्तव में काफी छोटी है ... –

2

मैं अभी भी सी ++/सीएलआई पर अपने सीखने की अवस्था के साथ नया हूं - लेकिन मेरे पास एक ही सवाल है, और मैंने जो भी निर्धारित किया है वह यह है कि सी ++/सीएलआई एक भाषा के रूप में, एक सुपरसेट है मानक सी ++ के।

यदि आप सीएलआई एक्सटेंशन का उपयोग नहीं करते हैं, तो आपका सी ++ कोड देशी अप्रबंधित कोड के रूप में समाप्त हो जाएगा, और अनिवार्य रूप से वही होना चाहिए, लेकिन मूल x86 के बजाय सीएलआर आईएल में संकलित किया जाना चाहिए।

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

1

मार्कस Heege की पुस्तक राज्यों के विशेषज्ञ सी ++/विजुअल C++ प्रोग्रामर के लिए CLI.NET 'का 3 पृष्ठ:

C++/CLI के लिए किए गए एक्सटेंशन के एक सेट सी ++ भाषा सेवाओं से लाभ प्राप्त करने के लिए है कि सीएलआई ऑफ़र का कार्यान्वयन।

और एक ही पृष्ठ में और नीचे:

C++/CLI C++ भाषा का सुपरसेट है।

उनकी उत्कृष्ट पुस्तक here से निःशुल्क उपलब्ध है।

+4

ऐसा लगता है कि पुस्तक गलत है। Http://stackoverflow.com/questions/4610671/examples-of-iso-c-code-that-is-not-valid-c-cli –

+1

उद्धरण प्राधिकरण हर्ब सटर: "इस एक्सटेंशन के इस सेट के लिए क्या है एक अलग सुपरसेट भाषा, एक संगत बोलीभाषा, और/या बाध्यकारी: मुझे लगता है कि आप उचित लोगों को ढूंढ सकते हैं जो इसे किसी भी तरीके से देखते हैं। जो भी संज्ञा आप पसंद करते हैं, यह एक्सटेंशन का सबसे संगत सेट है जिसे मैं किसी भी प्रोग्रामिंग भाषा के बारे में जानता हूं , मानक या अन्यथा [...] "- देखें * [सी ++/सीएलआई के लिए एक डिजाइन तर्क] (http://www.gotw.ca/publications/) *, संस्करण 1.1 - 24 फरवरी, 2006. – Lumi

2

सी ++/सीएलआई सी ++ का सुपरसेट नहीं है। यह जोड़ों के साथ एक सबसेट है। E.G. सी ++/सीएलआई एकाधिक विरासत का समर्थन नहीं करता है।

एंजेलो

+0

कोई एकाधिक विरासत नहीं ? अपने इसे कहां देखा था? – Gabe

+0

प्रलेखन में? सभी सीएलआई भाषाएं केवल एकल विरासत का समर्थन करती हैं। हालांकि शायद आप अप्रबंधित कोड के साथ एमआई कर सकते हैं, कभी भी इसकी जांच नहीं की। –

+0

एचएम, मैं विकिपीडिया पर थोड़ा सा पढ़ता हूं। मैंने उस सी ++/सीएलआई को "प्रबंधित" प्रबंधित सी ++ नहीं पकड़ा। दुर्भाग्य से विकिपीडिया लेख ऐसी परिस्थितियों में नहीं बता रहा है, सी ++/सीएलआई एमआई का समर्थन करता है। –

1

मैं पूरी क्यूटी पुस्तकालय (जो बहुत बड़ा है) संकलन करने में सक्षम था नाबालिग संशोधनों (ज्यादातर निर्माण के माहौल में, लेकिन यह भी क्यूटी स्रोत कोड में तय एक बग)

साथ C++/CLI के रूप में
संबंधित मुद्दे