std::ranges::iota_view<W, Bound>::size
| constexpr auto size() const vorausgesetzt (std::same_as<W, Bound> && /*advanceable*/<W>) || |
(seit C++20) | |
Gibt die Größe der Ansicht zurück, wenn die Ansicht beschränkt ist.
Für die Definitionen von /*advanceable*/ und /*is-integer-like*/ siehe advanceable bzw. is-integer-like.
Inhalt |
[editieren] Rückgabewert
Wenn einer von W und Bound kein integer-ähnlicher Typ ist, gibt to-unsigned-like (bound_ - value_ ) zurück.
Andernfalls gibt (?value_ < 0)
(
(bound_ < 0) ?
to-unsigned-like (-value_ ) - to-unsigned-like (-bound_ ) :
to-unsigned-like (bound_ ) + to-unsigned-like (-value_ )
) :
to-unsigned-like (bound_ ) - to-unsigned-like (value_ ) zurück.
[editieren] Beispiel
#include <cassert> #include <ranges> int main() { unsigned initial_value{1}, bound{5}; auto i{std::views::iota(initial_value, bound)}; assert(i.size() == bound - initial_value and i.size() == 4); auto u{std::views::iota(8)}; // assert(u.size()); // Error: size() is not present since “u” is unbounded }
[editieren] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3610 | C++20 | size könnte Integer-Klassen-Typen ablehnen |
akzeptieren, wenn möglich |
[editieren] Siehe auch
| (C++20) |
gibt eine Ganzzahl zurück, die der Größe eines Ranges entspricht (Customization Point Objekt) |
| (C++20) |
gibt eine vorzeichenbehaftete Ganzzahl zurück, die der Größe eines Ranges entspricht (Customization Point Objekt) |