En un post 2008 en su sitio, Herb Sutter indica lo siguiente:Will std :: string siempre tendrá terminación nula en C++ 11?
Hay una propuesta activa para apretar aún más esto en C++ 0x y requieren nulo de terminación y posiblemente prohibir la copia en escritura implementaciones, por razones relacionadas con la concurrencia. Aquí está el papel: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html. Creo que una o ambas de las propuestas en este documento es probable que se adopten, pero veremos en la próxima reunión o dos.
Sé que C++ 11 ahora garantiza que los contenidos de std :: string se almacenen de forma contigua, pero ¿adoptaron los anteriores en el borrador final?
¿Será seguro usar algo como &str[0]
?
¿La garantía de que los contenidos almacenados de forma contigua se proporciona también en C++ 03? – triclosan