Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Öğe içermeyen bir görünüm. Bu görünüm, bir görünümle sağlanması gereken ancak temel alınan verilere erişmesi gerekmeyen kodu çağırma gibi test amaçları için kullanışlıdır.
Sözdizimi
template<class T>
requires std::is_object_v<T>
class empty_view : public ranges::view_interface<empty_view<T>>;
Şablon parametreleri
T
Öğesinin türü. içinde empty_viewöğe olmasa da, tüm aralıklar homojendir. Başka bir ifadeyle, belirli bir türe sahip öğeleri vardır. Bu nedenle, öğesi empty_view olmasa da, yine de , veya stringsgibi bir empty_view inttürü vardır.
Özellikleri görüntüleme
Aşağıdaki girdilerin açıklaması için bkz . Sınıf özelliklerini görüntüleme
| Characteristic | Açıklama |
|---|---|
| Aralık bağdaştırıcısı | views::empty |
| Temel alınan aralık | Hiçbiri |
| Öğe türü | Oluşturulduğunda belirtildiği empty_view gibi |
| Yineleyici kategoriyi görüntüleme | contiguous_range |
| Boyutlu | Evet. Her zaman 0 döndürür |
- constyinelenebilir |
Yes |
| Ortak aralık | Yes |
| Ödünç alınan aralık | Yes |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma empty_view. |
beginC++20 |
nullptr döndürür. |
endC++20 |
nullptr döndürür. |
sizeC++20 |
0 döndürür |
Devralınan view_interface |
Açıklama |
backC++20 |
Tanımsız davranışla sonuçlanır. |
dataC++20 |
nullptr döndürür. |
emptyC++20 |
true döndürür. |
frontC++20 |
Tanımsız davranışla sonuçlanır. |
operator[]C++20 |
Tanımsız davranışla sonuçlanır. |
operator boolC++20 |
false döndürür. |
Açıklamalar
Oluşturmanın empty_view en iyi yolu, aralık bağdaştırıcısını empty kullanmaktır. Aralık bağdaştırıcıları, görünüm sınıfları oluşturmanın amaçlanan yoludur. Kendi özel görünüm türünüzü oluşturmak istemeniz durumunda görünüm türleri kullanıma sunulur.
bir içinde empty_viewhiçbir zaman öğe olmadığından, belirli derleyici iyileştirmeleri mümkündür. Örneğin, yinelenecek bir şey olmadığını bildiği için derleyici ortadan kaldırır for (auto e : std::views::empty<int>) {...} .
için empty_view başka bir empty_view kullanım, bir sınırlayıcı ile bölmektir split_view ve bu da bir dizi tek öğe aralığıyla sonuçlanır.
Gereksinimler
Üst bilgi: <ranges> (C++20'den beri)
Ad alanı: std::ranges
Derleyici Seçeneği: /std:c++20 veya üzeri gereklidir.
Oluşturucular
Bir empty_view örneği oluşturun.
template<class T>
inline constexpr empty_view<T> empty{};
Parametreler
T
Temel alınan öğenin türü; bunların hiçbiri yoktur.
Açıklamalar
Oluşturmanın empty_view en iyi yolu, aralık bağdaştırıcısını empty kullanmaktır.
Örnek empty_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
int main()
{
auto anEmptyView = std::views::empty<int>;
bool isNotEmpty = (bool)anEmptyView;
std::cout << std::boolalpha << isNotEmpty << "\n"; // false
std::cout << std::boolalpha << anEmptyView.empty(); // true
}
false
true
back
Tanımsız davranışla sonuçlanır.
constexpr auto back()
requires ranges::bidirectional_range<T> && ranges::common_range<T>;
constexpr auto back() const
requires ranges::bidirectional_range<const T> && ranges::common_range<const T>;
Parametreler
Hiçbiri.
Dönüş değeri
Yok.
Açıklamalar
Bu işlevin bir hata ayıklama derlemesinde çağrılması, işlevin boş view_interfacebir üzerinde çağrıldığını belirten bir onay oluşturur.
begin
Görünümde ilk öğe olmadığından döndürür nullptr .
static constexpr T* begin() noexcept
Dönüş değeri
nullptr
data
Görünümde işaretçinin alındığı ilk öğe olmadığından döndürür nullptr .
static constexpr T* data() noexcept
Dönüş değeri
nullptr.
empty
Türetilmiş görünümün boş olup olmadığını test edin.
static constexpr bool empty() noexcept
Parametreler
Hiçbiri.
Dönüş değeri
true döndürür.
end
Görünümde öğe olmadığından döndürür nullptr .
static constexpr T* end() noexcept
Dönüş değeri
nullptr.
front
Tanımsız davranışla sonuçlanır.
constexpr auto front()
requires ranges::forward_range<T>;
constexpr auto front() const
requires ranges::forward_range<const T>;
Parametreler
Hiçbiri.
Dönüş değeri
Yok.
Açıklamalar
Bu işlevin bir hata ayıklama derlemesinde çağrılması, işlevin boş view_interfacebir üzerinde çağrıldığını belirten bir onay oluşturur.
operator[]
Tanımsız davranışla sonuçlanır.
template<ranges::random_access_range R = T>
constexpr decltype(auto) operator[](ranges::range_difference_t<R> pos);
template<ranges::random_access_range R = const T>
constexpr decltype(auto) operator[](ranges::range_difference_t<R> pos) const;
Parametreler
pos
Döndürülecek öğenin başlangıç yineleyicisine göre konumu.
Dönüş değeri
Yok.
Açıklamalar
Bu işlevin bir hata ayıklama derlemesinde çağrılması, dizinin için view_interfacearalığın dışında olduğuna dair bir onay oluşturur.
operator bool
Türetilmiş görünümün boş olup olmadığını test edin.
constexpr explicit operator bool()
requires requires { ranges::empty(T ()); };
constexpr explicit operator bool() const
requires requires { ranges::empty(T ()); };
Parametreler
Hiçbiri.
Dönüş değeri
false döndürür.
Örnek (bool)
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
int main()
{
auto anEmptyView = std::views::empty<int>;
if (anEmptyView) // check if anEmptyView isn't empty
{
std::cout << "Error: why does an empty_view have elements?\n";
}
else
{
std::cout << "Correct: an empty_view is not not empty\n";
}
}
Correct: an empty_view is not not empty
size
Görünümde her zaman 0 olacak öğe sayısını alın.
static constexpr size_t size()
Parametreler
Hiçbiri.
Dönüş değeri
0.
Ayrıca bkz.
<ranges>
empty aralık bağdaştırıcısı
single_view
sınıfları görüntüleme