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) (depuis C++23)
template < class ROS >
explicit basic_ispanstream ( ROS && r ) ;
(2) (depuis C++23)
basic_ispanstream ( basic_ispanstream && rhs ) ;
(3) (depuis C++23)
basic_ispanstream ( const basic_ispanstream & ) = delete ;
(4) (depuis C++23)

Construit un nouveau basic_ispanstream .

1) Utilise le stockage référencé par s comme tampon sous-jacent initial du dispositif std::basic_spanbuf encapsulé. L'objet std::basic_spanbuf encapsulé est construit comme basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: in ) .
2) Utilise le stockage référencé par r après conversion en std:: span < const CharT > comme tampon sous-jacent initial du dispositif encapsulé std::basic_spanbuf . L'objet encapsulé std::basic_spanbuf est ouvert en mode std::ios_base::in . Cette surcharge participe à la résolution de surcharge seulement si ROS modélise borrowed_range , std:: convertible_to < ROS, std:: span < CharT >> est false , et std:: convertible_to < ROS, std:: span < const CharT >> est true .
3) Constructeur de déplacement. Construit par déplacement le std::basic_istream sous-objet de base et le std::basic_spanbuf encapsulé à partir de ceux de rhs , puis appelle set_rdbuf avec l'adresse du std::basic_spanbuf encapsulé dans * this pour l'installer.
4) Le constructeur de copie est supprimé. basic_ispanstream n'est pas copiable.

Table des matières

Paramètres

s - std::span référençant le stockage à utiliser comme tampon sous-jacent initial du flux
r - borrowed_range à utiliser comme tampon sous-jacent initial du flux
mode - spécifie le mode d'ouverture du flux. Les constantes suivantes et leur OU binaire peuvent être utilisées :
Constante Explication
app se positionner en fin de flux avant chaque écriture
binary ouvrir en mode binaire
in ouvrir en lecture
out ouvrir en écriture
trunc vider le contenu du flux à l'ouverture
ate se positionner en fin de flux immédiatement après l'ouverture
noreplace (C++23) ouvrir en mode exclusif
other - un autre basic_ispanstream à déplacer

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

#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);
}

Sortie :

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

Voir aussi

construit un objet basic_spanbuf
(fonction membre publique de std::basic_spanbuf<CharT,Traits> )