जैसा कि मैं एक सी ++ लाइब्रेरी पर काम कर रहा हूं जिसे 2014 के आसपास सार्वजनिक रूप से रिलीज़ किया जाएगा, मेरे पास वर्तमान में डिज़ाइन विकल्प हैं। सी ++ 14 के साथ जारी किए जाने वाले बहुत उपयोगी टूल में से एक std::optional
है। मैं जानना चाहता हूं कि g++/libstdc++
का कौन सा संस्करण मैं -std=c++1y
का उपयोग कर सकता हूं।g ++/libstdC++ में std :: वैकल्पिक की कार्यान्वयन स्थिति?
उत्तर
अद्यतन (अक्टूबर 2016):std::optional
अंतिम सी ++ 14 मानक में नहीं था, तो यह -std=c++1y
के साथ उपलब्ध नहीं है। इसके बजाय जीसीसी 4.9 में std::experimental::optional
शामिल है जो -std=c++1y
के साथ उपलब्ध है।
जीसीसी 7 में std::optional
-std=c++1z
यानी सी ++ 17 के साथ शामिल होगा।
मूल जवाब (जून 2013):
यह वर्तमान में लागू नहीं किया गया है, जीसीसी की डिक्की में सी ++ 14 सुविधाओं की स्थिति के लिए http://gcc.gnu.org/ml/libstdc++/2013-06/msg00032.html देखते हैं।
जब इसे कार्यान्वित किया जाता है तो इस पर निर्भर करता है कि जब कोई स्वयंसेवक काम करता है, तो भविष्यवाणी करना असंभव है।
मैं की उम्मीद करता हूं यह जीसीसी 4.9 के लिए किया जाएगा, जिसे सी ++ 14 मानक से कुछ समय पहले रिलीज़ किया जाना चाहिए, लेकिन इसकी कोई गारंटी नहीं है। जीसीसी 4.8 में जोड़ा जाने की संभावना नहीं है, क्योंकि यह पहले से ही जारी है और जीसीसी 4.9 (यानी जीसीसी सबवर्जन ट्रंक) के विपरीत __cplusplus
मैक्रो के पास -std=c++11
और -std=c++1y
के लिए समान मूल्य है इसलिए जीसीसी 4.8 के लिए -std=c++1y
के लिए चुनिंदा रूप से सुविधाओं को सक्षम करने का कोई तरीका नहीं है केवल।
"इसे SO पर क्यों पूछें" - इसलिए जो लोग एसओ पर उत्तर खोजते हैं उन्हें ढूंढें! –
यह शीर्ष Google हिट था जब मैं जांच कर रहा था कि क्यों 'std :: वैकल्पिक' gcc में काम नहीं किया! तो मुझे खुशी है कि यह पूछा गया था और यहां जवाब दिया। –
यदि जीसीसी-सहायता सूची पर सवाल पूछा गया था जो शीर्ष हिट होता। वैसे भी, यह जवाब कल तक गलत था, क्योंकि सी ++ 17 तक 'std :: वैकल्पिक' जैसी कोई चीज़ नहीं थी, इसलिए यह हाल ही में किसी भी कंपाइलर में काम नहीं करता था। –
- 1. std :: G ++
- 2. std :: gCC में put_time कार्यान्वयन स्थिति?
- 3. libstdC++
- 4. std :: common_type कार्यान्वयन
- 5. std :: condition_variable में संभावित दौड़ की स्थिति?
- 6. सी ++ 11 आंतरिक std :: स्ट्रिंग प्रस्तुति (libstdC++)
- 7. std :: भविष्य और -stdlib साथ बजना = libstdC++
- 8. libstdC++
- 9. std :: प्रयोगात्मक :: वैकल्पिक <T> कार्यान्वयन: Constexpr निर्माता भ्रम
- 10. libC++ और libstdC++
- 11. N2965 - std :: bases और std :: direct_bases की स्थिति क्या है?
- 12. g ++
- 13. libstdC++
- 14. libstdC++
- 15. libC++ बनाम libstdC++ std :: is_move_assignable: सबसे सही कौन सा है?
- 16. g ++
- 17. g ++ -std = C++ 11 संस्करण 4.8.2
- 18. Drupal hook_menu कार्यान्वयन में वैकल्पिक तर्क
- 19. कार्यान्वयन सिंगलटन वैकल्पिक रूप से
- 20. G ++
- 21. रिटर्न प्रकार std :: वैकल्पिक <std :: variant <...>>
- 22. g ++
- 23. g ++
- 24. std :: async - कार्यान्वयन निर्भर उपयोग?
- 25. क्लैंग ++/g ++/gfortran
- 26. कैसे libstdC++
- 27. libstdC++ प्राप्त करना - v3/python
- 28. g ++
- 29. क्लैंग 5: std :: वैकल्पिक तात्कालिकता शिकंजा std :: पैरामीटर प्रकार
- 30. तुच्छता डिफ़ॉल्ट constructible std :: वैकल्पिक और std :: संस्करण
मैंने सी ++ 14 टैग विकी से जुड़े मेटा चर्चा के अनुसार टैग को सी ++ 1y में बदल दिया जिसके परिणामस्वरूप अंतिम ड्राफ्ट मानक जारी होने तक [टैग: सी ++ 14] का उपयोग न करने का निर्णय लिया गया। – chris
यदि कोई संदर्भ कार्यान्वयन का उपयोग करना चाहता है, तो यह [यहां] (https://github.com/akrzemi1/Optional/) है। – PeterT