मैं निम्न त्रुटि प्राप्त कर रहा हूं जब मैं Visual Studio 2008 / Windows SDK 7 पर निम्न कोड संकलित करता हूं
< प्री> कॉन्स्ट UINT a_uint; यूआईएनटी परिणाम; Std :: runtime_error (std :: string ("हमने किया था") + a_uint + "और" + परिणाम प्राप्त करें; विडंबना यह है कि, मुझे इस परिणाम के साथ समाप्त हुआ: त्रुटि C2782: 'std :: basic_string & lt; _Elem, _Traits, _Alloc & gt;
Std :: operator + (const std :: basic_string & lt; _Elem, _Traits, _Alloc & gt; & amp;; const _Elem) ': टेम्पलेट पैरामीटर' _Elem 'अस्पष्ट है
क्या कोई यह बता सकता है कि त्रुटि क्यों संदेश वास्तविक समस्या की व्याख्या नहीं करता है (यह कि कोई भी ऑपरेटर + + आईएनएस के लिए स्ट्रिंग नहीं है)?
आप इसे इस पर कम कर सकते हैं
टेम्पलेट & lt; typename T & gt; शून्य एफ (टी, टी); Int main () {f ('0', 0); // है टी int या चार? }
आप एक अहस्ताक्षरित int को स्ट्रिंग में जोड़ने का प्रयास करते हैं। इसका अर्थ नहीं है, और std :: string
वर्ग को char
पर अंतर्निहित रूपांतरणों को जोड़ने के लिए कोई सावधानी बरतने की आवश्यकता नहीं है क्योंकि यह ऐसी संभावित प्रोग्रामिंग कीड़े को छुपाएगा
अहस्ताक्षरित पूर्णांक को std :: string
को दशमलव / हेक्साडेसिमल / आक्टिकल / आदि स्वरूप में परिवर्तित करने की कोशिश करें और फिर सम्मिलित करें (आप ऐसा कर सकते हैं कि std :: ओस्ट्रिंगस्ट्रीम
या boost :: lexical_cast
) या बग को अन्य तरीकों से ठीक करें जो आप फिट देख रहे हैं।
Comments
Post a Comment