मैं निम्न त्रुटि हो रही है:त्रुटि: करने के लिए 'स्थिरांक चार * तर्क के लिए' में बदल सकते हैं नहीं 'std :: basic_string <char> :: iterator ...' 1 '...'
error: cannot convert 'std::basic_string<char>::iterator {aka __gnu_cxx::__normal
_iterator<char*, std::basic_string<char> >}' to 'const char*' for argument '1'
to 'int remove(const char*)'
के लिए कुछ कारण, जब मैं मैक पर काम कर रहा हूं, तो मेरा प्रोग्राम पूरी तरह से संकलित होता है ... लेकिन एक बार जब मैं लिनक्स मशीन का उपयोग करता हूं, तो यह त्रुटि एक से अधिक स्थानों में पॉप अप हो जाती है। (यदि किसी को भी इस क्यों होता है समझा सकता है, कि बहुत अच्छा होगा!)
यहाँ जिन मामलों में त्रुटि पॉप अप में से एक है:
SomeClass::SomeClass(string t, string art, Time dur) {
char chars[] = ",";
t.erase(std::remove(t.begin(), t.end(), chars[0]), t.end());
art.erase(std::remove(art.begin(), art.end(), chars[0]), art.end());
// Some more code ...
}
अधिक विशेष रूप से, त्रुटि इस लाइन से आ रही है:
t.erase(std::remove(t.begin(), t.end(), chars[0]), t.end());
क्या कोई इस समस्या से संपर्क करने के बारे में जानता है?
यह काम कर रहा है [यहां] (https://ideone.com/jZh5x5)। क्या आप एक [एमसीवी] उत्पादन कर सकते हैं? – NathanOliver
यह सही निकालने का कार्य नहीं उठा रहा है, क्या आपने शामिल किया था? (दुख की बात है में एक और निकालें) –
Borgleader
संकलक त्रुटि को ठीक से पढ़ें। आप प्रश्न शीर्षक में महत्वपूर्ण भूमिका से चूक गए। यह आपको बताता है कि यह 'int remove (const char *)' को कॉल करने का प्रयास कर रहा है, जो स्पष्ट रूप से वह कार्य नहीं है जिसे आप कॉल करना चाहते हैं। –