2012-04-19 17 views
7

मैं व्यक्तिगत सी ++ 0x/सी ++ 11 भाषा सुविधाओं की उपस्थिति की जांच कैसे करूं? मुझे पता है कि क्लैंग के लिए एक अच्छी प्रणाली है। जीसीसी, विजुअल स्टूडियो या बूस्ट के बारे में क्या? मुझे लगता है कि ऐसा करने का एक तरीका संकलक संस्करण का पता लगाने और उस संस्करण में पेश की गई सुविधाओं से संबंधित है। लेकिन यह बोझिल है। क्या किसी ने पहले ही ऐसा किया है?सी ++ 11 फीचर चेकिंग

+1

सीधे आगे का जवाब उस सुविधा के साथ एक कोड लिखना और संकलित करना होगा। – iammilind

+0

यह प्रश्न क्यों बंद होना चाहिए? –

+0

@ नॉर्डलोव: दो लोगों ने इसे [इस सवाल] (http://stackoverflow.com/q/6095885/636019) के डुप्लिकेट के रूप में बंद करने के लिए वोट दिया। – ildjarn

उत्तर

3

boost config कुछ की जांच करने के लिए एक स्क्रिप्ट के साथ आता है लेकिन सभी सी ++ 11 विशेषताएं नहीं।

यह प्रत्येक सुविधा के लिए मैक्रोज़ के साथ कॉन्फ़िगर-फ़ाइल उत्पन्न करता है।

+0

मुझे लगता है कि आप * देखें: * के बाद कुछ लिखना चाहते थे। वैसे भी, हाँ बूस्ट। कॉनफिग शायद सबसे अच्छा शर्त है। बूस्ट लोग पहले से ही उस जानकारी को ट्रैक करते हैं ताकि किसी को यह नहीं करना पड़े: वे बग कंपाइलर की टीम को सटीक रूप से जानना चाहते हैं जब यह विज्ञापित करने के लिए पर्याप्त स्थिर था, या क्लैंग अनुरोध के मामले में नए चेक झंडे के मामले में। –

+0

दरअसल यह ड्राफ्ट-उत्तर से बचे हुए थे। मैं इसे हटा दूंगा। धन्यवाद। – mirk

3

आपका निर्माण-उपकरण इस में सहायता करने में सक्षम हो सकता है।

सीएमके में try_compile कमांड है जो आपको यह जांचने की अनुमति देता है कि कोड नमूना संकलित करेगा और संकलन के परिणाम के आधार पर एक चर सेट करेगा।

फिलहाल मैं auto टाइपिंग जैसी अधिक सामान्य समर्थित सुविधाओं का उपयोग कर रहा हूं।

आप लापता लाइब्रेरी सुविधाओं को प्रतिस्थापित करने के लिए अक्सर बूस्ट का उपयोग कर सकते हैं, और यह कुछ वर्षों के लिए सबसे अच्छा विकल्प हो सकता है जबकि कंपेलरों और पुस्तकालयों को अद्यतन किया जाता है और बग तय किए जाते हैं।

जीसीसी के लिए सी ++ 11 सुविधा संगतता सूची यहाँ है: http://gcc.gnu.org/projects/cxx0x.html

नोट चेतावनी:

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