से जुड़े संकलन विफलता कृपया कोई बता सकता है कि निम्न कोड क्लैंग 3.5 का उपयोग क्यों संकलित नहीं करता है।कंस्ट्रक्शन विफलता वेक्टर std :: स्ट्रिंग
त्रुटि रिपोर्ट 'एल्गोरिदम में' कोई व्यवहार्य ओवरलोडेड '=' है।
std::vector<const std::string> m_messages;
std::vector<const std::string>::iterator iter;
...
if (iter != m_messages.end())
{
m_messages.erase(iter); // compilation error
}
अगर मैं के रूप में m_messages
घोषित: std::vector<std::string> m_messages;
तो यह ठीक संकलित करता है।
std::vector<const std::string> m_messages;
और
std::vector<std::string> m_messages;
TIA:
इसके अलावा, के बीच अंतर क्या है।
करता है के असाइनमेंट ऑपरेटर इसका मतलब यह नहीं समझ में आता है स्थिरांक का एक वेक्टर के लिए ले जाने के जब तक अपवाद प्रतिलिपि निर्माता द्वारा फेंक दिया जाता है स्ट्रिंग्स अगर तत्वों को हटाया जा सकता है? – ksl
मुझे पूरा यकीन नहीं है कि मैं इसकी पुष्टि करने के लिए पर्याप्त रूप से सराहना करता हूं, लेकिन वेक्टर कैसे कार्यान्वित किया जाता है, ऐसा लगता है .. लेकिन यह निश्चित रूप से समझता है कि यह एक कंटेनर है जो इसका समर्थन करता है (उदाहरण के लिए विनाशक + प्रतिलिपि निर्माता)। शायद बूस्ट लाइब्रेरी में कुछ है? –
ठीक है धन्यवाद। शायद मैं उससे संबंधित एक अलग सवाल के रूप में विशेष रूप से अगर मुझे यहां कोई जवाब नहीं मिलता है। – ksl