std::ranges::views::empty, std::ranges::empty_view
Von cppreference.com
| Definiert in der Header-Datei <ranges> |
||
| template<class T> requires std::is_object_v<T> |
(1) | (seit C++20) |
| namespace views { template<class T> |
(2) | (seit C++20) |
1) Eine Range-Factory, die eine
view von keinen Elementen eines bestimmten Typs erzeugt.2) Variablentemplate für
empty_view.Inhalt |
[edit] Member-Funktionen
| begin [static] |
gibt nullptr zurück (öffentliche statische Memberfunktion) |
| end [static] |
gibt nullptr zurück (öffentliche statische Memberfunktion) |
| data [static] |
gibt nullptr zurück (öffentliche statische Memberfunktion) |
| size [static] |
gibt 0 zurück (öffentliche statische Memberfunktion) |
| empty [static] |
gibt true zurück (öffentliche statische Memberfunktion) |
Geerbt von std::ranges::view_interface | |
| (C++23) |
gibt einen konstanten Iterator zum Anfang des Bereichs zurück (public member function of std::ranges::view_interface<D>) |
| (C++23) |
gibt ein Sentinel für den konstanten Iterator des Bereichs zurück (public member function of std::ranges::view_interface<D>) |
| gibt zurück, ob die abgeleitete Ansicht nicht leer ist, bereitgestellt nur, wenn ranges::empty darauf anwendbar ist (public member function of std::ranges::view_interface<D>) | |
gibt das erste Element in der abgeleiteten View zurück, bereitgestellt, wenn sie forward_range erfüllt(öffentliche Member-Funktion von std::ranges::view_interface<D>) | |
gibt das letzte Element in der abgeleiteten View zurück, nur bereitgestellt, wenn sie bidirectional_range und common_range erfüllt(öffentliche Member-Funktion von std::ranges::view_interface<D>) | |
gibt das n-te Element in der abgeleiteten View zurück, nur bereitgestellt, wenn sie random_access_range erfüllt(öffentliche Member-Funktion von std::ranges::view_interface<D>) | |
std::ranges::empty_view::begin
| static constexpr T* begin() noexcept { return nullptr; } |
(seit C++20) | |
empty_view referenziert kein Element.
std::ranges::empty_view::end
| static constexpr T* end() noexcept { return nullptr; } |
(seit C++20) | |
empty_view referenziert kein Element.
std::ranges::empty_view::data
| static constexpr T* data() noexcept { return nullptr; } |
(seit C++20) | |
empty_view referenziert kein Element.
std::ranges::empty_view::size
| static constexpr std::size_t size() noexcept { return 0; } |
(seit C++20) | |
empty_view ist immer leer.
std::ranges::empty_view::empty
| static constexpr bool empty() noexcept { return true; } |
(seit C++20) | |
empty_view ist immer leer.
[edit] Hilfstemplates
| template<class T> constexpr bool ranges::enable_borrowed_range<ranges::empty_view<T>> = true; |
(seit C++20) | |
Diese Spezialisierung von ranges::enable_borrowed_range lässt empty_view borrowed_range erfüllen.
[edit] Anmerkungen
Obwohl empty_view front, back und die Member-Funktion operator[] von view_interface erbt, führen Aufrufe dieser immer zu undefiniertem Verhalten, da eine empty_view immer leer ist.
Die geerbte Konvertierungsfunktion operator bool gibt immer false zurück.
[edit] Beispiel
Führen Sie diesen Code aus
#include <ranges> int main() { namespace ranges = std::ranges; ranges::empty_view<long> e; static_assert(ranges::empty(e)); // uses operator bool static_assert(0 == e.size()); static_assert(nullptr == e.data()); static_assert(nullptr == e.begin()); static_assert(nullptr == e.end()); static_assert(nullptr == e.cbegin()); static_assert(nullptr == e.cend()); }
[edit] Siehe auch
| (C++17) |
ein Wrapper, der möglicherweise ein Objekt enthält oder auch nicht (Klassenvorlage) |
eine view, die ein einzelnes Element eines bestimmten Wertes enthält(class template) (customization point object) | |
| (C++20) |
ein view, der alle Elemente eines range enthält(Alias-Template) (Range-Adaptor-Objekt) |
| (C++20) |
ein view der Elemente eines anderen range(Klassen-Template) |