cppreference के अनुसार, stt :: is_literal_type को अस्वीकार किया गया है, std::is_literal_type
विशेषता C++ 17 में बहिष्कृत है। प्रश्न क्यों और भविष्य में पसंदीदा प्रतिस्थापन क्या है यह जांचने के लिए कि कोई प्रकार literal type है या नहीं।सी ++ 17
सी ++ 17
उत्तर
is_literal
प्रकार विशेषता, सामान्य कोड को नगण्य मूल्य प्रदान करता है के रूप में क्या वास्तव में जरूरत है पता चला है कि एक विशिष्ट निर्माण निरंतर आरंभीकरण का उत्पादन की क्षमता है। शाब्दिक प्रकार की मूल अवधि कम से कम एक कॉन्स्टेक्सर कन्स्ट्रक्टर होने के लिए अर्थपूर्ण रूप से उपयोग करने के लिए बहुत कमजोर है।
असल में, क्या यह कह रहा है कि वहाँ कोई कोड आप is_literal_type_v
साथ रक्षा और कहा कि यह सुनिश्चित करें कि अपने कोड वास्तव में constexpr है पर्याप्त होना हो सकता है कर रही है। यह पर्याप्त नहीं है:
template<typename T>
std::enable_if_t<std::is_literal_type_v<T>, void> SomeFunc()
{
constexpr T t{};
}
कोई गारंटी नहीं है कि यह कानूनी है। भले ही आप इसे is_default_constructible<T>
से सुरक्षित रखें, इसका मतलब यह नहीं है कि यह constexpr डिफ़ॉल्ट रचनात्मक है।
आपको क्या चाहिए is_constexpr_constructible
विशेषता है। जो अभी तक मौजूद नहीं है।
हालांकि, (पहले से लागू) विशेषता का कोई नुकसान नहीं होता है, और संकलन-समय आत्मनिरीक्षण की अनुमति देता है जिसके लिए कोर-भाषा प्रकार-श्रेणियां एक दिए गए टेम्पलेट पैरामीटर को संतुष्ट कर सकती हैं। जब तक कोर वर्किंग ग्रुप एक शाब्दिक प्रकार की धारणा को सेवानिवृत्त नहीं करता है, तब तक इसी लाइब्रेरी विशेषता को संरक्षित किया जाना चाहिए।
हटाने की दिशा में अगला कदम (बहिष्करण के बाद) एक प्रकार का पत्र लिखना होगा जो कि टाइप विशेषता को हटाकर/हटाते समय कोर भाषा से शब्द को निकालने का प्रस्ताव करेगा।
तो आखिरकार योजना "शाब्दिक प्रकारों" की पूरी परिभाषा से छुटकारा पाने के लिए है, इसे और अधिक सुगंधित जगह से बदलना।
- 1. सी ++ 17
- 2. सी ++ 17 ऑपरेटर ""?
- 3. std :: सी ++ 17
- 4. सी ++ 17 वैराडिक टेम्पलेट फोल्डिंग
- 5. सी ++ 17 गुना अभिव्यक्ति वाक्यविन्यास?
- 6. सी ++ 17 लैम्ब्डा कैप्चर * यह
- 7. सी ++ 17 में हेक्साडेसिमल फ्लोटिंग स्थिरांक क्यों?
- 8. सी ++ 17 वर्ग टेम्पलेट आंशिक कटौती
- 9. std :: में नक्शा :: डालने परिवर्तन सी ++ 17
- 10. मूल्य 17
- 11. एपिआई 17
- 12. फेडोरा 17
- 13. सी ++ 17 को बढ़ावा देने के लिए समतुल्य :: फाइल सिस्टम :: unique_path() क्या है? कई प्री-सी ++ 17 कंपाइलर्स के लिए
- 14. एसडीके 17 एंड्रॉइड सख्त निर्भरता जांच एसडीके 17
- 15. SQLite त्रुटि कोड 17
- 16. वीएस 17 रिशेर्पर रिएक्ट.कंपोनेंट
- 17. मोनोडिफाल्ट मिंट 17
- 18. सी ++ 17 में शुद्ध वर्चुअल फ़ंक्शन के लिए बॉडी?
- 19. सी ++ 14/17 के लिए नेटवर्किंग लाइब्रेरी प्रस्ताव क्यों है?
- 20. क्या सी ++ 17 नेस्टेड कक्षाओं की घोषणा की अनुमति होगी?
- 21. मैं नई सी ++ 17 निष्पादन नीतियों का उपयोग कैसे करूं?
- 22. सी ++ 17 संस्करण <any> वर्ग के अंदर
- 23. constexpr स्थिर सदस्य से पहले/के बाद सी ++ 17
- 24. विरासत और is_detected_v एक अजीब परिणाम (सी ++ 17)
- 25. क्यों सी ++ 17 संरचित बाइंडिंग {} का उपयोग नहीं करते हैं?
- 26. सी ++ 17 में i ++ + i ++ का मूल्यांकन क्या होगा?
- 27. ओवरलोडेड ऑपरेटर का शॉर्ट सर्किट && और || में सी ++ 17
- 28. सी ++ 17 अपवाद विनिर्देशक प्रकार प्रणाली कैसे काम करेगा?
- 29. संख्या 17 से विभाजित है?
- 30. एडीटी 16 से एडीटी 17
दिलचस्प बात यह है कि मैंने सोचा था कि 'std :: is_literal_type' एक सुरक्षित जांच प्रदान करता है कि किसी प्रकार का उपयोग कॉन्सएक्सप्र अभिव्यक्तियों में किया जा सकता है या नहीं। फिर भी यह एक अच्छा जवाब है। – plasmacel