जैसा कि आपने खुद पता लगाया है, दो विकल्पों के बीच का अंतर यह है कि क्या जीएनयू एक्सटेंशन जो C ++ मानक का उल्लंघन / विस्तार करता है, सक्षम हैं या नहीं। GNU C ++ एक्सटेंशन यहाँ वर्णित हैं । आप अपने C ++ कार्यक्रमों में अधिकांश GNU C एक्सटेंशन ( यहां वर्णित ) का उपयोग कर सकते हैं । यहां-Wpedantic
GCC विकल्प के बारे में पढ़ना भी उपयोगी होगा ।
ध्यान दें कि कुछ एक्सटेंशन अभी भी उपयोग करते समय प्रभावी हो सकते हैं -std=c++11
, जब तक कि वे मानक के विपरीत नहीं होते हैं। उदाहरण के लिए, जब मिनगॉइल कंपाइलर का उपयोग किया जाता है, तो मुझे काम करने के लिए एक्सटेंशन की आवश्यकता होती है Boost.Lexical_Cast
। लेकिन, जब तक आप उनमें से किसी का उपयोग नहीं करते हैं, तब तक आप अधिकतम पोर्टेबिलिटी के लिए एक्सटेंशन के बिना मानक से चिपके रहना बेहतर है। यह आपके काम आ सकता है यदि आप कंपाइलर बदलने के लिए खुद को मजबूर पाते हैं।
gnu
लोग एक्सटेंशन का उल्लेख करते हैं, और यदि आप पोर्टेबल कोड लिखना चाहते हैं, तो आपको मानक से चिपके रहना चाहिए और एक्सटेंशन से पूरी तरह बचना चाहिए।