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
に変換する
(クラステンプレート) (レンジアダプタオブジェクト) |