std::ranges::view_interface<D>:: operator bool
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
operator bool
|
||||
|
constexpr
explicit
operator
bool
(
)
requires
/* 아래 참조 */
;
|
(1) | (C++20부터) |
|
constexpr
explicit
operator
bool
(
)
const
requires
/* 아래 참조 */
;
|
(2) | (C++20부터) |
operator bool 멤버 함수의 기본 구현은 뷰가 비어 있지 않은지 확인합니다. 이는 파생 타입을 bool 로의 상황적 변환 가능 하게 만듭니다.
derived
를
static_cast
<
D
&
>
(
*
this
)
로 설정합니다. requires 절의 표현식은
requires
{
ranges::
empty
(
derived
)
;
}
와 동일하며, 함수 본문은
return
!
ranges::
empty
(
derived
)
;
와 동등합니다.
derived
가
static_cast
<
const
D
&
>
(
*
this
)
인 경우입니다.
목차 |
반환값
false 파생된 타입의 값이 비어있는 경우( std::ranges::empty 로 결정됨), true 그렇지 않은 경우.
참고 사항
C++20에서, 표준 라이브러리 내 std::ranges::view_interface 에서 파생된 어떤 타입도 자체적인 operator bool 를 제공하지 않습니다. 이러한 타입들 거의 모두가 기본 구현을 사용합니다.
주목할 만한 예외는
std::ranges::basic_istream_view
입니다. 해당 반복자 타입이
forward_iterator
를 결코 만족하지 않기 때문에, 뷰는 상속된
operator
bool
를 사용할 수 없습니다.
예제
#include <array> #include <iostream> #include <ranges> int main() { const std::array ints {0, 1, 2, 3, 4}; auto odds = ints | std::views::filter([](int i) { return 0 != i % 2; }); auto negs = ints | std::views::filter([](int i) { return i < 0; }); std::cout << std::boolalpha << "Has odd numbers: " << (!!odds) << ' ' << '\n' << "Has negative numbers: " << (!!negs) << ' ' << '\n'; }
출력:
Has odd numbers: true Has negative numbers: false
참고 항목
|
(C++20)
|
범위가 비어 있는지 여부를 확인
(커스터마이제이션 포인트 객체) |
파생된 뷰가 비어 있는지 여부를 반환하며,
sized_range
또는
forward_range
를 만족하는 경우에만 제공됨
(public member function) |
|
|
(C++17)
|
컨테이너가 비어 있는지 여부를 확인
(function template) |