Comment faire facilement des std::cout "thread-safe"?

J'ai une application multi-thread, qui utilise fortement std::cout pour la connexion sans verrouillage. Dans un tel cas, comment puis-je ajouter facilement mécanisme de verrouillage à faire std::cout thread-safe?

Je ne veux pas de recherche pour chaque occurrence de std::cout et ajouter une ligne de code de verrouillage. C'est trop fastidieux.

Meilleure pratique?

En fait, c'était un des sujets discutés et donné un exemple dans cette vidéo. L'utilisation de ce qui est à environ 48 minutes en, et la mise en œuvre est un certain temps avant que, comme il est un exemple pour les chaînes avant.
std::cout est déjà thread-safe. Voulez-vous dire que vous voulez les vrais morceaux de texte pour être sérialisé par chasse d'eau?
L'article 27.4.1: Concurrent access to a synchronized (27.5.3.4) standard iostream object’s formatted and unformatted in- put (27.7.2.1) and output (27.7.3.1) functions or a standard C stream by multiple threads shall not result in a data race (1.10).
Toutefois, la norme dit: "[ Note: les Utilisateurs doivent toujours synchroniser l'utilisation simultanée de ces objets et des ruisseaux par plusieurs threads s'ils veulent éviter entrelacés caractères. — la note de fin ]"
Ce qui revient à ce que j'ai dit: c'est déjà thread-safe, voulez-vous de plus amples sérialiser l'affichage de caractères par chasse?

OriginalL'auteur xmllmx | 2013-02-05