Новый метод вектора data ()
предоставлял константную и неконстантную версии.
Однако строковый метод data ()
предоставляет только константную версию.
Думаю, они изменили формулировку о std :: string
, так что теперь символы должны быть смежными (например, std :: vector
).
Был ли пропущен std :: string :: data
? Или это хорошая причина разрешить только константный доступ к базовым символам строки?
примечание: std :: vector :: data
имеет еще одну приятную особенность, это не поведение undefined для вызова data ()
на пустом векторе. В то время как & vec.front ()
- неопределенное поведение, если оно пусто.