std::ranges:: common_range
From cppreference.net
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | ||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
헤더 파일에 정의됨
<ranges>
|
||
|
template
<
class
T
>
concept common_range
=
|
(C++20부터) | |
common_range
개념은
range
개념을 정제한 것으로,
std::ranges::begin()
과
std::ranges::end()
가 동일한 타입을 반환하는 범위를 의미합니다(예: 모든 표준 라이브러리 컨테이너).
예제
이 코드 실행
#include <ranges> struct A { char* begin(); char* end(); }; static_assert( std::ranges::common_range<A> ); struct B { char* begin(); bool end(); }; // common_range가 아님: begin/end의 타입이 다름 static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // common_range가 아님, range조차 아님: end()가 없음 static_assert( not std::ranges::common_range<C> ); int main() {}
참고 항목
view
를
common_range
로 변환합니다
(클래스 템플릿) (레인지 어댑터 객체) |