ошибка: невозможно преобразовать 'std :: basic_string <char> :: iterator…' в 'const char * для аргумента' 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*)'
По какой-то причине моя программа прекрасно компилируется, когда я работаю на Mac ... но как только я использую компьютер с Linux, эта ошибка появляется в нескольких местах. (Если бы кто-нибудь мог объяснить, почему это происходит, это было бы здорово!)
Вот один из случаев, когда появляется ошибка:
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());
Кто-нибудь знает, как подойти к этой проблеме?