我目前正在为 STL 流编写一个包装器,以同步来自多个线程的写调用。我有以下(简化的)代码:
class Synchronize {
private:
std::stringstream ss;
public:
void write(std::string& str) {
// locking ...
ss << str;
// unlocking ...
};
// other stuff ..
};
Synchronize& operator<<(Synchronize& o, std::string& str) {
o.write(str);
return o;
}
Synchronize& operator<<(Synchronize* o, std::string& str) {
o->write(str);
return *o;
}
现在可以通过在类的对象上使用运算符来调用该write()
方法,但只能使用. 并且还需要很多其他的东西,比如s 和s。<<
Synchronize
std::string
std::stringstream
int
float
Synchronize
是否可以在没有大量自己功能的情况下将此功能添加到我的课程中operator<<
?模板有帮助吗?或者我应该从iostream
图书馆扩展一些类?