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

Construye un nuevo basic_ispanstream .

1) Utiliza el almacenamiento referenciado por s como búfer subyacente inicial del dispositivo std::basic_spanbuf encapsulado. El objeto std::basic_spanbuf encapsulado se construye como basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: in ) .
2) Utiliza el almacenamiento referenciado por r después de convertirlo a std:: span < const CharT > como búfer subyacente inicial del dispositivo std::basic_spanbuf encapsulado. El objeto std::basic_spanbuf encapsulado se abre en modo std::ios_base::in . Esta sobrecarga participa en la resolución de sobrecarga solo si ROS modela borrowed_range , std:: convertible_to < ROS, std:: span < CharT >> es false , y std:: convertible_to < ROS, std:: span < const CharT >> es true .
3) Constructor de movimiento. Construye por movimiento el std::basic_istream subobjeto base y el std::basic_spanbuf encapsulado a partir de los de rhs , y luego llama a set_rdbuf con la dirección del std::basic_spanbuf encapsulado en * this para instalarlo.
4) El constructor de copia está eliminado. basic_ispanstream no es copiable.

Contenidos

Parámetros

s - std::span que referencia al almacenamiento a utilizar como búfer subyacente inicial del flujo
r - borrowed_range a utilizar como búfer subyacente inicial del flujo
mode - especifica el modo de apertura del flujo. Se pueden utilizar las siguientes constantes y el OR bit a bit entre ellas:
Constante Explicación
app buscar al final del flujo antes de cada escritura
binary abrir en modo binario
in abrir para lectura
out abrir para escritura
trunc descartar el contenido del flujo al abrir
ate buscar al final del flujo inmediatamente después de abrir
noreplace (C++23) abrir en modo exclusivo
other - otro basic_ispanstream del cual se moverá

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

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

Salida:

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

Véase también

construye un objeto basic_spanbuf
(función miembro pública de std::basic_spanbuf<CharT,Traits> )