В С++ 11 array, dynarray, string и vector все получили метод data, который:
Возвращает указатель на базовый массив, служащий в качестве хранилища элементов. Указатель таков, что диапазон [
data();data() + size()) всегда является допустимым диапазоном, даже если контейнер пуст. [Источник]
Этот метод предоставляется в изменяемой версии и const для всех применимых контейнеров, например:
T* vector<T>::data();
const T* vector<T>::data() const;
Все применимые контейнеры, кроме string, которые предоставляют только const версию:
const char* string::data() const;
Что здесь произошло? Почему string получил shortchanged, когда char* string::data() будет так полезен?
