私は次のエラーを取得しています:についてはエラー: 'STDを:: <char>をのbasic_string ::イテレータを...' に変換できません '引数のための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());
誰もこの問題にアプローチする方法を知っていますか?
こちら(https://ideone.com/jZh5x5)で作業中です。あなたは[mcve]を作ることができますか? – NathanOliver
正しい削除機能を選択していないので、を含めましたか? (悲しいことに、別のものはにある) –
Borgleader
コンパイラのエラーを正しく読んでください。あなたは質問のタイトルの重要な部分を忘れてしまった。これは明らかに呼び出す関数ではない 'int remove(const char *)'を呼び出そうとしていることを伝えます。 –