Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: front

From cppreference.net
std::basic_string
CharT & front ( ) ;
(1) (constexpr начиная с C++20)
const CharT & front ( ) const ;
(2) (constexpr начиная с C++20)

Возвращает ссылку на первый символ в строке.

Если empty() возвращает true , поведение не определено.

(до C++26)

Если empty() возвращает true :

  • Если реализация является защищённой , происходит нарушение контракта . Более того, если обработчик нарушения контракта возвращает управление при семантике оценки "observe", поведение не определено.
  • Если реализация не является защищённой, поведение не определено.
(начиная с C++26)

Содержание

Возвращаемое значение

operator [ ] ( 0 )

Сложность

Константа.

Примечания

В libstdc++, front() недоступен в режиме C++98.

Пример

#include <iostream>
#include <string>
int main()
{
    std::string s("Exemplary");
    char& f1 = s.front();
    f1 = 'e';
    std::cout << s << '\n'; // "exemplary"
    std::string const c("Exemplary");
    char const& f2 = c.front();
    std::cout << &f2 << '\n'; // "Exemplary"
}

Вывод:

exemplary
Exemplary

Отчёты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 534 C++98 std::basic_string не имела функцию-член front() добавлена

Смотрите также

( DR* )
обращается к последнему символу
(публичная функция-член)
обращается к первому символу
(публичная функция-член std::basic_string_view<CharT,Traits> )