C++/CX
सी + +/सीएक्स (सी + + घटक विस्तार) माइक्रोसॉफ्ट के विंडोज रनटाइम प्लेटफॉर्म के लिए एक भाषा प्रक्षेपण है। यह सी + + संकलकों के लिए एक भाषा विस्तार का रूप लेता है, और यह सी + + प्रोग्रामरों को ऐसे प्रोग्राम लिखने में सक्षम बनाता है जो विंडोज रनटाइम (विनआरटी) एपीआई को कॉल करते हैं। सी + +/सीएक्स को सी + +/विनआरटी भाषा प्रक्षेपण द्वारा प्रतिस्थापित किया गया है, जो सी + + भाषा का विस्तार नहीं है; बल्कि, यह पूरी तरह से मानक आधुनिक आईएसओ सी + + 17 हेडर-फाइल-आधारित पुस्तकालय है। भाषा विस्तार सी + +/सी. एल. आई. से वाक्यविन्यास उधार लेते हैं लेकिन सामान्य भाषा रनटाइम और प्रबंधित कोड के बजाय विंडोज रनटाइम यूनिवर्सल विंडोज प्लेटफॉर्म मूल कोड को लक्षित करते हैं। यह वाक्यविन्यास और पुस्तकालय अमूर्तता का एक समूह लाता है जो सी. ओ. एम. के डब्ल्यू. आर. एल. सबसेट-आधारित विन. आर. टी. प्रोग्रामिंग मॉडल को इस तरह से प्रोजेक्ट करता है जो सी + +/सी. एल. आई. प्रबंधित एक्सटेंशन कोडर्स के लिए सहज है। निचले स्तर के विंडोज रनटाइम सी + + टेम्पलेट लाइब्रेरी (डब्ल्यूआरएल) के माध्यम से देशी आईएसओ सी + + से विंडोज रनटाइम पर कॉल करना संभव है। हालाँकि, डब्ल्यू. आर. एल. को सी + +/विन. आर. टी. द्वारा भी हटा दिया गया है। विस्तार वाक्यविन्यास सी + +/सीएक्स विंडोज रनटाइम के लिए प्रोग्रामिंग के लिए वाक्यविन्यास विस्तार पेश करता है। समग्र गैर प्लेटफॉर्म-विशिष्ट वाक्यविन्यास सी + + 11 मानक के साथ संगत है। विनआरटी ऑब्जेक्ट्स को नए संदर्भ का उपयोग करके बनाया या सक्रिय किया जाता है और सी + +/सी. एल. आई. से विरासत में मिले संकेत के साथ घोषित चर को सौंपा जाता है। एक विनआरटी चर केवल आभासी विधि तालिका के लिए एक सूचक की एक जोड़ी है और वस्तु के आंतरिक डेटा के लिए सूचक है। संदर्भ गणना एक विनआरटी वस्तु को संदर्भ गणना की जाती है और इस प्रकार साझा _ पीटीआरएस में संलग्न सामान्य सी + + वस्तुओं के समान संभालती है। एक वस्तु को हटा दिया जाएगा जब कोई शेष संदर्भ नहीं हैं जो इसे ले जाते हैं। इसमें कोई कचरा संग्रह शामिल नहीं है। फिर भी, मुख्य शब्द जीसीन्यू को भविष्य में संभावित उपयोग के लिए आरक्षित रखा गया है। वर्ग रनटाइम वर्ग विशेष प्रकार के रनटाइम वर्ग हैं जिनमें घटक विस्तार निर्माण हो सकते हैं। इन्हें केवल रेफ क्लास के रूप में संदर्भित किया जाता है क्योंकि उन्हें रेफ क्लास का उपयोग करके घोषित किया जाता है। सार्वजनिक संदर्भ वर्ग माईक्लास {}; आंशिक वर्ग सी + +/सीएक्स आंशिक वर्गों की अवधारणा का परिचय देता है। यह सुविधा एकल वर्ग परिभाषा को कई फ़ाइलों में विभाजित करने की अनुमति देती है, मुख्य रूप से XAML ग्राफिकल यूजर इंटरफेस डिज़ाइन टूल को एक अलग फ़ाइल में कोड स्वचालित रूप से उत्पन्न करने में सक्षम बनाने के लिए ताकि डेवलपर द्वारा लिखे गए तर्क को न तोड़ा जा सके। भागों को बाद में संकलन में मिला दिया जाता है। . NET भाषाओं जैसे C #में कई वर्षों से यह सुविधा है। आंशिक वर्गों ने अभी तक इसे सी + + मानक में नहीं बनाया है और इसलिए इसका उपयोग सी + + 20 में भी नहीं किया जा सकता है। एक फ़ाइल जो जी. यू. आई.-डिज़ाइनर द्वारा उत्पन्न और अद्यतन की जाती है, और इस प्रकार प्रोग्रामर द्वारा संशोधित नहीं की जानी चाहिए। मुख्य शब्द को आंशिक रूप से नोट करें। //foo.private.h #pragma एक बार आंशिक रिफ क्लास फ़ू {निजीः इंट आईडी _; प्लेटफ़ॉर्मः: स्ट्रिंग ^ नाम _;}; वह फ़ाइल जहाँ प्रोग्रामर उपयोगकर्ता-इंटरफेस तर्क लिखता है। जिस शीर्षलेख में वर्ग के संकलक द्वारा उत्पन्न भाग को परिभाषित किया गया है, उसे आयात किया जाता है। ध्यान दें कि मुख्य शब्द आंशिक आवश्यक नहीं है। //foo.public.h #pragma एक बार #include "foo.private.h" रिफ क्लास फ़ू {सार्वजनिकः int GetId (); प्लेटफॉर्मः: स्ट्रिंग ^ GetName ();}; यह वह फ़ाइल है जिसमें आंशिक वर्ग के सदस्यों को लागू किया जाता है। //foo.cpp #include "pch.h" #include "foo.public.h" इंट फ़ूः: GetId () {रिटर्न आईडी _;} प्लेटफ़ॉर्मःः स्ट्रिंग ^ फ़ूः: GetName {रिटर्न नाम _;} जेनेरिक्स विंडोज रनटाइम और इस प्रकार C + +/CX रनटाइम-आधारित जेनेरिक्स का समर्थन करता है। सामान्य प्रकार की जानकारी मेटाडेटा में निहित होती है और रनटाइम पर तत्काल होती है, सी + + टेम्प्लेट के विपरीत जो संकलन-समय निर्माण होते हैं। दोनों संकलक द्वारा समर्थित हैं और इन्हें जोड़ा जा सकता है। जेनेरिक <प्रकारनाम टी> सार्वजनिक रेफ क्लास बैग {संपत्ति टी आइटम;}; मेटाडेटा सभी विनआरटी कार्यक्रम मेटाडेटा के माध्यम से अपने घोषित वर्गों और सदस्यों को उजागर करते हैं। प्रारूप वही है जिसे. NET फ्रेमवर्क से बनाए गए मानक, सामान्य भाषा अवसंरचना (CLI) के हिस्से के रूप में मानकीकृत किया गया था। इस वजह से, कोड को C + +/CX, CLI भाषाओं और जावास्क्रिप्ट में साझा किया जा सकता है जो विंडोज रनटाइम को लक्षित करते हैं। रनटाइम लाइब्रेरी सी + +/सीएक्स में पुस्तकालयों का एक समूह है जो विंडोज रनटाइम को लक्षित करता है। ये सी + + मानक पुस्तकालय और विनआरटी की कार्यक्षमता को कम करने में मदद करते हैं। प्रीप्रोसेसर-आधारित पहचान आप पता लगा सकते हैं कि क्या सी + +/सी. एक्स. विस्तार _ _ सी. प्लसप्लस _ विनर्ट प्रीप्रोसेसर प्रतीक के अस्तित्व का परीक्षण करके चालू किया गया है। #ifdef _ _ सीप्लसप्लस _ विनर्ट// सी + +/सीएक्स विशिष्ट कोड यहाँ जाता है। #endif विंडोज रनटाइम संदर्भ भी देखें सी + +/सीएक्स डिजाइन के अंदर बाहरी लिंक-दृश्य सी + + टीम ब्लॉग गोइंगनेटिव 3: द सी + +/सीएक्स एपिसोड विद मैरियन लुपारू-चैनल 9 विनआरटी और विनएमडी फाइल्स-मारियस बैंसिला का ब्लॉग दृश्य सी + + भाषा संदर्भ (सी + +/सीएक्स) सी + + सी + + प्रोग्रामिंग भाषा परिवार सी + + संकलक