क्या सी-स्टाइल स्ट्रिंग्स टेम्पलेट तर्क हो सकते हैं?
सी-स्टाइल स्ट्रिंग का उपयोग करके टेम्पलेट को इंस्टेंट करने का आपका प्रयास एक त्रुटि के कारण विफल हो जाता है टेम्पलेट तर्क के रूप में स्ट्रिंग अक्षरशः के अमान्य उपयोग के लिए।
हालांकि सी-शैली स्ट्रिंग सीधे टेम्पलेट तर्क के रूप में काम नहीं कर सकती हैं, फिर भी हैं वैकल्पिक दृष्टिकोण:
एक स्थिर स्ट्रिंग के लिए एक पॉइंटर का उपयोग करें
एक समाधान यह है कि टेम्पलेट तर्क के रूप में एक स्थिर स्ट्रिंग के लिए एक पॉइंटर का उपयोग करें:
template
struct X {
const char *GetString() const {
return str;
}
};
char global_string[] = "String";
int main() {
X x;
cout अद्यतन: सी 11 के साथ टेम्पलेट तर्क के रूप में स्ट्रिंग अक्षर
सी 11 और बाद के संस्करण के साथ, चरित्र पैक का उपयोग करके टेम्पलेट तर्क के रूप में स्ट्रिंग अक्षर का उपयोग करना संभव है:
template
struct X {
const char (*GetString)() {
return [](char*... s) { return s; }(c...);
}
};
int main() {
X x;
cout
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3