Хочется странного...
Есть строка вида "Что-то: %s, всякое: %d, разное: %0.2f", которая получается извне (т.е. количество аргументов формата неизвестно) и соответствующего размера (и типов) "массив" значений, которые нужно подставить в соответствующие места.
Надо сделать "sprintf".
Пока только приходит на ум
sprintf(buf, fmt, par[0], par[1], par[2], par[3], par[4], и так далее до X, а если мало, то до Y);
Или есть в природе sprintf, который подставляет только первый параметр, не трогая остальные (тогда это можно сделать в цикле).
В крайнем случае можно ограничиться только %s, т.к. значения все равно получаются в виде строк.
Boost по ряду причин тянуть не хочется (хотя бы потому, что это уже давно не один заголовочный файл, а куча зависимостей, хоть и внутренних).