доступа к 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;
Ну это просто кусок тестового кода
Обсуждают сегодня