【发布时间】:2013-03-13 01:42:07
【问题描述】:
```
#include <iostream>
#include <sstream>
#include <QString>
class Printer {
public:
inline std::ostream& operator<<(const std::string& str) {
stream << str;
return stream;
}
inline std::ostream& operator<<(int numb) {
stream << numb;
return stream;
}
inline std::ostream& operator<<(const QString& str) {
stream << str.toStdString();
return stream;
}
virtual ~Printer(void) {
std::cout << stream.str();
}
private:
std::stringstream stream;
};
int main(void)
{
QString qstring("qstring");
std::string stdstring("std::string");
Printer() << qstring << stdstring << 1; // Works like charm
Printer() << stdstring << qstring << 1; // Doesnt work :(
return 0;
}
```
任何人都可以看看上面的代码,并告诉我我有 cmets 的 main 方法中的问题是什么
【问题讨论】:
-
查看
QDebug可能会有所帮助。 -
我已经彻底调查过了,但不能在我的场景中使用 qdebug。我需要把它作为标准字符串放在 stringstream 中。我知道我们没有返回 ostream 的左移运算符,但有人有解决方法吗?
标签: c++ stringstream stdstring qstring ostringstream