Интересно, что я просто попробовал решение, предложенное hkaiser, и вместо того, чтобы получить количество записанных байтов, я получил число байтов в исходном массиве (т.е. поиск до конца прошел ВСЕ до конца буфера).
Мне пришлось немного подправить этот призыв:
(int)boost::iostreams::seek( s, 0, std::ios_base::cur )
Может быть, они что-то изменили в библиотеке буста, что заставило его вести себя по-другому. Я думаю, что мы используем последние и самые лучшие на 20 января 2011 года.