标准库头文件 <experimental/ranges/range>
< cpp | header | experimental
此头文件是范围库的一部分。
范围概念
定义于命名空间
std::experimental::ranges | |
指定类型为范围,即它提供 begin 迭代器和 end 哨位 (概念) | |
指定范围以常数时间知晓其大小 (概念) | |
指定范围为视图,即它拥有常数时间的复制/移动/赋值 (概念) | |
指定范围拥有等同的迭代器和哨位类型 (概念) | |
指定范围的迭代器满足 InputIterator (概念) | |
指定范围的迭代器满足 OutputIterator (概念) | |
指定范围的迭代器满足 ForwardIterator (概念) | |
指定范围的迭代器满足 BidirectionalIterator (概念) | |
指定范围的迭代器满足 RandomAccessIterator (概念) |
范围访问
定义于命名空间
std::experimental::ranges | |
返回指向范围起始的迭代器 (定制点对象) | |
返回指向范围末尾的迭代器 (定制点对象) | |
获得指向范围的逆向迭代器 (定制点对象) | |
获得指向范围的逆向尾迭代器 (定制点对象) |
范围原语
定义于命名空间
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 = /* 见定义 */; }}}}