【发布时间】:2015-03-31 05:49:18
【问题描述】:
您好,我在 ORTB 中有一个 mimeType,但无法通过编译,是否可以迭代 banner.mimes 并将其转换为字符串?
cerr << "banner.mimes:" << banner.mimes.empty() << endl;
if (!banner.mimes.empty()){
for(auto & mime : banner.mimes) {
cerr << "banner.mime:" << mime << endl;
std::vector<ORTB::MimeType> mimes;
mimes.push_back(mime.toString());
ctx.br->segments.add("mimes", mimes);
}
}
它说:错误:无法将“std::basic_ostream”左值绑定到“std::basic_ostream&&” /usr/include/c++/4.6/ostream:581:5: 错误:初始化 âstd::basic_ostream<_chart _traits>& std::operator&&, const 的参数 1 _Tp&) [with _CharT = char, _Traits = std::char_traits, _Tp = ORTB::MimeType]â
【问题讨论】:
-
1.
if是完全多余的。 2. 错误不是来自迭代,而是来自cerr << …行。我们需要更多的上下文来判断是什么原因造成的。但是MimeType的<<运算符的定义似乎是错误的,因为流在某处被转换为const&。 -
我注释掉了 for 循环中的每一行,但同样的错误。 ORTB::MimeType 来自对象 Banner,我只需要一种方法来获取对象并将其转换为字符串。
标签: c++