Warum wird :: data () nicht als veränderbares Zeichen * angegeben?

Im c ++ 11 array, string, undvector Alle haben dasdata Methode welche:

Gibt den Zeiger auf das zugrunde liegende Array zurück, das als Elementspeicher dient. Der Zeiger ist so, dass der Bereich data(); data() + size()) ist immer ein gültiger Bereich, auch wenn der Container leer ist. Quell]

Diese Methode wird in einer veränderlichen undconst -Version für alle zutreffenden Container, zum Beispiel:

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

Alle zutreffenden Container, außerstring welcheonly liefert dasconst Ausführun:

const char* string::data() const;

Was ist hier passiert? Warum hatstring Shortchanged bekommen, wennchar* string::data() wäre so hilfreich?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage