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.
Yalnızca bir öğe içeren bir görünüm. Bu görünüm, içinde en az bir öğe bulunan bir görünümle sağlanması gereken kodu çağırmak için test amacıyla kullanışlıdır.
Sözdizimi
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Şablon parametreleri
T
Öğesinin tü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::single |
| Temel alınan aralık | Hiçbiri |
| Öğe türü | single_view Oluşturulduğunda belirtilir |
| Yineleyici kategoriyi görüntüleme | contiguous_range |
| Boyutlu | Her zaman 1 döndürür |
- constyinelenebilir |
Yes |
| Ortak aralık | Yes |
| Ödünç alınan aralık | Hayır |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma single_view. |
beginC++20 |
öğesine bir yineleyici alın. |
dataC++20 |
öğesine bir işaretçi alın. |
endC++20 |
Görünümün sonunda sentinel'i alın. |
sizeC++20 |
Öğe sayısını alın. Her zaman 1 döndürür. |
Devralınan view_interface |
Açıklama |
backC++20 |
öğesini alın. |
emptyC++20 |
Görünümün boş olup olmadığını test edin (her zaman döndürür false). |
frontC++20 |
öğesini alın. |
operator[]C++20 |
Öğesini belirtilen konumda alın (yalnızca konum 0 geçerlidir). |
operator boolC++20 |
Görünümün boş olup olmadığını test edin (her zaman döndürür false). |
Açıklamalar
Oluşturmanın single_view en iyi yolu, aralık bağdaştırıcısını views::single 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.
şablon değeri olmadığı sürece içindeki single_view değeri constdeğiştirilebilir. Örneğin: single_view<const float> sv{3.14} // this value can't be modified because it's const.
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 single_view örneği oluşturun.
1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
requires constructible_from<T, Args...>
constexpr single_view(in_place_t, Args&&... args);
Parametreler
t
Öğe değeri.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Açıklamalar
Oluşturmanın single_view en iyi yolu, aralık bağdaştırıcısını views::single kullanmaktır.
1) Varsayılan olarak oluşturulduğunda belirtilen türde tek bir öğeyle bir single_view oluşturun. Örneğin, single_view<float> sv{} varsayılan olarak olarak oluşturulan 0.0tek bir öğe türüne float sahip bir single_view oluşturur.
2) Belirtilen bağımsız değişkenden kopya ile başlatılan belirtilen türde tek bir öğeyle bir single_view oluşturun. Örneğin, single_view<myObjectType> sv{myObject} bağımsız değişkenden kopya ile başlatılan tek bir tür myObjectType öğesiyle bir single_view oluşturur.
3) Bağımsız değişkenden move-initialized belirtilen türde tek bir öğe ile bir single_view oluşturun.
4) ile başlatılan belirtilen türde tek bir öğeyle (std::forward<Args>(args)...)bir single_view oluşturun.
Örnek single_view
/// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>
int main()
{
std::ranges::single_view<int> sv{7};
std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7
std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit
begin
Görünümdeki tek öğeye bir işaretçi alın.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki tek öğeye bir single_viewişaretçi.
data
içindeki single_viewtek öğeye bir işaretçi alın.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki öğesinin işaretçisi single_view.
end
öğesinden sonra sentinel işaretçisini alır.
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parametreler
Hiçbiri.
Dönüş değeri
öğesini izleyen sentinel işaretçisi.
size
Görünümdeki öğe sayısını alın. Her zaman 1 döndürür.
static constexpr size_t size() noexcept;
Parametreler
Hiçbiri.
Dönüş değeri
1
Ayrıca bkz.
<ranges>
single aralık bağdaştırıcısı
empty_view
Sınıfları görüntüleme