Namespaces
Variants

std::basic_ispanstream<CharT,Traits>:: basic_ispanstream

From cppreference.net

explicit basic_ispanstream ( std:: span < CharT > s, std:: ios_base :: openmode mode =
std:: ios_base :: in ) ;
(1) (seit C++23)
template < class ROS >
explicit basic_ispanstream ( ROS && r ) ;
(2) (seit C++23)
basic_ispanstream ( basic_ispanstream && rhs ) ;
(3) (seit C++23)
basic_ispanstream ( const basic_ispanstream & ) = delete ;
(4) (seit C++23)

Konstruiert einen neuen basic_ispanstream .

1) Verwendet den durch s referenzierten Speicher als initialen zugrundeliegenden Puffer des umschlossenen std::basic_spanbuf -Geräts. Das umschlossene std::basic_spanbuf -Objekt wird konstruiert als basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: in ) .
2) Verwendet den Speicher, auf den r verweist, nach der Konvertierung zu std:: span < const CharT > als anfänglichen zugrundeliegenden Puffer des umschlossenen std::basic_spanbuf -Geräts. Das umschlossene std::basic_spanbuf -Objekt wird im Modus std::ios_base::in geöffnet. Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn ROS das Konzept borrowed_range modelliert, std:: convertible_to < ROS, std:: span < CharT >> false ist und std:: convertible_to < ROS, std:: span < const CharT >> true ist.
3) Move-Konstruktor. Bewegt-konstruiert das std::basic_istream Basis-Subobjekt und den eingepackten std::basic_spanbuf von denen des rhs , und ruft dann set_rdbuf mit der Adresse des eingepackten std::basic_spanbuf in * this auf, um es zu installieren.
4) Copy-Konstruktor ist gelöscht. basic_ispanstream ist nicht kopierbar.

Inhaltsverzeichnis

Parameter

s - std::span referenziert den Speicher, der als anfänglicher zugrundeliegender Puffer des Streams verwendet werden soll
r - borrowed_range soll als anfänglicher zugrundeliegender Puffer des Streams verwendet werden
mode - gibt den Stream-Öffnungsmodus an. Folgende Konstanten und bitweises ODER zwischen ihnen können verwendet werden:
Konstante Erklärung
app vor jedem Schreibvorgang zum Ende des Streams springen
binary im Binärmodus öffnen
in zum Lesen öffnen
out zum Schreiben öffnen
trunc Inhalte des Streams beim Öffnen verwerfen
ate unmittelbar nach dem Öffnen zum Ende des Streams springen
noreplace (C++23) im exklusiven Modus öffnen
other - ein weiterer basic_ispanstream , von dem verschoben werden soll

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Beispiel

#include <print>
#include <spanstream>
#include <string>
int main()
{
    std::ispanstream is("1 2 3 abc");
    int i, j, k;
    std::string w;
    is >> i >> j >> k >> w;
    std::print("i={}, j={}, k={}, w={}", i, j, k, w);
}

Ausgabe:

i=1, j=2, k=3, w=abc

Siehe auch

Konstruiert ein basic_spanbuf Objekt
(öffentliche Elementfunktion von std::basic_spanbuf<CharT,Traits> )