Мне непонятно, что вы пытаетесь сделать, документы boost :: format - хорошее место для начала, есть ряд наглядных примеров, показывающих, как использовать класс.
Вы можете создавать объект форматирования и вводить элементы с помощью различных операций (в отличие от, скажем, printf, где все параметры должны удовлетворять va_arg
, который вы передаете).
boost::format fmter("%2% %1%");
fmter % 36;
fmter % 77;
Вы можетезатем получите строку из результата.
std::string s = fmter.str();
Имейте в виду, что существует число исключений , которые могут быть выброшены.
Если вы ищете что-то, что динамическисоздает строку формата, которую вы можете сделать любым количеством способов.
std::string strFormatString = "first-> %1% second-> %2%";
boost::format formatter( strFormatString.c_str() );
formatter % value1;
formatter % strFormatString.c_str();
boost::format secondFormatter( formatter.str() ); // etc etc etc