Я работаю в разделе кода с очень высокими требованиями к производительности. Мне нужно выполнить некоторые операции с отформатированными строками, но я стараюсь избегать выделения памяти, даже внутренней библиотеки.
В прошлом я бы делал что-то похожее на следующее (предполагая C ++ 11):
constexpr int BUFFER_SIZE = 200;
char buffer[BUFFER_SIZE];
int index = 0;
index += snprintf(&buffer[index], BUFFER_SIZE-index, "Part A: %d\n", intA);
index += snprintf(&buffer[index], BUFFER_SIZE-index, "Part B: %d\n", intB);
// etc.
Я бы предпочел использовать все методы C ++, такие как ostringstream, чтобы сделать это вместо старых функций C.
Я понимаю, что мог бы использовать std :: string :: reserve и std :: ostringstream для заблаговременного получения пространства, но при этом все равно будет выполнено хотя бы одно выделение.
У кого-нибудь есть предложения?
Спасибо заранее.