- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
class cout_mt : public std::ostringstream
{
public:
~mt_ostream()
{
std::cout << str();
}
};
#define cout static_cast<cout_mt&>(cout_mt())
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+142
class cout_mt : public std::ostringstream
{
public:
~mt_ostream()
{
std::cout << str();
}
};
#define cout static_cast<cout_mt&>(cout_mt())
Для того чтобы не разрывались строки вида: cout << "Value = " << value << ";" << endl; при использовании таких вызовов из нескольких тредов, а то ведь каждый оператор << является вызовом функции и частенько треды мешаю друг другу выводить . . .
absolut 15.05.2010 09:10 # +1
А на счет неразрыва строк, где гарантия, что два деструктора в разных тредах не вызовутся одновременно ?
k06a 15.05.2010 12:24 # 0
absolut 15.05.2010 21:59 # +2
k06a 15.05.2010 22:09 # 0
absolut 15.05.2010 22:49 # 0
pushkoff 17.05.2010 12:07 # 0
k06a 17.05.2010 12:16 # 0
pushkoff 17.05.2010 12:21 # 0
k06a 15.05.2010 12:31 # 0