[C++] जीएनयू सी ++ स्पष्ट रूप से इसके बिना पूछे बिना सी ++ 11 का समर्थन करेगा?


Answers

मुझे लगता है कि मैं जवाब के बारे में सोचता हूं निकटतम info gcc कमांड से है:

एक संशोधित आईएसओ सी ++ मानक 2011 में आईएसओ / आईईसी 14882: 2011 के रूप में प्रकाशित किया गया था, और इसे सी ++ 11 के रूप में जाना जाता है; इसके प्रकाशन से पहले इसे आमतौर पर सी ++ 0x के रूप में जाना जाता था। सी ++ 11 में सी ++ भाषा में कई बदलाव शामिल हैं, जिनमें से अधिकांश जीसीसी में एक प्रयोगात्मक सी ++ 11 मोड में कार्यान्वित किए गए हैं। प्रयोगात्मक सी ++ 11 मोड में उपलब्ध सी ++ 11 सुविधाओं के बारे में जानकारी के लिए, http://gcc.gnu.org/projects/cxx0x.html देखें। जीसीसी में इस मानक का चयन करने के लिए, '-std = c ++ 11' विकल्प का उपयोग करें; मानक द्वारा आवश्यक सभी निदान प्राप्त करने के लिए, आपको '-pedantic' (या '-pedantic-error' भी निर्दिष्ट करना चाहिए यदि आप चेतावनियों के बजाए त्रुटियां होने के लिए चाहते हैं)।

http://gcc.gnu.org/projects/cxx0x.html पृष्ठ कहता है:

महत्वपूर्ण: सी ++ 11 के लिए जीसीसी का समर्थन अभी भी प्रयोगात्मक है। कुछ विशेषताओं को शुरुआती प्रस्तावों के आधार पर कार्यान्वित किया गया था, और अंतिम सी ++ 11 मानक से मेल खाने के लिए पिछली संगतता को बनाए रखने के लिए कोई प्रयास नहीं किया जाएगा।

libstdc++ पृष्ठ यह भी दिखाता है कि यह अपूर्ण है। (मुझे यह भी नहीं लगता कि regex अभी तक लागू किया गया है।)

स्टीव जेसॉप का जवाब मूल रूप से पिछले अनुच्छेद में एक ही बात कहता है, लेकिन उसके उत्तर के पहले भाग को उद्धृत करने के लिए:

सी ++ 11 कुछ वर्षों के लिए मानक रहा है, लेकिन एक कंपाइलर अपने डिफ़ॉल्ट मोड को C ++ 11 तक स्विच नहीं करेगा:

  • एक पूर्ण न्यूनतम पर, उस कंपाइलर में सी ++ 11 समर्थन पूर्ण होता है और पुस्तकालयों का उपयोग करता है। और यह भी स्थिर है, अगर संकलक लेखक को विश्वसनीयता के लिए बिल्कुल कोई चिंता है।
  • अधिमानतः, कंपाइलर में एक प्रमुख संस्करण संख्या में वृद्धि, क्योंकि सी ++ 11 पूरी तरह पिछड़ा नहीं है-सी ++ 03 के अनुकूल है।
  • आदर्श रूप से, एक प्रसिद्ध कार्यक्रम पर ताकि उपयोगकर्ता परिवर्तन के लिए तैयार हो सकें।
Question

वर्तमान में, g ++ - 4.8.1 के साथ आपको C ++ 11-मोड में फ़ाइल को संकलित करना होगा

g++ -std=c++11 -o prog.x prog.cpp

क्या कोई योजना है जब मैं बस कह सकता हूं

g++ -o prog.x prog.cpp

prog.cpp संकलित करने के लिए?

शायद prog.cpp है

  • #include <regex>
  • thread_local
  • class Widget { int member = 5; }
  • MyType operator"" myt(const char*, sze_t);
  • और इसी तरह।



ऐसा लगता है कि जीसीसी 5.0 में परिवर्तनों में साझा किए जाने के रूप में सी ++ 11 में सुधार के साथ डिफ़ॉल्ट रूप से gnu11 (c ++ 11 AFAIK की बोली) होगी। https://gcc.gnu.org/gcc-5/changes.html देखें। ऐसा लगता है कि इसका सी ++ 14 के लिए भी कुछ समर्थन होगा।

@ Marc-glisse द्वारा साझा की गई बगजिला परिदृश्य के संबंध में अब तक के एक और दिलचस्प बयान में से एक तालिका के बाहर दिखता है, विवरण के लिए https://gcc.gnu.org/gcc-5/criteria.html देखें: -

बगजिला में खुले सभी रिग्रेशंस का विश्लेषण किया गया है, और सभी को अधिकतर उपयोगकर्ताओं को प्रभावित करने की संभावना नहीं माना जाता है, या प्रभावित उपयोगकर्ताओं पर कम से कम प्रभाव डालने के लिए निर्धारित किया जाता है। उदाहरण के लिए, निदान में एक टाइपोग्राफ़िकल त्रुटि अपेक्षाकृत आम हो सकती है, लेकिन उपयोगकर्ताओं पर भी कम प्रभाव पड़ता है।

आम तौर पर, संकुचन जहां संकलक गलत कोड उत्पन्न करता है, या एक वैध प्रोग्राम संकलित करने से इंकार कर देता है, रिलीज को अवरुद्ध करने के लिए पर्याप्त गंभीर माना जाएगा, जब तक कि पर्याप्त कमजोर कारक न हों। - जीसीसी रिलीज मानदंड पृष्ठ

टाइमलाइन कुछ विचार देती है कि यह कब और कब होगा https://gcc.gnu.org/develop.html#timeline

तो उम्मीद है कि हमें 2015 तक डिफ़ॉल्ट रूप से सी ++ 11 समर्थन के साथ एक नया जीसीसी देखना चाहिए। जीएनयू / लिनक्स वितरण कब करेंगे और सी ++ 11 के साथ बनाए जा रहे सॉफ़्टवेयर के लिए जो कुछ भी करना है, वह एक और सवाल है।




Links