Namespaces
Variants

std::basic_stringstream<CharT,Traits,Allocator>:: basic_stringstream

From cppreference.net

(1)
(jusqu'à C++11)
explicit basic_stringstream ( std:: ios_base :: openmode mode ) ;
(depuis C++11)
basic_stringstream ( )
: basic_stringstream ( std:: ios_base :: in | std:: ios_base :: out ) { }
(2) (depuis C++11)
explicit basic_stringstream

( const std:: basic_string < CharT, Traits, Allocator > & str,
std:: ios_base :: openmode mode =

std:: ios_base :: in | std:: ios_base :: out ) ;
(3)
explicit basic_stringstream

( std:: basic_string < CharT, Traits, Allocator > && str,
std:: ios_base :: openmode mode =

std:: ios_base :: in | std:: ios_base :: out ) ;
(4) (depuis C++20)
basic_stringstream ( std:: ios_base :: openmode mode, const Allocator & a ) ;
(5) (depuis C++20)
template < class SAlloc >

basic_stringstream ( const std:: basic_string < CharT, Traits, SAlloc > & str,

std:: ios_base :: openmode mode, const Allocator & a ) ;
(6) (depuis C++20)
template < class SAlloc >

basic_stringstream ( const std:: basic_string < CharT, Traits, SAlloc > & str,
const Allocator & a )

: basic_stringstream ( str, std:: ios_base :: in | std:: ios_base :: out , a ) { }
(7) (depuis C++20)
template < class SAlloc >

explicit basic_stringstream
( const std:: basic_string < CharT, Traits, SAlloc > & str,
std:: ios_base :: openmode mode =

std:: ios_base :: in | std:: ios_base :: out ) ;
(8) (depuis C++20)
template < class StringViewLike >

explicit basic_stringstream
( const StringViewLike & t,
std:: ios_base :: openmode mode =

std:: ios_base :: in | std:: ios_base :: out ) ;
(9) (depuis C++26)
template < class StringViewLike >

basic_stringstream ( const StringViewLike & t,

std:: ios_base :: openmode mode, const Allocator & a ) ;
(10) (depuis C++26)
template < class StringViewLike >
basic_stringstream ( const StringViewLike & t, const Allocator & a ) ;
(11) (depuis C++26)
basic_stringstream ( basic_stringstream && other ) ;
(12) (depuis C++11)

Construit un nouveau flux de chaîne.

Étant donné

la base std::basic_iostream et le membre de données exposition-only sb sont initialisés comme suit.

Surcharge
(Overload)
std::basic_iostream base sb
(1) base_type ( std:: addressof ( sb ) ) [1] buf_type ( mode )
(2) buf_type ( std:: ios_base :: in | std:: ios_base :: out )
(3) buf_type ( str, mode )
(4) buf_type ( std :: move ( str ) , mode )
(5) buf_type ( mode, a )
(6) buf_type ( str, mode, a )
(7) buf_type ( str, std:: ios_base :: in | std:: ios_base :: out , a )
(8) buf_type ( str, mode )
(9) std:: addressof ( sb ) { t, mode, Allocator ( ) }
(10) { t, mode, a }
(11) { t, std:: ios_base :: in | std:: ios_base :: out , a }
(12) construit par déplacement depuis la base std::basic_iostream de other construit par déplacement depuis other. sb
  1. La std::basic_iostream de base était initialisée avec base_type ( & sb ) (pour les surcharges (1,3) ) jusqu'à C++11.
8) Cette surcharge participe à la résolution de surcharge uniquement si std:: is_same_v < SAlloc, Allocator > est false .
9-11) Ces surcharges participent à la résolution de surcharge seulement si std:: is_convertible_v < const StringViewLike & , std:: basic_string_view < CharT, Traits >> est true .

Table des matières

Paramètres

str - chaîne à utiliser comme contenu initial du flux de chaîne
t - un objet (convertible en std::basic_string_view ) à utiliser comme contenu initial du flux de chaîne
a - allocateur utilisé pour allouer le contenu du flux de chaîne
mode - spécifie le mode d'ouverture du flux. C'est un BitmaskType , les constantes suivantes sont définies :
Constante Explication
app se positionner à la fin du 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 à la fin du flux immédiatement après l'ouverture
noreplace (C++23) ouvrir en mode exclusif
other - un autre flux de chaîne à utiliser comme source

Notes

La construction d'objets basic_stringstream uniques dans une boucle serrée, comme lorsqu'ils sont utilisés pour la conversion de chaînes, peut être considérablement plus coûteuse que l'appel de str() pour réutiliser le même objet.

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_sstream_from_string_view 202306L (C++26) Interface entre std::stringstream et std::string_view , ( 9-11 )

Exemple

#include <iostream>
#include <sstream>
int main()
{
    // constructeur par défaut (flux d'entrée/sortie)
    std::stringstream buf1;
    buf1 << 7;
    int n = 0;
    buf1 >> n;
    std::cout << "buf1 = " << buf1.str() << " n = " << n << '\n';
    // flux d'entrée
    std::istringstream inbuf("-10");
    inbuf >> n;
    std::cout << "n = " << n << '\n';
    // flux de sortie en mode append (C++11)
    std::ostringstream buf2("test", std::ios_base::ate);
    buf2 << '1';
    std::cout << buf2.str() << '\n';
}

Sortie :

buf1 = 7 n = 7
n = -10
test1

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
P0935R0 C++11 le constructeur par défaut était explicite rendu implicite

Voir aussi

obtient ou définit le contenu de l'objet de périphérique de chaîne sous-jacent
(fonction membre publique)
construit un objet basic_stringbuf
(fonction membre publique de std::basic_stringbuf<CharT,Traits,Allocator> )