क्या यह निर्धारित करना संभव है कि सी ++ मानक पुस्तकालय में प्रीप्रोसेसर निर्देश का उपयोग कर सी ++ 11 समर्थन है या नहीं?क्या सी ++ 11 मानक पुस्तकालय का पता लगाने के लिए कोई प्रीप्रोसेसर निर्देश है?
मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं जो सी ++ 11 भाषा बोली का उपयोग करता है, लेकिन सी ++ मानक पुस्तकालय के बिना सी ++ 11 समर्थन के बिना (मुझे यह गैर सी ++ 11 से लिंक करने में सक्षम होना चाहिए पुस्तकालयों)।
मुझे पता है कि मैं #if __cplusplus >= 201103L
का उपयोग कर सी ++ 11 समर्थन का परीक्षण कर सकता हूं, लेकिन मेरे मामले में यह सच साबित होगा। मुझे सी ++ 11 के लिए सी ++ मानक लाइब्रेरी समर्थन के बारे में पता होना चाहिए।
संबंधित: http://stackoverflow.com/q/11886288/743214 –
* "मुझे पता है कि मैं' #if __cplusplus> = 201103L' "* - No का उपयोग कर सी ++ 11 समर्थन का परीक्षण कर सकता हूं , वह भी नहीं। यह देखते हुए कि अधिकांश कंपाइलर केवल सी ++ 11 के उप-समूह का समर्थन करते हैं (हालांकि बड़े पैमाने पर सबसेट हो सकता है), यह '__cplusplus' मैक्रो पूरी तरह से बेकार है। मानक सुविधाओं के लिए पोर्टेबल परीक्षण (चाहे वह भाषा या पुस्तकालय हो) अभी भी एक अनसुलझा समस्या है (हालांकि * इसे हल करने के प्रयास * उनके रास्ते पर हैं, जैसे * टेम्पलेटरेक्स * उनके उत्तर में बताते हैं)। –
मेरे लिए, आपकी समस्या यह है कि आपको सीएमके या ऑटोोटूल जैसे कॉन्फ़िगरेशन टूल की आवश्यकता है। वे आपके लिए जांच करते हैं और एक शीर्षलेख उत्पन्न करते हैं जिसमें मैक्रोज़ शामिल होते हैं जिनका आप मूल्यांकन कर सकते हैं। यदि आपके पास केवल एक लाइब्रेरी है, तो आप अपने उपयोगकर्ताओं से मैक्रो प्रदान करने का अनुरोध कर सकते हैं - अभी भी एक खराब समाधान। – usr1234567