दिलचस्प पोस्ट
JavaFX में एक संख्यात्मक टेक्स्टफिल्ड बनाने का अनुशंसित तरीका क्या है? TextView Marquee काम नहीं कर रहा है स्पिनर की कुंजी और वैल्यू सेट करें पहली श्वेत अंतरिक्ष घटना पर स्प्लिट स्ट्रिंग TextView बोल्ड पर एक विशिष्ट टेक्स्ट कैसे बनाएं अजगर में एक सूची को बदलने के लिए कुशल तरीके से वसंत MVC का उपयोग करके पीडीएफ जेनरेट करें एपटेक्ज के साथ इंटरफेस और विधियों के लिए एनोटेशन इनहेरिटमेंट का अनुकरण करें कमांड लाइन तर्क में * का मुद्दा जीएसएम की सूची <स्ट्रिंग> में realmList <RealmString> में ggplot2: साजिश के शीर्ष पर माध्यमिक रूपांतरित एक्स-अक्ष जोड़ना urllib2.HTTP त्रुटि: HTTP त्रुटि 403: निषिद्ध MongoDB – एक सरणी के अंतिम तत्व पर प्रश्न? IDisposable को सही ढंग से कार्यान्वित करना 64 बिट सिस्टम में केवल 48 बिट पते का स्थान क्यों है?

क्या 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 में वीएलए भी नहीं होना चाहिए?

Solutions Collecting From Web of "क्या 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 का आधिकारिक हिस्सा नहीं हैं

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