Aracılığıyla paylaş


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

Giriş akışından ardışık öğelerin görünümü.

Sözdizimi

template<movable Val, class CharT, class Traits>
    requires default_initializable<Val> &&
    stream_extractable <Val, CharT, Traits>
class basic_istream_view : public view_interface<basic_istream_view<Val, CharT, Traits>>;

Şablon parametreleri

CharT
Akışın karakter türü.

Traits
isteğe bağlı. Karakterleri karşılaştırma, bu karakter türünden oluşan bir dizenin uzunluğunu belirleme vb. ile ilgili akışın karakter türü hakkında ayrıntılar sağlar. Örnek bir özelliktir char_traits<wchar_t>. Belirtilmezse, varsayılan olarak olur char_traits<CharT>.

Val
Ayıklanan öğelerin türü. Örneğin, double aşağıdakilerin bir akışı verilmiştir: "1.1 2.2 3.3"

stream_extractable , türün Val işlevi kullanılarak bir akıştan ayıklanması gereksinimini (kavramı) operator>> ifade eder. Bu, şu değere eşdeğerdir:

template<class Val, class CharT, class Traits>
concept stream_extractable =
  requires(std::basic_istream<CharT,Traits>& is, Val& t) {
    is >> t;
  };

Ö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ı istream
Temel alınan aralık Hiçbiri
Öğe türü Aynı Val
Yineleyici kategoriyi görüntüleme input_range
Boyutlu Hayır
- constyinelenebilir Hayır
Ortak aralık Hayır
Ödünç alınan aralık Hayır

Uzmanlık alanları:istream_view ve wistream_view

ve wchar_t akışları için char kolaylık diğer ad şablonları aşağıdaki gibi sağlanır:

1) template<class Val>
using istream_view = ranges::basic_istream_view<Val, char>;

2) template<class Val>
using wistream_view = ranges::basic_istream_view<Val, wchar_t>;

1) Karakterlerden oluşan char bir giriş akışındaki öğeleri okur.
2) Karakterlerden oluşan wchar_t bir giriş akışındaki öğeleri okur.

1) ve 2 için), Val ayıklanması gereken öğelerin türünü ifade eder. Örneğin, Val bir akışı verilmiştir double : "1.1 2.2 3.3"

Üyeler

Üye işlevleri Açıklama
OluşturucularC++20 oluşturma basic_istream_view.
beginC++20 İlk değeri okuyun ve görünüm için bir yineleyici alın.
endC++20 Döndürür std::default_sentinel

öğesinden view_interfacehiçbir üye işlevi devralınmamış.

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 örneğini basic_istream_viewoluşturun.

constexpr explicit
basic_istream_view(std::basic_istream<CharT, Traits>& stream);

Parametreler

stream
Okunacak akış.

Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.

Dönüş değeri

Bir basic_istream_view örnek. İç basic_istream_view akış işaretçisi olarak addressof(stream)başlatılır.

Açıklamalar

Oluşturmanın basic_istream_view en iyi yolu, aralık bağdaştırıcısını views::istream 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.

Örnek: basic_istream_view, istream_viewve wistream_view

// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <sstream>

int main()
{
    // range adaptor
    std::istringstream streamOfdoubles{ "1.1 2.2 3.3 4.4 5.5" };
    for (const auto& elem : std::views::istream<double>(streamOfdoubles))
    {
        std::cout << elem << ' '; // 1.1 2.2 3.3 4.4 5.5
    }
    std::cout << '\n';

    // range adaptor - create a wistream_view
    std::wistringstream streamOfInts{ L"1 2 3 4 5" };
    for (const auto& elem : std::views::istream<int>(streamOfInts))
    {
        std::cout << elem << ' '; // 1 2 3 4 5
    }
    std::cout << '\n';

    // istream_view alias
    std::istringstream cpu1{ "8 0 8 0" };
    // equivalent std::ranges::istream_view<int, char>
    for (const auto& elem : std::ranges::istream_view<int>{cpu1})
    {
        std::cout << elem; // 8080
    }
    std::cout << '\n';

    // wistream_view alias
    std::wistringstream cpu2{ L"6 5 0 2" };
    // equivalent std::ranges::istream_view<int, wchar_t>
    for (const auto& elem : std::ranges::wistream_view<int>{cpu2})
    {
        std::cout << elem; // 6502
    }
    std::cout << '\n';

    // specify all template arguments
    std::wistringstream misc(L"S T L");
    std::ranges::basic_istream_view<wchar_t, wchar_t, std::char_traits<wchar_t>> basic{misc};
    for (const auto& elem : basic)
    {
        std::wcout << elem << ' '; // S T L
    }
}
1.1 2.2 3.3 4.4 5.5
1 2 3 4 5
8080
6502
S T L

begin

İlk değeri okuyun ve görünüme bir yineleyici alın.

constexpr auto begin();

Parametreler

Hiçbiri.

Dönüş değeri

içindeki ilk öğeye basic_istream_viewişaret eden bir yineleyici.

end

Görünümün sonunda sentinel'i alın.

constexpr std::default_sentinel_t end() const noexcept;

Parametreler

Hiçbiri.

Dönüş değeri

default_sentinel_t

Ayrıca bkz.

<ranges>
Sınıfları görüntüleme