Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
이 헤더는 ranges 라이브러리의 일부입니다.
목차 |
레인지 개념
|
다음 네임스페이스에 정의됨
std::experimental::ranges
|
|
타입이 범위임을 지정하며, 즉
begin
반복자와
end
센티넬을 제공함
(컨셉) |
|
|
범위가 상수 시간에 자신의 크기를 알 수 있음을 지정함
(컨셉) |
|
|
범위가 뷰임을 지정하며, 즉 상수 시간 복사/이동/할당을 가짐
(컨셉) |
|
|
범위가 동일한 반복자와 센티넬 타입을 가짐을 지정함
(컨셉) |
|
반복자 타입이
InputIterator
를 만족하는 범위를 지정함
(컨셉) |
|
반복자 타입이
OutputIterator
를 만족하는 범위를 지정함
(컨셉) |
|
반복자 타입이
ForwardIterator
를 만족하는 범위를 지정함
(컨셉) |
|
반복자 타입이
BidirectionalIterator
를 만족하는 범위를 지정함
(컨셉) |
|
반복자 타입이
RandomAccessIterator
를 만족하는 범위를 지정함
(컨셉) |
|
범위 접근
|
다음 네임스페이스에 정의됨
std::experimental::ranges
|
|
|
범위의 시작을 가리키는 반복자를 반환함
(customization point object) |
|
|
범위의 끝을 가리키는 반복자를 반환함
(customization point object) |
|
|
범위의 역방향 반복자를 반환함
(customization point object) |
|
|
범위의 역방향 끝 반복자를 반환함
(customization point object) |
|
범위 기본 요소
|
다음 네임스페이스에 정의됨
std::experimental::ranges
|
|
|
상수 시간에 크기를 계산할 수 있는 범위의 크기를 얻음
(커스터마이제이션 포인트 객체) |
|
|
범위가 비어 있는지 여부를 확인
(커스터마이제이션 포인트 객체) |
|
|
연속 범위의 시작 부분에 대한 포인터를 얻음
(커스터마이제이션 포인트 객체) |
|
|
범위의 반복자 및 센티넬 타입을 얻음
(앨리어스 템플릿) |
|
시놉시스
#include <experimental/ranges/iterator> namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* 지정되지 않음 */ begin = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ end = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ cbegin = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ cend = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ rbegin = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ rend = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ crbegin = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ crend = /* 지정되지 않음 */; } namespace { constexpr /* 지정되지 않음 */ size = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ empty = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ data = /* 지정되지 않음 */; constexpr /* 지정되지 않음 */ cdata = /* 지정되지 않음 */; } template <class T> using iterator_t = decltype(ranges::begin(declval<T&>())); template <class T> using sentinel_t = decltype(ranges::end(declval<T&>())); template <class> constexpr bool disable_sized_range = false; template <class T> struct enable_view { }; struct view_base { }; template <class T> concept bool Range = /* 정의 참조 */; template <class T> concept bool SizedRange = /* 정의 참조 */; template <class T> concept bool View = /* 정의 참조 */; template <class T> concept bool BoundedRange = /* 정의 참조 */; template <class T> concept bool InputRange = /* 정의 참조 */; template <class R, class T> concept bool OutputRange = /* 정의 참조 */; template <class T> concept bool ForwardRange = /* 정의 참조 */; template <class T> concept bool BidirectionalRange = /* 정의 참조 */; template <class T> concept bool RandomAccessRange = /* 정의 참조 */; }}}}