我目前正在找到正確的語法來修剪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