我使用线程并且需要使用互斥锁保护std :: cout操作,但我不知道如何重载运算符<<按顺序使用它:
myOut << "hello " << 55 << " world" << false << 45.4f << std::endl;
如果有人可以帮助我,我会感谢你。
答案 0 :(得分:1)
谢谢大家,但我解决了这个问题,很容易但重复,我需要让运营商&lt;&lt;要返回MyClass&amp ;,然后我使用此返回值来调用运算符&lt;&lt;我想要多次,像这样:
Log& operator<<(const std::string& p){
std::lock_guard<std::mutex> locker(mutex);
std::cout << p;
return *this;
}
Log& operator<<(const std::string& p){
std::lock_guard<std::mutex> locker(mutex);
std::cout << p.c_str();
return *this;
}
但是需要为你想要使用的任何类型重载,它们只是为它创建一个全局变量