Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: swap

From cppreference.net
void swap ( basic_stringbuf & rhs ) ;
(depuis C++11)
(jusqu'à C++20)
void swap ( basic_stringbuf & rhs ) noexcept ( /* voir ci-dessous */ ) ;
(depuis C++20)

Échange l'état et le contenu de * this et de rhs .

Le comportement est indéfini si Allocator ne se propage pas lors d'un échange et que les allocateurs de * this et other sont inégaux.

(depuis C++11)

Table des matières

Paramètres

rhs - autre basic_stringbuf

Valeur de retour

(aucun)

Exceptions

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

(depuis C++11)
(jusqu'à C++20)
noexcept spécification :
noexcept ( std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value
|| std:: allocator_traits < Allocator > :: is_always_equal :: value )
(depuis C++20)

Notes

Cette fonction est appelée automatiquement lors de l'échange d'objets std::stringstream . Il est rarement nécessaire de l'appeler directement.

Exemple

#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
int main()
{
    std::istringstream one("one");
    std::ostringstream two("two");
    std::cout << "Before swap: one = " << std::quoted(one.str())
              << ", two = " << std::quoted(two.str()) << ".\n";
    one.rdbuf()->swap(*two.rdbuf());
    std::cout << "After  swap: one = " << std::quoted(one.str())
              << ", two = " << std::quoted(two.str()) << ".\n";
}

Sortie :

Before swap: one = "one", two = "two".
After  swap: one = "two", two = "one".

Voir aussi

construit un objet basic_stringbuf
(fonction membre publique)
(C++11)
échange deux flux de chaînes
(fonction membre publique de std::basic_stringstream<CharT,Traits,Allocator> )