std::ranges::common_range
From cppreference.com
| ヘッダ <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(); }; // not a common_range: begin/end have different types static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // not a common_range, not even a range: has no end() static_assert( not std::ranges::common_range<C> ); int main() {}
[編集] 関連項目
view を common_range に変換します。(クラステンプレート) (rangeアダプタオブジェクト) |