Por que o string :: data () não fornece um caractere mutável *?

Em c ++ 11 array, string evector todos têm odata método que:

Retorna o ponteiro para a matriz subjacente que serve como armazenamento de elemento. O ponteiro é tal que alcance data(); data() + size()) é sempre um intervalo válido, mesmo que o contêiner esteja vazio. Font]

Este método é fornecido de forma mutável econst versão para todos os contêineres aplicáveis, por exemplo:

T* vector<T>::data();
const T* vector<T>::data() const;

Todos os contêineres aplicáveis, ou seja, excetostring qualonly fornece oconst version:

const char* string::data() const;

O que aconteceu aqui? Porquestring seja enganado quandochar* string::data() seria tão útil?

questionAnswers(2)

yourAnswerToTheQuestion