Aracılığıyla paylaş


single_view class (C++ Standart Kitaplığı)

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