Вы пытаетесь заменить тип char строкой - для замены требуется, чтобы типы были одинаковыми: const T & , что в обоих случаях должно быть char
.
template < class ForwardIterator, class T >
void replace ( ForwardIterator first, ForwardIterator last,
const T& old_value, const T& new_value );
Вот фрагмент кода, который может оказаться полезным:(Он работает при повторных вызовах std::string::replace()
до конца строки)
std::string& sReplaceAll(std::string& sS,
const std::string& sWhat,
const std::string& sReplacement)
{
size_t pos = 0, fpos;
while ((fpos = sS.find(sWhat, pos)) != std::string::npos)
{
sS.replace(fpos, sWhat.size(), sReplacement);
pos = fpos + sReplacement.size();
}
return sS;
}
В вашем случае вы бы использовали его так:
sReplaceAll(file_path, "\\", "\\\\");