Standard library header <experimental/ranges/range>
From cppreference.net
<
cpp
|
header
|
experimental
このヘッダーは ranges ライブラリの一部です。
目次 |
Range コンセプト
|
namespace
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 = /* 定義を参照 */; }}}}