Можно ли использовать Boost.Format с предварительно выделенным буфером?

Мне было интересно, поддерживает ли Boost.Format использование буфера фиксированной ширины / предварительно выделенного буфера в качестве вывода вместо динамического буфера, управляемого с помощью сама библиотека?

То есть, обычно вы бы сделали:

boost::format myfmt("arg1: %1% / arg2: %2%");
// e.g.:
cout << (myfmt % 3.14 % 42);
// or
string s = boost::str( myfmt % "hey!" % "there!");

, поэтому библиотека Boost: Format автоматически позаботится о выделении достаточного места и управлении «буфером вывода» за вас.

Мне было интересно, есть ли способ использовать предопределенный нединамический буфер с Boost.Format, то есть что-то вроде:

const size_t buf_sz = 512;
char big_enough[buf_sz];
boost::format myfmt("arg1: %1% / arg2: %2%");
myfmt.attach_buffer(big_enough, buf_sz);
myfmt % "hey!" % "there!"
// big_enough buffer now contains the result string

Я знаю, что могу просто просмотреть примеры, документацию и исходный код, но отдельно от нехватки времени банкомат. (и саму возможность чего-то упустить) было бы интересно узнать: Если это невозможно, было бы здорово, если бы кто-нибудь мог объяснить, почему (если есть / есть конкретные причины ) - это было преднамеренно? он не соответствует API? ...?

Заявление об ограничении ответственности: Этот вопрос касается , а не производительности!

7
задан Martin Ba 3 November 2011 в 06:58
поделиться