Escribir directamente en el buffer char * de std :: string

Entonces tengo unstd::string y tiene una función que tomachar* y escribe en ello. Ya questd::string::c_str() ystd::string::data() regresoconst char*No puedo usarlos. Así que estaba asignando un búfer temporal, llamando a una función con él y copiándolo enstd::string.

Ahora planeo trabajar con gran cantidad de información y copiar este búfer tendrá un impacto notable y quiero evitarlo.

Algunas personas sugirieron usar&str.front() o&str[0] pero invoca el comportamiento indefinido?