我目前正在找到正确的语法来修剪std :: vector中的每个字符串。boost :: trim std :: vector中的每个字符串<std::string>
我试图
这给了我在MSVC7.1以下错误消息。
错误C2784: '_Fn1的std ::的for_each(_Init,_init,_Fn1)':无法从推断关于 'T1' 模板参数 '的std ::矢量< _Ty> ::游标' 与[_Ty = std :: string]:看到'std :: for_each'的声明
错误C2896:'_Fn1 std :: for_each(_InIt,_InIt,_Fn1)':无法使用函数模板'void boost :: algorithm :: trim (SequenceT &,常量的std ::区域&)”作为函数参数:详见申报 '的boost ::算法::微调'
如果我明确给予编译器无法找到模板参数修剪第二个参数,尽管它默认设置了它。
std::for_each(v.begin(), v.end(), &boost::trim<std::string>);
呼叫参数太少错误C2198: '无效(__cdecl *)(的std :: string &,常量的std ::区域&)':通过指针到功能
我想知道如何调用v
中每个元素的修剪正确的语法。
还请注意,'for_each'不用于修改原始序列。改用'transform'。 – 2010-02-08 13:37:10
错误,for_each对于他正在做的事情来说是完美的。请记住,boost :: trim返回void,这意味着它不能与变换一起使用。 – Manuel 2010-02-08 13:44:49
仅仅为了这种情况,是不是有boost :: trim_copy? – Rob 2010-02-08 13:55:06