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.
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