В настоящее время я застрял в поиске правильного синтаксиса для обрезки каждой строки в std :: vector.
Я пытался
std::vector<std::string> v;
std::for_each(v.begin(), v.end(), &boost::trim);
, который дал мне следующие сообщения об ошибках в MSVC7.1.
ошибка C2784: '_Fn1 std :: for_each (_InIt, _InIt, _Fn1)': не удалось вывести аргумент шаблона для 'T1' из 'std :: vector <_Ty> :: iterator' с [_Ty = std :: строка]: см. объявление 'std :: for_each'
ошибка C2896: '_Fn1 std :: for_each (_InIt, _InIt, _Fn1)': нельзя использовать шаблон функции 'void boost ::gorith :: trim (SequenceT &, const std :: locale &)' в качестве аргумента функции : смотрите объявление 'boost :: алгоритма :: trim'
Если я явно укажу параметр шаблона trims, второй параметр не может быть найден компилятором, хотя он установлен по умолчанию.
std::for_each(v.begin(), v.end(), &boost::trim<std::string>);
ошибка C2198: 'void (__cdecl *) (std :: string &, const std :: locale &)': слишком мало аргументов для вызова через указатель на функцию
Мне было интересно, как будет выглядеть правильный синтаксис для вызова trim для каждого элемента в v
.