станд :: строка :: назад () - PullRequest
3 голосов
/ 10 июля 2011

Почему нет std::basic_string<...>::back() функции-члена?

Функциональность, очевидно, есть, я имею в виду, можно написать

  • myString[myString.size()-1]

  • *myString.rbegin()

Предполагаю ли я некоторую неправильную эквивалентность между потенциалом back() и двумя вышеописанными методами?Вы можете сказать, что моя вторая версия достаточно лаконична, но почему бы не предоставить функцию, тривиальную для реализации, которая приближает строку на один шаг ближе к контейнеру?Есть ли предупреждение, которого я пропускаю?

Спасибо.

Ответы [ 3 ]

9 голосов
/ 10 июля 2011

Нет особой причины, по которой std::string не должен был иметь эти функции, и это утверждение подтверждается тем фактом, что они были добавлены в предстоящий стандарт C ++.

2 голосов
/ 10 июля 2011

Если верить стандарту C ++ 0x (или хотя бы рабочему проекту), тогда front() и back() действительно существуют.

См. Раздел 21.4.5.

1 голос
/ 10 июля 2011

MSDN говорит, что - это один .И сопровождающий фронт () .Может быть, у вас есть древний, изворотливый компилятор.

...