Почему не string :: data () Предоставляет изменяемый символ *?
В C ++ 11 array
, 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
получить шорт, когдаchar* string::data()
было бы так полезно?