stringstream
От: Init64  
Дата: 13.11.05 12:17
Оценка:
Здравствуйте. При работе с std::stringstream cтолкнулся с непонятным эффектом:

// ..........................
stringstream& write1()
{
    ss << "test1";
    return ss;
}

string write2()
{    
//toogle breakpoint here
    return "end";
}

string write3()
{
//toogle breakpoint here
    return "middle";
}

stringstream        ss;

int main()
{
    write1() << "test2" << write3() << write2();
}

При watch'е из write3() и write2() в потоке видны только данные, записанные через write1(). По идее, на момент вызова write3() в потоке уже должен быть фрагмент "test1test2", но дефакто - этого не происходит. Такое впечатление, что после write1() << складывает данные в какой-то временный буфер, и только после write2() выкидывает их в поток. ss.flush() в write2,3() не дает никакого эффекта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.