доступа к cout?
class pcout : public std::stringstream {
private:
std::shared_mutex mut;
public:
~pcout() {
std::lock_guard lock(mut);
std::cout << rdbuf();
}
};
void sync_prints() {
pcout{} << "Hello" << " " << "World" << std::endl;
}
так лок же берется только в деструкторе, а запись так же будет не синхронизирована, или я путаю что-то?
Ну я сбрасываю в деструкторе rdbuf стрима в cout
Тогда должны быть синхронизированы все обращения к cout Вообще все
а зачем? Смысл не в том чтобы при записи "Hello world" гарантированно выводился "Hello world"?
В C++20 вот такое вроде есть osyncstream{cout} << "The answer is " << 6*7 << endl;
Ну это просто кусок тестового кода
Обсуждают сегодня