【发布时间】:2010-12-15 08:21:42
【问题描述】:
我有一个std::vector<std::string> temp_results,我希望使用 std::for_each 来遍历这个向量并连接一个字符串,所以我编造了以下构造:
std::stringstream ss;
std::string res = std::for_each(temp_results.begin(), temp_results.end(), boost::bind(addup, _1, ss));
std::string addup(std::string str, std::stringstream ss)
{
ss << str;
ss << ";";
return ss.str;
}
我收到以下错误,这超出了我的理解:
error C2475: 'std::basic_stringstream<_Elem,_Traits,_Alloc>::str' : forming a pointer-to-member requires explicit use of the address-of operator ('&') and a qualified name
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Alloc=std::allocator<char>
]
有人能解释一下是什么问题吗?
【问题讨论】:
-
通过引用传递
stringstream可能会更好。
标签: c++ stringstream boost-bind