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
(шаблон класса) (объект адаптера диапазона) |