std::ranges:: common_range
From cppreference.net
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | ||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
Défini dans l'en-tête
<ranges>
|
||
|
template
<
class
T
>
concept common_range
=
|
(depuis C++20) | |
Le concept
common_range
est un raffinement du concept
range
pour lequel
std::ranges::begin()
et
std::ranges::end()
retournent le même type (par exemple, tous les conteneurs de la bibliothèque standard).
Exemple
Exécuter ce code
#include <ranges> struct A { char* begin(); char* end(); }; static_assert( std::ranges::common_range<A> ); struct B { char* begin(); bool end(); }; // pas un common_range : begin/end ont des types différents static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // pas un common_range, ni même un range : n'a pas de end() static_assert( not std::ranges::common_range<C> ); int main() {}
Voir aussi
convertit une
view
en une
common_range
(modèle de classe) (objet adaptateur de gamme) |