Friday, 15 May 2015

c++ - C-Style Strings as template arguments? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 9 जवाब

Can सी-स्टाइल स्ट्रिंग्स हो सकता है टेम्पलेट तर्क के रूप में प्रयोग किया जाता है?

मैंने कोशिश की:

  टेम्पलेट & lt; char * str & gt; Struct X {const char * GetString () const {return str; }}; Int main () {X & lt; "स्ट्रिंग" & gt; एक्स; अदालत के & lt; & lt; x.GetString (); }  

और हालांकि मुझे क्लास की परिभाषा के बारे में कोई शिकायत नहीं मिलती है, तात्पर्य पैदावार 'X': 'str' के लिए एक टेम्प्लेट तर्क के रूप में अमान्य अभिव्यक्ति (वीसी) ।

अपडेट: आजकल, कुछ साल इस सवाल कहा गया था और उत्तर दिया, स्ट्रिंग साइकलल्स का उपयोग टेम्पलेट तर्क के रूप में संभव है। सी ++ 11 के साथ, हम वर्णों के रूप में टेम्पलेट तर्कों ( टेम्पलेट & lt; char ... c & gt; ) का उपयोग कर सकते हैं और इस तरह के एक टेम्पलेट पर एक शाब्दिक स्ट्रिंग पास कर सकते हैं।

यह काम करेगा, हालांकि:

  टेम्पलेट & lt; char const * str & gt; Struct X {const char * GetString () const {return str; }}; Char global_स्ट्रिंग [] = "स्ट्रिंग"; Int main () {X & lt; global_string & gt; एक्स; अदालत के & lt; & lt; x.GetString (); }  

No comments:

Post a Comment