Вы просто оптимизируете длину кода или пытаетесь сохранить себе копию здесь? Что не так с временным буфером?
Я бы сказал, что вы на самом деле обходите защиту строки, пытаясь писать напрямую, делайте это так. Если вы беспокоитесь о производительности копии в std :: string, поскольку вы определили, что это каким-то образом влияет на производительность вашего приложения, я бы работал непосредственно с символом *.
РЕДАКТИРОВАТЬ: Делать больше ищет ...
инициализация std :: string из char * без копирования
Во втором ответе довольно четко сказано, что вы не можете достичь того, чего хотите достичь (т. Е. Заполнить std :: string без итерации над символом * для копирования.)
Взгляните на свою подпрограмму загрузки (возможно, опубликуете ее здесь?) И сведите к минимуму распределение: new и delete, безусловно, не бесплатны, так что вы можете хотя бы сэкономить время, если вам не нужно постоянно заново создавать буфер , Я всегда нахожу полезным стереть его, установив в memset'у буфер равным 0 или обнуляя завершив первый индекс массива на каждой итерации, но вы можете быстро удалить этот код в интересах производительности, если вы уверены в своем алгоритме.