C ++ cout с префиксом

Я хочу ostream с префиксом в начале каждой строки, перенаправленной на cout; Я пытаюсь это:

#include <iostream>
#include <thread>
class parallel_cout : public std::ostream
{
public:
parallel_cout(std::ostream& o):out(o){}

template <typename T>
std::ostream& operator<< (const T& val)
{
    out << "prefix " << val;
    return *this;
}

std::ostream& out;

};

int main()
{
 parallel_cout pc(std::cout);
 pc<<"a\nb"<<"c\n";
}

но у меня есть на выходе

prefix a
b

без ц. почему это?

Ответы на вопрос(4)

Ваш ответ на вопрос