C ++ 11, Ubuntu 14.04, GCC डिफ़ॉल्ट टूलचिन का उपयोग करना ।
यह कोड विफल रहता है:
constexpr std::string constString = "constString";
त्रुटि: टाइप 'कास्ट स्ट्रिंग {उर्फ कॉन्स्ट एसटीडी :: basic_string}' कॉन्स्ट्रेक चर का 'कॉन्स्ट्रीमिंग' शाब्दिक नहीं है ... क्योंकि ... 'एसटीडी: basic_string' में एक गैर-तुच्छ विध्वंसक होता है
क्या std::string
ए में उपयोग करना संभव है constexpr
? (जाहिरा तौर पर नहीं ...) यदि हां, तो कैसे? वहाँ एक चरित्र स्ट्रिंग का उपयोग करने के लिए एक वैकल्पिक तरीका है constexpr
?
std::string
कॉन्स्टैक्स क्यों बनना चाहते हैं ? एसओ पर कई संकलन-समय स्ट्रिंग कार्यान्वयन हैं। यदि आप त्रुटि संदेश को समझते हैं और केवल शाब्दिक प्रकारों को पता लगाया जा सकता है, तो क्या आप गैर-शाब्दिक प्रकार के अवरोध को बना सकते हैं? साथ ही साथ कई कारण हैं कि कोई व्यक्ति एक कॉन्स्ट्रेक्स उदाहरण क्यों चाहता है, इसलिए मैं आपको अपना प्रश्न स्पष्ट करने का सुझाव देता हूं
constexpr
बाहर कार्यान्वयन हैं। std::string
उनमें से एक नहीं है।
std::string
शाब्दिक प्रकार नहीं है