Namespaces
Variants

Standard library header <experimental/ranges/range>

From cppreference.net
Standard library headers

이 헤더는 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 = /* 정의 참조 */;
}}}}