std::experimental::ranges:: View
From cppreference.net
<
cpp
|
experimental
|
ranges
|
헤더 파일에 정의됨
<experimental/ranges/range>
|
||
|
template
<
class
T
>
concept bool View = Range < T > && Semiregular < T > && /* view-predicate<T> */ ; |
(ranges TS) | |
|
template
<
class
T
>
struct enable_view { } ; |
(ranges TS) | |
|
struct
view_base
{
}
;
|
(ranges TS) | |
View<T>
개념은 반정규 범위(semiregular range)
T
가 상수 시간 복사, 이동, 할당 연산을 갖는다는 것을 명시합니다.
/* view-predicate<T> */ 개념의 해당 부분은 다음과 같이 결정됩니다:
- qualified-id ranges:: enable_view < T > :: type 가 유효하고 타입을 나타내는 경우, ranges:: enable_view < T > :: type :: value ;
- 그렇지 않고 std:: is_base_of_v < ranges:: view_base , T > 가 true 인 경우, true ;
-
그렇지 않고
T가 std::initializer_list , std::set , std::multiset , std::unordered_set , 또는 std::unordered_multiset 의 특수화인 경우, false ; -
그렇지 않고
T와const T모두Range를 만족하면서 ranges :: reference_t < ranges:: iterator_t < T >> 의 타입이 ranges :: reference_t < ranges:: iterator_t < const T >> 와 다른 경우, false ; - 그 외의 경우, true .