Namespaces
Variants

std::ranges::view_interface<D>::front

From ko.cppreference.net
 
 
범위 라이브러리
범위 어댑터
 
 
constexpr decltype(auto) front()
    requires ranges::forward_range<D>;
(1) (C++20부터)
constexpr decltype(auto) front() const
    requires ranges::forward_range<const D>;
(2) (C++20부터)

front() 멤버 함수의 기본 구현은 파생된 유형의 뷰에서 첫 번째 요소를 반환합니다. 요소가 값으로 반환되는지 참조로 반환되는지는 반복자 유형의 operator*에 따라 다릅니다.

return *ranges::begin(derived);와 동일합니다. 여기서 derived는 다음과 같습니다:

1) static_cast<D&>(*this)
2) static_cast<const D&>(*this)


empty()이 true인 경우, 동작은 정의되지 않습니다.

(C++26까지)

empty()이 true인 경우:

  • 구현이 강화된 경우, 계약 위반이 발생합니다.
  • 구현이 강화되지 않은 경우, 동작은 정의되지 않습니다.
(C++26부터)

반환값

뷰의 첫 번째 요소입니다.

참고 사항

C++20에서, 표준 라이브러리 내 std::ranges::view_interface 에서 파생된 어떤 타입도 자체적인 front() 멤버 함수를 제공하지 않습니다. 이러한 타입들의 거의 모두가 기본 구현을 사용합니다.

주목할 만한 예외는 std::ranges::basic_istream_view 입니다. 이것은 절대 forward_range 를 만족하지 않기 때문에, 뷰는 상속된 front() 를 사용할 수 없습니다.

상속된 front() 멤버 함수는 std::ranges::empty_view 에서 사용 가능하지만, 이를 호출하면 항상 정의되지 않은 동작이 발생합니다.

예제

참고 항목

(C++11) (C++14)
컨테이너나 배열의 시작 부분을 가리키는 반복자를 반환합니다
(함수 템플릿)
범위의 시작 부분을 가리키는 반복자를 반환합니다
(커스터마이제이션 포인트 객체)
읽기 전용 범위의 시작 부분을 가리키는 반복자를 반환합니다
(커스터마이제이션 포인트 객체)