दिलचस्प पोस्ट
इनपुट से पीएसपी लिखने के लिए फ़ाइल txt परिणाम पृष्ठ पर अंक लगाना सी # में एक विंडोज सर्विस प्रोग्राम को कैसे स्थापित करें? सीएसएस का प्रयोग करके आप कैसे आसानी से क्षैतिज एक <div> केंद्र कर सकते हैं? वास्तविक समय में रिच टेक्स्टबॉक्स सिंटेक्स हाइलाइटिंग – पुन: रंग को अक्षम करना MySQL: ऑर्डर ऑफ़ ऑर्डर आर रैंड () JSON ऑर्डर को मिश्रित किया गया एसक्यूएल की पसंद के खंड के लिए विशेष वर्णों की सूची वस्तु का संदर्भ वस्तु की आवृत्ति अनुसार सेट नहीं. है। टेक्सटेरिया में वर्णों की गणना करें कैसे पायथन में यूआरएल पैरामीटर में सांकेतिक शब्दों में बदलना है? जावा क्लाइंट में सर्वर के स्व-हस्ताक्षरित एसएसएल प्रमाण पत्र स्वीकार करें जावास्क्रिप्ट अर्रे घुमाएँ () कस्टम HTML टैग का उपयोग करना मैं परंपरागत नामकरण वाले रेल को ओवरराइड कैसे कर सकता हूं?

क्या C ++ समर्थन चर लंबाई सरणी?

नहीं, रुको, मेरे साथ भालू …

वीएलए हमेशा एक जीसीसी एक्सटेंशन थे, लेकिन उन्हें सीएएम द्वारा अपनाया गया था:

[C99: 6.7.5.2/4]: यदि आकार मौजूद नहीं है, तो सरणी प्रकार एक अपूर्ण प्रकार है। यदि अभिव्यक्ति होने के बजाय आकार * है, तो सरणी प्रकार अनिर्दिष्ट आकार का एक चर लंबाई सरणी प्रकार है, जिसका उपयोग केवल फ़ंक्शन प्रोटोटाइप के दायरे के साथ किया जा सकता है; ऐसे सरणियां फिर भी पूर्ण प्रकार हैं यदि आकार एक पूर्णांक निरंतर अभिव्यक्ति है और तत्व प्रकार का ज्ञात स्थिर आकार है, तो सरणी प्रकार एक चर लंबाई सरणी प्रकार नहीं है; अन्यथा, सरणी प्रकार एक चर लंबाई सरणी प्रकार है।

C99 को ISO/IEC 9899:1999 रूप में भी जाना जाता ISO/IEC 9899:1999

अभी व:

[C++11: 1.1/2]: सी ++ आईएसओ / आईईसी 9899: 1 999 में निर्दिष्ट सी प्रोग्रामिंग भाषा के आधार पर सी ++ एक सामान्य प्रयोजन प्रोग्रामिंग भाषा है (जिसे बाद में सी मानक कहा जाता है)। सी द्वारा प्रदान की गई सुविधाओं के अतिरिक्त, सी ++ अतिरिक्त डेटा प्रकार, कक्षाएं, टेम्पलेट्स, अपवाद, नामस्थान, ऑपरेटर ओवरलोडिंग, फ़ंक्शन नाम ओवरलोडिंग, संदर्भ, मुफ्त स्टोर प्रबंधन ऑपरेटर, और अतिरिक्त पुस्तकालय सुविधाएं प्रदान करता है।

तो क्या सी ++ 11 में वीएलए भी नहीं होना चाहिए?

वेब के समाधान से एकत्रित समाधान "क्या C ++ समर्थन चर लंबाई सरणी?"

उस छूट के शब्दों का मतलब यह नहीं है कि सी 99 में किसी भी और सब कुछ सी ++ 11 में है जो उद्धृत किया गया है वह सिर्फ परिचयात्मक पाठ है

यह C99 फीचर प्रभावी रूप से सी ++ के स्वयं के शब्दों के द्वारा ओवरराइड कर दिया गया है, जैसा कि किसी अन्यथा "विरासत में मिली" सुविधा हो सकती है:

[C++11: 8.3.4/1] : एक घोषणा TD जहां D पास फार्म है

D1 [ निरंतर-अभिव्यक्ति ऑप्ट ] विशेषता-विनिर्देशक-सीईसी ऑप्ट

[..]

यह केवल सरणी घोषणा सिंटैक्स है जिसे हम सी ++ में दिए गए हैं

ध्यान दें कि इस अंतर का कोई भी उल्लेख "सी के साथ संगतता" खंड C.1

निरंतर अभिव्यक्ति की परिभाषा दो भाषाओं के लिए अलग है।

 const size_t size = 5; int array[size]; // array in C++, VLA in C 

यह मेरे लिए संकलित है: (जी ++ 4.6 के -std=c++0x )। लेकिन यह -pedantic साथ संकलित नहीं है (धन्यवाद @ मार्कब)। इसके बजाय यह चेतावनी देता है कि " टेम्पलेट। पीपीपी: 7: 12: चेतावनी: आईएसओ सी ++ वर्जन लम्बाई सरणी को मना करती है 'एन' [-वेला] "

 int main(int argc, char ** argv) { int n[argc]; } 

तो n के आकार को कंपाइलर द्वारा समय संकलित करने पर ज्ञात नहीं किया जा सकता है। क्या यह सी ++ के लिए एक जीएनयू एक्सटेंशन है? यह एक जीएनयू एक्सटेंशन प्रतीत होता है, और वो VLA C ++ 11 का आधिकारिक हिस्सा नहीं हैं

(बेशक, मैं सिर्फ एक कंपाइलर के साथ खेल रहा हूं। इसलिए इसे नमक की चुटकी से ले लो।)