aşağıdaki hatayı alıyorum: Forhatası: 'std :: basic_string <char> :: yineleyici ...' dönüştürülemiyor için 'const char * argüman için '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*)'
bir nedense, Mac'imde çalışırken programım mükemmel bir şekilde derler ... ama bir Linux makinesini kullandığımda, bu hata birden fazla yerde ortaya çıkar. (Bu durumda neden kimse açıklayabilir, bu harika olurdu!)
Burada hata açılır örneklerinden biridir:
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 ...
}
Daha spesifik olarak, hata bu hattan geliyor:
t.erase(std::remove(t.begin(), t.end(), chars[0]), t.end());
Bu soruna nasıl yaklaşılacağını bilen var mı?
[burada] çalışıyor (https://ideone.com/jZh5x5). Bir [mcve] üretebilir misin? – NathanOliver
Doğru kaldırma işlevini kaldırmıyor, mu eklediniz? (Ne yazık ki içinde başka bir kaldırır) –
Borgleader
Derleyici hatasını doğru şekilde okuyun. Soru başlığındaki önemli kısmı kaçırdınız. Size açıkça aramak istediğiniz işlev olmayan int remove (const char *) 'aramaya çalıştığını söyler. –