ich die folgende Fehlermeldung erhalten:Fehler: kann nicht konvertieren 'std :: basic_string <char> :: iterator ...' to 'const char * für Argument '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*)'
Für aus irgendeinem Grund kompiliert mein Programm perfekt, wenn ich an einem Mac arbeite ... aber sobald ich einen Linux-Rechner benutze, taucht dieser Fehler an mehreren Stellen auf. (Wenn jemand erklären könnte, warum dies der Fall ist, das wäre toll!)
Hier ist einer der Fälle, in denen der Fehler oben knallt:
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 ...
}
Genauer gesagt, wird der Fehler aus dieser Linie kommt:
t.erase(std::remove(t.begin(), t.end(), chars[0]), t.end());
Kann jemand dieses Problem angehen?
Es funktioniert [hier] (https://ideone.com/jZh5x5). Kannst du ein [mcve] produzieren? – NathanOliver
Es ist nicht die richtige Remove-Funktion abholen, haben Sie? (Leider gibt es eine andere Entfernung in ) –
Borgleader
Lesen Sie den Compiler-Fehler richtig. Sie haben den wichtigen Teil des Fragetitels verpasst. Es sagt Ihnen, dass es versucht, 'int remove (const char *)' aufzurufen, was eindeutig nicht die Funktion ist, die Sie aufrufen möchten. –