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
(类模板) (范围适配器对象) |