ostringstream `.str()` 没有匹配的函数调用
No matching function call for ostringstream `.str()`
我有一个定义为
的函数
void writeSite(string& site, const string& contentType);
现在我正在使用 std::ostringstream
函数构建我的字符串。
完成字符串后,我想调用 writeSite
函数。但是我收到以下错误:
no matching function for call to ‘writeSite(std::basic_ostringstream<char>::__string_type, const char [17])’
writeSite(body.str(), "application/json");
如果我先将ostringstream
保存到一个新的std::string
变量中,然后调用writeSite
函数,我就可以解决问题。
但是我在想,有没有更好的选择?
std::ostringstream body;
body << "{";
// some more string building
body << "}";
std::string sbody = body.str();
writeSite(sbody, "application/json");
当你这样做时
writeSite(body.str(), "application/json");
body.str()
返回的字符串对象是临时的。并且 non-constant 引用不能绑定到临时对象。
一个简单的解决方案是使 site
参数 const
就像您对 contentType
参数所做的那样(否则会遇到同样的问题)。
我有一个定义为
的函数void writeSite(string& site, const string& contentType);
现在我正在使用 std::ostringstream
函数构建我的字符串。
完成字符串后,我想调用 writeSite
函数。但是我收到以下错误:
no matching function for call to ‘writeSite(std::basic_ostringstream<char>::__string_type, const char [17])’
writeSite(body.str(), "application/json");
如果我先将ostringstream
保存到一个新的std::string
变量中,然后调用writeSite
函数,我就可以解决问题。
但是我在想,有没有更好的选择?
std::ostringstream body;
body << "{";
// some more string building
body << "}";
std::string sbody = body.str();
writeSite(sbody, "application/json");
当你这样做时
writeSite(body.str(), "application/json");
body.str()
返回的字符串对象是临时的。并且 non-constant 引用不能绑定到临时对象。
一个简单的解决方案是使 site
参数 const
就像您对 contentType
参数所做的那样(否则会遇到同样的问题)。