Namespaces
Variants

std::ranges:: views:: empty, std::ranges:: empty_view

From cppreference.net
Ranges library
Range adaptors
헤더 파일에 정의됨 <ranges>
template < class T >

requires std:: is_object_v < T >

class empty_view : public ranges:: view_interface < empty_view < T >>
(1) (C++20부터)
namespace views {

template < class T >
constexpr empty_view < T > empty { } ;

}
(2) (C++20부터)
1) 특정 타입의 요소를 전혀 포함하지 않는 view 를 생성하는 범위 팩토리.
2) empty_view 를 위한 변수 템플릿.

목차

멤버 함수

begin
[static]
nullptr를 반환 nullptr
(public static member function)
end
[static]
nullptr를 반환 nullptr
(public static member function)
data
[static]
nullptr를 반환 nullptr
(public static member function)
size
[static]
0을 반환 0
(public static member function)
empty
[static]
true를 반환 true
(public static member function)
다음으로부터 상속됨: std::ranges::view_interface
(C++23)
범위의 시작을 가리키는 상수 반복자를 반환
( std::ranges::view_interface<D> 의 public member function)
(C++23)
범위의 상수 반복자에 대한 sentinel을 반환
( std::ranges::view_interface<D> 의 public member function)
파생된 뷰가 비어 있지 않은지 여부를 반환하며, ranges::empty 가 적용 가능한 경우에만 제공됨
( std::ranges::view_interface<D> 의 public member function)
파생된 뷰의 첫 번째 요소를 반환하며, forward_range 를 만족하는 경우에 제공됨
( std::ranges::view_interface<D> 의 public member function)
파생된 뷰의 마지막 요소를 반환하며, bidirectional_range common_range 를 모두 만족하는 경우에만 제공됨
( std::ranges::view_interface<D> 의 public member function)
파생된 뷰의 n 번째 요소를 반환하며, random_access_range 를 만족하는 경우에만 제공됨
( std::ranges::view_interface<D> 의 public member function)

std::ranges::empty_view:: begin

static constexpr T * begin ( ) noexcept { return nullptr ; }
(C++20 이후)

empty_view 는 어떤 요소도 참조하지 않습니다.

std::ranges::empty_view:: end

static constexpr T * end ( ) noexcept { return nullptr ; }
(C++20 이후)

empty_view 는 어떤 요소도 참조하지 않습니다.

std::ranges::empty_view:: data

static constexpr T * data ( ) noexcept { return nullptr ; }
(C++20 이후)

empty_view 는 어떠한 요소도 참조하지 않습니다.

std::ranges::empty_view:: size

static constexpr std:: size_t size ( ) noexcept { return 0 ; }
(C++20부터)

empty_view 는 항상 비어 있습니다.

std::ranges::empty_view:: empty

static constexpr bool empty ( ) noexcept { return true ; }
(C++20 이후)

empty_view 는 항상 비어 있습니다.

헬퍼 템플릿

template < class T >
constexpr bool ranges:: enable_borrowed_range < ranges :: empty_view < T >> = true ;
(C++20 이후)

이 특수화는 ranges:: enable_borrowed_range empty_view borrowed_range 를 만족하도록 합니다.

참고 사항

비록 empty_view view_interface 로부터 front , back , 그리고 operator [ ] 멤버 함수들을 획득하지만, 이들에 대한 호출은 항상 미정의 동작을 초래합니다. 왜냐하면 empty_view 는 항상 비어 있기 때문입니다.

상속된 operator bool 변환 함수는 항상 false 를 반환합니다.

예제

#include <ranges>
int main()
{
    namespace ranges = std::ranges;
    ranges::empty_view<long> e;
    static_assert(ranges::empty(e)); // operator bool 사용
    static_assert(0 == e.size());
    static_assert(nullptr == e.data());
    static_assert(nullptr == e.begin());
    static_assert(nullptr == e.end());
    static_assert(nullptr == e.cbegin());
    static_assert(nullptr == e.cend());
}

참고 항목

(C++17)
객체를 보유할 수도 있고 보유하지 않을 수도 있는 래퍼
(클래스 템플릿)
지정된 값의 단일 요소를 포함하는 view
(클래스 템플릿) (커스터마이제이션 포인트 객체)
range 의 모든 요소를 포함하는 view
(앨리어스 템플릿) (레인지 어댑터 객체)
다른 range 의 요소들로 구성된 view
(클래스 템플릿)